@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.
@@ -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