@torka/claude-workflows 0.2.0 โ 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/completion-summary-implement-epic-with-subagents.md +103 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/steps/step-01-init.md +250 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/steps/step-01b-continue.md +305 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/steps/step-01c-new.md +434 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/steps/step-02-orchestrate.md +440 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/steps/step-03-complete.md +476 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/templates/epic-completion-report.md +62 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/validation/checklist.md +121 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/workflow-plan-implement-epic-with-subagents.md +758 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/workflow.md +101 -0
- package/bmad-workflows/bmm/workflows/4-implementation/implement-epic-with-subagents/workflow.yaml +87 -0
- package/install.js +12 -5
- package/package.json +2 -1
- package/uninstall.js +57 -0
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-03-complete'
|
|
3
|
+
description: 'Generate epic completion report, create PR, and handle worktree cleanup'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/implement-epic-with-subagents'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: '{workflow_path}/steps/step-03-complete.md'
|
|
10
|
+
workflowFile: '{workflow_path}/workflow.md'
|
|
11
|
+
|
|
12
|
+
# Task References
|
|
13
|
+
reportTemplate: '{workflow_path}/templates/epic-completion-report.md'
|
|
14
|
+
|
|
15
|
+
# State files
|
|
16
|
+
sidecarFolder: '{output_folder}/epic-executions'
|
|
17
|
+
sprintStatus: '{implementation_artifacts}/sprint-status.yaml'
|
|
18
|
+
|
|
19
|
+
# Output
|
|
20
|
+
reportOutputFolder: '{output_folder}/epic-reports'
|
|
21
|
+
|
|
22
|
+
# Cleanup
|
|
23
|
+
agentCleanupEnabled: true
|
|
24
|
+
|
|
25
|
+
# Retrospective
|
|
26
|
+
retrospectiveWorkflow: '_bmad/bmm/workflows/4-implementation/retrospective'
|
|
27
|
+
|
|
28
|
+
# PR creation
|
|
29
|
+
baseBranch: 'main'
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# Step 3: Epic Completion
|
|
33
|
+
|
|
34
|
+
## STEP GOAL:
|
|
35
|
+
|
|
36
|
+
To generate the Epic Completion Report, create a Pull Request, handle worktree cleanup, update final status, and gracefully conclude the epic execution workflow.
|
|
37
|
+
|
|
38
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
39
|
+
|
|
40
|
+
### Universal Rules:
|
|
41
|
+
|
|
42
|
+
- ๐ NEVER generate content without user input
|
|
43
|
+
- ๐ CRITICAL: Read the complete step file before taking any action
|
|
44
|
+
- ๐ CRITICAL: When loading next step with 'C', ensure entire file is read
|
|
45
|
+
- ๐ YOU ARE A FACILITATOR, not a content generator
|
|
46
|
+
|
|
47
|
+
### Orchestrator-Specific Rules:
|
|
48
|
+
|
|
49
|
+
- ๐ NEVER modify completed story results
|
|
50
|
+
- ๐ CRITICAL: Generate report from actual execution data
|
|
51
|
+
- ๐ YOU ARE FINALIZING the epic execution
|
|
52
|
+
|
|
53
|
+
### Role Reinforcement:
|
|
54
|
+
|
|
55
|
+
- โ
You are an Epic Execution Orchestrator completing the workflow
|
|
56
|
+
- โ
You summarize execution results accurately
|
|
57
|
+
- โ
You generate comprehensive but concise reports
|
|
58
|
+
- โ
You provide actionable next steps
|
|
59
|
+
|
|
60
|
+
### Step-Specific Rules:
|
|
61
|
+
|
|
62
|
+
- ๐ฏ Focus ONLY on reporting and finalization
|
|
63
|
+
- ๐ซ FORBIDDEN to execute additional stories
|
|
64
|
+
- ๐ฌ Present clear summary to user
|
|
65
|
+
- ๐ช Archive or preserve sidecar as appropriate
|
|
66
|
+
- ๐งน Handle worktree cleanup with user confirmation
|
|
67
|
+
|
|
68
|
+
## EXECUTION PROTOCOLS:
|
|
69
|
+
|
|
70
|
+
- ๐ฏ Gather all data from sidecar file
|
|
71
|
+
- ๐พ Generate report using template
|
|
72
|
+
- ๐ Update sprint-status with epic completion
|
|
73
|
+
- ๐ซ FORBIDDEN to modify historical execution data
|
|
74
|
+
|
|
75
|
+
## CONTEXT BOUNDARIES:
|
|
76
|
+
|
|
77
|
+
- **Sidecar path:** Use `sidecar_path` from router context (step-01-init). In worktree mode, the sidecar is in the main repo's `_bmad-output/epic-executions/`, NOT the worktree's folder.
|
|
78
|
+
- Sidecar file contains complete execution history
|
|
79
|
+
- All story outcomes recorded in execution_log
|
|
80
|
+
- Sprint-status reflects final story states
|
|
81
|
+
- Report is the primary output of this step
|
|
82
|
+
- Worktree cleanup requires user confirmation
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## COMPLETION SEQUENCE:
|
|
87
|
+
|
|
88
|
+
### 1. Load Execution Data
|
|
89
|
+
|
|
90
|
+
Read the sidecar file using `sidecar_path` from router context (passed through step-01-init โ step-01b/02):
|
|
91
|
+
|
|
92
|
+
**Note:** In worktree mode, this path points to the main repo's sidecar location, not the worktree's.
|
|
93
|
+
|
|
94
|
+
Gather:
|
|
95
|
+
- `epic_execution_state.epic_file`, `epic_execution_state.epic_name`
|
|
96
|
+
- `epic_execution_state.epic_number`
|
|
97
|
+
- `epic_execution_state.total_stories`
|
|
98
|
+
- `epic_execution_state.stories_completed` - count and list
|
|
99
|
+
- `epic_execution_state.stories_skipped` - count and list
|
|
100
|
+
- `epic_execution_state.stories_failed` - count and list
|
|
101
|
+
- `epic_execution_state.execution_log` - per-story details
|
|
102
|
+
- `epic_execution_state.started_at`, `epic_execution_state.completed_at`
|
|
103
|
+
- `specialist_agents_available` - agents used
|
|
104
|
+
- `execution_mode.type` - "worktree" | "main"
|
|
105
|
+
- `worktree_config` (if worktree mode):
|
|
106
|
+
- `worktree_path`
|
|
107
|
+
- `branch_name`
|
|
108
|
+
- `main_repo_path`
|
|
109
|
+
|
|
110
|
+
Calculate:
|
|
111
|
+
- Total duration
|
|
112
|
+
- Average coverage across stories
|
|
113
|
+
- Total tests run/passed/failed
|
|
114
|
+
- Total git commits
|
|
115
|
+
|
|
116
|
+
### 2. Determine Completion Status
|
|
117
|
+
|
|
118
|
+
Based on execution results:
|
|
119
|
+
|
|
120
|
+
**Status: Completed**
|
|
121
|
+
- All stories finished (none skipped or failed)
|
|
122
|
+
|
|
123
|
+
**Status: Partial**
|
|
124
|
+
- Some stories completed, some skipped or failed
|
|
125
|
+
|
|
126
|
+
**Status: Failed**
|
|
127
|
+
- Critical failure caused early termination
|
|
128
|
+
|
|
129
|
+
### 3. Generate Completion Report
|
|
130
|
+
|
|
131
|
+
Create report file at `{reportOutputFolder}/epic-completion-{epic_name}-{date}.md`
|
|
132
|
+
|
|
133
|
+
Use template structure:
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
# Epic Completion Report: {epic_name}
|
|
137
|
+
|
|
138
|
+
## Execution Summary
|
|
139
|
+
|
|
140
|
+
| Field | Value |
|
|
141
|
+
|-------|-------|
|
|
142
|
+
| **Epic File** | {epic_file} |
|
|
143
|
+
| **Epic Number** | {epic_number} |
|
|
144
|
+
| **Execution Mode** | {execution_mode.type} |
|
|
145
|
+
| **Worktree Path** | {worktree_path or "N/A"} |
|
|
146
|
+
| **Branch** | {branch_name} |
|
|
147
|
+
| **Started** | {started_at} |
|
|
148
|
+
| **Completed** | {completed_at} |
|
|
149
|
+
| **Duration** | {total_duration} |
|
|
150
|
+
| **Status** | {completion_status} |
|
|
151
|
+
|
|
152
|
+
## Stories Execution
|
|
153
|
+
|
|
154
|
+
| Story | Title | Status | Agent | Coverage | Tests | Duration |
|
|
155
|
+
|-------|-------|--------|-------|----------|-------|----------|
|
|
156
|
+
[For each story in execution_log]
|
|
157
|
+
| {story} | {title} | {status} | {agent} | {coverage}% | {passed}/{total} | {duration} |
|
|
158
|
+
|
|
159
|
+
### Stories Completed: {completed_count}/{total_count}
|
|
160
|
+
|
|
161
|
+
## Quality Metrics
|
|
162
|
+
|
|
163
|
+
- **Average Coverage:** {avg_coverage}%
|
|
164
|
+
- **Total Tests Run:** {total_tests}
|
|
165
|
+
- **Tests Passed:** {passed_tests}
|
|
166
|
+
- **Tests Failed:** {failed_tests}
|
|
167
|
+
- **Git Commits Created:** {commit_count}
|
|
168
|
+
|
|
169
|
+
## Agent Selection Summary
|
|
170
|
+
|
|
171
|
+
| Agent | Stories Handled | Selection Reason |
|
|
172
|
+
|-------|-----------------|------------------|
|
|
173
|
+
[For each unique agent used]
|
|
174
|
+
| {agent_name} | [{story_list}] | {selection_reason} |
|
|
175
|
+
|
|
176
|
+
## Issues & Escalations
|
|
177
|
+
|
|
178
|
+
### Retries
|
|
179
|
+
[For each story that required retries]
|
|
180
|
+
- {story}: {retry_reason} - {outcome}
|
|
181
|
+
|
|
182
|
+
### Escalations
|
|
183
|
+
[For each story that required user decision]
|
|
184
|
+
- {story}: {escalation_reason} - {resolution}
|
|
185
|
+
|
|
186
|
+
### Blockers Encountered
|
|
187
|
+
[List any blockers that occurred]
|
|
188
|
+
- {blocker_description}
|
|
189
|
+
|
|
190
|
+
## Session Information
|
|
191
|
+
|
|
192
|
+
- **Orchestrator Sessions:** {session_count}
|
|
193
|
+
- **Resume Points:** {resume_count}
|
|
194
|
+
- **Sidecar File:** {sidecar_path}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 4. Update Sprint Status
|
|
198
|
+
|
|
199
|
+
Update `{sprintStatus}` to reflect epic completion:
|
|
200
|
+
|
|
201
|
+
```yaml
|
|
202
|
+
epic-N: done # or partial
|
|
203
|
+
epic-N-retrospective: optional
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### 4.5 Cleanup Specialist Agents
|
|
207
|
+
|
|
208
|
+
Remove epic-specific agents created during initialization:
|
|
209
|
+
|
|
210
|
+
**1. Read from sidecar:**
|
|
211
|
+
```yaml
|
|
212
|
+
specialist_agents_created:
|
|
213
|
+
- name: "auth-specialist"
|
|
214
|
+
path: ".claude/agents/vt-bmad-dev-agents/auth-specialist.md"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**2. Delete each agent file:**
|
|
218
|
+
```bash
|
|
219
|
+
rm .claude/agents/vt-bmad-dev-agents/auth-specialist.md
|
|
220
|
+
rm .claude/agents/vt-bmad-dev-agents/frontend-forms.md
|
|
221
|
+
...
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**3. Log cleanup:**
|
|
225
|
+
Add to report:
|
|
226
|
+
```markdown
|
|
227
|
+
## Agent Cleanup
|
|
228
|
+
- Deleted: auth-specialist.md
|
|
229
|
+
- Deleted: frontend-forms.md
|
|
230
|
+
- Total agents cleaned up: X
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**4. Verify cleanup:**
|
|
234
|
+
```bash
|
|
235
|
+
ls .claude/agents/vt-bmad-dev-agents/
|
|
236
|
+
```
|
|
237
|
+
- If empty or only contains non-epic agents โ success
|
|
238
|
+
- If files remain unexpectedly โ warn user
|
|
239
|
+
|
|
240
|
+
### 5. Handle Sidecar File
|
|
241
|
+
|
|
242
|
+
Present option to user:
|
|
243
|
+
|
|
244
|
+
"Epic execution complete! The execution state file contains detailed logs.
|
|
245
|
+
|
|
246
|
+
Options:
|
|
247
|
+
- [A] Archive sidecar (move to `{output_folder}/archive/`)
|
|
248
|
+
- [K] Keep sidecar in place
|
|
249
|
+
- [D] Delete sidecar (execution data preserved in report)"
|
|
250
|
+
|
|
251
|
+
### 5.5 Conduct Retrospective
|
|
252
|
+
|
|
253
|
+
Run retrospective workflow for completed epic:
|
|
254
|
+
|
|
255
|
+
**Ask user:**
|
|
256
|
+
"Would you like to run a retrospective for this epic?
|
|
257
|
+
- [Y] Yes, run retrospective
|
|
258
|
+
- [N] No, skip retrospective"
|
|
259
|
+
|
|
260
|
+
**If Yes:**
|
|
261
|
+
1. Invoke `/retrospective` skill with epic context
|
|
262
|
+
2. Wait for retrospective completion
|
|
263
|
+
3. Store output path in report:
|
|
264
|
+
```markdown
|
|
265
|
+
## Retrospective
|
|
266
|
+
- Completed: Yes
|
|
267
|
+
- Output: {implementation_artifacts}/epic-N-retro-{date}.md
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**If No:**
|
|
271
|
+
- Update sprint-status: `epic-N-retrospective: skipped`
|
|
272
|
+
- Note in report: "Retrospective: Skipped by user"
|
|
273
|
+
|
|
274
|
+
### 6. Create Pull Request
|
|
275
|
+
|
|
276
|
+
Generate and create PR for this epic's work:
|
|
277
|
+
|
|
278
|
+
**1. Gather PR content:**
|
|
279
|
+
- Title: "Epic {N}: {epic_name}"
|
|
280
|
+
- Body from completion report:
|
|
281
|
+
- Stories completed count
|
|
282
|
+
- Quality metrics summary
|
|
283
|
+
- Agent usage summary
|
|
284
|
+
- Link to completion report
|
|
285
|
+
|
|
286
|
+
**2. Create PR:**
|
|
287
|
+
```bash
|
|
288
|
+
gh pr create \
|
|
289
|
+
--title "Epic {N}: {epic_name}" \
|
|
290
|
+
--base {baseBranch} \
|
|
291
|
+
--body "$(cat <<'EOF'
|
|
292
|
+
## Summary
|
|
293
|
+
Automated implementation of Epic {N}: {epic_name}
|
|
294
|
+
|
|
295
|
+
### Stories Completed
|
|
296
|
+
- {completed_count}/{total_count} stories implemented
|
|
297
|
+
- Coverage: {avg_coverage}%
|
|
298
|
+
- Tests: {passed_tests}/{total_tests} passed
|
|
299
|
+
|
|
300
|
+
### Quality Metrics
|
|
301
|
+
| Metric | Value |
|
|
302
|
+
|--------|-------|
|
|
303
|
+
| Avg Coverage | {avg_coverage}% |
|
|
304
|
+
| Total Tests | {total_tests} |
|
|
305
|
+
| Git Commits | {commit_count} |
|
|
306
|
+
|
|
307
|
+
### Files Changed
|
|
308
|
+
[List from execution log]
|
|
309
|
+
|
|
310
|
+
### Reports
|
|
311
|
+
- Completion Report: {report_path}
|
|
312
|
+
- Retrospective: {retro_path}
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
Generated by implement-epic-with-subagents workflow
|
|
316
|
+
EOF
|
|
317
|
+
)"
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**3. Display result:**
|
|
321
|
+
```
|
|
322
|
+
Pull Request Created
|
|
323
|
+
PR #123: Epic {N}: {epic_name}
|
|
324
|
+
URL: https://github.com/{org}/{repo}/pull/123
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
**4. Store in report:**
|
|
328
|
+
```markdown
|
|
329
|
+
## Pull Request
|
|
330
|
+
- PR Number: #123
|
|
331
|
+
- URL: [link]
|
|
332
|
+
- Created: [timestamp]
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### 6.5 Worktree Cleanup (Conditional)
|
|
336
|
+
|
|
337
|
+
**Skip this section if:**
|
|
338
|
+
- `execution_mode.type` = "main" (not using worktree)
|
|
339
|
+
|
|
340
|
+
**If worktree mode:**
|
|
341
|
+
|
|
342
|
+
Mark sidecar for cleanup (but don't delete yet):
|
|
343
|
+
```yaml
|
|
344
|
+
cleanup:
|
|
345
|
+
marked_for_removal: true
|
|
346
|
+
agents_cleaned: true
|
|
347
|
+
pr_created: true
|
|
348
|
+
pr_number: {pr_number}
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Display cleanup instructions:**
|
|
352
|
+
```
|
|
353
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
354
|
+
WORKTREE CLEANUP
|
|
355
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
356
|
+
|
|
357
|
+
Your epic work is complete and PR #{pr_number} has been created!
|
|
358
|
+
|
|
359
|
+
The worktree at:
|
|
360
|
+
{worktree_path}
|
|
361
|
+
|
|
362
|
+
Can now be removed. Since you cannot remove a worktree from inside it,
|
|
363
|
+
run these commands from your MAIN repository:
|
|
364
|
+
|
|
365
|
+
cd {main_repo_path}
|
|
366
|
+
git worktree remove {worktree_relative_path}
|
|
367
|
+
|
|
368
|
+
Or to force removal if there are uncommitted changes:
|
|
369
|
+
git worktree remove --force {worktree_relative_path}
|
|
370
|
+
|
|
371
|
+
After removal, you can also clean up the sidecar file:
|
|
372
|
+
rm {sidecarFolder}/epic-{epic_number}-state.yaml
|
|
373
|
+
|
|
374
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
375
|
+
|
|
376
|
+
Would you like me to add these commands to your clipboard?
|
|
377
|
+
[Y] Yes, copy commands | [N] No, I'll handle it manually
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
**If user selects Y:**
|
|
381
|
+
- Output the commands in a code block for easy copying
|
|
382
|
+
- Note: Cannot execute removal from inside worktree
|
|
383
|
+
|
|
384
|
+
**Update report with cleanup info:**
|
|
385
|
+
```markdown
|
|
386
|
+
## Worktree Cleanup
|
|
387
|
+
|
|
388
|
+
- **Worktree Path:** {worktree_path}
|
|
389
|
+
- **Status:** Marked for removal
|
|
390
|
+
- **Cleanup Commands Provided:** Yes
|
|
391
|
+
|
|
392
|
+
**To remove worktree (run from main repo):**
|
|
393
|
+
```bash
|
|
394
|
+
cd {main_repo_path}
|
|
395
|
+
git worktree remove {worktree_relative_path}
|
|
396
|
+
rm {sidecarFolder}/epic-{epic_number}-state.yaml
|
|
397
|
+
```
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### 7. Present Final Summary
|
|
401
|
+
|
|
402
|
+
Display to user:
|
|
403
|
+
|
|
404
|
+
```
|
|
405
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
406
|
+
EPIC EXECUTION COMPLETE
|
|
407
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
408
|
+
|
|
409
|
+
Epic: {epic_name}
|
|
410
|
+
Status: {completion_status}
|
|
411
|
+
Duration: {total_duration}
|
|
412
|
+
Mode: {execution_mode.type}
|
|
413
|
+
|
|
414
|
+
Stories:
|
|
415
|
+
Completed: {completed_count}
|
|
416
|
+
Skipped: {skipped_count}
|
|
417
|
+
Failed: {failed_count}
|
|
418
|
+
|
|
419
|
+
Quality:
|
|
420
|
+
Average Coverage: {avg_coverage}%
|
|
421
|
+
Tests: {passed_tests}/{total_tests} passed
|
|
422
|
+
Git Commits: {commit_count}
|
|
423
|
+
|
|
424
|
+
Report saved to:
|
|
425
|
+
{report_path}
|
|
426
|
+
|
|
427
|
+
Pull Request: #{pr_number}
|
|
428
|
+
{pr_url}
|
|
429
|
+
|
|
430
|
+
{If worktree mode:}
|
|
431
|
+
Worktree Cleanup:
|
|
432
|
+
Commands provided above. Run from main repo when ready.
|
|
433
|
+
|
|
434
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
435
|
+
|
|
436
|
+
Next Steps:
|
|
437
|
+
- Review PR and request changes if needed
|
|
438
|
+
- Merge when ready
|
|
439
|
+
{If worktree: "- Remove worktree using commands above"}
|
|
440
|
+
- Continue with next epic: [N] Start Epic {next_epic} | [E] Exit
|
|
441
|
+
|
|
442
|
+
Thank you for using the Epic Execution Orchestrator!
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### 8. Workflow Complete
|
|
446
|
+
|
|
447
|
+
The workflow ends here. No further steps to load.
|
|
448
|
+
|
|
449
|
+
If user has questions, respond helpfully and remind them the report contains full details.
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
## ๐จ SYSTEM SUCCESS/FAILURE METRICS
|
|
454
|
+
|
|
455
|
+
### โ
SUCCESS:
|
|
456
|
+
|
|
457
|
+
- Completion report generated accurately
|
|
458
|
+
- All execution data preserved in report
|
|
459
|
+
- Sprint-status updated with epic completion
|
|
460
|
+
- Sidecar handled per user preference
|
|
461
|
+
- PR created successfully
|
|
462
|
+
- Worktree cleanup instructions provided (if applicable)
|
|
463
|
+
- Clear summary presented to user
|
|
464
|
+
- Workflow concluded gracefully
|
|
465
|
+
|
|
466
|
+
### โ SYSTEM FAILURE:
|
|
467
|
+
|
|
468
|
+
- Inaccurate report data
|
|
469
|
+
- Not updating sprint-status
|
|
470
|
+
- Losing execution history
|
|
471
|
+
- Attempting to execute more stories
|
|
472
|
+
- Not presenting clear summary
|
|
473
|
+
- Not providing worktree cleanup instructions (when applicable)
|
|
474
|
+
- Attempting to remove worktree from inside it
|
|
475
|
+
|
|
476
|
+
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
stepsCompleted: []
|
|
3
|
+
epic_name: ""
|
|
4
|
+
epic_file: ""
|
|
5
|
+
started_at: ""
|
|
6
|
+
completed_at: ""
|
|
7
|
+
status: ""
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Epic Completion Report: {{epic_name}}
|
|
11
|
+
|
|
12
|
+
## Execution Summary
|
|
13
|
+
|
|
14
|
+
| Field | Value |
|
|
15
|
+
|-------|-------|
|
|
16
|
+
| **Epic File** | {{epic_file}} |
|
|
17
|
+
| **Started** | {{started_at}} |
|
|
18
|
+
| **Completed** | {{completed_at}} |
|
|
19
|
+
| **Duration** | {{total_duration}} |
|
|
20
|
+
| **Status** | {{completion_status}} |
|
|
21
|
+
|
|
22
|
+
## Stories Execution
|
|
23
|
+
|
|
24
|
+
| Story | Title | Status | Agent | Coverage | Tests | Duration |
|
|
25
|
+
|-------|-------|--------|-------|----------|-------|----------|
|
|
26
|
+
{{stories_table}}
|
|
27
|
+
|
|
28
|
+
### Stories Completed: {{completed_count}}/{{total_count}}
|
|
29
|
+
|
|
30
|
+
## Quality Metrics
|
|
31
|
+
|
|
32
|
+
- **Average Coverage:** {{avg_coverage}}%
|
|
33
|
+
- **Total Tests Run:** {{total_tests}}
|
|
34
|
+
- **Tests Passed:** {{passed_tests}}
|
|
35
|
+
- **Tests Failed:** {{failed_tests}}
|
|
36
|
+
- **Git Commits Created:** {{commit_count}}
|
|
37
|
+
|
|
38
|
+
## Agent Selection Summary
|
|
39
|
+
|
|
40
|
+
| Agent | Stories Handled | Selection Reason |
|
|
41
|
+
|-------|-----------------|------------------|
|
|
42
|
+
{{agent_summary_table}}
|
|
43
|
+
|
|
44
|
+
## Issues & Escalations
|
|
45
|
+
|
|
46
|
+
### Retries
|
|
47
|
+
|
|
48
|
+
{{retries_section}}
|
|
49
|
+
|
|
50
|
+
### Escalations
|
|
51
|
+
|
|
52
|
+
{{escalations_section}}
|
|
53
|
+
|
|
54
|
+
### Blockers Encountered
|
|
55
|
+
|
|
56
|
+
{{blockers_section}}
|
|
57
|
+
|
|
58
|
+
## Session Information
|
|
59
|
+
|
|
60
|
+
- **Orchestrator Sessions:** {{session_count}}
|
|
61
|
+
- **Resume Points:** {{resume_count}}
|
|
62
|
+
- **Sidecar File:** {{sidecar_path}}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Epic Execution Pre-Flight Checklist
|
|
2
|
+
|
|
3
|
+
Use this checklist to validate prerequisites before starting epic execution.
|
|
4
|
+
|
|
5
|
+
## Required Agents
|
|
6
|
+
|
|
7
|
+
- [ ] **story-prep-master** exists at `.claude/agents/story-prep-master.md`
|
|
8
|
+
- Responsible for creating developer-ready stories from epic
|
|
9
|
+
|
|
10
|
+
- [ ] **quality-gate-verifier** exists at `.claude/agents/quality-gate-verifier.md`
|
|
11
|
+
- Responsible for independent test/coverage verification
|
|
12
|
+
|
|
13
|
+
- [ ] **principal-code-reviewer** exists at `.claude/agents/principal-code-reviewer.md`
|
|
14
|
+
- Responsible for code quality review
|
|
15
|
+
|
|
16
|
+
- [ ] **Fallback dev agent** exists at `_bmad/bmm/agents/dev.md`
|
|
17
|
+
- Used when no specialist matches the story
|
|
18
|
+
|
|
19
|
+
## Optional Specialist Agents
|
|
20
|
+
|
|
21
|
+
- [ ] Specialist agents folder exists at `.claude/agents/vt-bmad-dev-agents/`
|
|
22
|
+
- [ ] At least one specialist agent defined (recommended)
|
|
23
|
+
|
|
24
|
+
Each specialist agent should have:
|
|
25
|
+
- `specialty` field in frontmatter (one-liner)
|
|
26
|
+
- `Specialty Context` section with:
|
|
27
|
+
- Domain
|
|
28
|
+
- Technologies
|
|
29
|
+
- Story Types
|
|
30
|
+
- Keywords
|
|
31
|
+
|
|
32
|
+
## Required Files
|
|
33
|
+
|
|
34
|
+
- [ ] **Epic file** exists and follows BMAD epics-template format
|
|
35
|
+
- Contains stories in format `### Story N.M: [title]`
|
|
36
|
+
- Each story has acceptance criteria
|
|
37
|
+
|
|
38
|
+
- [ ] **Sprint-status.yaml** exists at configured location
|
|
39
|
+
- Stories listed with current status
|
|
40
|
+
- Epic status tracked
|
|
41
|
+
|
|
42
|
+
## Optional Files
|
|
43
|
+
|
|
44
|
+
- [ ] **project-context.md** exists (enhances agent context)
|
|
45
|
+
- Located at `**/project-context.md`
|
|
46
|
+
- Contains coding standards and patterns
|
|
47
|
+
|
|
48
|
+
## MCP Tools
|
|
49
|
+
|
|
50
|
+
- [ ] **Context-7 MCP** is configured and available
|
|
51
|
+
- Provides up-to-date library documentation
|
|
52
|
+
- Required for accurate implementation
|
|
53
|
+
|
|
54
|
+
- [ ] **Playwright MCP** is configured (optional)
|
|
55
|
+
- Enables E2E testing automation
|
|
56
|
+
- Useful if stories involve UI testing
|
|
57
|
+
|
|
58
|
+
## Environment
|
|
59
|
+
|
|
60
|
+
- [ ] Git repository is clean (no uncommitted changes)
|
|
61
|
+
- Or user is aware commits will be mixed with existing changes
|
|
62
|
+
|
|
63
|
+
- [ ] Tests can run (`npm test` or equivalent works)
|
|
64
|
+
- Test command is configured correctly
|
|
65
|
+
|
|
66
|
+
- [ ] Build passes (`npm run build` or equivalent)
|
|
67
|
+
- No existing build errors
|
|
68
|
+
|
|
69
|
+
## Configuration
|
|
70
|
+
|
|
71
|
+
- [ ] Coverage threshold is appropriate (default: 80%)
|
|
72
|
+
- Adjust in workflow.yaml if needed
|
|
73
|
+
|
|
74
|
+
- [ ] Max retries is set (default: 3)
|
|
75
|
+
- Controls retry attempts before escalation
|
|
76
|
+
|
|
77
|
+
- [ ] Auto-commit is enabled/disabled as desired (default: true)
|
|
78
|
+
- Creates git commit after each story
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Pre-Execution Verification Commands
|
|
83
|
+
|
|
84
|
+
Run these to verify environment:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Check agents exist
|
|
88
|
+
ls -la .claude/agents/story-prep-master.md
|
|
89
|
+
ls -la .claude/agents/quality-gate-verifier.md
|
|
90
|
+
ls -la .claude/agents/principal-code-reviewer.md
|
|
91
|
+
ls -la .claude/agents/vt-bmad-dev-agents/
|
|
92
|
+
|
|
93
|
+
# Check tests work
|
|
94
|
+
npm test
|
|
95
|
+
|
|
96
|
+
# Check git status
|
|
97
|
+
git status
|
|
98
|
+
|
|
99
|
+
# Check sprint status exists
|
|
100
|
+
cat docs/delivery/sprint-status.yaml
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Troubleshooting
|
|
106
|
+
|
|
107
|
+
### Agent Not Found
|
|
108
|
+
- Ensure agent file exists at correct path
|
|
109
|
+
- Check file has valid frontmatter with `name` field
|
|
110
|
+
|
|
111
|
+
### Tests Fail Before Execution
|
|
112
|
+
- Fix existing test failures before starting epic
|
|
113
|
+
- Epic execution expects clean test baseline
|
|
114
|
+
|
|
115
|
+
### MCP Not Available
|
|
116
|
+
- Check MCP server is running
|
|
117
|
+
- Verify Context-7 is configured in Claude settings
|
|
118
|
+
|
|
119
|
+
### Coverage Below Threshold
|
|
120
|
+
- Existing code may have low coverage
|
|
121
|
+
- Consider lowering threshold or improving coverage first
|