PR_FLOW_DIAGRAM.mdโข15.3 kB
# Pull Request Integration Flow Diagrams
## 1. Complete Workflow
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Developer Workflow โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโ
โ Start Task โ @eureka-tasks start_work_on_task
โโโโโโโโฌโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Branch Session Manager โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Check if branch session exists โ
โ โข Create new if not exists โ
โ โข Add taskId to branch session โ
โ โข Save to branch-sessions.json โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโ
โ Make Code Changes โ (Developer works in IDE)
โโโโโโโโฌโโโโโโโโโโโโโโ
โ
v
โโโโโโโโโโโโโโ
โ Complete โ @eureka-tasks complete_task_work
โ Task Work โ
โโโโโโโโฌโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Git Tracker โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Capture all file changes โ
โ โข Store diffs in WorkSession tables โ
โ โข Update task description โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Branch Session Update โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Update lastActivityAt โ
โ โข Keep task in session โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ [Repeat for more tasks]
โ
v
โโโโโโโโโโโโโโ
โ List Tasks โ @eureka-tasks list_branch_tasks
โ in Branch โ
โโโโโโโโฌโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Branch Session Summary โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
Task #123 (done) โ
โ โ
Task #124 (done) โ
โ ๐ Task #125 (in_progress) โ
โ โ
โ Status: 2 done, 1 in progress โ
โ Ready for PR: No โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ [All tasks completed]
โ
v
โโโโโโโโโโโโโโ
โ Create PR โ @eureka-tasks create_pull_request
โโโโโโโโฌโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PR Generator โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ 1. Load all tasks from branch session โ
โ 2. Fetch work sessions for each task โ
โ 3. Generate PR title from task titles โ
โ 4. Generate PR description: โ
โ โข Task list with checkboxes โ
โ โข Each task summary โ
โ โข File changes per task โ
โ โข Overall statistics โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ GitHub API โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ POST /repos/{owner}/{repo}/pulls โ
โ { โ
โ "title": "feat: Auth system", โ
โ "body": "...", โ
โ "head": "feature/auth", โ
โ "base": "main" โ
โ } โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PR Created! โ
โ https://github.com/.../pull/42 โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Update Tasks โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ PATCH /api/v1/tasks/bulk-update-pr โ
โ { โ
โ "taskIds": ["cm123", "cm124"], โ
โ "prUrl": "https://...", โ
โ "prNumber": 42 โ
โ } โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Update Branch Session โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Set prUrl โ
โ โข Set prNumber โ
โ โข Set status: "pr_created" โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
## 2. Branch Session Lifecycle
```
โโโโโโโโโโโโโโโโ
โ Branch: main โ (Developer creates new branch)
โโโโโโโโฌโโโโโโโโ
โ
โ git checkout -b feature/auth
v
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Branch: feature/auth โ
โโโโโโโโฌโโโโโโโโโโโโโโโโ
โ
โ start_work_on_task(cm123)
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Branch Session Created โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ branchName: "feature/auth" โ
โ taskIds: ["cm123"] โ
โ status: "active" โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ complete_task_work(cm123)
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Branch Session Updated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ branchName: "feature/auth" โ
โ taskIds: ["cm123"] โ
โ status: "active" โ
โ lastActivityAt: updated โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ start_work_on_task(cm124)
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Branch Session Updated โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ branchName: "feature/auth" โ
โ taskIds: ["cm123", "cm124"] โ
โ status: "active" โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ create_pull_request()
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Branch Session Finalized โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ branchName: "feature/auth" โ
โ taskIds: ["cm123", "cm124"] โ
โ status: "pr_created" โ
โ prUrl: "https://..." โ
โ prNumber: 42 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ [PR merged on GitHub]
v
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Branch Session Archived โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ status: "merged" โ
โ (Can be cleaned up) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
## 3. Data Flow: Task โ Work Session โ PR
```
Task #123
โโ title: "Implement JWT auth"
โโ status: "done"
โโ description: "## ๐ฏ ๅฎ่ฃ
ๆฆ่ฆ..."
โโ workSessions: [
{
sessionId: "session_123",
summary: "JWT่ช่จผใๅฎ่ฃ
",
changes: [
{ file: "auth.ts", +45/-12 },
{ file: "test.ts", +78/0 }
],
statistics: {
filesChanged: 2,
linesAdded: 123,
linesRemoved: 12
}
}
]
Task #124
โโ title: "Add bcrypt hashing"
โโ status: "done"
โโ workSessions: [...]
โ โ โ (combine via create_pull_request)
GitHub PR #42
โโ title: "feat: JWT authentication and 1 more task"
โโ body: """
โ ## ๐ Tasks Completed
โ - [x] #123 Implement JWT auth
โ - [x] #124 Add bcrypt hashing
โ
โ ## ๐ฏ Summary
โ ### Task #123: Implement JWT auth
โ JWT่ช่จผใๅฎ่ฃ
โ **Changes:**
โ - โ๏ธ auth.ts (+45/-12)
โ - โ test.ts (+78/0)
โ ...
โ """
โโ url: "https://github.com/.../pull/42"
โ โ โ (update tasks)
Task #123 โ prUrl: "https://github.com/.../pull/42"
Task #124 โ prUrl: "https://github.com/.../pull/42"
```
## 4. File Structure & Storage
```
~/.eureka-mcp/
โโโ config.json
โ โโโ { github: { token, defaultBranch }, ... }
โ
โโโ branch-sessions.json
โโโ {
"feature/auth": {
"branchName": "feature/auth",
"taskIds": ["cm123", "cm124"],
"startedAt": "2025-01-28T10:00:00Z",
"lastActivityAt": "2025-01-28T15:30:00Z",
"status": "active"
},
"feature/payments": {
...
}
}
Database (PostgreSQL)
โโโ Task
โ โโโ id: "cm123"
โ โโโ title: "Implement JWT auth"
โ โโโ prUrl: "https://github.com/.../pull/42" โ NEW
โ โโโ prNumber: 42 โ NEW
โ โโโ prCreatedAt: "2025-01-28T16:00:00Z" โ NEW
โ
โโโ WorkSession
โ โโโ taskId: "cm123"
โ โโโ sessionId: "session_123"
โ โโโ summary: "JWT่ช่จผใๅฎ่ฃ
"
โ โโโ statistics: { filesChanged: 2, ... }
โ
โโโ WorkSessionChange
โโโ workSessionId: "ws_123"
โโโ file: "auth.ts"
โโโ oldValue, newValue, unifiedDiff
```
## 5. Error Handling Flow
```
create_pull_request()
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Validation Checks โ
โโโโโโโโโโโโโโโโโโโโโโโโค
โ โ Branch session? โโโNoโโ> Error: No tasks in branch
โ โ Has tasks? โโโNoโโ> Error: No tasks in branch
โ โ Git remote? โโโNoโโ> Error: No GitHub remote
โ โ GitHub token? โโโNoโโ> Prompt for token
โ โ Uncommitted? โโโYesโ> Warn, continue
โโโโโโโโฌโโโโโโโโโโโโโโโโ
โ All OK
v
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Generate PR โ
โโโโโโโโฌโโโโโโโโโโโโโโโโ
โ
v
โโโโโโโโโโโโโโโโโโโโโโโโ
โ GitHub API Call โ
โโโโโโโโโโโโโโโโโโโโโโโโค
โ Success? โโโNoโโ> Error: Show GitHub error
โ โ (rate limit, permissions, etc.)
โโโโโโโโฌโโโโโโโโโโโโโโโโ
โ Success
v
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Update Tasks โ
โโโโโโโโโโโโโโโโโโโโโโโโค
โ Success? โโโNoโโ> Warn: PR created but
โ โ task update failed
โโโโโโโโฌโโโโโโโโโโโโโโโโ
โ Success
v
โโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
Complete! โ
โ PR URL returned โ
โโโโโโโโโโโโโโโโโโโโโโโโ
```
## 6. Multi-Project Scenario
```
Project A (eurekalabo-frontend)
โโ Branch: feature/auth
โโ Tasks: ["cm123", "cm124"]
โโ PR: #42
Project B (eurekalabo-api)
โโ Branch: feature/auth (same name!)
โโ Tasks: ["cm456", "cm789"]
โโ PR: #15
Storage:
{
"project-A_feature/auth": {
"projectId": "cmggg...",
"branchName": "feature/auth",
"taskIds": ["cm123", "cm124"]
},
"project-B_feature/auth": {
"projectId": "cmhhh...",
"branchName": "feature/auth",
"taskIds": ["cm456", "cm789"]
}
}
```