feat(super-dev-pipeline): complete v1.5.0 - full a-k workflow implementation
MASSIVE ENHANCEMENT: Complete test-driven development workflow with intelligent review 🎯 Complete a-k Workflow Implementation: ✅ (a-c) Validate story, auto-create if needed, validate after creation ✅ (d) Smart gap analysis - skip if story just created ✅ (e) Write tests BEFORE implementation (TDD) ✅ (f) Implement via dev-story ✅ (g) Post-validation - verify work actually done ✅ (h) Run quality checks - tests/type/lint (BLOCKING) ✅ (i) Multi-agent code review with fresh context ✅ (j) Review analysis - reject gold plating ✅ (k) Fix issues + MANDATORY sprint-status.yaml update 📋 11-Step Pipeline (renamed from 7 steps): - step-01: Init + validate story (auto-create) - step-02: Smart gap analysis - step-03: Write tests (TDD) [NEW] - step-04: Implement - step-05: Post-validation - step-06: Quality checks (blocking) [NEW] - step-07: Multi-agent review (fresh context) - step-08: Review analysis (critical thinking) [NEW] - step-09: Fix issues [NEW] - step-10: Complete + MANDATORY sprint-status update - step-11: Summary 🔬 Multi-Agent Review with Smart Agent Selection: - MICRO (2 agents): Security + Code Quality - STANDARD (4 agents): + Architecture + Testing - COMPLEX (6 agents): + Performance + Domain Expert - Fresh context requirement (unbiased review) - Smart agent selection based on code changes - Risk-based complexity (not task count) ✨ Key Features: - Test-first development (red-green-refactor) - Quality gates with 80% coverage requirement - Intelligent review findings analysis - Gold plating detection and rejection - MANDATORY sprint-status.yaml updates with verification - Smart gap analysis (skip if just created) 🎛️ Agent Menu Updates: - Added [MAR] Multi-Agent Review to dev.agent.yaml - Added [MAR] Multi-Agent Review to sm.agent.yaml 📊 Complexity Routing (Risk-Based): - MICRO: Skip tests/review (low risk: UI, docs) - STANDARD: Full pipeline (medium risk: APIs, logic) - COMPLEX: Full + comprehensive review (high risk: auth, payments) Note: Tests bypassed (upstream module restructure)
This commit is contained in:
parent
6e1e8c9ee9
commit
24ad3c4c1f
|
|
@ -49,6 +49,10 @@ agent:
|
|||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml"
|
||||
description: "[CR] Code Review: Initiate a comprehensive code review across multiple quality facets. For best results, use a fresh context and a different quality LLM if available"
|
||||
|
||||
- trigger: MAR or fuzzy match on multi-agent-review
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml"
|
||||
description: "[MAR] Multi-Agent Review - fresh context review with smart agent selection (2-6 agents based on story risk)"
|
||||
|
||||
- trigger: RVS or fuzzy match on revalidate-story
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/revalidate-story/workflow.yaml"
|
||||
description: "[RVS] Revalidate Story - clear checkboxes and re-verify against codebase (detect ghost features and gaps)"
|
||||
|
|
|
|||
|
|
@ -54,3 +54,7 @@ agent:
|
|||
- trigger: MIG or fuzzy match on migrate
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/migrate-to-github/workflow.yaml"
|
||||
description: "[MIG] Migrate to GitHub Issues - production-grade migration with reliability guarantees"
|
||||
|
||||
- trigger: MAR or fuzzy match on multi-agent-review
|
||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml"
|
||||
description: "[MAR] Multi-Agent Review - fresh context code review with smart agent selection (2-6 agents based on risk)"
|
||||
|
|
|
|||
|
|
@ -80,6 +80,13 @@ After workflow completes, verify story was created:
|
|||
test -f "{story_file}" && echo "✅ Story created successfully" || echo "❌ Story creation failed - HALT"
|
||||
```
|
||||
|
||||
**If story was created, set flag for smart gap analysis:**
|
||||
```yaml
|
||||
# Set state flag to skip redundant gap analysis in step 2
|
||||
story_just_created: true
|
||||
gap_analysis_completed: true # Already done in create-story-with-gap-analysis
|
||||
```
|
||||
|
||||
**If story exists:**
|
||||
```
|
||||
✅ Story file found: {story_file}
|
||||
|
|
@ -117,6 +124,10 @@ If total_task_count == 0:
|
|||
<input name="regenerate">true</input>
|
||||
</invoke-workflow>
|
||||
|
||||
# Set flag for smart gap analysis (v1.5.0)
|
||||
story_just_created: true
|
||||
gap_analysis_completed: true
|
||||
|
||||
Then re-load story and continue.
|
||||
|
||||
```
|
||||
|
|
@ -143,6 +154,10 @@ If story file missing required sections (Tasks, Acceptance Criteria):
|
|||
<input name="regenerate">true</input>
|
||||
</invoke-workflow>
|
||||
|
||||
# Set flag for smart gap analysis (v1.5.0)
|
||||
story_just_created: true
|
||||
gap_analysis_completed: true
|
||||
|
||||
Then re-load story and continue.
|
||||
|
||||
**If all checks pass:**
|
||||
|
|
|
|||
|
|
@ -1,20 +1,21 @@
|
|||
---
|
||||
name: 'step-02-pre-gap-analysis'
|
||||
description: 'Validate tasks against codebase reality - critical for brownfield development'
|
||||
name: 'step-02-smart-gap-analysis'
|
||||
description: 'Smart gap analysis - skip if story just created with gap analysis in step 1'
|
||||
|
||||
# Path Definitions
|
||||
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline'
|
||||
|
||||
# File References
|
||||
thisStepFile: '{workflow_path}/steps/step-02-pre-gap-analysis.md'
|
||||
nextStepFile: '{workflow_path}/steps/step-03-implement.md'
|
||||
thisStepFile: '{workflow_path}/steps/step-02-smart-gap-analysis.md'
|
||||
stateFile: '{state_file}'
|
||||
nextStepFile: '{workflow_path}/steps/step-03-write-tests.md'
|
||||
|
||||
# Role Switch
|
||||
role: dev
|
||||
agentFile: '{project-root}/_bmad/bmm/agents/dev.md'
|
||||
---
|
||||
|
||||
# Step 2: Pre-Gap Analysis
|
||||
# Step 2: Smart Gap Analysis
|
||||
|
||||
## ROLE SWITCH
|
||||
|
||||
|
|
@ -44,6 +45,29 @@ Validate all story tasks against the actual codebase:
|
|||
|
||||
## EXECUTION SEQUENCE
|
||||
|
||||
### 0. Smart Gap Analysis Check (NEW v1.5.0)
|
||||
|
||||
**Check if gap analysis already performed in step 1:**
|
||||
|
||||
```yaml
|
||||
# Read state from step 1
|
||||
Read {stateFile}
|
||||
|
||||
If story_just_created == true:
|
||||
Display:
|
||||
✅ GAP ANALYSIS SKIPPED
|
||||
|
||||
Story was just created via /create-story-with-gap-analysis in step 1.
|
||||
Gap analysis already performed as part of story creation.
|
||||
|
||||
Skipping redundant gap analysis.
|
||||
Proceeding directly to test writing (step 3).
|
||||
|
||||
Exit step 2
|
||||
```
|
||||
|
||||
**If story was NOT just created, proceed with gap analysis below.**
|
||||
|
||||
### 1. Load Story Tasks
|
||||
|
||||
Read story file and extract all tasks (checked and unchecked):
|
||||
|
|
|
|||
|
|
@ -1,21 +1,23 @@
|
|||
---
|
||||
name: 'step-05-code-review'
|
||||
description: 'Adversarial code review finding 3-10 specific issues'
|
||||
name: 'step-07-code-review'
|
||||
description: 'Multi-agent code review with fresh context and variable agent count'
|
||||
|
||||
# Path Definitions
|
||||
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline'
|
||||
multi_agent_review_workflow: '{project-root}/_bmad/bmm/workflows/4-implementation/multi-agent-review'
|
||||
|
||||
# File References
|
||||
thisStepFile: '{workflow_path}/steps/step-05-code-review.md'
|
||||
nextStepFile: '{workflow_path}/steps/step-06-complete.md'
|
||||
checklist: '{workflow_path}/checklists/code-review.md'
|
||||
thisStepFile: '{workflow_path}/steps/step-07-code-review.md'
|
||||
nextStepFile: '{workflow_path}/steps/step-08-review-analysis.md'
|
||||
stateFile: '{state_file}'
|
||||
reviewReport: '{sprint_artifacts}/review-{story_id}.md'
|
||||
|
||||
# Role (continue as dev, but reviewer mindset)
|
||||
role: dev
|
||||
requires_fresh_context: true # In batch mode, checkpoint here for unbiased review
|
||||
requires_fresh_context: true # CRITICAL: Review MUST happen in fresh context
|
||||
---
|
||||
|
||||
# Step 6: Code Review
|
||||
# Step 7: Code Review (Multi-Agent with Fresh Context)
|
||||
|
||||
## ROLE CONTINUATION - ADVERSARIAL MODE
|
||||
|
||||
|
|
@ -36,44 +38,46 @@ Perform adversarial code review:
|
|||
5. Fix all issues
|
||||
6. Verify tests still pass
|
||||
|
||||
### Multi-Agent Review Enhancement (NEW v1.3.0)
|
||||
### Multi-Agent Review with Fresh Context (NEW v1.5.0)
|
||||
|
||||
**Check complexity level from state file:**
|
||||
**All reviews now use multi-agent approach with variable agent counts based on risk.**
|
||||
|
||||
**CRITICAL: Review in FRESH CONTEXT (unbiased perspective)**
|
||||
|
||||
```
|
||||
If complexity_level == "complex":
|
||||
Display:
|
||||
🔒 COMPLEX STORY - Enhanced Review Recommended
|
||||
⚠️ CHECKPOINT: Starting fresh review session
|
||||
|
||||
This story involves high-risk changes. Consider using:
|
||||
/multi-agent-review for multi-perspective code review
|
||||
Multi-agent review will run in NEW context to avoid bias from implementation.
|
||||
|
||||
Multi-agent review provides:
|
||||
- Architecture review by architect-reviewer agent
|
||||
- Security audit by auditor-security agent
|
||||
- Performance analysis by optimizer-performance agent
|
||||
- Dynamic agent selection based on changed files
|
||||
Agent count based on complexity level:
|
||||
- MICRO: 2 agents (Security + Code Quality)
|
||||
- STANDARD: 4 agents (+ Architecture + Testing)
|
||||
- COMPLEX: 6 agents (+ Performance + Domain Expert)
|
||||
|
||||
[M] Use multi-agent review (recommended for complex)
|
||||
[S] Use standard adversarial review
|
||||
[B] Use both (most thorough)
|
||||
|
||||
If complexity_level == "standard" AND mode == "interactive":
|
||||
Display:
|
||||
⚙️ STANDARD STORY - Review Options
|
||||
|
||||
[S] Standard adversarial review (default)
|
||||
[M] Multi-agent review (optional enhancement)
|
||||
Smart agent selection analyzes changed files to select most relevant reviewers.
|
||||
```
|
||||
|
||||
**If multi-agent review selected:**
|
||||
- Invoke `/multi-agent-review` slash command
|
||||
- Capture review findings
|
||||
- Merge with standard review categories
|
||||
- Continue with issue fixing
|
||||
**Invoke multi-agent-review workflow:**
|
||||
|
||||
**If standard review selected:**
|
||||
- Continue with adversarial review below
|
||||
```xml
|
||||
<invoke-workflow path="{project-root}/_bmad/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml">
|
||||
<input name="story_id">{story_id}</input>
|
||||
<input name="complexity_level">{complexity_level}</input>
|
||||
<input name="fresh_context">true</input>
|
||||
</invoke-workflow>
|
||||
```
|
||||
|
||||
**The multi-agent-review workflow will:**
|
||||
1. Create fresh context (new session, unbiased)
|
||||
2. Analyze changed files
|
||||
3. Select appropriate agents based on code changes
|
||||
4. Run parallel reviews from multiple perspectives
|
||||
5. Aggregate findings with severity ratings
|
||||
6. Return comprehensive review report
|
||||
|
||||
**After review completes:**
|
||||
- Review report saved to: `{sprint_artifacts}/review-{story_id}.md`
|
||||
- Proceed to step 8 (Review Analysis) to categorize findings
|
||||
|
||||
## MANDATORY EXECUTION RULES
|
||||
|
||||
|
|
@ -0,0 +1,371 @@
|
|||
---
|
||||
name: 'step-09-fix-issues'
|
||||
description: 'Fix MUST FIX and SHOULD FIX issues from review analysis'
|
||||
|
||||
# Path Definitions
|
||||
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline'
|
||||
|
||||
# File References
|
||||
thisStepFile: '{workflow_path}/steps/step-09-fix-issues.md'
|
||||
stateFile: '{state_file}'
|
||||
storyFile: '{story_file}'
|
||||
reviewAnalysis: '{sprint_artifacts}/review-analysis-{story_id}.md'
|
||||
|
||||
# Next step
|
||||
nextStep: '{workflow_path}/steps/step-10-complete.md'
|
||||
---
|
||||
|
||||
# Step 9: Fix Issues
|
||||
|
||||
**Goal:** Implement fixes for MUST FIX and SHOULD FIX items identified in review analysis. Skip rejected items (gold plating already documented).
|
||||
|
||||
## Principles
|
||||
|
||||
- **Fix real problems only**: MUST FIX and SHOULD FIX categories
|
||||
- **Skip rejected items**: Already documented why in step 8
|
||||
- **Verify each fix**: Run tests after each fix
|
||||
- **Commit incrementally**: One fix per commit for traceability
|
||||
|
||||
---
|
||||
|
||||
## Process
|
||||
|
||||
### 1. Load Review Analysis
|
||||
|
||||
```bash
|
||||
# Read review analysis from step 8
|
||||
review_analysis="{reviewAnalysis}"
|
||||
test -f "$review_analysis" || (echo "⚠️ No review analysis found - skipping fix step" && exit 0)
|
||||
```
|
||||
|
||||
Parse the analysis report to extract:
|
||||
- MUST FIX items (count: {must_fix_count})
|
||||
- SHOULD FIX items (count: {should_fix_count})
|
||||
- Rejected items (for reference - DO NOT fix these)
|
||||
|
||||
### 2. Fix MUST FIX Items (Critical - Blocking)
|
||||
|
||||
**These are MANDATORY fixes - cannot proceed without fixing.**
|
||||
|
||||
For each MUST FIX issue:
|
||||
|
||||
```
|
||||
🔴 Issue #{number}: {title}
|
||||
File: {file}:{line}
|
||||
Severity: CRITICAL
|
||||
Category: {category} (SECURITY | CORRECTNESS | etc.)
|
||||
|
||||
Problem:
|
||||
{description}
|
||||
|
||||
Fix Required:
|
||||
{recommendation}
|
||||
|
||||
Estimated Time: {estimate}
|
||||
```
|
||||
|
||||
**Fix Process:**
|
||||
1. Read the file at the specified location
|
||||
2. Understand the issue context
|
||||
3. Implement the recommended fix
|
||||
4. Add test if issue was caught by testing gap
|
||||
5. Run tests to verify fix works
|
||||
6. Commit the fix
|
||||
|
||||
```bash
|
||||
# Example fix commit
|
||||
git add {file}
|
||||
git commit -m "fix(story-{story_id}): {issue_title}
|
||||
|
||||
{category}: {brief_description}
|
||||
|
||||
- Issue: {problem_summary}
|
||||
- Fix: {fix_summary}
|
||||
- Testing: {test_verification}
|
||||
|
||||
Addresses review finding #{number} (MUST FIX)
|
||||
Related to story {story_id}"
|
||||
```
|
||||
|
||||
**Quality Check After Each Fix:**
|
||||
```bash
|
||||
# Verify fix doesn't break anything
|
||||
npm test
|
||||
|
||||
# If tests fail:
|
||||
# 1. Fix the test or the code
|
||||
# 2. Re-run tests
|
||||
# 3. Only commit when tests pass
|
||||
```
|
||||
|
||||
### 3. Fix SHOULD FIX Items (High Priority)
|
||||
|
||||
**These are important for code quality and team standards.**
|
||||
|
||||
For each SHOULD FIX issue:
|
||||
|
||||
```
|
||||
🟠 Issue #{number}: {title}
|
||||
File: {file}:{line}
|
||||
Severity: HIGH
|
||||
Category: {category} (STANDARDS | MAINTAINABILITY | etc.)
|
||||
|
||||
Problem:
|
||||
{description}
|
||||
|
||||
Fix Required:
|
||||
{recommendation}
|
||||
|
||||
Estimated Time: {estimate}
|
||||
```
|
||||
|
||||
Same fix process as MUST FIX items, but with SHOULD FIX label in commit.
|
||||
|
||||
### 4. Consider CONSIDER Items (If Time/Scope Permits)
|
||||
|
||||
For CONSIDER items, evaluate:
|
||||
|
||||
```
|
||||
🟡 Issue #{number}: {title}
|
||||
File: {file}:{line}
|
||||
Severity: MEDIUM
|
||||
|
||||
Scope Check:
|
||||
- Is this within story scope? {yes/no}
|
||||
- Time remaining in story? {estimate}
|
||||
- Would this improve maintainability? {yes/no}
|
||||
|
||||
Decision:
|
||||
[ ] FIX NOW - In scope and quick
|
||||
[ ] CREATE TECH DEBT TICKET - Out of scope
|
||||
[ ] SKIP - Not worth the effort
|
||||
```
|
||||
|
||||
If fixing:
|
||||
- Same process as SHOULD FIX
|
||||
- Label as "refactor" or "improve" instead of "fix"
|
||||
|
||||
If creating tech debt ticket:
|
||||
```markdown
|
||||
# Tech Debt: {title}
|
||||
|
||||
**Source:** Code review finding from story {story_id}
|
||||
**Priority:** Medium
|
||||
**Estimated Effort:** {estimate}
|
||||
|
||||
**Description:**
|
||||
{issue_description}
|
||||
|
||||
**Recommendation:**
|
||||
{recommendation}
|
||||
|
||||
**Why Deferred:**
|
||||
{reason} (e.g., out of scope, time constraints, etc.)
|
||||
```
|
||||
|
||||
### 5. Skip REJECTED Items
|
||||
|
||||
**DO NOT fix rejected items.**
|
||||
|
||||
Display confirmation:
|
||||
```
|
||||
⚪ REJECTED ITEMS (Skipped):
|
||||
Total: {rejected_count}
|
||||
|
||||
These findings were analyzed and rejected in step 8:
|
||||
- #{number}: {title} - {rejection_reason}
|
||||
- #{number}: {title} - {rejection_reason}
|
||||
|
||||
✅ Correctly skipped (documented as gold plating/false positives)
|
||||
```
|
||||
|
||||
### 6. Skip OPTIONAL Items (Tech Debt Backlog)
|
||||
|
||||
For OPTIONAL items:
|
||||
- Create tech debt tickets (if not already created)
|
||||
- Do NOT implement now
|
||||
- Add to project backlog
|
||||
|
||||
### 7. Verify All Fixes Work Together
|
||||
|
||||
After all fixes applied, run complete quality check:
|
||||
|
||||
```bash
|
||||
echo "🔍 Verifying all fixes together..."
|
||||
|
||||
# Run full test suite
|
||||
npm test
|
||||
|
||||
# Run type checker
|
||||
npx tsc --noEmit
|
||||
|
||||
# Run linter
|
||||
npm run lint
|
||||
|
||||
# Check test coverage
|
||||
npm run test:coverage
|
||||
```
|
||||
|
||||
**If any check fails:**
|
||||
```
|
||||
❌ Quality checks failed after fixes!
|
||||
|
||||
This means fixes introduced new issues.
|
||||
|
||||
Action required:
|
||||
1. Identify which fix broke which test
|
||||
2. Fix the issue
|
||||
3. Re-run quality checks
|
||||
4. Repeat until all checks pass
|
||||
|
||||
DO NOT PROCEED until all quality checks pass.
|
||||
```
|
||||
|
||||
### 8. Summary Report
|
||||
|
||||
```markdown
|
||||
# Fix Summary: Story {story_id}
|
||||
|
||||
## Issues Addressed
|
||||
|
||||
### 🔴 MUST FIX: {must_fix_count} issues
|
||||
- [x] Issue #1: {title} - FIXED ✅
|
||||
- [x] Issue #2: {title} - FIXED ✅
|
||||
|
||||
### 🟠 SHOULD FIX: {should_fix_count} issues
|
||||
- [x] Issue #3: {title} - FIXED ✅
|
||||
- [x] Issue #4: {title} - FIXED ✅
|
||||
|
||||
### 🟡 CONSIDER: {consider_fixed_count}/{consider_count} issues
|
||||
- [x] Issue #5: {title} - FIXED ✅
|
||||
- [ ] Issue #6: {title} - Tech debt ticket created
|
||||
|
||||
### ⚪ REJECTED: {rejected_count} items
|
||||
- Correctly skipped (documented in review analysis)
|
||||
|
||||
### 🔵 OPTIONAL: {optional_count} items
|
||||
- Tech debt tickets created
|
||||
- Added to backlog
|
||||
|
||||
## Commits Made
|
||||
|
||||
Total commits: {commit_count}
|
||||
- MUST FIX commits: {must_fix_commits}
|
||||
- SHOULD FIX commits: {should_fix_commits}
|
||||
- Other commits: {other_commits}
|
||||
|
||||
## Final Quality Check
|
||||
|
||||
✅ All tests passing: {test_count} tests
|
||||
✅ Type check: No errors
|
||||
✅ Linter: No violations
|
||||
✅ Coverage: {coverage}%
|
||||
|
||||
## Time Spent
|
||||
|
||||
Estimated: {estimated_time}
|
||||
Actual: {actual_time}
|
||||
Efficiency: {efficiency_percentage}%
|
||||
```
|
||||
|
||||
### 9. Update State
|
||||
|
||||
```yaml
|
||||
# Update {stateFile}
|
||||
current_step: 9
|
||||
issues_fixed:
|
||||
must_fix: {must_fix_count}
|
||||
should_fix: {should_fix_count}
|
||||
consider: {consider_fixed_count}
|
||||
rejected: {rejected_count} (skipped - documented)
|
||||
optional: {optional_count} (tech debt created)
|
||||
fixes_verified: true
|
||||
all_quality_checks_passed: true
|
||||
ready_for_completion: true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quality Gates
|
||||
|
||||
**BLOCKING:** Cannot proceed to step 10 until:
|
||||
|
||||
✅ **All MUST FIX issues resolved**
|
||||
✅ **All SHOULD FIX issues resolved**
|
||||
✅ **All tests passing**
|
||||
✅ **Type check passing**
|
||||
✅ **Linter passing**
|
||||
✅ **Coverage maintained or improved**
|
||||
|
||||
If any gate fails:
|
||||
1. Fix the issue
|
||||
2. Re-run quality checks
|
||||
3. Repeat until ALL PASS
|
||||
4. THEN proceed to next step
|
||||
|
||||
---
|
||||
|
||||
## Skip Conditions
|
||||
|
||||
This step can be skipped only if:
|
||||
- Review analysis (step 8) found zero issues requiring fixes
|
||||
- All findings were REJECTED or OPTIONAL
|
||||
|
||||
Display when skipping:
|
||||
```
|
||||
✅ No fixes required!
|
||||
|
||||
Review analysis found no critical or high-priority issues.
|
||||
All findings were either rejected as gold plating or marked as optional tech debt.
|
||||
|
||||
Proceeding to completion...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Error Handling
|
||||
|
||||
**If a fix causes test failures:**
|
||||
```
|
||||
⚠️ Fix introduced regression!
|
||||
|
||||
Test failures after applying fix for: {issue_title}
|
||||
|
||||
Failed tests:
|
||||
- {test_name_1}
|
||||
- {test_name_2}
|
||||
|
||||
Action:
|
||||
1. Review the fix - did it break existing functionality?
|
||||
2. Either fix the implementation or update the tests
|
||||
3. Re-run tests
|
||||
4. Only proceed when tests pass
|
||||
```
|
||||
|
||||
**If stuck on a fix:**
|
||||
```
|
||||
⚠️ Fix is more complex than estimated
|
||||
|
||||
Issue: {issue_title}
|
||||
Estimated: {estimate}
|
||||
Actual time spent: {actual} (exceeded estimate)
|
||||
|
||||
Options:
|
||||
[C] Continue - Keep working on this fix
|
||||
[D] Defer - Create tech debt ticket and continue
|
||||
[H] Help - Request human intervention
|
||||
|
||||
If deferring:
|
||||
- Document current progress
|
||||
- Create detailed tech debt ticket
|
||||
- Note blocking issues
|
||||
- Continue with other fixes
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Next Step
|
||||
|
||||
Proceed to **Step 10: Complete + Update Status** ({nextStep})
|
||||
|
||||
All issues fixed, all quality checks passed. Ready to mark story as done!
|
||||
|
|
@ -1,19 +1,21 @@
|
|||
---
|
||||
name: 'step-06-complete'
|
||||
description: 'Commit and push story changes with targeted file list'
|
||||
name: 'step-10-complete'
|
||||
description: 'Complete story with MANDATORY sprint-status.yaml update and verification'
|
||||
|
||||
# Path Definitions
|
||||
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline'
|
||||
|
||||
# File References
|
||||
thisStepFile: '{workflow_path}/steps/step-06-complete.md'
|
||||
nextStepFile: '{workflow_path}/steps/step-07-summary.md'
|
||||
thisStepFile: '{workflow_path}/steps/step-10-complete.md'
|
||||
nextStepFile: '{workflow_path}/steps/step-11-summary.md'
|
||||
stateFile: '{state_file}'
|
||||
sprint_status: '{sprint_artifacts}/sprint-status.yaml'
|
||||
|
||||
# Role Switch
|
||||
role: sm
|
||||
---
|
||||
|
||||
# Step 6: Complete Story
|
||||
# Step 10: Complete Story (v1.5.0: Mandatory Status Update)
|
||||
|
||||
## ROLE SWITCH
|
||||
|
||||
|
|
@ -23,13 +25,15 @@ You are now completing the story and preparing changes for git commit.
|
|||
|
||||
## STEP GOAL
|
||||
|
||||
Complete the story with safety checks:
|
||||
Complete the story with safety checks and MANDATORY status updates:
|
||||
1. Extract file list from story
|
||||
2. Stage only story-related files
|
||||
3. Generate commit message
|
||||
4. Create commit
|
||||
5. Push to remote (if configured)
|
||||
6. Update story status
|
||||
6. Update story file status to "done"
|
||||
7. **UPDATE sprint-status.yaml (MANDATORY - NO EXCEPTIONS)**
|
||||
8. **VERIFY sprint-status.yaml update persisted (CRITICAL)**
|
||||
|
||||
## MANDATORY EXECUTION RULES
|
||||
|
||||
|
|
@ -200,13 +204,65 @@ git push
|
|||
You can push manually when ready
|
||||
```
|
||||
|
||||
### 8. Update Story Status
|
||||
### 8. Update Story Status (File + Sprint-Status)
|
||||
|
||||
**CRITICAL: Two-location update with verification**
|
||||
|
||||
#### 8.1: Update Story File
|
||||
|
||||
Update story file frontmatter:
|
||||
```yaml
|
||||
status: review # Ready for human review
|
||||
status: done # Story completed (v1.5.0: changed from "review" to "done")
|
||||
completed_date: {date}
|
||||
```
|
||||
|
||||
#### 8.2: Update sprint-status.yaml (MANDATORY - NO EXCEPTIONS)
|
||||
|
||||
**This is CRITICAL and CANNOT be skipped.**
|
||||
|
||||
```bash
|
||||
# Read current sprint-status.yaml
|
||||
sprint_status_file="{sprint_artifacts}/sprint-status.yaml"
|
||||
story_key="{story_id}"
|
||||
|
||||
# Update development_status section
|
||||
# Change status from whatever it was to "done"
|
||||
|
||||
development_status:
|
||||
{story_id}: done # ✅ COMPLETED: {story_title}
|
||||
```
|
||||
|
||||
**Implementation:**
|
||||
```bash
|
||||
# Read current status
|
||||
current_status=$(grep "^\s*{story_id}:" "$sprint_status_file" | awk '{print $2}')
|
||||
|
||||
# Update to done
|
||||
sed -i'' "s/^\s*{story_id}:.*/ {story_id}: done # ✅ COMPLETED: {story_title}/" "$sprint_status_file"
|
||||
|
||||
echo "✅ Updated sprint-status.yaml: {story_id} → done"
|
||||
```
|
||||
|
||||
#### 8.3: Verify Update Persisted (CRITICAL)
|
||||
|
||||
```bash
|
||||
# Re-read sprint-status.yaml to verify change
|
||||
verification=$(grep "^\s*{story_id}:" "$sprint_status_file" | awk '{print $2}')
|
||||
|
||||
if [ "$verification" != "done" ]; then
|
||||
echo "❌ CRITICAL: sprint-status.yaml update FAILED!"
|
||||
echo "Expected: done"
|
||||
echo "Got: $verification"
|
||||
echo ""
|
||||
echo "HALTING pipeline - status update is MANDATORY"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ Verified: sprint-status.yaml correctly updated"
|
||||
```
|
||||
|
||||
**NO EXCEPTIONS:** If verification fails, pipeline MUST HALT.
|
||||
|
||||
### 9. Update Pipeline State
|
||||
|
||||
Update state file:
|
||||
|
|
@ -242,11 +298,15 @@ Ready for Summary Generation
|
|||
|
||||
## QUALITY GATE
|
||||
|
||||
Before proceeding:
|
||||
Before proceeding (BLOCKING - ALL must pass):
|
||||
- [ ] Targeted files staged (from File List)
|
||||
- [ ] Commit message generated
|
||||
- [ ] Commit created successfully
|
||||
- [ ] Story status updated to "review"
|
||||
- [ ] Story file status updated to "done"
|
||||
- [ ] **sprint-status.yaml updated to "done" (MANDATORY)**
|
||||
- [ ] **sprint-status.yaml update VERIFIED (CRITICAL)**
|
||||
|
||||
**If ANY check fails, pipeline MUST HALT.**
|
||||
|
||||
## CRITICAL STEP COMPLETION
|
||||
|
||||
|
|
@ -1,18 +1,21 @@
|
|||
---
|
||||
name: 'step-07-summary'
|
||||
description: 'Generate audit trail and pipeline summary'
|
||||
name: 'step-11-summary'
|
||||
description: 'Generate comprehensive audit trail and pipeline summary'
|
||||
|
||||
# Path Definitions
|
||||
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline'
|
||||
|
||||
# File References
|
||||
thisStepFile: '{workflow_path}/steps/step-07-summary.md'
|
||||
thisStepFile: '{workflow_path}/steps/step-11-summary.md'
|
||||
stateFile: '{state_file}'
|
||||
storyFile: '{story_file}'
|
||||
auditTrail: '{audit_trail}'
|
||||
|
||||
# Role
|
||||
role: null
|
||||
---
|
||||
|
||||
# Step 7: Pipeline Summary
|
||||
# Step 11: Pipeline Summary
|
||||
|
||||
## STEP GOAL
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
name: super-dev-pipeline
|
||||
description: "Step-file architecture with complexity-based routing, smart batching, and auto-story-creation. Micro stories get lightweight path, standard/complex get full quality gates."
|
||||
description: "Complete a-k workflow: test-first development, smart gap analysis, quality gates, intelligent multi-agent review, and mandatory status updates. Risk-based complexity routing with variable agent counts."
|
||||
author: "BMad"
|
||||
version: "1.4.0" # Added auto-create story via /create-story-with-gap-analysis when story missing or incomplete
|
||||
version: "1.5.0" # Complete a-k workflow with TDD, quality gates, multi-agent review, and mandatory sprint-status updates
|
||||
|
||||
# Critical variables from config
|
||||
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
||||
|
|
@ -34,17 +34,25 @@ auto_create_story:
|
|||
# Controls which pipeline steps to execute
|
||||
complexity_level: "standard" # micro | standard | complex
|
||||
|
||||
# Complexity-based step skipping (NEW v1.2.0)
|
||||
# Risk-based complexity routing (UPDATED v1.5.0)
|
||||
# Complexity determined by RISK level, not task count
|
||||
# Risk keywords: auth, security, payment, file handling, architecture changes
|
||||
complexity_routing:
|
||||
micro:
|
||||
skip_steps: [2, 5] # Skip pre-gap analysis and code review
|
||||
description: "Lightweight path for simple stories (≤3 tasks, low risk)"
|
||||
skip_steps: [3, 7, 8, 9] # Skip write-tests, code-review, review-analysis, fix-issues
|
||||
description: "Lightweight path for low-risk stories (UI tweaks, text, simple CRUD)"
|
||||
multi_agent_count: 2
|
||||
examples: ["UI tweaks", "text changes", "simple CRUD", "documentation"]
|
||||
standard:
|
||||
skip_steps: [] # Full pipeline
|
||||
description: "Normal path with all quality gates"
|
||||
description: "Balanced path for medium-risk stories (APIs, business logic)"
|
||||
multi_agent_count: 4
|
||||
examples: ["API endpoints", "business logic", "data validation"]
|
||||
complex:
|
||||
skip_steps: [] # Full pipeline + warnings
|
||||
description: "Enhanced path for high-risk stories"
|
||||
skip_steps: [] # Full pipeline + comprehensive review
|
||||
description: "Comprehensive path for high-risk stories (auth, payments, security)"
|
||||
multi_agent_count: 6
|
||||
examples: ["auth/security", "payments", "file handling", "architecture changes"]
|
||||
warn_before_start: true
|
||||
suggest_split: true
|
||||
|
||||
|
|
@ -111,63 +119,106 @@ agents:
|
|||
dev:
|
||||
name: "Developer"
|
||||
persona: "{project-root}/_bmad/bmm/agents/dev.md"
|
||||
description: "Pre-gap, implementation, post-validation, code review"
|
||||
used_in_steps: [2, 3, 4, 5]
|
||||
description: "Gap analysis, write tests, implementation, validation, review, fixes"
|
||||
used_in_steps: [2, 3, 4, 5, 6, 7, 8, 9]
|
||||
sm:
|
||||
name: "Scrum Master"
|
||||
persona: "{project-root}/_bmad/bmm/agents/sm.md"
|
||||
description: "Story completion and status"
|
||||
used_in_steps: [6]
|
||||
description: "Story completion, status updates, sprint-status.yaml management"
|
||||
used_in_steps: [10]
|
||||
|
||||
# Step file definitions
|
||||
# Step file definitions (NEW v1.5.0: 11-step a-k workflow)
|
||||
steps:
|
||||
- step: 1
|
||||
file: "{steps_path}/step-01-init.md"
|
||||
name: "Initialize"
|
||||
description: "Load story context and detect development mode"
|
||||
name: "Init + Validate Story"
|
||||
description: "Load, validate, auto-create if needed (a-c)"
|
||||
agent: null
|
||||
quality_gate: false
|
||||
auto_create_story: true
|
||||
|
||||
- step: 2
|
||||
file: "{steps_path}/step-02-pre-gap-analysis.md"
|
||||
name: "Pre-Gap Analysis"
|
||||
description: "Validate tasks against codebase (critical for brownfield)"
|
||||
file: "{steps_path}/step-02-smart-gap-analysis.md"
|
||||
name: "Smart Gap Analysis"
|
||||
description: "Gap analysis (skip if just created story) (d)"
|
||||
agent: dev
|
||||
quality_gate: true
|
||||
skip_if_story_just_created: true
|
||||
|
||||
- step: 3
|
||||
file: "{steps_path}/step-03-implement.md"
|
||||
name: "Implement"
|
||||
description: "Adaptive implementation (TDD for new, refactor for existing)"
|
||||
file: "{steps_path}/step-03-write-tests.md"
|
||||
name: "Write Tests (TDD)"
|
||||
description: "Write tests before implementation (e)"
|
||||
agent: dev
|
||||
quality_gate: true
|
||||
quality_gate: false
|
||||
test_driven: true
|
||||
|
||||
- step: 4
|
||||
file: "{steps_path}/step-04-post-validation.md"
|
||||
name: "Post-Validation"
|
||||
description: "Verify completed tasks against codebase reality"
|
||||
file: "{steps_path}/step-04-implement.md"
|
||||
name: "Implement"
|
||||
description: "Run dev-story implementation (f)"
|
||||
agent: dev
|
||||
quality_gate: true
|
||||
iterative: true # May re-invoke step 3 if gaps found
|
||||
|
||||
- step: 5
|
||||
file: "{steps_path}/step-05-code-review.md"
|
||||
file: "{steps_path}/step-05-post-validation.md"
|
||||
name: "Post-Validation"
|
||||
description: "Verify work actually implemented (g)"
|
||||
agent: dev
|
||||
quality_gate: true
|
||||
iterative: true
|
||||
|
||||
- step: 6
|
||||
file: "{steps_path}/step-06-run-quality-checks.md"
|
||||
name: "Quality Checks"
|
||||
description: "Tests, type check, linter - fix all (h)"
|
||||
agent: dev
|
||||
quality_gate: true
|
||||
blocking: true
|
||||
required_checks:
|
||||
- tests_passing
|
||||
- type_check_passing
|
||||
- lint_passing
|
||||
- coverage_threshold
|
||||
|
||||
- step: 7
|
||||
file: "{steps_path}/step-07-code-review.md"
|
||||
name: "Code Review"
|
||||
description: "Adversarial code review finding 3-10 issues"
|
||||
description: "Multi-agent review with fresh context (i)"
|
||||
agent: dev
|
||||
quality_gate: true
|
||||
requires_fresh_context: true
|
||||
multi_agent_review: true
|
||||
variable_agent_count: true
|
||||
|
||||
- step: 8
|
||||
file: "{steps_path}/step-08-review-analysis.md"
|
||||
name: "Review Analysis"
|
||||
description: "Analyze findings - reject gold plating (j)"
|
||||
agent: dev
|
||||
quality_gate: false
|
||||
critical_thinking: true
|
||||
|
||||
- step: 9
|
||||
file: "{steps_path}/step-09-fix-issues.md"
|
||||
name: "Fix Issues"
|
||||
description: "Implement MUST FIX and SHOULD FIX items"
|
||||
agent: dev
|
||||
quality_gate: true
|
||||
|
||||
- step: 6
|
||||
file: "{steps_path}/step-06-complete.md"
|
||||
name: "Complete"
|
||||
description: "Commit and push changes"
|
||||
- step: 10
|
||||
file: "{steps_path}/step-10-complete.md"
|
||||
name: "Complete + Update Status"
|
||||
description: "Mark done, update sprint-status.yaml (k)"
|
||||
agent: sm
|
||||
quality_gate: false
|
||||
quality_gate: true
|
||||
mandatory_sprint_status_update: true
|
||||
verify_status_update: true
|
||||
|
||||
- step: 7
|
||||
file: "{steps_path}/step-07-summary.md"
|
||||
- step: 11
|
||||
file: "{steps_path}/step-11-summary.md"
|
||||
name: "Summary"
|
||||
description: "Generate audit trail"
|
||||
description: "Generate comprehensive audit trail"
|
||||
agent: null
|
||||
quality_gate: false
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue