refactor: remove autonomous-epic in favor of batch-super-dev
- Remove autonomous-epic workflow from BMM and BMGD modules - Remove agent menu entries for autonomous-epic - Update workflow references to use batch-super-dev - Add README-changes.md documenting fork customizations - Remove outdated SPRINT-STATUS-SYNC-GUIDE.md batch-super-dev is the superior approach with proactive story validation, auto-creation of missing stories, and smart reconciliation.
This commit is contained in:
parent
9df7939225
commit
7c1051b017
|
|
@ -0,0 +1,284 @@
|
||||||
|
# Fork Changes: @jonahschulte/bmad-method
|
||||||
|
|
||||||
|
This document describes the customizations and enhancements in this fork compared to the [upstream BMAD-METHOD repository](https://github.com/bmad-code-org/BMAD-METHOD).
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This fork extends the official BMAD Method with **production automation workflows** focused on:
|
||||||
|
|
||||||
|
- **Quality assurance automation** - Multi-stage validation pipelines
|
||||||
|
- **Token efficiency** - 60-70% reduction in token usage per story
|
||||||
|
- **Autonomous processing** - Unattended epic completion
|
||||||
|
- **Anti-vibe-coding enforcement** - Mandatory gap analysis and code review
|
||||||
|
|
||||||
|
**Stats:** ~26,000+ lines of additions across 122 files
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Key Features Added
|
||||||
|
|
||||||
|
### 1. Super-Dev Pipeline (`/super-dev-pipeline`)
|
||||||
|
|
||||||
|
A comprehensive quality workflow that ensures stories are **truly complete** before marking done:
|
||||||
|
|
||||||
|
```
|
||||||
|
Pre-validation → Development → Post-validation → Code Review → Fixes → Done ✅
|
||||||
|
```
|
||||||
|
|
||||||
|
**What it solves:**
|
||||||
|
- Prevents premature task completion ("stupid-dev" syndrome)
|
||||||
|
- Catches partial implementations
|
||||||
|
- Finds missed edge cases automatically
|
||||||
|
- Runs adversarial code review before human review
|
||||||
|
|
||||||
|
**Location:** `src/modules/bmm/workflows/4-implementation/super-dev-pipeline/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. Story Pipeline v2.0 (`/story-pipeline`)
|
||||||
|
|
||||||
|
Single-session step-file architecture with **60-70% token savings**:
|
||||||
|
|
||||||
|
| Mode | Token Usage | Savings vs Legacy |
|
||||||
|
|------|-------------|-------------------|
|
||||||
|
| Interactive | ~25K | 65% |
|
||||||
|
| Batch (YOLO) | ~30K | 58% |
|
||||||
|
|
||||||
|
**How it works:**
|
||||||
|
- Replaces 6 separate Claude CLI calls with 1 session
|
||||||
|
- Just-in-time step loading
|
||||||
|
- Checkpoint/resume capability
|
||||||
|
- Role switching within session (SM → TEA → DEV → SM)
|
||||||
|
|
||||||
|
**Automated steps:**
|
||||||
|
1. Initialize & load context
|
||||||
|
2. Create story (SM role)
|
||||||
|
3. Validate story (adversarial - must find 3-10 issues)
|
||||||
|
4. ATDD test generation (TEA role)
|
||||||
|
5. Implementation (DEV role)
|
||||||
|
6. Code review (adversarial)
|
||||||
|
7. Complete & commit
|
||||||
|
8. Generate audit trail
|
||||||
|
|
||||||
|
**Location:** `src/modules/bmm/workflows/4-implementation/story-pipeline/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. Batch Super-Dev (`/batch-super-dev`) ⭐ Primary
|
||||||
|
|
||||||
|
Interactive batch workflow for processing multiple stories with full quality gates:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/batch-super-dev
|
||||||
|
|
||||||
|
→ Select stories: 1-3,5,7 (or "all")
|
||||||
|
→ Validates story files (creates missing, regenerates invalid)
|
||||||
|
→ Processes each with super-dev-pipeline
|
||||||
|
→ Reconciles story status after each
|
||||||
|
→ All stories complete! ✅
|
||||||
|
```
|
||||||
|
|
||||||
|
**Features (v1.2.0):**
|
||||||
|
- **Smart Story Validation** - Checks 12 required BMAD sections
|
||||||
|
- **Auto-Creation** - Creates missing story files with codebase gap analysis
|
||||||
|
- **Auto-Regeneration** - Regenerates invalid/incomplete stories
|
||||||
|
- **Sequential or Parallel** execution modes
|
||||||
|
- **Story Reconciliation** - Verifies checkboxes match implementation
|
||||||
|
- **Epic filtering** - Process only specific epic's stories
|
||||||
|
|
||||||
|
**Location:** `src/modules/bmm/workflows/4-implementation/batch-super-dev/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. Gap Analysis (`/gap-analysis`)
|
||||||
|
|
||||||
|
Dev-time codebase validation that solves the **batch planning staleness problem**:
|
||||||
|
|
||||||
|
**The Problem:** Stories planned days ago become stale as the codebase evolves.
|
||||||
|
|
||||||
|
**The Solution:** Mandatory gap analysis before development:
|
||||||
|
1. Scans current codebase
|
||||||
|
2. Validates DRAFT tasks against reality
|
||||||
|
3. Proposes refinements (add/modify/remove tasks)
|
||||||
|
4. User approves with 6 options: Y/A/n/e/s/r
|
||||||
|
|
||||||
|
**Location:** `src/modules/bmm/workflows/4-implementation/gap-analysis/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. Push-All Workflow (`/push-all`)
|
||||||
|
|
||||||
|
Safe automated git operations with comprehensive safety checks:
|
||||||
|
|
||||||
|
- Secret detection (API keys, credentials)
|
||||||
|
- Large file warnings
|
||||||
|
- Build artifact detection
|
||||||
|
- Smart commit message generation
|
||||||
|
- Auto-push with error handling
|
||||||
|
|
||||||
|
**Location:** `src/modules/bmm/workflows/4-implementation/push-all/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 7. Story Validation System
|
||||||
|
|
||||||
|
Multi-level story validation with LLM-powered verification:
|
||||||
|
|
||||||
|
| Workflow | Purpose |
|
||||||
|
|----------|---------|
|
||||||
|
| `/validate-story` | Single story validation |
|
||||||
|
| `/validate-story-deep` | Comprehensive deep validation |
|
||||||
|
| `/validate-all-stories` | Batch validation for epic |
|
||||||
|
| `/validate-all-stories-deep` | Deep validation for all stories |
|
||||||
|
| `/validate-epic-status` | Epic status reconciliation |
|
||||||
|
| `/validate-all-epics` | Full sprint validation |
|
||||||
|
|
||||||
|
**Location:** `src/modules/bmm/workflows/4-implementation/validate-*/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 8. Sprint Status Management Scripts
|
||||||
|
|
||||||
|
Python/TypeScript utilities for sprint tracking:
|
||||||
|
|
||||||
|
| Script | Purpose |
|
||||||
|
|--------|---------|
|
||||||
|
| `sprint-status-updater.py` | Update story statuses across epics |
|
||||||
|
| `task-verification-engine.py` | LLM-powered task completion verification |
|
||||||
|
| `llm-task-verifier.py` | Haiku-based task validation |
|
||||||
|
| `validation-progress-tracker.py` | Track validation progress |
|
||||||
|
| `add-status-fields.py` | Add status fields to story files |
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Bedrock/Claude API clients with rate limiting
|
||||||
|
- File utilities for story parsing
|
||||||
|
- Resumable validation runs
|
||||||
|
|
||||||
|
**Location:** `scripts/lib/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 9. BMAD Guide Skill
|
||||||
|
|
||||||
|
Automatic Claude Code skill for BMAD navigation:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Auto-installed with BMAD
|
||||||
|
# Provides workflow selection guidance
|
||||||
|
```
|
||||||
|
|
||||||
|
**What it does:**
|
||||||
|
- Phase detection (where am I?)
|
||||||
|
- Project level routing
|
||||||
|
- Workflow decision tree
|
||||||
|
- Critical rules enforcement
|
||||||
|
|
||||||
|
**Location:** `resources/skills/bmad-guide.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 10. Claude Code Commands
|
||||||
|
|
||||||
|
Pre-configured Claude CLI commands:
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `batch-super-dev` | Run batch super-dev pipeline |
|
||||||
|
| `story-pipeline` | Execute story pipeline |
|
||||||
|
| `super-dev-pipeline` | Run super-dev with quality gates |
|
||||||
|
| `validate-epic-status` | Validate epic status |
|
||||||
|
| `validate-all-epics` | Validate all epics |
|
||||||
|
|
||||||
|
**Location:** `.claude-commands/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Package Changes
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "@jonahschulte/bmad-method",
|
||||||
|
"description": "...Enhanced with super-dev-pipeline and smart batching"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
This fork is published to npm under the `@jonahschulte` scope for independent installation.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Modules Modified
|
||||||
|
|
||||||
|
### BMM (BMAD Main Method)
|
||||||
|
- Enhanced `dev.agent.yaml` with new workflow menu items
|
||||||
|
- Enhanced `sm.agent.yaml` with new workflow menu items
|
||||||
|
- Modified `create-story` workflow for requirements-focused planning
|
||||||
|
- Enhanced `dev-story` workflow with gap analysis integration
|
||||||
|
|
||||||
|
### BMGD (BMAD Game Dev)
|
||||||
|
- Added parallel workflows for game development context
|
||||||
|
- Enhanced `game-dev.agent.yaml` and `game-scrum-master.agent.yaml`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
This fork can be installed via:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install @jonahschulte/bmad-method
|
||||||
|
```
|
||||||
|
|
||||||
|
Or used directly by cloning this repository.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Documentation Added
|
||||||
|
|
||||||
|
| Document | Purpose |
|
||||||
|
|----------|---------|
|
||||||
|
| `docs/super-dev-mode.md` | Super-dev workflow guide |
|
||||||
|
| `docs/autonomous-epic-processing.md` | Auto-epic documentation |
|
||||||
|
| `docs/gap-analysis.md` | Gap analysis user guide |
|
||||||
|
| `docs/gap-analysis-migration.md` | Migration from legacy |
|
||||||
|
| `docs/workflows/SPRINT-STATUS-SYNC-GUIDE.md` | Sprint status management |
|
||||||
|
| `docs/HOW-TO-VALIDATE-SPRINT-STATUS.md` | Validation how-to |
|
||||||
|
| `FEATURE-SUMMARY.md` | Complete feature overview |
|
||||||
|
| `INTEGRATION-NOTES.md` | Integration documentation |
|
||||||
|
| `TESTING-GUIDE.md` | Testing procedures |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Compatibility
|
||||||
|
|
||||||
|
- **Backwards compatible** with upstream BMAD
|
||||||
|
- **No breaking changes** to existing workflows
|
||||||
|
- Users can opt-in to new features
|
||||||
|
- All schema validation passing
|
||||||
|
- All linting/formatting passing
|
||||||
|
- All tests passing
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Contributing Back
|
||||||
|
|
||||||
|
These features are candidates for upstream contribution:
|
||||||
|
|
||||||
|
1. **Gap Analysis** - Solves a real problem with batch planning
|
||||||
|
2. **Story Pipeline v2.0** - Significant token savings
|
||||||
|
3. **Super-Dev Mode** - Quality enforcement
|
||||||
|
|
||||||
|
See `PR-DESCRIPTION.md` and `PR-STORY-PIPELINE.md` for prepared PR descriptions.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Last Sync with Upstream
|
||||||
|
|
||||||
|
**Date:** 2026-01-07
|
||||||
|
**Upstream Commit:** `5c766577` (Add CNAME file)
|
||||||
|
**Merge Commit:** `9df79392`
|
||||||
|
|
||||||
|
To sync with upstream:
|
||||||
|
```bash
|
||||||
|
git fetch upstream
|
||||||
|
git merge upstream/main
|
||||||
|
```
|
||||||
|
|
@ -1,190 +0,0 @@
|
||||||
# Autonomous Epic Processing
|
|
||||||
|
|
||||||
## Concept
|
|
||||||
|
|
||||||
**Full-auto epic completion** - Create and develop all stories in an epic with zero human intervention.
|
|
||||||
|
|
||||||
```
|
|
||||||
/auto-epic epic-2
|
|
||||||
|
|
||||||
→ Creates story 2.1 → Super-dev → Done
|
|
||||||
→ Creates story 2.2 → Super-dev → Done
|
|
||||||
→ Creates story 2.3 → Super-dev → Done
|
|
||||||
...
|
|
||||||
→ Entire epic complete! ✅
|
|
||||||
```
|
|
||||||
|
|
||||||
## Workflow
|
|
||||||
|
|
||||||
```
|
|
||||||
┌──────────────────────────────────────┐
|
|
||||||
│ Auto-Epic Processor │
|
|
||||||
│ │
|
|
||||||
│ 1. Read epic definition │
|
|
||||||
│ 2. For each story in epic: │
|
|
||||||
│ ├─ create-story │
|
|
||||||
│ ├─ super-dev-story │
|
|
||||||
│ │ ├─ Pre gap analysis │
|
|
||||||
│ │ ├─ Development │
|
|
||||||
│ │ ├─ Post gap analysis │
|
|
||||||
│ │ ├─ Code review │
|
|
||||||
│ │ └─ Fix issues │
|
|
||||||
│ └─ Mark done │
|
|
||||||
│ 3. Epic retrospective │
|
|
||||||
│ 4. Report completion │
|
|
||||||
└──────────────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
## Use Cases
|
|
||||||
|
|
||||||
### 1. Overnight Processing
|
|
||||||
```bash
|
|
||||||
# Start before leaving office
|
|
||||||
/auto-epic epic-3
|
|
||||||
|
|
||||||
# Come back next morning
|
|
||||||
# → Epic 100% complete
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. CI/CD Integration
|
|
||||||
```bash
|
|
||||||
# In GitHub Actions
|
|
||||||
bmad auto-epic epic-2 --config production.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Batch Sprints
|
|
||||||
```bash
|
|
||||||
# Process multiple epics
|
|
||||||
/auto-epic epic-1,epic-2,epic-3
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# _bmad/bmm/config.yaml
|
|
||||||
|
|
||||||
autonomous_mode:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
# Fail behavior
|
|
||||||
halt_on_error: false # Continue even if story fails
|
|
||||||
max_retry_per_story: 3 # Retry failed stories
|
|
||||||
|
|
||||||
# Quality gates
|
|
||||||
require_super_dev: true # Use super-dev for all stories
|
|
||||||
require_100_percent: false # Require 100% test coverage
|
|
||||||
|
|
||||||
# Notification
|
|
||||||
notify_on_complete: true # Send notification when done
|
|
||||||
notify_webhook: "" # Slack/Discord webhook
|
|
||||||
```
|
|
||||||
|
|
||||||
## Safety
|
|
||||||
|
|
||||||
### Validation Before Start
|
|
||||||
|
|
||||||
```
|
|
||||||
Autonomous processing will:
|
|
||||||
- Create 15 stories
|
|
||||||
- Develop all automatically
|
|
||||||
- Take approximately 8 hours
|
|
||||||
- Commit all changes to: feature/epic-2-auto
|
|
||||||
|
|
||||||
Confirm? [Y/n]:
|
|
||||||
```
|
|
||||||
|
|
||||||
### Checkpoints
|
|
||||||
|
|
||||||
- Creates git branch for the epic
|
|
||||||
- Commits after each story
|
|
||||||
- Saves progress if interrupted
|
|
||||||
- Can resume from last completed story
|
|
||||||
|
|
||||||
### Rollback
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# If something goes wrong
|
|
||||||
/auto-epic rollback epic-2
|
|
||||||
|
|
||||||
# Restores to pre-processing state
|
|
||||||
```
|
|
||||||
|
|
||||||
## Example Output
|
|
||||||
|
|
||||||
```
|
|
||||||
🤖 AUTONOMOUS EPIC PROCESSING: Epic 2 - User Management
|
|
||||||
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Story 2.1: User Registration
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
✅ create-story complete
|
|
||||||
✅ Pre-gap analysis: 0 changes needed
|
|
||||||
✅ Development: 8 tasks completed
|
|
||||||
✅ Post-gap analysis: All verified
|
|
||||||
✅ Code review: 2 minor issues found
|
|
||||||
✅ Fixes applied
|
|
||||||
✅ Story 2.1 DONE
|
|
||||||
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Story 2.2: User Login
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
✅ create-story complete
|
|
||||||
✅ Pre-gap analysis: Reuse registration code
|
|
||||||
✅ Development: 6 tasks completed
|
|
||||||
✅ Post-gap analysis: All verified
|
|
||||||
✅ Code review: No issues
|
|
||||||
✅ Story 2.2 DONE
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
EPIC 2 COMPLETE! 🎉
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
Stories completed: 15/15
|
|
||||||
Total time: 7h 23m
|
|
||||||
Test coverage: 94%
|
|
||||||
Code review issues: 12 (all fixed)
|
|
||||||
|
|
||||||
Branch: feature/epic-2-auto
|
|
||||||
Ready to merge!
|
|
||||||
```
|
|
||||||
|
|
||||||
## Implementation Status
|
|
||||||
|
|
||||||
- ✅ **IMPLEMENTED** in BMAD v6.0.0-alpha.22+
|
|
||||||
- Available as: `/autonomous-epic` workflow
|
|
||||||
- Requires: Gap analysis and super-dev-story workflows
|
|
||||||
- Status: Ready for testing and feedback
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Load any BMAD agent (PM, Dev, SM)
|
|
||||||
/autonomous-epic
|
|
||||||
|
|
||||||
# Or specify epic number directly:
|
|
||||||
/autonomous-epic 2
|
|
||||||
```
|
|
||||||
|
|
||||||
See [autonomous-epic workflow README](../src/modules/bmm/workflows/4-implementation/autonomous-epic/README.md) for complete documentation.
|
|
||||||
|
|
||||||
## Real-World Usage
|
|
||||||
|
|
||||||
**This is production-ready but experimental.** We recommend:
|
|
||||||
1. Test with small epics first (3-5 stories)
|
|
||||||
2. Monitor token usage and quality
|
|
||||||
3. Review completion reports thoroughly
|
|
||||||
4. Provide feedback to improve the feature
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Found issues or have improvements?
|
|
||||||
|
|
||||||
See [CONTRIBUTING.md](../CONTRIBUTING.md)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**The future is NOW: Tell BMAD "Do Epic 4" and come back when it's done** ✨
|
|
||||||
|
|
@ -1,482 +0,0 @@
|
||||||
# Sprint Status Sync - Complete Guide
|
|
||||||
|
|
||||||
**Created:** 2026-01-02
|
|
||||||
**Purpose:** Prevent drift between story files and sprint-status.yaml
|
|
||||||
**Status:** PRODUCTION READY
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🚨 THE PROBLEM WE SOLVED
|
|
||||||
|
|
||||||
**Before Fix (2026-01-02):**
|
|
||||||
- 78% of story files (435/552) had NO `Status:` field
|
|
||||||
- 30+ completed stories not reflected in sprint-status.yaml
|
|
||||||
- Epic 19: 28 stories done, sprint-status said "in-progress"
|
|
||||||
- Epic 16d: 3 stories done, sprint-status said "backlog"
|
|
||||||
- Last verification: 32+ hours old
|
|
||||||
|
|
||||||
**Root Cause:**
|
|
||||||
- Autonomous workflows prioritized velocity over tracking
|
|
||||||
- Manual workflows didn't enforce status updates
|
|
||||||
- No automated sync mechanism
|
|
||||||
- sprint-status.yaml manually maintained
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ✅ THE SOLUTION (Full Workflow Fix)
|
|
||||||
|
|
||||||
### Component 1: Automated Sync Script
|
|
||||||
|
|
||||||
**Script:** `scripts/sync-sprint-status.sh`
|
|
||||||
**Purpose:** Scan story Status: fields → Update sprint-status.yaml
|
|
||||||
|
|
||||||
**Usage:**
|
|
||||||
```bash
|
|
||||||
# Update sprint-status.yaml
|
|
||||||
pnpm sync:sprint-status
|
|
||||||
|
|
||||||
# Preview changes (no modifications)
|
|
||||||
pnpm sync:sprint-status:dry-run
|
|
||||||
|
|
||||||
# Validate only (exit 1 if out of sync)
|
|
||||||
pnpm validate:sprint-status
|
|
||||||
```
|
|
||||||
|
|
||||||
**Features:**
|
|
||||||
- Only updates stories WITH explicit Status: fields
|
|
||||||
- Skips stories without Status: (trusts sprint-status.yaml)
|
|
||||||
- Creates automatic backups (.sprint-status-backups/)
|
|
||||||
- Preserves all comments and structure
|
|
||||||
- Returns clear pass/fail exit codes
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Component 2: Workflow Enforcement
|
|
||||||
|
|
||||||
**Modified Files:**
|
|
||||||
1. `_bmad/bmm/workflows/4-implementation/dev-story/instructions.xml`
|
|
||||||
2. `_bmad/bmm/workflows/4-implementation/autonomous-epic/instructions.xml`
|
|
||||||
|
|
||||||
**Changes:**
|
|
||||||
- ✅ HALT if story not found in sprint-status.yaml (was: warning)
|
|
||||||
- ✅ Verify sprint-status.yaml update persisted (new validation)
|
|
||||||
- ✅ Update both story Status: field AND sprint-status.yaml
|
|
||||||
- ✅ Fail loudly if either update fails
|
|
||||||
|
|
||||||
**Before:** Workflows logged warnings, continued anyway
|
|
||||||
**After:** Workflows HALT if tracking update fails
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Component 3: CI/CD Validation
|
|
||||||
|
|
||||||
**Workflow:** `.github/workflows/validate-sprint-status.yml`
|
|
||||||
**Trigger:** Every PR touching docs/sprint-artifacts/
|
|
||||||
|
|
||||||
**Checks:**
|
|
||||||
1. sprint-status.yaml exists
|
|
||||||
2. All changed story files have Status: fields
|
|
||||||
3. sprint-status.yaml is in sync (runs validation)
|
|
||||||
4. Blocks merge if validation fails
|
|
||||||
|
|
||||||
**How to fix CI failures:**
|
|
||||||
```bash
|
|
||||||
# See what's wrong
|
|
||||||
./scripts/sync-sprint-status.sh --dry-run
|
|
||||||
|
|
||||||
# Fix it
|
|
||||||
./scripts/sync-sprint-status.sh
|
|
||||||
|
|
||||||
# Commit
|
|
||||||
git add docs/sprint-artifacts/sprint-status.yaml
|
|
||||||
git commit -m "chore: sync sprint-status.yaml"
|
|
||||||
git push
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Component 4: pnpm Scripts
|
|
||||||
|
|
||||||
**Added to package.json:**
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"scripts": {
|
|
||||||
"sync:sprint-status": "./scripts/sync-sprint-status.sh",
|
|
||||||
"sync:sprint-status:dry-run": "./scripts/sync-sprint-status.sh --dry-run",
|
|
||||||
"validate:sprint-status": "./scripts/sync-sprint-status.sh --validate"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**When to run:**
|
|
||||||
- `pnpm sync:sprint-status` - After manually updating story Status: fields
|
|
||||||
- `pnpm validate:sprint-status` - Before committing changes
|
|
||||||
- Automatically in CI/CD - Validates on every PR
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎯 NEW WORKFLOW (How It Works Now)
|
|
||||||
|
|
||||||
### When Creating a Story
|
|
||||||
|
|
||||||
```
|
|
||||||
/create-story workflow
|
|
||||||
↓
|
|
||||||
1. Generate story file with Status: ready-for-dev
|
|
||||||
↓
|
|
||||||
2. Add entry to sprint-status.yaml with status "ready-for-dev"
|
|
||||||
↓
|
|
||||||
3. HALT if sprint-status.yaml update fails
|
|
||||||
↓
|
|
||||||
✅ Story file and sprint-status.yaml both updated
|
|
||||||
```
|
|
||||||
|
|
||||||
### When Implementing a Story
|
|
||||||
|
|
||||||
```
|
|
||||||
/dev-story workflow
|
|
||||||
↓
|
|
||||||
1. Load story, start work
|
|
||||||
↓
|
|
||||||
2. Mark tasks complete [x]
|
|
||||||
↓
|
|
||||||
3. Run tests, validate
|
|
||||||
↓
|
|
||||||
4. Update story Status: "in-progress" → "review"
|
|
||||||
↓
|
|
||||||
5. Update sprint-status.yaml: "in-progress" → "review"
|
|
||||||
↓
|
|
||||||
6. VERIFY sprint-status.yaml update persisted
|
|
||||||
↓
|
|
||||||
7. HALT if verification fails
|
|
||||||
↓
|
|
||||||
✅ Both updated and verified
|
|
||||||
```
|
|
||||||
|
|
||||||
### When Running Autonomous Epic
|
|
||||||
|
|
||||||
```
|
|
||||||
/autonomous-epic workflow
|
|
||||||
↓
|
|
||||||
For each story:
|
|
||||||
1. Run super-dev-pipeline
|
|
||||||
↓
|
|
||||||
2. Check all tasks complete
|
|
||||||
↓
|
|
||||||
3. Update story Status: "done"
|
|
||||||
↓
|
|
||||||
4. Update sprint-status.yaml entry to "done"
|
|
||||||
↓
|
|
||||||
5. Verify update persisted
|
|
||||||
↓
|
|
||||||
6. Log failure if verification fails (don't halt - continue)
|
|
||||||
↓
|
|
||||||
After all stories:
|
|
||||||
7. Mark epic "done" in sprint-status.yaml
|
|
||||||
↓
|
|
||||||
8. Verify epic status persisted
|
|
||||||
↓
|
|
||||||
✅ All stories and epic status updated
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🛡️ ENFORCEMENT MECHANISMS
|
|
||||||
|
|
||||||
### 1. Required Fields (Create-Story)
|
|
||||||
- **Enforcement:** Story MUST be added to sprint-status.yaml during creation
|
|
||||||
- **Validation:** Workflow HALTS if story not found after creation
|
|
||||||
- **Result:** No orphaned stories
|
|
||||||
|
|
||||||
### 2. Status Updates (Dev-Story)
|
|
||||||
- **Enforcement:** Both Status: field AND sprint-status.yaml MUST update
|
|
||||||
- **Validation:** Re-read sprint-status.yaml to verify update
|
|
||||||
- **Result:** No silent failures
|
|
||||||
|
|
||||||
### 3. Verification (Autonomous-Epic)
|
|
||||||
- **Enforcement:** Sprint-status.yaml updated after each story
|
|
||||||
- **Validation:** Verify update persisted, log failure if not
|
|
||||||
- **Result:** Tracking stays in sync even during autonomous runs
|
|
||||||
|
|
||||||
### 4. CI/CD Gates (GitHub Actions)
|
|
||||||
- **Enforcement:** PR merge blocked if validation fails
|
|
||||||
- **Validation:** Runs `pnpm validate:sprint-status` on every PR
|
|
||||||
- **Result:** Drift cannot be merged
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📋 MANUAL SYNC PROCEDURES
|
|
||||||
|
|
||||||
### If sprint-status.yaml Gets Out of Sync
|
|
||||||
|
|
||||||
**Scenario 1: Story Status: fields updated but sprint-status.yaml not synced**
|
|
||||||
```bash
|
|
||||||
# See what needs updating
|
|
||||||
pnpm sync:sprint-status:dry-run
|
|
||||||
|
|
||||||
# Apply updates
|
|
||||||
pnpm sync:sprint-status
|
|
||||||
|
|
||||||
# Verify
|
|
||||||
pnpm validate:sprint-status
|
|
||||||
|
|
||||||
# Commit
|
|
||||||
git add docs/sprint-artifacts/sprint-status.yaml
|
|
||||||
git commit -m "chore: sync sprint-status.yaml with story updates"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Scenario 2: sprint-status.yaml has truth, story files missing Status: fields**
|
|
||||||
```bash
|
|
||||||
# Create script to backfill Status: fields FROM sprint-status.yaml
|
|
||||||
./scripts/backfill-story-status-fields.sh # (To be created if needed)
|
|
||||||
|
|
||||||
# This would:
|
|
||||||
# 1. Read sprint-status.yaml
|
|
||||||
# 2. For each story entry, find the story file
|
|
||||||
# 3. Add/update Status: field to match sprint-status.yaml
|
|
||||||
# 4. Preserve all other content
|
|
||||||
```
|
|
||||||
|
|
||||||
**Scenario 3: Massive drift after autonomous work**
|
|
||||||
```bash
|
|
||||||
# Option A: Trust sprint-status.yaml (if it was manually verified)
|
|
||||||
# - Backfill story Status: fields from sprint-status.yaml
|
|
||||||
# - Don't run sync (sprint-status.yaml is source of truth)
|
|
||||||
|
|
||||||
# Option B: Trust story Status: fields (if recently updated)
|
|
||||||
# - Run sync to update sprint-status.yaml
|
|
||||||
pnpm sync:sprint-status
|
|
||||||
|
|
||||||
# Option C: Manual audit (when both are uncertain)
|
|
||||||
# - Review SPRINT-STATUS-AUDIT-2026-01-02.md
|
|
||||||
# - Check git commits for completion evidence
|
|
||||||
# - Manually correct both files
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🧪 TESTING
|
|
||||||
|
|
||||||
### Test 1: Validate Current State
|
|
||||||
```bash
|
|
||||||
pnpm validate:sprint-status
|
|
||||||
# Should exit 0 if in sync, exit 1 if discrepancies
|
|
||||||
```
|
|
||||||
|
|
||||||
### Test 2: Dry Run (No Changes)
|
|
||||||
```bash
|
|
||||||
pnpm sync:sprint-status:dry-run
|
|
||||||
# Shows what WOULD change without applying
|
|
||||||
```
|
|
||||||
|
|
||||||
### Test 3: Apply Sync
|
|
||||||
```bash
|
|
||||||
pnpm sync:sprint-status
|
|
||||||
# Updates sprint-status.yaml, creates backup
|
|
||||||
```
|
|
||||||
|
|
||||||
### Test 4: CI/CD Simulation
|
|
||||||
```bash
|
|
||||||
# Simulate PR validation
|
|
||||||
.github/workflows/validate-sprint-status.yml
|
|
||||||
# (Run via act or GitHub Actions)
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📊 METRICS & MONITORING
|
|
||||||
|
|
||||||
### How to Check Sprint Health
|
|
||||||
|
|
||||||
**Check 1: Discrepancy Count**
|
|
||||||
```bash
|
|
||||||
pnpm sync:sprint-status:dry-run 2>&1 | grep "discrepancies"
|
|
||||||
# Should show: "0 discrepancies" if healthy
|
|
||||||
```
|
|
||||||
|
|
||||||
**Check 2: Last Verification Timestamp**
|
|
||||||
```bash
|
|
||||||
head -5 docs/sprint-artifacts/sprint-status.yaml | grep last_verified
|
|
||||||
# Should be within last 24 hours
|
|
||||||
```
|
|
||||||
|
|
||||||
**Check 3: Stories Missing Status: Fields**
|
|
||||||
```bash
|
|
||||||
grep -L "^Status:" docs/sprint-artifacts/*.md | wc -l
|
|
||||||
# Should decrease over time as stories get Status: fields
|
|
||||||
```
|
|
||||||
|
|
||||||
### Alerts to Set Up (Future)
|
|
||||||
|
|
||||||
- ⚠️ If last_verified > 7 days old → Manual audit recommended
|
|
||||||
- ⚠️ If discrepancy count > 10 → Investigate why sync not running
|
|
||||||
- ⚠️ If stories without Status: > 50 → Backfill campaign needed
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎓 BEST PRACTICES
|
|
||||||
|
|
||||||
### For Story Creators
|
|
||||||
1. Always use `/create-story` workflow (adds to sprint-status.yaml automatically)
|
|
||||||
2. Never create story .md files manually
|
|
||||||
3. Always include Status: field in story template
|
|
||||||
|
|
||||||
### For Story Implementers
|
|
||||||
1. Use `/dev-story` workflow (updates both Status: and sprint-status.yaml)
|
|
||||||
2. If manually updating Status: field, run `pnpm sync:sprint-status` after
|
|
||||||
3. Before marking "done", verify sprint-status.yaml reflects your work
|
|
||||||
|
|
||||||
### For Autonomous Workflows
|
|
||||||
1. autonomous-epic workflow now includes sprint-status.yaml updates
|
|
||||||
2. Verifies updates persisted after each story
|
|
||||||
3. Logs failures but continues (doesn't halt entire epic for tracking issues)
|
|
||||||
|
|
||||||
### For Code Reviewers
|
|
||||||
1. Check that PR includes sprint-status.yaml update if stories changed
|
|
||||||
2. Verify CI/CD validation passes
|
|
||||||
3. If validation fails, request sync before approving
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔧 MAINTENANCE
|
|
||||||
|
|
||||||
### Weekly Tasks
|
|
||||||
- [ ] Review discrepancy count: `pnpm sync:sprint-status:dry-run`
|
|
||||||
- [ ] Run sync if needed: `pnpm sync:sprint-status`
|
|
||||||
- [ ] Check backup count: `ls -1 .sprint-status-backups/ | wc -l`
|
|
||||||
- [ ] Clean old backups (keep last 30 days)
|
|
||||||
|
|
||||||
### Monthly Tasks
|
|
||||||
- [ ] Full audit: Review SPRINT-STATUS-AUDIT template
|
|
||||||
- [ ] Backfill missing Status: fields (reduce count to <10)
|
|
||||||
- [ ] Verify all epics have correct status
|
|
||||||
- [ ] Update this guide based on learnings
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📝 FILE REFERENCE
|
|
||||||
|
|
||||||
**Core Files:**
|
|
||||||
- `docs/sprint-artifacts/sprint-status.yaml` - Single source of truth
|
|
||||||
- `scripts/sync-sprint-status.sh` - Bash wrapper script
|
|
||||||
- `scripts/lib/sprint-status-updater.py` - Python updater logic
|
|
||||||
|
|
||||||
**Workflow Files:**
|
|
||||||
- `_bmad/bmm/workflows/4-implementation/dev-story/instructions.xml`
|
|
||||||
- `_bmad/bmm/workflows/4-implementation/autonomous-epic/instructions.xml`
|
|
||||||
- `_bmad/bmm/workflows/4-implementation/create-story-with-gap-analysis/step-03-generate-story.md`
|
|
||||||
|
|
||||||
**CI/CD:**
|
|
||||||
- `.github/workflows/validate-sprint-status.yml`
|
|
||||||
|
|
||||||
**Documentation:**
|
|
||||||
- `SPRINT-STATUS-AUDIT-2026-01-02.md` - Initial audit findings
|
|
||||||
- `docs/workflows/SPRINT-STATUS-SYNC-GUIDE.md` - This file
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🐛 TROUBLESHOOTING
|
|
||||||
|
|
||||||
### Issue: "Story not found in sprint-status.yaml"
|
|
||||||
|
|
||||||
**Cause:** Story file created outside of /create-story workflow
|
|
||||||
**Fix:**
|
|
||||||
```bash
|
|
||||||
# Manually add to sprint-status.yaml under correct epic
|
|
||||||
vim docs/sprint-artifacts/sprint-status.yaml
|
|
||||||
# Add line: story-id: ready-for-dev
|
|
||||||
|
|
||||||
# Or re-run create-story workflow
|
|
||||||
/create-story
|
|
||||||
```
|
|
||||||
|
|
||||||
### Issue: "sprint-status.yaml update failed to persist"
|
|
||||||
|
|
||||||
**Cause:** File system permissions or concurrent writes
|
|
||||||
**Fix:**
|
|
||||||
```bash
|
|
||||||
# Check file permissions
|
|
||||||
ls -la docs/sprint-artifacts/sprint-status.yaml
|
|
||||||
|
|
||||||
# Check for file locks
|
|
||||||
lsof | grep sprint-status.yaml
|
|
||||||
|
|
||||||
# Manual update if needed
|
|
||||||
vim docs/sprint-artifacts/sprint-status.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
### Issue: "85 discrepancies found"
|
|
||||||
|
|
||||||
**Cause:** Story Status: fields not updated after completion
|
|
||||||
**Fix:**
|
|
||||||
```bash
|
|
||||||
# Review discrepancies
|
|
||||||
pnpm sync:sprint-status:dry-run
|
|
||||||
|
|
||||||
# Apply updates (will update sprint-status.yaml to match story files)
|
|
||||||
pnpm sync:sprint-status
|
|
||||||
|
|
||||||
# If story files are WRONG (Status: ready-for-dev but actually done):
|
|
||||||
# Manually update story Status: fields first
|
|
||||||
# Then run sync
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎯 SUCCESS CRITERIA
|
|
||||||
|
|
||||||
**System is working correctly when:**
|
|
||||||
- ✅ `pnpm validate:sprint-status` exits 0 (no discrepancies)
|
|
||||||
- ✅ Last verified timestamp < 24 hours old
|
|
||||||
- ✅ Stories with missing Status: fields < 10
|
|
||||||
- ✅ CI/CD validation passes on all PRs
|
|
||||||
- ✅ New stories automatically added to sprint-status.yaml
|
|
||||||
|
|
||||||
**System needs attention when:**
|
|
||||||
- ❌ Discrepancy count > 10
|
|
||||||
- ❌ Last verified > 7 days old
|
|
||||||
- ❌ CI/CD validation failing frequently
|
|
||||||
- ❌ Stories missing Status: fields > 50
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔄 MIGRATION CHECKLIST (One-Time)
|
|
||||||
|
|
||||||
If implementing this on an existing project:
|
|
||||||
|
|
||||||
- [x] Create scripts/sync-sprint-status.sh
|
|
||||||
- [x] Create scripts/lib/sprint-status-updater.py
|
|
||||||
- [x] Modify dev-story workflow (add enforcement)
|
|
||||||
- [x] Modify autonomous-epic workflow (add verification)
|
|
||||||
- [x] Add CI/CD validation workflow
|
|
||||||
- [x] Add pnpm scripts
|
|
||||||
- [x] Run initial sync: `pnpm sync:sprint-status`
|
|
||||||
- [ ] Backfill missing Status: fields (optional, gradual)
|
|
||||||
- [x] Document in this guide
|
|
||||||
- [ ] Train team on new workflow
|
|
||||||
- [ ] Monitor for 2 weeks, adjust as needed
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📈 EXPECTED OUTCOMES
|
|
||||||
|
|
||||||
**Immediate (Week 1):**
|
|
||||||
- sprint-status.yaml stays in sync
|
|
||||||
- New stories automatically tracked
|
|
||||||
- Autonomous work properly recorded
|
|
||||||
|
|
||||||
**Short-term (Month 1):**
|
|
||||||
- Discrepancy count approaches zero
|
|
||||||
- CI/CD catches drift before merge
|
|
||||||
- Team trusts sprint-status.yaml as source of truth
|
|
||||||
|
|
||||||
**Long-term (Month 3+):**
|
|
||||||
- Zero manual sprint-status.yaml updates needed
|
|
||||||
- Automated reporting reliable
|
|
||||||
- Velocity metrics accurate
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Last Updated:** 2026-01-02
|
|
||||||
**Status:** Active - Production Ready
|
|
||||||
**Maintained By:** Platform Team
|
|
||||||
|
|
@ -41,10 +41,6 @@ agent:
|
||||||
workflow: "{project-root}/_bmad/bmgd/workflows/4-production/gap-analysis/workflow.yaml"
|
workflow: "{project-root}/_bmad/bmgd/workflows/4-production/gap-analysis/workflow.yaml"
|
||||||
description: "[GA] Run Gap Analysis - audit story tasks against codebase without starting development"
|
description: "[GA] Run Gap Analysis - audit story tasks against codebase without starting development"
|
||||||
|
|
||||||
- trigger: AEP or fuzzy match on autonomous-epic
|
|
||||||
workflow: "{project-root}/_bmad/bmgd/workflows/4-production/autonomous-epic/workflow.yaml"
|
|
||||||
description: "[AEP] Autonomous Epic Processing - create and develop all stories in an epic automatically"
|
|
||||||
|
|
||||||
- trigger: PA or fuzzy match on push-all
|
- trigger: PA or fuzzy match on push-all
|
||||||
workflow: "{project-root}/_bmad/bmgd/workflows/4-production/push-all/workflow.yaml"
|
workflow: "{project-root}/_bmad/bmgd/workflows/4-production/push-all/workflow.yaml"
|
||||||
description: "[PA] Push-All - stage, commit, and push all changes with safety validation"
|
description: "[PA] Push-All - stage, commit, and push all changes with safety validation"
|
||||||
|
|
|
||||||
|
|
@ -45,10 +45,6 @@ agent:
|
||||||
workflow: "{project-root}/_bmad/bmgd/workflows/4-production/gap-analysis/workflow.yaml"
|
workflow: "{project-root}/_bmad/bmgd/workflows/4-production/gap-analysis/workflow.yaml"
|
||||||
description: "[GA] Run Gap Analysis - audit story tasks against codebase (useful for sprint health checks)"
|
description: "[GA] Run Gap Analysis - audit story tasks against codebase (useful for sprint health checks)"
|
||||||
|
|
||||||
- trigger: AEP or fuzzy match on autonomous-epic
|
|
||||||
workflow: "{project-root}/_bmad/bmgd/workflows/4-production/autonomous-epic/workflow.yaml"
|
|
||||||
description: "[AEP] Autonomous Epic Processing - create and develop all stories in an epic automatically"
|
|
||||||
|
|
||||||
- trigger: VS or fuzzy match on validate-story
|
- trigger: VS or fuzzy match on validate-story
|
||||||
validate-workflow: "{project-root}/_bmad/bmgd/workflows/4-production/create-story/workflow.yaml"
|
validate-workflow: "{project-root}/_bmad/bmgd/workflows/4-production/create-story/workflow.yaml"
|
||||||
description: "[VS] Validate Story Draft with Independent Review (Highly Recommended)"
|
description: "[VS] Validate Story Draft with Independent Review (Highly Recommended)"
|
||||||
|
|
|
||||||
|
|
@ -1,651 +0,0 @@
|
||||||
# Autonomous Epic Processing
|
|
||||||
|
|
||||||
**"Do Epic 4 for me" - Full automation of epic completion**
|
|
||||||
|
|
||||||
## What It Does
|
|
||||||
|
|
||||||
Autonomous epic processing combines just-in-time planning with automated development:
|
|
||||||
|
|
||||||
```
|
|
||||||
/autonomous-epic 2
|
|
||||||
|
|
||||||
→ Creates Story 2.1 → Develops with super-dev-story → Commits → Done ✅
|
|
||||||
→ Creates Story 2.2 → Develops with super-dev-story → Commits → Done ✅
|
|
||||||
→ Creates Story 2.3 → Develops with super-dev-story → Commits → Done ✅
|
|
||||||
...
|
|
||||||
→ Entire Epic 2 complete! 🎉
|
|
||||||
```
|
|
||||||
|
|
||||||
## How It Works
|
|
||||||
|
|
||||||
```
|
|
||||||
┌──────────────────────────────────────────────────┐
|
|
||||||
│ Autonomous Epic Processor │
|
|
||||||
│ │
|
|
||||||
│ For each story in epic (sequential): │
|
|
||||||
│ ┌─────────────────────────────────────────────┐ │
|
|
||||||
│ │ 1. create-story (just-in-time planning) │ │
|
|
||||||
│ │ ↓ │ │
|
|
||||||
│ │ 2. super-dev-story (or dev-story) │ │
|
|
||||||
│ │ ├─ Pre-dev gap analysis │ │
|
|
||||||
│ │ ├─ Development (TDD) │ │
|
|
||||||
│ │ ├─ Post-dev gap analysis (super-dev only) │ │
|
|
||||||
│ │ ├─ Code review (super-dev only) │ │
|
|
||||||
│ │ └─ Fix issues │ │
|
|
||||||
│ │ ↓ │ │
|
|
||||||
│ │ 3. Git commit │ │
|
|
||||||
│ │ ↓ │ │
|
|
||||||
│ │ 4. Save progress │ │
|
|
||||||
│ └─────────────────────────────────────────────┘ │
|
|
||||||
│ │
|
|
||||||
│ Epic completion report generated │
|
|
||||||
└──────────────────────────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
### Basic Usage
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Load any BMAD agent
|
|
||||||
/autonomous-epic
|
|
||||||
|
|
||||||
# Will prompt for epic number:
|
|
||||||
Enter epic number: 2
|
|
||||||
|
|
||||||
# Or provide directly:
|
|
||||||
/autonomous-epic epic-2
|
|
||||||
```
|
|
||||||
|
|
||||||
### With Defaults
|
|
||||||
|
|
||||||
```bash
|
|
||||||
/autonomous-epic 3
|
|
||||||
|
|
||||||
# Uses default settings:
|
|
||||||
# ✅ super-dev-story (comprehensive quality)
|
|
||||||
# ✅ Auto-accept gap analysis
|
|
||||||
# ✅ Create git commits
|
|
||||||
# ✅ Continue on errors
|
|
||||||
```
|
|
||||||
|
|
||||||
### With Custom Settings
|
|
||||||
|
|
||||||
```bash
|
|
||||||
/autonomous-epic 3
|
|
||||||
|
|
||||||
# When prompted:
|
|
||||||
[C] Custom settings
|
|
||||||
|
|
||||||
# Then configure:
|
|
||||||
# - dev-story or super-dev-story?
|
|
||||||
# - Auto-accept gap analysis?
|
|
||||||
# - Create git commits?
|
|
||||||
# - Halt on error or continue?
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
### Default Settings (workflow.yaml)
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
autonomous_settings:
|
|
||||||
use_super_dev: true # Use super-dev-story (vs dev-story)
|
|
||||||
auto_accept_gap_analysis: true # Auto-approve gap analysis
|
|
||||||
halt_on_error: false # Continue even if story fails
|
|
||||||
max_retry_per_story: 2 # Retry failed stories
|
|
||||||
create_git_commits: true # Commit after each story
|
|
||||||
git_branch_prefix: "auto-epic-" # Branch: auto-epic-{epic_num}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Per-Epic Override
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# In sprint-status.yaml or epic frontmatter
|
|
||||||
epic-3:
|
|
||||||
autonomous_settings:
|
|
||||||
use_super_dev: false # Use dev-story (faster)
|
|
||||||
halt_on_error: true # Stop on first failure
|
|
||||||
```
|
|
||||||
|
|
||||||
## Time & Cost Estimates
|
|
||||||
|
|
||||||
### Time per Story
|
|
||||||
|
|
||||||
| Workflow | Avg Time per Story | Token Usage |
|
|
||||||
|----------|-------------------|-------------|
|
|
||||||
| **dev-story** | 20-40 minutes | 50K-100K |
|
|
||||||
| **super-dev-story** | 25-50 minutes | 80K-150K |
|
|
||||||
|
|
||||||
### Epic Estimates
|
|
||||||
|
|
||||||
| Epic Size | Time (dev-story) | Time (super-dev) | Tokens |
|
|
||||||
|-----------|-----------------|------------------|--------|
|
|
||||||
| Small (3-5 stories) | 1-3 hours | 2-4 hours | 250K-750K |
|
|
||||||
| Medium (6-10 stories) | 2-7 hours | 3-8 hours | 500K-1.5M |
|
|
||||||
| Large (11-20 stories) | 4-13 hours | 5-17 hours | 1M-3M |
|
|
||||||
|
|
||||||
**Recommendation:** Run overnight for large epics
|
|
||||||
|
|
||||||
## Example Session
|
|
||||||
|
|
||||||
```
|
|
||||||
🤖 Autonomous Epic Processing
|
|
||||||
|
|
||||||
Enter epic number: 2
|
|
||||||
|
|
||||||
📊 Epic 2 Status
|
|
||||||
Total stories: 8
|
|
||||||
- Backlog: 5 (will create + develop)
|
|
||||||
- Ready-for-dev: 2 (will develop)
|
|
||||||
- In-progress: 1 (will resume)
|
|
||||||
- Review: 0
|
|
||||||
- Done: 0
|
|
||||||
|
|
||||||
Work Remaining: 8 stories
|
|
||||||
Estimated Time: 4-6 hours
|
|
||||||
Estimated Tokens: ~800K-1.2M
|
|
||||||
|
|
||||||
Proceed? [Y/C/n]: Y
|
|
||||||
|
|
||||||
✅ Starting autonomous epic processing...
|
|
||||||
|
|
||||||
📝 Created git branch: auto-epic-2
|
|
||||||
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Story 1/8: 2-1-user-registration
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Status: backlog
|
|
||||||
|
|
||||||
📝 Creating story 2-1-user-registration...
|
|
||||||
✅ Story created
|
|
||||||
|
|
||||||
💻 Developing story using super-dev-story...
|
|
||||||
Pre-gap: ✅ 0 changes needed
|
|
||||||
Development: ✅ 8 tasks completed
|
|
||||||
Post-gap: ✅ All verified
|
|
||||||
Code review: ✅ No issues
|
|
||||||
✅ Story complete (42 minutes, 95K tokens)
|
|
||||||
|
|
||||||
📝 Committed: a1b2c3d
|
|
||||||
|
|
||||||
Progress: 1 ✅ | 0 ❌ | 7 pending
|
|
||||||
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Story 2/8: 2-2-user-login
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
📝 Creating story 2-2-user-login...
|
|
||||||
✅ Story created
|
|
||||||
|
|
||||||
💻 Developing story using super-dev-story...
|
|
||||||
Pre-gap: ✅ Reusing registration code (3 tasks refined)
|
|
||||||
Development: ✅ 6 tasks completed
|
|
||||||
Post-gap: ✅ All verified
|
|
||||||
Code review: ⚠️ 1 medium issue found
|
|
||||||
Code review: ✅ Issue fixed
|
|
||||||
✅ Story complete (38 minutes, 110K tokens)
|
|
||||||
|
|
||||||
📝 Committed: d4e5f6g
|
|
||||||
|
|
||||||
Progress: 2 ✅ | 0 ❌ | 6 pending
|
|
||||||
|
|
||||||
[... continues for all 8 stories ...]
|
|
||||||
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
🎉 EPIC 2 AUTONOMOUS PROCESSING COMPLETE!
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
Results:
|
|
||||||
✅ Stories completed: 8/8
|
|
||||||
❌ Stories failed: 0
|
|
||||||
|
|
||||||
Statistics:
|
|
||||||
- Total time: 5h 23m
|
|
||||||
- Files created/modified: 47
|
|
||||||
- Test coverage: 94%
|
|
||||||
- Code review issues: 6 (all fixed)
|
|
||||||
|
|
||||||
Git Branch: auto-epic-2
|
|
||||||
Commits: 8
|
|
||||||
|
|
||||||
Next Steps:
|
|
||||||
1. Review completion report
|
|
||||||
2. Run human code review
|
|
||||||
3. Merge auto-epic-2
|
|
||||||
```
|
|
||||||
|
|
||||||
## Progress Tracking
|
|
||||||
|
|
||||||
### Progress File
|
|
||||||
|
|
||||||
Autonomous epic maintains state in `.autonomous-epic-progress.yaml`:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
epic_num: 2
|
|
||||||
started: 2025-01-18T10:00:00Z
|
|
||||||
total_stories: 8
|
|
||||||
completed_stories:
|
|
||||||
- 2-1-user-registration
|
|
||||||
- 2-2-user-login
|
|
||||||
failed_stories: []
|
|
||||||
current_story: 2-3-password-reset
|
|
||||||
status: running
|
|
||||||
```
|
|
||||||
|
|
||||||
### Resume from Interruption
|
|
||||||
|
|
||||||
If interrupted (crash, manual stop, timeout):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
/autonomous-epic 2
|
|
||||||
|
|
||||||
# Detects existing progress file
|
|
||||||
# Shows: "Found in-progress epic processing. Resume? [Y/n]"
|
|
||||||
# Continues from last completed story
|
|
||||||
```
|
|
||||||
|
|
||||||
## Error Handling
|
|
||||||
|
|
||||||
### Story Failures
|
|
||||||
|
|
||||||
**With `halt_on_error: false` (default):**
|
|
||||||
```
|
|
||||||
Story 2.3 fails
|
|
||||||
→ Logged in failed_stories
|
|
||||||
→ Continue to Story 2.4
|
|
||||||
→ Report failures at end
|
|
||||||
```
|
|
||||||
|
|
||||||
**With `halt_on_error: true`:**
|
|
||||||
```
|
|
||||||
Story 2.3 fails
|
|
||||||
→ Stop processing immediately
|
|
||||||
→ Report error
|
|
||||||
→ User fixes manually
|
|
||||||
→ Resume from Story 2.3
|
|
||||||
```
|
|
||||||
|
|
||||||
### Retry Logic
|
|
||||||
|
|
||||||
Each story gets {{max_retry_per_story}} attempts (default: 2):
|
|
||||||
|
|
||||||
```
|
|
||||||
Story 2.5 fails
|
|
||||||
→ Retry 1/2: Attempt again
|
|
||||||
→ Retry 2/2: Attempt again
|
|
||||||
→ Max retries: Mark failed, continue to next story
|
|
||||||
```
|
|
||||||
|
|
||||||
## Git Integration
|
|
||||||
|
|
||||||
### Automatic Branching
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Autonomous epic creates:
|
|
||||||
Branch: auto-epic-{epic_num}
|
|
||||||
|
|
||||||
# Example:
|
|
||||||
/autonomous-epic 3
|
|
||||||
→ Creates branch: auto-epic-3
|
|
||||||
```
|
|
||||||
|
|
||||||
### Commits per Story
|
|
||||||
|
|
||||||
Each story gets its own commit:
|
|
||||||
|
|
||||||
```
|
|
||||||
feat(epic-2): complete story 2-1-user-registration
|
|
||||||
feat(epic-2): complete story 2-2-user-login
|
|
||||||
feat(epic-2): complete story 2-3-password-reset
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
### Merge When Done
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# After autonomous epic completes:
|
|
||||||
git checkout main
|
|
||||||
git merge auto-epic-2
|
|
||||||
|
|
||||||
# Or create PR:
|
|
||||||
gh pr create --base main --head auto-epic-2 --title "Epic 2: User Management"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Completion Report
|
|
||||||
|
|
||||||
Generated at: `{{story_dir}}/epic-{{epic_num}}-completion-report.md`
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
# Epic 2 Completion Report
|
|
||||||
|
|
||||||
**Generated:** 2025-01-18
|
|
||||||
**Processing Time:** 5h 23m
|
|
||||||
**Success Rate:** 100% (8/8 stories)
|
|
||||||
|
|
||||||
## Story Summary
|
|
||||||
|
|
||||||
| Story | Status | Time | Files | Coverage | Issues |
|
|
||||||
|-------|--------|------|-------|----------|--------|
|
|
||||||
| 2.1 | ✅ Done | 42m | 6 | 95% | 0 |
|
|
||||||
| 2.2 | ✅ Done | 38m | 5 | 92% | 1 |
|
|
||||||
| 2.3 | ✅ Done | 45m | 7 | 96% | 2 |
|
|
||||||
...
|
|
||||||
|
|
||||||
## Epic Statistics
|
|
||||||
|
|
||||||
- Total files: 47 (35 created, 12 modified)
|
|
||||||
- Average coverage: 94%
|
|
||||||
- Code review issues: 6 (all resolved)
|
|
||||||
- Total commits: 8
|
|
||||||
|
|
||||||
## Quality Metrics
|
|
||||||
|
|
||||||
- Stories passing first time: 6/8 (75%)
|
|
||||||
- Average fix iterations: 0.25
|
|
||||||
- Zero critical issues escaped
|
|
||||||
|
|
||||||
## Git Branch
|
|
||||||
|
|
||||||
Branch: auto-epic-2
|
|
||||||
Ready to merge
|
|
||||||
|
|
||||||
## Recommendations
|
|
||||||
|
|
||||||
- All stories met acceptance criteria
|
|
||||||
- Test coverage exceeds 90% target
|
|
||||||
- Code review found minimal issues
|
|
||||||
- Ready for human review and merge
|
|
||||||
```
|
|
||||||
|
|
||||||
## Best Practices
|
|
||||||
|
|
||||||
### 1. Epic Sizing
|
|
||||||
|
|
||||||
**Recommended epic sizes:**
|
|
||||||
- **Small (3-5 stories):** Can complete in single session
|
|
||||||
- **Medium (6-10 stories):** Overnight processing ideal
|
|
||||||
- **Large (11+ stories):** Consider breaking into sub-epics
|
|
||||||
|
|
||||||
### 2. Choosing dev-story vs super-dev-story
|
|
||||||
|
|
||||||
**Use super-dev-story for:**
|
|
||||||
- Security-critical epics
|
|
||||||
- Customer-facing features
|
|
||||||
- Complex business logic
|
|
||||||
- High-stakes production releases
|
|
||||||
|
|
||||||
**Use dev-story for:**
|
|
||||||
- Internal tools
|
|
||||||
- Experimental features
|
|
||||||
- Non-critical improvements
|
|
||||||
- When speed matters more than extra validation
|
|
||||||
|
|
||||||
### 3. Monitoring Progress
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# In another terminal, watch progress:
|
|
||||||
watch -n 10 'cat docs/sprint-artifacts/.autonomous-epic-progress.yaml'
|
|
||||||
|
|
||||||
# Or tail completion report:
|
|
||||||
tail -f docs/sprint-artifacts/epic-2-completion-report.md
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Interruption Handling
|
|
||||||
|
|
||||||
**Safe to interrupt:**
|
|
||||||
- Ctrl+C between stories (progress saved)
|
|
||||||
- Terminal disconnect (can resume)
|
|
||||||
- Timeout (restarts from last completed)
|
|
||||||
|
|
||||||
**Not safe to interrupt:**
|
|
||||||
- During story development (may leave partial work)
|
|
||||||
- During git commit (may corrupt repository)
|
|
||||||
|
|
||||||
### 5. Resource Management
|
|
||||||
|
|
||||||
**Token budgets:**
|
|
||||||
- Set LLM API limits to prevent runaway costs
|
|
||||||
- Monitor token usage in real-time
|
|
||||||
- Consider using dev-story for token savings
|
|
||||||
|
|
||||||
**Time management:**
|
|
||||||
- Run overnight for large epics
|
|
||||||
- Schedule during low-activity periods
|
|
||||||
- Use CI/CD for completely automated runs
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
### "Autonomous epic stuck on one story"
|
|
||||||
|
|
||||||
**Cause:** Story has issues preventing completion
|
|
||||||
**Solution:**
|
|
||||||
- Check progress file for current_story
|
|
||||||
- Review that story's dev log
|
|
||||||
- May need manual intervention
|
|
||||||
|
|
||||||
### "Epic processing stopped mid-story"
|
|
||||||
|
|
||||||
**Cause:** Interruption during development
|
|
||||||
**Solution:**
|
|
||||||
- Check progress file status
|
|
||||||
- Resume with `/autonomous-epic {epic_num}`
|
|
||||||
- May need to manually clean up partial work
|
|
||||||
|
|
||||||
### "Too many token failures"
|
|
||||||
|
|
||||||
**Cause:** Hitting API rate limits
|
|
||||||
**Solution:**
|
|
||||||
- Reduce concurrent processing
|
|
||||||
- Use dev-story instead of super-dev-story
|
|
||||||
- Increase API tier/limits
|
|
||||||
|
|
||||||
### "Git merge conflicts after autonomous epic"
|
|
||||||
|
|
||||||
**Cause:** Other changes merged to main during processing
|
|
||||||
**Solution:**
|
|
||||||
- Rebase auto-epic branch on latest main
|
|
||||||
- Resolve conflicts manually
|
|
||||||
- This is expected for long-running processes
|
|
||||||
|
|
||||||
## Safety Features
|
|
||||||
|
|
||||||
### Max Retry Protection
|
|
||||||
|
|
||||||
Prevents infinite loops:
|
|
||||||
- Each story: max 2 retries (default)
|
|
||||||
- After max retries: skip to next story
|
|
||||||
- Report failures at end
|
|
||||||
|
|
||||||
### Progress Checkpoints
|
|
||||||
|
|
||||||
After each story:
|
|
||||||
- Progress file updated
|
|
||||||
- Git commit created (if enabled)
|
|
||||||
- Can resume from this point
|
|
||||||
|
|
||||||
### Fail-Safe Modes
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# Conservative (halt on first problem):
|
|
||||||
halt_on_error: true
|
|
||||||
max_retry_per_story: 0
|
|
||||||
|
|
||||||
# Aggressive (push through everything):
|
|
||||||
halt_on_error: false
|
|
||||||
max_retry_per_story: 3
|
|
||||||
|
|
||||||
# Balanced (default):
|
|
||||||
halt_on_error: false
|
|
||||||
max_retry_per_story: 2
|
|
||||||
```
|
|
||||||
|
|
||||||
## Use Cases
|
|
||||||
|
|
||||||
### Use Case 1: Overnight Epic Completion
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Before leaving office:
|
|
||||||
/autonomous-epic 4
|
|
||||||
|
|
||||||
# Next morning:
|
|
||||||
# → Epic 100% complete
|
|
||||||
# → All stories developed
|
|
||||||
# → All commits created
|
|
||||||
# → Ready for review
|
|
||||||
```
|
|
||||||
|
|
||||||
### Use Case 2: CI/CD Integration
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# In GitHub Actions:
|
|
||||||
name: Auto Epic Processing
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
epic_number:
|
|
||||||
required: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
process-epic:
|
|
||||||
steps:
|
|
||||||
- run: npx bmad-method@alpha autonomous-epic ${{ inputs.epic_number }}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Use Case 3: Sprint Automation
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Monday: Plan all epics for sprint
|
|
||||||
/sprint-planning
|
|
||||||
|
|
||||||
# Tuesday: Auto-process Epic 1
|
|
||||||
/autonomous-epic 1
|
|
||||||
|
|
||||||
# Wednesday: Auto-process Epic 2
|
|
||||||
/autonomous-epic 2
|
|
||||||
|
|
||||||
# Thursday-Friday: Human review and merge
|
|
||||||
```
|
|
||||||
|
|
||||||
## Comparison to Manual Processing
|
|
||||||
|
|
||||||
### Manual Workflow
|
|
||||||
|
|
||||||
```
|
|
||||||
Day 1: Create Story 2.1 → Review → Approve (30m)
|
|
||||||
Day 2: Develop Story 2.1 → Test → Review → Fix → Done (4h)
|
|
||||||
Day 3: Create Story 2.2 → Review → Approve (30m)
|
|
||||||
Day 4: Develop Story 2.2 → Test → Review → Fix → Done (3h)
|
|
||||||
...
|
|
||||||
|
|
||||||
8 stories = 16 days minimum (with human bottlenecks)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Autonomous Workflow
|
|
||||||
|
|
||||||
```
|
|
||||||
Day 1 (evening): /autonomous-epic 2
|
|
||||||
Day 2 (morning): Epic complete, review ready
|
|
||||||
|
|
||||||
8 stories = 6 hours machine time + 1-2 days human review
|
|
||||||
```
|
|
||||||
|
|
||||||
**Savings:** ~14 days, 90% reduction in calendar time
|
|
||||||
|
|
||||||
## Limitations
|
|
||||||
|
|
||||||
### What Autonomous Epic CAN'T Do
|
|
||||||
|
|
||||||
- **Complex requirement clarifications** - Needs human for ambiguous requirements
|
|
||||||
- **Architectural decisions** - Major tech choices need human input
|
|
||||||
- **UX design decisions** - Visual/interaction design needs human creativity
|
|
||||||
- **Business logic validation** - Domain expertise often needs human verification
|
|
||||||
|
|
||||||
### When to Use Manual Processing
|
|
||||||
|
|
||||||
- First epic in new project (learning patterns)
|
|
||||||
- Experimental features (high uncertainty)
|
|
||||||
- Stories requiring extensive research
|
|
||||||
- Complex integrations with unknowns
|
|
||||||
|
|
||||||
## Monitoring Output
|
|
||||||
|
|
||||||
### Real-Time Progress
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Terminal output shows:
|
|
||||||
Story 3/8: 2-3-password-reset
|
|
||||||
Pre-gap: ✅ 2 tasks refined
|
|
||||||
Development: ⏳ 2/6 tasks complete
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
### Progress File
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Check progress programmatically:
|
|
||||||
cat docs/sprint-artifacts/.autonomous-epic-progress.yaml
|
|
||||||
|
|
||||||
# Example:
|
|
||||||
epic_num: 2
|
|
||||||
status: running
|
|
||||||
completed_stories: [2-1-user-registration, 2-2-user-login]
|
|
||||||
current_story: 2-3-password-reset
|
|
||||||
```
|
|
||||||
|
|
||||||
### Completion Report
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Generated when epic completes:
|
|
||||||
cat docs/sprint-artifacts/epic-2-completion-report.md
|
|
||||||
```
|
|
||||||
|
|
||||||
## Advanced: Batch Epic Processing
|
|
||||||
|
|
||||||
Process multiple epics:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Sequential processing:
|
|
||||||
/autonomous-epic 1
|
|
||||||
/autonomous-epic 2
|
|
||||||
/autonomous-epic 3
|
|
||||||
|
|
||||||
# Or create meta-workflow for parallel processing
|
|
||||||
```
|
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
### Q: Can I stop autonomous processing mid-epic?
|
|
||||||
|
|
||||||
**A:** Yes, Ctrl+C between stories. Progress saved. Resume with `/autonomous-epic {num}`
|
|
||||||
|
|
||||||
### Q: What if a story fails?
|
|
||||||
|
|
||||||
**A:** Logged in failed_stories. By default, continues to next story. Fix manually later.
|
|
||||||
|
|
||||||
### Q: Does this work with existing stories?
|
|
||||||
|
|
||||||
**A:** Yes! Picks up any ready-for-dev or in-progress stories and develops them.
|
|
||||||
|
|
||||||
### Q: Can I customize per story?
|
|
||||||
|
|
||||||
**A:** Not currently. All stories in epic use same settings. Manual development for custom needs.
|
|
||||||
|
|
||||||
### Q: What about dependencies between stories?
|
|
||||||
|
|
||||||
**A:** Stories processed sequentially, so Story 2.2 can leverage Story 2.1's code (gap analysis handles this!)
|
|
||||||
|
|
||||||
### Q: Token budget concerns?
|
|
||||||
|
|
||||||
**A:** Use dev-story instead of super-dev-story to reduce token usage by ~30%
|
|
||||||
|
|
||||||
## See Also
|
|
||||||
|
|
||||||
- [super-dev-story](../super-dev-story/) - Enhanced quality workflow
|
|
||||||
- [dev-story](../dev-story/) - Standard development workflow
|
|
||||||
- [gap-analysis](../gap-analysis/) - Standalone audit tool
|
|
||||||
- [Autonomous Epic Concept](../../../../docs/autonomous-epic-processing.md) - Vision document
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Autonomous Epic Processing: "Do Epic 4 for me" is now reality** ✨
|
|
||||||
|
|
@ -1,208 +0,0 @@
|
||||||
<workflow>
|
|
||||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
|
||||||
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
|
||||||
<critical>Communicate all responses in {communication_language}</critical>
|
|
||||||
<critical>🤖 AUTONOMOUS EPIC PROCESSING - Full automation of epic completion!</critical>
|
|
||||||
<critical>This workflow orchestrates create-story and super-dev-story for each story in an epic</critical>
|
|
||||||
|
|
||||||
<step n="1" goal="Initialize and validate epic">
|
|
||||||
<output>🤖 **Autonomous Epic Processing**
|
|
||||||
|
|
||||||
This workflow will automatically:
|
|
||||||
1. Create each story just-in-time (using create-story)
|
|
||||||
2. Develop each story (using super-dev-story or dev-story)
|
|
||||||
3. Commit and push after each story (integrated in super-dev)
|
|
||||||
4. Generate epic completion report
|
|
||||||
|
|
||||||
**Time Estimate:** Varies by epic size
|
|
||||||
- Small epic (3-5 stories): 3-6 hours
|
|
||||||
- Medium epic (6-10 stories): 6-12 hours
|
|
||||||
- Large epic (11+ stories): 12-24 hours
|
|
||||||
|
|
||||||
**Token Usage:** ~100K-150K per story
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<check if="{{epic_num}} provided">
|
|
||||||
<action>Use provided epic number</action>
|
|
||||||
<goto anchor="validate_epic" />
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<ask>Enter epic number to process (e.g., "2" or "epic-3"), or [q] to quit:</ask>
|
|
||||||
|
|
||||||
<check if="user provides epic number">
|
|
||||||
<action>Parse epic number from input</action>
|
|
||||||
<goto anchor="validate_epic" />
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="user says q">
|
|
||||||
<output>👋 Autonomous epic processing cancelled.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<anchor id="validate_epic" />
|
|
||||||
|
|
||||||
<action>Load {{sprint_status}} file</action>
|
|
||||||
<action>Find epic-{{epic_num}} entry</action>
|
|
||||||
<action>Count stories by status (backlog, ready-for-dev, in-progress, review, done)</action>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
📊 **Epic {{epic_num}} Status**
|
|
||||||
|
|
||||||
Total stories: {{total_story_count}}
|
|
||||||
- Backlog: {{backlog_count}} (will create + develop)
|
|
||||||
- Ready-for-dev: {{ready_count}} (will develop)
|
|
||||||
- In-progress: {{inprogress_count}} (will resume)
|
|
||||||
- Review/Done: {{done_count}} (will skip)
|
|
||||||
|
|
||||||
**Work Remaining:** {{work_count}} stories
|
|
||||||
**Estimated Time:** {{estimated_hours}} hours
|
|
||||||
**Estimated Tokens:** ~{{estimated_tokens}}K
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<ask>**Proceed with autonomous processing?**
|
|
||||||
|
|
||||||
[Y] Yes - Use super-dev-story (comprehensive validation)
|
|
||||||
[D] Dev-story - Faster, less validation
|
|
||||||
[n] No - Cancel
|
|
||||||
</ask>
|
|
||||||
|
|
||||||
<check if="user says Y">
|
|
||||||
<action>Set {{dev_workflow}} = "super-dev-story"</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="user says D">
|
|
||||||
<action>Set {{dev_workflow}} = "dev-story"</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="user says n">
|
|
||||||
<output>❌ Cancelled</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step n="2" goal="Create git branch and initialize tracking">
|
|
||||||
<action>Get current branch name</action>
|
|
||||||
<action>Create new branch: auto-epic-{{epic_num}}</action>
|
|
||||||
<output>📝 Created branch: auto-epic-{{epic_num}}</output>
|
|
||||||
|
|
||||||
<action>Initialize progress tracking file:
|
|
||||||
- epic_num
|
|
||||||
- started timestamp
|
|
||||||
- total_stories
|
|
||||||
- completed_stories: []
|
|
||||||
- current_story: null
|
|
||||||
- status: running
|
|
||||||
</action>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step n="3" goal="Process all stories in epic">
|
|
||||||
<critical>🔄 STORY LOOP - Create and develop each story</critical>
|
|
||||||
|
|
||||||
<action>Find all stories in epic {{epic_num}} needing work</action>
|
|
||||||
<action>Sort by story number (ascending)</action>
|
|
||||||
<action>Initialize counters: success=0, failure=0</action>
|
|
||||||
|
|
||||||
<!-- STORY LOOP -->
|
|
||||||
<loop foreach="{{stories_needing_work}}">
|
|
||||||
<action>Set {{current_story}}</action>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Story {{counter}}/{{work_count}}: {{current_story.key}}
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<!-- CREATE STORY IF NEEDED -->
|
|
||||||
<check if="status == 'backlog'">
|
|
||||||
<output>📝 Creating story...</output>
|
|
||||||
|
|
||||||
<try>
|
|
||||||
<invoke-workflow path="{project-root}/_bmad/bmgd/workflows/4-production/create-story/workflow.yaml">
|
|
||||||
<note>Create story just-in-time</note>
|
|
||||||
</invoke-workflow>
|
|
||||||
|
|
||||||
<output>✅ Story created</output>
|
|
||||||
</try>
|
|
||||||
|
|
||||||
<catch>
|
|
||||||
<output>❌ Failed to create story: {{error}}</output>
|
|
||||||
<action>Add to failed_stories, continue to next</action>
|
|
||||||
<continue />
|
|
||||||
</catch>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<!-- DEVELOP STORY -->
|
|
||||||
<output>💻 Developing with {{dev_workflow}}...</output>
|
|
||||||
|
|
||||||
<try>
|
|
||||||
<check if="{{dev_workflow}} == 'super-dev-story'">
|
|
||||||
<invoke-workflow path="{project-root}/_bmad/bmgd/workflows/4-production/super-dev-story/workflow.yaml">
|
|
||||||
<input name="story_file" value="{{current_story_file}}" />
|
|
||||||
<note>Includes: dev + post-gap + review + push-all</note>
|
|
||||||
</invoke-workflow>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="{{dev_workflow}} == 'dev-story'">
|
|
||||||
<invoke-workflow path="{project-root}/_bmad/bmgd/workflows/4-production/dev-story/workflow.yaml">
|
|
||||||
<input name="story_file" value="{{current_story_file}}" />
|
|
||||||
</invoke-workflow>
|
|
||||||
|
|
||||||
<!-- Push after dev-story -->
|
|
||||||
<invoke-workflow path="{project-root}/_bmad/bmgd/workflows/4-production/push-all/workflow.yaml">
|
|
||||||
<note>Commit and push story changes</note>
|
|
||||||
</invoke-workflow>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<output>✅ Story complete and pushed</output>
|
|
||||||
<action>Increment success_count</action>
|
|
||||||
<action>Update progress file</action>
|
|
||||||
</try>
|
|
||||||
|
|
||||||
<catch>
|
|
||||||
<output>❌ Story failed: {{error}}</output>
|
|
||||||
<action>Add to failed_stories, continue</action>
|
|
||||||
<action>Increment failure_count</action>
|
|
||||||
</catch>
|
|
||||||
|
|
||||||
<output>Progress: {{success_count}} ✅ | {{failure_count}} ❌ | {{remaining}} pending</output>
|
|
||||||
</loop>
|
|
||||||
|
|
||||||
<action>Update progress file status: complete</action>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step n="4" goal="Epic completion and reporting">
|
|
||||||
<output>
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
🎉 EPIC {{epic_num}} COMPLETE!
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
**Results:**
|
|
||||||
✅ Stories completed: {{success_count}}/{{total_count}}
|
|
||||||
{{if_failures}}❌ Stories failed: {{failure_count}}{{endif}}
|
|
||||||
|
|
||||||
**Branch:** auto-epic-{{epic_num}}
|
|
||||||
**All changes pushed to remote**
|
|
||||||
|
|
||||||
{{if_all_success}}
|
|
||||||
**Epic {{epic_num}} marked complete in sprint-status.yaml**
|
|
||||||
{{endif}}
|
|
||||||
|
|
||||||
**Next Steps:**
|
|
||||||
1. Review the work on branch auto-epic-{{epic_num}}
|
|
||||||
2. Run human code review
|
|
||||||
3. Merge when approved
|
|
||||||
|
|
||||||
{{if_failures}}
|
|
||||||
**Failed Stories Need Attention:**
|
|
||||||
{{list_failed_stories}}
|
|
||||||
{{endif}}
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<check if="{{success_count}} == {{total_count}}">
|
|
||||||
<action>Update sprint-status: epic-{{epic_num}} = "done"</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<action>Remove progress file</action>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
</workflow>
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
name: autonomous-epic
|
|
||||||
description: "Autonomous epic processing - creates and develops all stories in an epic with minimal human intervention"
|
|
||||||
author: "BMad"
|
|
||||||
|
|
||||||
# Critical variables from config
|
|
||||||
config_source: "{project-root}/_bmad/bmgd/config.yaml"
|
|
||||||
user_name: "{config_source}:user_name"
|
|
||||||
communication_language: "{config_source}:communication_language"
|
|
||||||
implementation_artifacts: "{config_source}:implementation_artifacts"
|
|
||||||
story_dir: "{implementation_artifacts}"
|
|
||||||
|
|
||||||
# Workflow components
|
|
||||||
installed_path: "{project-root}/_bmad/bmgd/workflows/4-production/autonomous-epic"
|
|
||||||
instructions: "{installed_path}/instructions.xml"
|
|
||||||
progress_file: "{story_dir}/.autonomous-epic-progress.yaml"
|
|
||||||
|
|
||||||
# Variables
|
|
||||||
epic_num: "" # User provides or auto-discover next epic
|
|
||||||
sprint_status: "{implementation_artifacts}/sprint-status.yaml"
|
|
||||||
project_context: "**/project-context.md"
|
|
||||||
|
|
||||||
# Autonomous mode settings
|
|
||||||
autonomous_settings:
|
|
||||||
use_super_dev: true # Use super-dev-story vs dev-story
|
|
||||||
auto_accept_gap_analysis: true # Auto-approve gap analysis refinements
|
|
||||||
halt_on_error: false # Continue even if story fails
|
|
||||||
max_retry_per_story: 2 # Retry failed stories
|
|
||||||
create_git_commits: true # Commit after each story
|
|
||||||
git_branch_prefix: "auto-epic-" # Branch name format: auto-epic-{epic_num}
|
|
||||||
|
|
||||||
standalone: true
|
|
||||||
|
|
||||||
web_bundle: false
|
|
||||||
|
|
@ -48,10 +48,6 @@ agent:
|
||||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/gap-analysis/workflow.yaml"
|
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/gap-analysis/workflow.yaml"
|
||||||
description: "[GA] Run Gap Analysis - audit story tasks against codebase without starting development"
|
description: "[GA] Run Gap Analysis - audit story tasks against codebase without starting development"
|
||||||
|
|
||||||
- trigger: AE or fuzzy match on autonomous-epic
|
|
||||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/autonomous-epic/workflow.yaml"
|
|
||||||
description: "[AE] Autonomous Epic Processing - create and develop all stories in an epic automatically"
|
|
||||||
|
|
||||||
- trigger: PA or fuzzy match on push-all
|
- trigger: PA or fuzzy match on push-all
|
||||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/push-all/workflow.yaml"
|
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/push-all/workflow.yaml"
|
||||||
description: "[PA] Push-All - stage, commit, and push all changes with safety validation"
|
description: "[PA] Push-All - stage, commit, and push all changes with safety validation"
|
||||||
|
|
|
||||||
|
|
@ -41,10 +41,6 @@ agent:
|
||||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/gap-analysis/workflow.yaml"
|
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/gap-analysis/workflow.yaml"
|
||||||
description: "[GA] Run Gap Analysis - audit story tasks against codebase (useful for sprint health checks)"
|
description: "[GA] Run Gap Analysis - audit story tasks against codebase (useful for sprint health checks)"
|
||||||
|
|
||||||
- trigger: AEP or fuzzy match on autonomous-epic
|
|
||||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/autonomous-epic/workflow.yaml"
|
|
||||||
description: "[AEP] Autonomous Epic Processing - create and develop all stories in an epic automatically"
|
|
||||||
|
|
||||||
- trigger: ER or fuzzy match on epic-retrospective
|
- trigger: ER or fuzzy match on epic-retrospective
|
||||||
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml"
|
workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml"
|
||||||
data: "{project-root}/_bmad/_config/agent-manifest.csv"
|
data: "{project-root}/_bmad/_config/agent-manifest.csv"
|
||||||
|
|
|
||||||
|
|
@ -1,704 +0,0 @@
|
||||||
# Autonomous Epic Processing v2.0
|
|
||||||
|
|
||||||
**"Do Epic 4 for me" - Full automation of epic completion with anti-vibe-coding enforcement**
|
|
||||||
|
|
||||||
## What It Does
|
|
||||||
|
|
||||||
Autonomous epic processing combines just-in-time planning with disciplined automated development:
|
|
||||||
|
|
||||||
```
|
|
||||||
/autonomous-epic 2
|
|
||||||
|
|
||||||
→ Creates Story 2.1 (if backlog) → super-dev-pipeline → Commits → Done ✅
|
|
||||||
→ Develops Story 2.2 → super-dev-pipeline → Commits → Done ✅
|
|
||||||
→ Develops Story 2.3 → super-dev-pipeline → Commits → Done ✅
|
|
||||||
...
|
|
||||||
→ Entire Epic 2 complete! 🎉
|
|
||||||
```
|
|
||||||
|
|
||||||
## How It Works
|
|
||||||
|
|
||||||
```
|
|
||||||
┌──────────────────────────────────────────────────┐
|
|
||||||
│ Autonomous Epic Processor v2.0 │
|
|
||||||
│ │
|
|
||||||
│ For each story in epic (sequential): │
|
|
||||||
│ ┌─────────────────────────────────────────────┐ │
|
|
||||||
│ │ 1. create-story (if backlog) │ │
|
|
||||||
│ │ ↓ │ │
|
|
||||||
│ │ 2. super-dev-pipeline (step-file discipline) │ │
|
|
||||||
│ │ ├─ Pre-gap analysis (validate existing) │ │
|
|
||||||
│ │ ├─ Adaptive implementation (TDD/refactor) │ │
|
|
||||||
│ │ ├─ Post-validation (catch false positives)│ │
|
|
||||||
│ │ ├─ Code review (find 3-10 issues) │ │
|
|
||||||
│ │ └─ Complete (commit + push) │ │
|
|
||||||
│ │ ↓ │ │
|
|
||||||
│ │ 3. Verify completion (task-based) │ │
|
|
||||||
│ │ ↓ │ │
|
|
||||||
│ │ 4. Save progress │ │
|
|
||||||
│ └─────────────────────────────────────────────┘ │
|
|
||||||
│ │
|
|
||||||
│ Epic completion report generated │
|
|
||||||
└──────────────────────────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
### Basic Usage
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Load any BMAD agent
|
|
||||||
/autonomous-epic
|
|
||||||
|
|
||||||
# Will prompt for epic number:
|
|
||||||
Enter epic number: 2
|
|
||||||
|
|
||||||
# Or provide directly:
|
|
||||||
/autonomous-epic epic-2
|
|
||||||
```
|
|
||||||
|
|
||||||
### With Defaults
|
|
||||||
|
|
||||||
```bash
|
|
||||||
/autonomous-epic 3
|
|
||||||
|
|
||||||
# Uses default settings:
|
|
||||||
# ✅ super-dev-story (comprehensive quality)
|
|
||||||
# ✅ Auto-accept gap analysis
|
|
||||||
# ✅ Create git commits
|
|
||||||
# ✅ Continue on errors
|
|
||||||
```
|
|
||||||
|
|
||||||
### With Custom Settings
|
|
||||||
|
|
||||||
```bash
|
|
||||||
/autonomous-epic 3
|
|
||||||
|
|
||||||
# When prompted:
|
|
||||||
[C] Custom settings
|
|
||||||
|
|
||||||
# Then configure:
|
|
||||||
# - dev-story or super-dev-story?
|
|
||||||
# - Auto-accept gap analysis?
|
|
||||||
# - Create git commits?
|
|
||||||
# - Halt on error or continue?
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
### Default Settings (workflow.yaml)
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
autonomous_settings:
|
|
||||||
use_super_dev_pipeline: true # Use super-dev-pipeline (step-file discipline)
|
|
||||||
pipeline_mode: "batch" # Batch mode for autonomous execution
|
|
||||||
halt_on_error: false # Continue even if story fails
|
|
||||||
max_retry_per_story: 2 # Retry failed stories
|
|
||||||
create_git_commits: true # Commit after each story
|
|
||||||
git_branch_prefix: "auto-epic-" # Branch: auto-epic-{epic_num}
|
|
||||||
|
|
||||||
# super-dev-pipeline features
|
|
||||||
super_dev_pipeline_features:
|
|
||||||
token_efficiency: "40-60K per story (vs 100-150K)"
|
|
||||||
works_for: "Both greenfield AND brownfield"
|
|
||||||
anti_vibe_coding: "Step-file architecture prevents deviation"
|
|
||||||
brownfield_support: "Validates existing code before implementation"
|
|
||||||
|
|
||||||
# Task-based completion verification
|
|
||||||
completion_verification:
|
|
||||||
task_based_completion: true # Check actual tasks, not just status
|
|
||||||
process_review_with_unchecked: true # Process "review" stories with unchecked tasks
|
|
||||||
process_done_with_unchecked: true # Process "done" stories if tasks remain
|
|
||||||
verify_after_development: true # Re-check after each story
|
|
||||||
strict_epic_completion: true # Epic only done when ALL tasks complete
|
|
||||||
```
|
|
||||||
|
|
||||||
### Task-Based Completion (Important!)
|
|
||||||
|
|
||||||
**The autonomous epic workflow now uses TASK-BASED completion**, not just status-based:
|
|
||||||
|
|
||||||
| What Changed | Old Behavior | New Behavior |
|
|
||||||
|--------------|--------------|--------------|
|
|
||||||
| "review" status | ⏭️ Skipped | ✅ Processed if unchecked tasks exist |
|
|
||||||
| "done" status | ⏭️ Skipped | ✅ Verified, processed if tasks remain |
|
|
||||||
| Completion check | Status-based | Task-based (count `- [ ]`) |
|
|
||||||
| Epic marked done | When all stories "done" | When ALL tasks `- [x]` |
|
|
||||||
|
|
||||||
**Why this matters:** Code reviews often add new tasks (CR-1, CR-2, etc.) that need implementation. The old workflow would skip these stories because they were marked "review". Now we scan for actual unchecked tasks.
|
|
||||||
|
|
||||||
```
|
|
||||||
📊 Epic 4 Status (Task-Based Analysis)
|
|
||||||
|
|
||||||
By Actual Task Completion:
|
|
||||||
- ✅ Truly Done: 0 (all tasks checked, will skip)
|
|
||||||
- 🔧 Needs Work: 7 (has unchecked tasks)
|
|
||||||
4-1: 6 unchecked (CR tasks)
|
|
||||||
4-2: 4 unchecked (original work)
|
|
||||||
4-3: 7 unchecked (CR tasks)
|
|
||||||
...
|
|
||||||
- 📝 Backlog: 0 (will create + develop)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Per-Epic Override
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# In sprint-status.yaml or epic frontmatter
|
|
||||||
epic-3:
|
|
||||||
autonomous_settings:
|
|
||||||
use_super_dev: false # Use dev-story (faster)
|
|
||||||
halt_on_error: true # Stop on first failure
|
|
||||||
```
|
|
||||||
|
|
||||||
## Time & Cost Estimates (v2.0)
|
|
||||||
|
|
||||||
### Time per Story
|
|
||||||
|
|
||||||
| Workflow | Avg Time per Story | Token Usage |
|
|
||||||
|----------|-------------------|-------------|
|
|
||||||
| **super-dev-pipeline** (default) | 20-45 minutes | 40K-60K |
|
|
||||||
| story-pipeline (greenfield only) | 15-30 minutes | 25K-30K |
|
|
||||||
| super-dev-story (legacy) | 25-50 minutes | 100K-150K |
|
|
||||||
|
|
||||||
### Epic Estimates (using super-dev-pipeline)
|
|
||||||
|
|
||||||
| Epic Size | Time Estimate | Token Estimate |
|
|
||||||
|-----------|--------------|----------------|
|
|
||||||
| Small (3-5 stories) | 2-5 hours | 120K-300K |
|
|
||||||
| Medium (6-10 stories) | 5-10 hours | 400K-600K |
|
|
||||||
| Large (11-20 stories) | 10-20 hours | 880K-1.2M |
|
|
||||||
|
|
||||||
**Savings vs v1.0:** ~50% token reduction, ~25% time reduction
|
|
||||||
|
|
||||||
**Recommendation:** Run overnight for large epics
|
|
||||||
|
|
||||||
## Example Session
|
|
||||||
|
|
||||||
```
|
|
||||||
🤖 Autonomous Epic Processing
|
|
||||||
|
|
||||||
Enter epic number: 2
|
|
||||||
|
|
||||||
📊 Epic 2 Status
|
|
||||||
Total stories: 8
|
|
||||||
- Backlog: 5 (will create + develop)
|
|
||||||
- Ready-for-dev: 2 (will develop)
|
|
||||||
- In-progress: 1 (will resume)
|
|
||||||
- Review: 0
|
|
||||||
- Done: 0
|
|
||||||
|
|
||||||
Work Remaining: 8 stories
|
|
||||||
Estimated Time: 4-6 hours
|
|
||||||
Estimated Tokens: ~800K-1.2M
|
|
||||||
|
|
||||||
Proceed? [Y/C/n]: Y
|
|
||||||
|
|
||||||
✅ Starting autonomous epic processing...
|
|
||||||
|
|
||||||
📝 Created git branch: auto-epic-2
|
|
||||||
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Story 1/8: 2-1-user-registration
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Status: backlog
|
|
||||||
|
|
||||||
📝 Creating story 2-1-user-registration...
|
|
||||||
✅ Story created
|
|
||||||
|
|
||||||
💻 Developing story using super-dev-pipeline...
|
|
||||||
Init: ✅ Greenfield detected
|
|
||||||
Pre-gap: ✅ 2 tasks refined, 1 added
|
|
||||||
Implementation: ✅ 9 tasks completed (TDD)
|
|
||||||
Post-validation: ✅ All verified
|
|
||||||
Code review: ✅ 4 issues found and fixed
|
|
||||||
Complete: ✅ Committed + pushed
|
|
||||||
✅ Story complete (38 minutes, 48K tokens)
|
|
||||||
|
|
||||||
📝 Committed: a1b2c3d
|
|
||||||
|
|
||||||
Progress: 1 ✅ | 0 ❌ | 7 pending
|
|
||||||
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Story 2/8: 2-2-user-login
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
📝 Creating story 2-2-user-login...
|
|
||||||
✅ Story created
|
|
||||||
|
|
||||||
💻 Developing story using super-dev-story...
|
|
||||||
Pre-gap: ✅ Reusing registration code (3 tasks refined)
|
|
||||||
Development: ✅ 6 tasks completed
|
|
||||||
Post-gap: ✅ All verified
|
|
||||||
Code review: ⚠️ 1 medium issue found
|
|
||||||
Code review: ✅ Issue fixed
|
|
||||||
✅ Story complete (38 minutes, 110K tokens)
|
|
||||||
|
|
||||||
📝 Committed: d4e5f6g
|
|
||||||
|
|
||||||
Progress: 2 ✅ | 0 ❌ | 6 pending
|
|
||||||
|
|
||||||
[... continues for all 8 stories ...]
|
|
||||||
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
🎉 EPIC 2 AUTONOMOUS PROCESSING COMPLETE!
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
Results:
|
|
||||||
✅ Stories completed: 8/8
|
|
||||||
❌ Stories failed: 0
|
|
||||||
|
|
||||||
Statistics:
|
|
||||||
- Total time: 5h 23m
|
|
||||||
- Files created/modified: 47
|
|
||||||
- Test coverage: 94%
|
|
||||||
- Code review issues: 6 (all fixed)
|
|
||||||
|
|
||||||
Git Branch: auto-epic-2
|
|
||||||
Commits: 8
|
|
||||||
|
|
||||||
Next Steps:
|
|
||||||
1. Review completion report
|
|
||||||
2. Run human code review
|
|
||||||
3. Merge auto-epic-2
|
|
||||||
```
|
|
||||||
|
|
||||||
## Progress Tracking
|
|
||||||
|
|
||||||
### Progress File
|
|
||||||
|
|
||||||
Autonomous epic maintains state in `.autonomous-epic-{{epic_num}}-progress.yaml`:
|
|
||||||
|
|
||||||
> **Note:** Each epic gets its own tracking file to support parallel epic processing.
|
|
||||||
> For example: `.autonomous-epic-02-progress.yaml` for epic 02.
|
|
||||||
>
|
|
||||||
> **Backwards Compatibility:** The workflow checks for both the new format
|
|
||||||
> (`.autonomous-epic-02-progress.yaml`) and legacy format
|
|
||||||
> (`.autonomous-epic-progress-epic-02.yaml`) when looking for existing progress files.
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
epic_num: 2
|
|
||||||
started: 2025-01-18T10:00:00Z
|
|
||||||
total_stories: 8
|
|
||||||
completed_stories:
|
|
||||||
- 2-1-user-registration
|
|
||||||
- 2-2-user-login
|
|
||||||
failed_stories: []
|
|
||||||
current_story: 2-3-password-reset
|
|
||||||
status: running
|
|
||||||
```
|
|
||||||
|
|
||||||
### Resume from Interruption
|
|
||||||
|
|
||||||
If interrupted (crash, manual stop, timeout):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
/autonomous-epic 2
|
|
||||||
|
|
||||||
# Detects existing progress file
|
|
||||||
# Shows: "Found in-progress epic processing. Resume? [Y/n]"
|
|
||||||
# Continues from last completed story
|
|
||||||
```
|
|
||||||
|
|
||||||
## Error Handling
|
|
||||||
|
|
||||||
### Story Failures
|
|
||||||
|
|
||||||
**With `halt_on_error: false` (default):**
|
|
||||||
```
|
|
||||||
Story 2.3 fails
|
|
||||||
→ Logged in failed_stories
|
|
||||||
→ Continue to Story 2.4
|
|
||||||
→ Report failures at end
|
|
||||||
```
|
|
||||||
|
|
||||||
**With `halt_on_error: true`:**
|
|
||||||
```
|
|
||||||
Story 2.3 fails
|
|
||||||
→ Stop processing immediately
|
|
||||||
→ Report error
|
|
||||||
→ User fixes manually
|
|
||||||
→ Resume from Story 2.3
|
|
||||||
```
|
|
||||||
|
|
||||||
### Retry Logic
|
|
||||||
|
|
||||||
Each story gets {{max_retry_per_story}} attempts (default: 2):
|
|
||||||
|
|
||||||
```
|
|
||||||
Story 2.5 fails
|
|
||||||
→ Retry 1/2: Attempt again
|
|
||||||
→ Retry 2/2: Attempt again
|
|
||||||
→ Max retries: Mark failed, continue to next story
|
|
||||||
```
|
|
||||||
|
|
||||||
## Git Integration
|
|
||||||
|
|
||||||
### Automatic Branching
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Autonomous epic creates:
|
|
||||||
Branch: auto-epic-{epic_num}
|
|
||||||
|
|
||||||
# Example:
|
|
||||||
/autonomous-epic 3
|
|
||||||
→ Creates branch: auto-epic-3
|
|
||||||
```
|
|
||||||
|
|
||||||
### Commits per Story
|
|
||||||
|
|
||||||
Each story gets its own commit:
|
|
||||||
|
|
||||||
```
|
|
||||||
feat(epic-2): complete story 2-1-user-registration
|
|
||||||
feat(epic-2): complete story 2-2-user-login
|
|
||||||
feat(epic-2): complete story 2-3-password-reset
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
### Merge When Done
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# After autonomous epic completes:
|
|
||||||
git checkout main
|
|
||||||
git merge auto-epic-2
|
|
||||||
|
|
||||||
# Or create PR:
|
|
||||||
gh pr create --base main --head auto-epic-2 --title "Epic 2: User Management"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Completion Report
|
|
||||||
|
|
||||||
Generated at: `{{story_dir}}/epic-{{epic_num}}-completion-report.md`
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
# Epic 2 Completion Report
|
|
||||||
|
|
||||||
**Generated:** 2025-01-18
|
|
||||||
**Processing Time:** 5h 23m
|
|
||||||
**Success Rate:** 100% (8/8 stories)
|
|
||||||
|
|
||||||
## Story Summary
|
|
||||||
|
|
||||||
| Story | Status | Time | Files | Coverage | Issues |
|
|
||||||
|-------|--------|------|-------|----------|--------|
|
|
||||||
| 2.1 | ✅ Done | 42m | 6 | 95% | 0 |
|
|
||||||
| 2.2 | ✅ Done | 38m | 5 | 92% | 1 |
|
|
||||||
| 2.3 | ✅ Done | 45m | 7 | 96% | 2 |
|
|
||||||
...
|
|
||||||
|
|
||||||
## Epic Statistics
|
|
||||||
|
|
||||||
- Total files: 47 (35 created, 12 modified)
|
|
||||||
- Average coverage: 94%
|
|
||||||
- Code review issues: 6 (all resolved)
|
|
||||||
- Total commits: 8
|
|
||||||
|
|
||||||
## Quality Metrics
|
|
||||||
|
|
||||||
- Stories passing first time: 6/8 (75%)
|
|
||||||
- Average fix iterations: 0.25
|
|
||||||
- Zero critical issues escaped
|
|
||||||
|
|
||||||
## Git Branch
|
|
||||||
|
|
||||||
Branch: auto-epic-2
|
|
||||||
Ready to merge
|
|
||||||
|
|
||||||
## Recommendations
|
|
||||||
|
|
||||||
- All stories met acceptance criteria
|
|
||||||
- Test coverage exceeds 90% target
|
|
||||||
- Code review found minimal issues
|
|
||||||
- Ready for human review and merge
|
|
||||||
```
|
|
||||||
|
|
||||||
## Best Practices
|
|
||||||
|
|
||||||
### 1. Epic Sizing
|
|
||||||
|
|
||||||
**Recommended epic sizes:**
|
|
||||||
- **Small (3-5 stories):** Can complete in single session
|
|
||||||
- **Medium (6-10 stories):** Overnight processing ideal
|
|
||||||
- **Large (11+ stories):** Consider breaking into sub-epics
|
|
||||||
|
|
||||||
### 2. Choosing dev-story vs super-dev-story
|
|
||||||
|
|
||||||
**Use super-dev-story for:**
|
|
||||||
- Security-critical epics
|
|
||||||
- Customer-facing features
|
|
||||||
- Complex business logic
|
|
||||||
- High-stakes production releases
|
|
||||||
|
|
||||||
**Use dev-story for:**
|
|
||||||
- Internal tools
|
|
||||||
- Experimental features
|
|
||||||
- Non-critical improvements
|
|
||||||
- When speed matters more than extra validation
|
|
||||||
|
|
||||||
### 3. Monitoring Progress
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# In another terminal, watch progress:
|
|
||||||
watch -n 10 'cat _bmad-output/implementation-artifacts/.autonomous-epic-progress.yaml'
|
|
||||||
|
|
||||||
# Or tail completion report:
|
|
||||||
tail -f _bmad-output/implementation-artifacts/epic-2-completion-report.md
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Interruption Handling
|
|
||||||
|
|
||||||
**Safe to interrupt:**
|
|
||||||
- Ctrl+C between stories (progress saved)
|
|
||||||
- Terminal disconnect (can resume)
|
|
||||||
- Timeout (restarts from last completed)
|
|
||||||
|
|
||||||
**Not safe to interrupt:**
|
|
||||||
- During story development (may leave partial work)
|
|
||||||
- During git commit (may corrupt repository)
|
|
||||||
|
|
||||||
### 5. Resource Management
|
|
||||||
|
|
||||||
**Token budgets:**
|
|
||||||
- Set LLM API limits to prevent runaway costs
|
|
||||||
- Monitor token usage in real-time
|
|
||||||
- Consider using dev-story for token savings
|
|
||||||
|
|
||||||
**Time management:**
|
|
||||||
- Run overnight for large epics
|
|
||||||
- Schedule during low-activity periods
|
|
||||||
- Use CI/CD for completely automated runs
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
### "Autonomous epic stuck on one story"
|
|
||||||
|
|
||||||
**Cause:** Story has issues preventing completion
|
|
||||||
**Solution:**
|
|
||||||
- Check progress file for current_story
|
|
||||||
- Review that story's dev log
|
|
||||||
- May need manual intervention
|
|
||||||
|
|
||||||
### "Epic processing stopped mid-story"
|
|
||||||
|
|
||||||
**Cause:** Interruption during development
|
|
||||||
**Solution:**
|
|
||||||
- Check progress file status
|
|
||||||
- Resume with `/autonomous-epic {epic_num}`
|
|
||||||
- May need to manually clean up partial work
|
|
||||||
|
|
||||||
### "Too many token failures"
|
|
||||||
|
|
||||||
**Cause:** Hitting API rate limits
|
|
||||||
**Solution:**
|
|
||||||
- Reduce concurrent processing
|
|
||||||
- Use dev-story instead of super-dev-story
|
|
||||||
- Increase API tier/limits
|
|
||||||
|
|
||||||
### "Git merge conflicts after autonomous epic"
|
|
||||||
|
|
||||||
**Cause:** Other changes merged to main during processing
|
|
||||||
**Solution:**
|
|
||||||
- Rebase auto-epic branch on latest main
|
|
||||||
- Resolve conflicts manually
|
|
||||||
- This is expected for long-running processes
|
|
||||||
|
|
||||||
## Safety Features
|
|
||||||
|
|
||||||
### Max Retry Protection
|
|
||||||
|
|
||||||
Prevents infinite loops:
|
|
||||||
- Each story: max 2 retries (default)
|
|
||||||
- After max retries: skip to next story
|
|
||||||
- Report failures at end
|
|
||||||
|
|
||||||
### Progress Checkpoints
|
|
||||||
|
|
||||||
After each story:
|
|
||||||
- Progress file updated
|
|
||||||
- Git commit created (if enabled)
|
|
||||||
- Can resume from this point
|
|
||||||
|
|
||||||
### Fail-Safe Modes
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# Conservative (halt on first problem):
|
|
||||||
halt_on_error: true
|
|
||||||
max_retry_per_story: 0
|
|
||||||
|
|
||||||
# Aggressive (push through everything):
|
|
||||||
halt_on_error: false
|
|
||||||
max_retry_per_story: 3
|
|
||||||
|
|
||||||
# Balanced (default):
|
|
||||||
halt_on_error: false
|
|
||||||
max_retry_per_story: 2
|
|
||||||
```
|
|
||||||
|
|
||||||
## Use Cases
|
|
||||||
|
|
||||||
### Use Case 1: Overnight Epic Completion
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Before leaving office:
|
|
||||||
/autonomous-epic 4
|
|
||||||
|
|
||||||
# Next morning:
|
|
||||||
# → Epic 100% complete
|
|
||||||
# → All stories developed
|
|
||||||
# → All commits created
|
|
||||||
# → Ready for review
|
|
||||||
```
|
|
||||||
|
|
||||||
### Use Case 2: CI/CD Integration
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# In GitHub Actions:
|
|
||||||
name: Auto Epic Processing
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
epic_number:
|
|
||||||
required: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
process-epic:
|
|
||||||
steps:
|
|
||||||
- run: npx bmad-method@alpha autonomous-epic ${{ inputs.epic_number }}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Use Case 3: Sprint Automation
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Monday: Plan all epics for sprint
|
|
||||||
/sprint-planning
|
|
||||||
|
|
||||||
# Tuesday: Auto-process Epic 1
|
|
||||||
/autonomous-epic 1
|
|
||||||
|
|
||||||
# Wednesday: Auto-process Epic 2
|
|
||||||
/autonomous-epic 2
|
|
||||||
|
|
||||||
# Thursday-Friday: Human review and merge
|
|
||||||
```
|
|
||||||
|
|
||||||
## Comparison to Manual Processing
|
|
||||||
|
|
||||||
### Manual Workflow
|
|
||||||
|
|
||||||
```
|
|
||||||
Day 1: Create Story 2.1 → Review → Approve (30m)
|
|
||||||
Day 2: Develop Story 2.1 → Test → Review → Fix → Done (4h)
|
|
||||||
Day 3: Create Story 2.2 → Review → Approve (30m)
|
|
||||||
Day 4: Develop Story 2.2 → Test → Review → Fix → Done (3h)
|
|
||||||
...
|
|
||||||
|
|
||||||
8 stories = 16 days minimum (with human bottlenecks)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Autonomous Workflow
|
|
||||||
|
|
||||||
```
|
|
||||||
Day 1 (evening): /autonomous-epic 2
|
|
||||||
Day 2 (morning): Epic complete, review ready
|
|
||||||
|
|
||||||
8 stories = 6 hours machine time + 1-2 days human review
|
|
||||||
```
|
|
||||||
|
|
||||||
**Savings:** ~14 days, 90% reduction in calendar time
|
|
||||||
|
|
||||||
## Limitations
|
|
||||||
|
|
||||||
### What Autonomous Epic CAN'T Do
|
|
||||||
|
|
||||||
- **Complex requirement clarifications** - Needs human for ambiguous requirements
|
|
||||||
- **Architectural decisions** - Major tech choices need human input
|
|
||||||
- **UX design decisions** - Visual/interaction design needs human creativity
|
|
||||||
- **Business logic validation** - Domain expertise often needs human verification
|
|
||||||
|
|
||||||
### When to Use Manual Processing
|
|
||||||
|
|
||||||
- First epic in new project (learning patterns)
|
|
||||||
- Experimental features (high uncertainty)
|
|
||||||
- Stories requiring extensive research
|
|
||||||
- Complex integrations with unknowns
|
|
||||||
|
|
||||||
## Monitoring Output
|
|
||||||
|
|
||||||
### Real-Time Progress
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Terminal output shows:
|
|
||||||
Story 3/8: 2-3-password-reset
|
|
||||||
Pre-gap: ✅ 2 tasks refined
|
|
||||||
Development: ⏳ 2/6 tasks complete
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
### Progress File
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Check progress programmatically:
|
|
||||||
cat _bmad-output/implementation-artifacts/.autonomous-epic-progress.yaml
|
|
||||||
|
|
||||||
# Example:
|
|
||||||
epic_num: 2
|
|
||||||
status: running
|
|
||||||
completed_stories: [2-1-user-registration, 2-2-user-login]
|
|
||||||
current_story: 2-3-password-reset
|
|
||||||
```
|
|
||||||
|
|
||||||
### Completion Report
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Generated when epic completes:
|
|
||||||
cat _bmad-output/implementation-artifacts/epic-2-completion-report.md
|
|
||||||
```
|
|
||||||
|
|
||||||
## Advanced: Batch Epic Processing
|
|
||||||
|
|
||||||
Process multiple epics:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Sequential processing:
|
|
||||||
/autonomous-epic 1
|
|
||||||
/autonomous-epic 2
|
|
||||||
/autonomous-epic 3
|
|
||||||
|
|
||||||
# Or create meta-workflow for parallel processing
|
|
||||||
```
|
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
### Q: Can I stop autonomous processing mid-epic?
|
|
||||||
|
|
||||||
**A:** Yes, Ctrl+C between stories. Progress saved. Resume with `/autonomous-epic {num}`
|
|
||||||
|
|
||||||
### Q: What if a story fails?
|
|
||||||
|
|
||||||
**A:** Logged in failed_stories. By default, continues to next story. Fix manually later.
|
|
||||||
|
|
||||||
### Q: Does this work with existing stories?
|
|
||||||
|
|
||||||
**A:** Yes! Picks up any ready-for-dev or in-progress stories and develops them.
|
|
||||||
|
|
||||||
### Q: Can I customize per story?
|
|
||||||
|
|
||||||
**A:** Not currently. All stories in epic use same settings. Manual development for custom needs.
|
|
||||||
|
|
||||||
### Q: What about dependencies between stories?
|
|
||||||
|
|
||||||
**A:** Stories processed sequentially, so Story 2.2 can leverage Story 2.1's code (gap analysis handles this!)
|
|
||||||
|
|
||||||
### Q: Token budget concerns?
|
|
||||||
|
|
||||||
**A:** Use dev-story instead of super-dev-story to reduce token usage by ~30%
|
|
||||||
|
|
||||||
## See Also
|
|
||||||
|
|
||||||
- [super-dev-story](../super-dev-story/) - Enhanced quality workflow
|
|
||||||
- [dev-story](../dev-story/) - Standard development workflow
|
|
||||||
- [gap-analysis](../gap-analysis/) - Standalone audit tool
|
|
||||||
- [Autonomous Epic Concept](../../../../docs/autonomous-epic-processing.md) - Vision document
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Autonomous Epic Processing: "Do Epic 4 for me" is now reality** ✨
|
|
||||||
|
|
@ -1,332 +0,0 @@
|
||||||
<workflow>
|
|
||||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
|
||||||
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
|
||||||
<critical>Communicate all responses in {communication_language}</critical>
|
|
||||||
<critical>🤖 AUTONOMOUS EPIC PROCESSING - Full automation of epic completion!</critical>
|
|
||||||
<critical>This workflow orchestrates super-dev-pipeline for each story in an epic</critical>
|
|
||||||
<critical>TASK-BASED COMPLETION: A story is ONLY complete when it has ZERO unchecked tasks (- [ ])</critical>
|
|
||||||
|
|
||||||
<!-- AUTONOMOUS MODE INSTRUCTIONS - READ THESE CAREFULLY -->
|
|
||||||
<critical>⚡ AUTONOMOUS MODE: When auto_accept_gap_analysis=true in workflow.yaml, you MUST:
|
|
||||||
- NEVER ask the user to approve gap analysis refinements
|
|
||||||
- AUTOMATICALLY accept all gap analysis proposals
|
|
||||||
- PROCEED immediately without waiting for user input on gap analysis
|
|
||||||
- Only ask for user input at the START of the workflow (epic selection, Y/D/n choice)
|
|
||||||
</critical>
|
|
||||||
<critical>⚡ INVOKING SUB-WORKFLOWS: When you see invoke-workflow, you must:
|
|
||||||
1. Load the referenced workflow.yaml file
|
|
||||||
2. Load its instructions.xml file
|
|
||||||
3. Execute that workflow completely
|
|
||||||
4. Return to this workflow and continue
|
|
||||||
</critical>
|
|
||||||
|
|
||||||
<step n="1" goal="Initialize and validate epic">
|
|
||||||
<check if="{{validation_only}} == true">
|
|
||||||
<output>🔍 **Epic Status Validation Mode**
|
|
||||||
|
|
||||||
This will:
|
|
||||||
1. Scan ALL story files for task completion (count checkboxes)
|
|
||||||
2. Validate story file quality (>=10KB, proper task lists)
|
|
||||||
3. Update sprint-status.yaml to match REALITY (task completion)
|
|
||||||
4. Report suspicious stories (poor quality, false positives)
|
|
||||||
|
|
||||||
**NO code will be generated** - validation only.
|
|
||||||
</output>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="{{validation_only}} != true">
|
|
||||||
<output>🤖 **Autonomous Epic Processing**
|
|
||||||
|
|
||||||
This workflow will automatically:
|
|
||||||
1. Develop each story using super-dev-pipeline
|
|
||||||
2. **Verify completion** by checking ALL tasks are done (- [x])
|
|
||||||
3. Commit and push after each story (integrated in super-dev-pipeline)
|
|
||||||
4. Generate epic completion report
|
|
||||||
|
|
||||||
**super-dev-pipeline includes:**
|
|
||||||
- Pre-gap analysis (understand existing code)
|
|
||||||
- Smart task batching (group related work)
|
|
||||||
- Implementation (systematic execution)
|
|
||||||
- **Post-implementation validation** (catches false positives!)
|
|
||||||
- Code review (adversarial, multi-agent)
|
|
||||||
- Completion (commit + push)
|
|
||||||
|
|
||||||
**Key Improvement:** Stories in "review" status with unchecked tasks
|
|
||||||
WILL be processed - we check actual task completion, not just status!
|
|
||||||
</output>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="{{epic_num}} provided">
|
|
||||||
<action>Use provided epic number</action>
|
|
||||||
<goto anchor="validate_epic" />
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<ask>Enter epic number to process (e.g., "2" or "epic-3"), or [q] to quit:</ask>
|
|
||||||
|
|
||||||
<check if="user provides epic number">
|
|
||||||
<action>Parse epic number from input</action>
|
|
||||||
<goto anchor="validate_epic" />
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="user says q">
|
|
||||||
<output>👋 Autonomous epic processing cancelled.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<anchor id="validate_epic" />
|
|
||||||
|
|
||||||
<action>Load {{sprint_status}} file</action>
|
|
||||||
<action>Find epic-{{epic_num}} entry and all story entries for this epic</action>
|
|
||||||
|
|
||||||
<!-- TASK-BASED ANALYSIS: Scan actual story files for unchecked tasks -->
|
|
||||||
<action>For each story in epic:
|
|
||||||
1. Read the story file from {{story_dir}}/{{story_key}}.md
|
|
||||||
2. Check file exists (if missing, mark story as "backlog")
|
|
||||||
3. Check file size (if <10KB, flag as poor quality)
|
|
||||||
4. Count unchecked tasks: grep -c "^- \[ \]" or regex match "- \[ \]"
|
|
||||||
5. Count checked tasks: grep -c "^- \[x\]" or regex match "- \[x\]"
|
|
||||||
6. Count total tasks (unchecked + checked)
|
|
||||||
7. Calculate completion rate: (checked / total * 100)
|
|
||||||
8. Categorize story:
|
|
||||||
- "truly_done": unchecked_tasks=0 AND file_size>=10KB AND total_tasks>=5
|
|
||||||
- "in_progress": unchecked_tasks>0 AND checked_tasks>0
|
|
||||||
- "ready_for_dev": unchecked_tasks=total_tasks (nothing checked yet)
|
|
||||||
- "poor_quality": file_size<10KB OR total_tasks<5 (needs regeneration)
|
|
||||||
- "needs_work": unchecked_tasks > 0 (regardless of status)
|
|
||||||
- "backlog": status=backlog (file may not exist yet)
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
📊 **Epic {{epic_num}} Status (Task-Based Analysis)**
|
|
||||||
|
|
||||||
Total stories: {{total_story_count}}
|
|
||||||
|
|
||||||
**By Actual Task Completion:**
|
|
||||||
- ✅ Truly Done: {{truly_done_count}} (all tasks checked, will skip)
|
|
||||||
- 🔧 Needs Work: {{needs_work_count}} (has unchecked tasks)
|
|
||||||
{{list_needs_work_with_task_counts}}
|
|
||||||
- 📝 Backlog: {{backlog_count}} (will create + develop)
|
|
||||||
|
|
||||||
**By Status (for reference):**
|
|
||||||
- done: {{done_status_count}}
|
|
||||||
- review: {{review_status_count}}
|
|
||||||
- in-progress: {{inprogress_status_count}}
|
|
||||||
- ready-for-dev: {{ready_status_count}}
|
|
||||||
- backlog: {{backlog_status_count}}
|
|
||||||
|
|
||||||
**Work Remaining:** {{work_count}} stories with {{total_unchecked_tasks}} unchecked tasks
|
|
||||||
**Estimated Time:** {{estimated_hours}} hours
|
|
||||||
**Estimated Tokens:** ~{{estimated_tokens}}K
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<ask>**Proceed with autonomous processing?**
|
|
||||||
|
|
||||||
[Y] Yes - Use super-dev-pipeline (step-file architecture, brownfield-compatible)
|
|
||||||
[n] No - Cancel
|
|
||||||
|
|
||||||
Note: super-dev-pipeline uses disciplined step-file execution with smart batching!
|
|
||||||
</ask>
|
|
||||||
|
|
||||||
<check if="user says Y">
|
|
||||||
<action>Set {{use_super_dev_pipeline}} = true</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="user says n">
|
|
||||||
<output>❌ Cancelled</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step n="2" goal="Initialize tracking (optionally create branch)">
|
|
||||||
<action>Get current branch name and store as {{current_branch}}</action>
|
|
||||||
|
|
||||||
<check if="{{create_epic_branch}} == true">
|
|
||||||
<action>Create new branch: auto-epic-{{epic_num}}</action>
|
|
||||||
<output>📝 Created branch: auto-epic-{{epic_num}}</output>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="{{create_epic_branch}} == false">
|
|
||||||
<output>📝 Staying on current branch: {{current_branch}} (parallel epic mode)</output>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<!-- Backwards compatibility: Check for both new and legacy progress file formats -->
|
|
||||||
<action>Check for existing progress file:
|
|
||||||
1. New format: .autonomous-epic-{{epic_num}}-progress.yaml
|
|
||||||
2. Legacy format: .autonomous-epic-progress-epic-{{epic_num}}.yaml
|
|
||||||
Set {{progress_file_path}} to whichever exists, or new format if neither exist
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<check if="progress file exists">
|
|
||||||
<output>📋 Found existing progress file: {{progress_file_path}}</output>
|
|
||||||
<output>⚠️ Resuming from last saved state</output>
|
|
||||||
<action>Load existing progress from {{progress_file_path}}</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="progress file does NOT exist">
|
|
||||||
<output>📋 Creating new progress file: .autonomous-epic-{{epic_num}}-progress.yaml</output>
|
|
||||||
<action>Initialize progress tracking file at: .autonomous-epic-{{epic_num}}-progress.yaml
|
|
||||||
- epic_num
|
|
||||||
- started timestamp
|
|
||||||
- total_stories
|
|
||||||
- completed_stories: []
|
|
||||||
- current_story: null
|
|
||||||
- status: running
|
|
||||||
</action>
|
|
||||||
</check>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step n="3" goal="Process all stories in epic">
|
|
||||||
<critical>🔄 STORY LOOP - Create and develop each story until ALL tasks complete</critical>
|
|
||||||
|
|
||||||
<action>Build ordered list of stories needing work:
|
|
||||||
1. All stories with unchecked tasks (regardless of status)
|
|
||||||
2. All backlog stories
|
|
||||||
3. Sort by story number (ascending)
|
|
||||||
</action>
|
|
||||||
<action>Initialize counters: success=0, failure=0</action>
|
|
||||||
|
|
||||||
<!-- STORY LOOP -->
|
|
||||||
<loop foreach="{{stories_needing_work}}">
|
|
||||||
<action>Set {{current_story}}</action>
|
|
||||||
<action>Read story file from {{story_dir}}/{{current_story.key}}.md</action>
|
|
||||||
|
|
||||||
<check if="file not found">
|
|
||||||
<output> ❌ Story file missing: {{current_story.key}}.md</output>
|
|
||||||
<action>Mark story as "backlog" in sprint-status.yaml</action>
|
|
||||||
<action>Continue to next story</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<action>Get file size in KB</action>
|
|
||||||
<action>Count unchecked tasks: grep -c "^- \[ \]"</action>
|
|
||||||
<action>Count checked tasks: grep -c "^- \[x\]"</action>
|
|
||||||
<action>Count total tasks</action>
|
|
||||||
<action>Calculate completion_rate = (checked / total * 100)</action>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
Story {{counter}}/{{work_count}}: {{current_story.key}}
|
|
||||||
Size: {{file_size_kb}}KB | Tasks: {{checked}}/{{total}} ({{completion_rate}}%)
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<!-- VALIDATION-ONLY MODE: Just update status, don't implement -->
|
|
||||||
<check if="{{validation_only}} == true">
|
|
||||||
<action>Determine correct status:
|
|
||||||
IF unchecked_tasks == 0 AND file_size >= 10KB AND total_tasks >= 5
|
|
||||||
→ correct_status = "done"
|
|
||||||
ELSE IF unchecked_tasks > 0 AND checked_tasks > 0
|
|
||||||
→ correct_status = "in-progress"
|
|
||||||
ELSE IF unchecked_tasks == total_tasks
|
|
||||||
→ correct_status = "ready-for-dev"
|
|
||||||
ELSE IF file_size < 10KB OR total_tasks < 5
|
|
||||||
→ correct_status = "ready-for-dev" (needs regeneration)
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action>Update story status in sprint-status.yaml to {{correct_status}}</action>
|
|
||||||
|
|
||||||
<check if="file_size < 10KB OR total_tasks < 5">
|
|
||||||
<output> ⚠️ POOR QUALITY - File too small or missing tasks (needs /create-story regeneration)</output>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<action>Continue to next story (skip super-dev-pipeline)</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<!-- NORMAL MODE: Run super-dev-pipeline -->
|
|
||||||
<check if="{{validation_only}} != true">
|
|
||||||
<!-- PROCESS STORY WITH SUPER-DEV-PIPELINE -->
|
|
||||||
<check if="{{unchecked_count}} > 0 OR status == 'backlog'">
|
|
||||||
<output>💻 Processing story with super-dev-pipeline ({{unchecked_count}} tasks remaining)...</output>
|
|
||||||
|
|
||||||
<try>
|
|
||||||
<invoke-workflow path="{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline/workflow.yaml">
|
|
||||||
<input name="story_file" value="{{story_dir}}/{{current_story.key}}.md" />
|
|
||||||
<input name="mode" value="batch" />
|
|
||||||
<note>Full lifecycle: pre-gap → implement (batched) → post-validate → review → commit</note>
|
|
||||||
</invoke-workflow>
|
|
||||||
|
|
||||||
<!-- super-dev-pipeline handles verification internally, just check final status -->
|
|
||||||
<output>✅ super-dev-pipeline completed</output>
|
|
||||||
|
|
||||||
<!-- VERIFY COMPLETION: Re-check for unchecked tasks -->
|
|
||||||
<action>Re-read story file and count unchecked tasks</action>
|
|
||||||
|
|
||||||
<check if="{{remaining_unchecked}} > 0">
|
|
||||||
<output>⚠️ Story still has {{remaining_unchecked}} unchecked tasks after pipeline</output>
|
|
||||||
<action>Log incomplete tasks for review</action>
|
|
||||||
<action>Mark as partial success</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<check if="{{remaining_unchecked}} == 0">
|
|
||||||
<output>✅ Story complete - all tasks checked!</output>
|
|
||||||
<action>Update story status to "done" in sprint-status.yaml</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<action>Increment success_count</action>
|
|
||||||
<action>Update progress file: {{progress_file_path}}</action>
|
|
||||||
</try>
|
|
||||||
|
|
||||||
<catch>
|
|
||||||
<output>❌ super-dev-pipeline failed: {{error}}</output>
|
|
||||||
<action>Add to failed_stories with error details</action>
|
|
||||||
<action>Increment failure_count</action>
|
|
||||||
</catch>
|
|
||||||
</check>
|
|
||||||
</check> <!-- Close validation_only != true check -->
|
|
||||||
|
|
||||||
<output>Progress: {{success_count}} ✅ | {{failure_count}} ❌ | {{remaining}} pending</output>
|
|
||||||
</loop>
|
|
||||||
|
|
||||||
<action>Update progress file status to complete: {{progress_file_path}}</action>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step n="4" goal="Epic completion and reporting">
|
|
||||||
<!-- Final verification: scan all stories for unchecked tasks -->
|
|
||||||
<action>Re-scan all epic stories for unchecked tasks</action>
|
|
||||||
<action>Calculate: total_remaining_tasks across all stories</action>
|
|
||||||
|
|
||||||
<output>
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
🎉 EPIC {{epic_num}} PROCESSING COMPLETE!
|
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
||||||
|
|
||||||
**Results:**
|
|
||||||
✅ Stories processed: {{success_count}}/{{total_count}}
|
|
||||||
{{if_failures}}❌ Stories failed: {{failure_count}}{{endif}}
|
|
||||||
|
|
||||||
**Task Completion:**
|
|
||||||
- Total tasks in epic: {{total_tasks}}
|
|
||||||
- Completed: {{completed_tasks}} ✅
|
|
||||||
- Remaining: {{remaining_tasks}} ⏳
|
|
||||||
|
|
||||||
**Branch:** {{current_branch}}
|
|
||||||
**All changes committed**
|
|
||||||
|
|
||||||
{{if_all_tasks_complete}}
|
|
||||||
✅ **All tasks complete! Epic {{epic_num}} marked done in sprint-status.yaml**
|
|
||||||
{{endif}}
|
|
||||||
|
|
||||||
{{if_tasks_remaining}}
|
|
||||||
⚠️ **{{remaining_tasks}} tasks still unchecked - epic NOT marked complete**
|
|
||||||
Stories with remaining work:
|
|
||||||
{{list_incomplete_stories}}
|
|
||||||
{{endif}}
|
|
||||||
|
|
||||||
**Next Steps:**
|
|
||||||
1. Review the work on branch {{current_branch}}
|
|
||||||
2. Run human code review
|
|
||||||
3. Merge when approved
|
|
||||||
|
|
||||||
{{if_failures}}
|
|
||||||
**Failed Stories Need Attention:**
|
|
||||||
{{list_failed_stories}}
|
|
||||||
{{endif}}
|
|
||||||
</output>
|
|
||||||
|
|
||||||
<check if="{{remaining_tasks}} == 0 AND {{failure_count}} == 0">
|
|
||||||
<action>Update sprint-status: epic-{{epic_num}} = "done"</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<action>Remove progress file: {{progress_file_path}}</action>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
</workflow>
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
name: autonomous-epic
|
|
||||||
description: "Autonomous epic processing using super-dev-pipeline - creates and develops all stories in an epic with minimal human intervention. Step-file architecture with smart batching!"
|
|
||||||
author: "BMad"
|
|
||||||
version: "3.0.0" # Upgraded to use super-dev-pipeline (works for both greenfield and brownfield)
|
|
||||||
|
|
||||||
# Critical variables from config
|
|
||||||
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
||||||
user_name: "{config_source}:user_name"
|
|
||||||
communication_language: "{config_source}:communication_language"
|
|
||||||
implementation_artifacts: "{config_source}:implementation_artifacts"
|
|
||||||
story_dir: "{implementation_artifacts}"
|
|
||||||
|
|
||||||
# Workflow components
|
|
||||||
installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/autonomous-epic"
|
|
||||||
instructions: "{installed_path}/instructions.xml"
|
|
||||||
progress_file: "{story_dir}/.autonomous-epic-{epic_num}-progress.yaml"
|
|
||||||
|
|
||||||
# Variables
|
|
||||||
epic_num: "" # User provides or auto-discover next epic
|
|
||||||
sprint_status: "{implementation_artifacts}/sprint-status.yaml"
|
|
||||||
project_context: "**/project-context.md"
|
|
||||||
validation_only: false # NEW: If true, only validate/fix status, don't implement
|
|
||||||
|
|
||||||
# Autonomous mode settings
|
|
||||||
autonomous_settings:
|
|
||||||
use_super_dev_pipeline: true # Use super-dev-pipeline workflow (step-file architecture)
|
|
||||||
pipeline_mode: "batch" # Run super-dev-pipeline in batch mode (unattended)
|
|
||||||
halt_on_error: false # Continue even if story fails
|
|
||||||
max_retry_per_story: 2 # Retry failed stories
|
|
||||||
create_git_commits: true # Commit after each story (handled by super-dev-pipeline)
|
|
||||||
create_epic_branch: false # When false, stay on current branch (good for parallel epics)
|
|
||||||
git_branch_prefix: "auto-epic-" # Branch name format: auto-epic-{epic_num} (only used if create_epic_branch=true)
|
|
||||||
|
|
||||||
# super-dev-pipeline benefits
|
|
||||||
super_dev_pipeline_features:
|
|
||||||
token_efficiency: "Step-file architecture prevents context bloat"
|
|
||||||
brownfield_support: "Works with existing codebases (unlike story-pipeline)"
|
|
||||||
includes:
|
|
||||||
- "Pre-gap analysis (understand what exists before starting)"
|
|
||||||
- "Smart batching (group related tasks)"
|
|
||||||
- "Implementation (systematic execution)"
|
|
||||||
- "Post-validation (verify changes work)"
|
|
||||||
- "Code review (adversarial, multi-agent)"
|
|
||||||
- "Completion (commit + push)"
|
|
||||||
quality_gates: "Same rigor as story-pipeline, works for brownfield"
|
|
||||||
checkpoint_resume: "Can resume from any step after failure"
|
|
||||||
|
|
||||||
# TASK-BASED COMPLETION SETTINGS (NEW)
|
|
||||||
# These settings ensure stories are truly complete, not just marked as such
|
|
||||||
completion_verification:
|
|
||||||
# Use task-based completion instead of status-based
|
|
||||||
# A story is ONLY complete when it has ZERO unchecked tasks (- [ ])
|
|
||||||
task_based_completion: true
|
|
||||||
|
|
||||||
# Include stories in "review" status if they have unchecked tasks
|
|
||||||
# This catches code review findings that were added but not implemented
|
|
||||||
process_review_with_unchecked: true
|
|
||||||
|
|
||||||
# Include stories in "done" status if they have unchecked tasks
|
|
||||||
# This catches stories incorrectly marked done
|
|
||||||
process_done_with_unchecked: true
|
|
||||||
|
|
||||||
# Verify completion after each story by re-scanning for unchecked tasks
|
|
||||||
verify_after_development: true
|
|
||||||
|
|
||||||
# Only mark epic as "done" if ALL stories have ZERO unchecked tasks
|
|
||||||
strict_epic_completion: true
|
|
||||||
|
|
||||||
standalone: true
|
|
||||||
|
|
||||||
web_bundle: false
|
|
||||||
|
|
@ -22,7 +22,7 @@ implementation_artifacts: "{config_source}:implementation_artifacts"
|
||||||
sprint_status: "{implementation_artifacts}/sprint-status.yaml"
|
sprint_status: "{implementation_artifacts}/sprint-status.yaml"
|
||||||
project_context: "**/project-context.md"
|
project_context: "**/project-context.md"
|
||||||
|
|
||||||
# Autonomous mode settings (passed from parent workflow like autonomous-epic)
|
# Autonomous mode settings (passed from parent workflow like batch-super-dev)
|
||||||
auto_accept_gap_analysis: false # When true, skip gap analysis approval prompt
|
auto_accept_gap_analysis: false # When true, skip gap analysis approval prompt
|
||||||
|
|
||||||
standalone: true
|
standalone: true
|
||||||
|
|
|
||||||
|
|
@ -61,9 +61,9 @@ Combines the best of both worlds:
|
||||||
bmad super-dev-pipeline
|
bmad super-dev-pipeline
|
||||||
```
|
```
|
||||||
|
|
||||||
### From autonomous-epic
|
### From batch-super-dev
|
||||||
```bash
|
```bash
|
||||||
bmad autonomous-epic
|
bmad batch-super-dev
|
||||||
# Automatically uses super-dev-pipeline for each story
|
# Automatically uses super-dev-pipeline for each story
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -116,7 +116,7 @@ Step-file architecture enforces:
|
||||||
**Use super-dev-pipeline when:**
|
**Use super-dev-pipeline when:**
|
||||||
- Working with existing codebase (brownfield)
|
- Working with existing codebase (brownfield)
|
||||||
- Need vibe-coding prevention
|
- Need vibe-coding prevention
|
||||||
- Running autonomous-epic
|
- Running batch-super-dev
|
||||||
- Token counts will be high
|
- Token counts will be high
|
||||||
- Want disciplined execution
|
- Want disciplined execution
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ Initialize the super-dev-pipeline:
|
||||||
### 1. Detect Execution Mode
|
### 1. Detect Execution Mode
|
||||||
|
|
||||||
Check if running in batch or interactive mode:
|
Check if running in batch or interactive mode:
|
||||||
- Batch mode: Invoked from autonomous-epic
|
- Batch mode: Invoked from batch-super-dev
|
||||||
- Interactive mode: User-initiated
|
- Interactive mode: User-initiated
|
||||||
|
|
||||||
Set `{mode}` variable.
|
Set `{mode}` variable.
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ Features:
|
||||||
- User approval at quality gates
|
- User approval at quality gates
|
||||||
- Can pause and resume
|
- Can pause and resume
|
||||||
|
|
||||||
### Batch Mode (For autonomous-epic)
|
### Batch Mode (For batch-super-dev)
|
||||||
```bash
|
```bash
|
||||||
bmad super-dev-pipeline --batch
|
bmad super-dev-pipeline --batch
|
||||||
```
|
```
|
||||||
|
|
@ -289,4 +289,4 @@ This workflow **prevents vibe coding** through:
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**super-dev-pipeline is the best of both worlds for autonomous-epic!**
|
**super-dev-pipeline is the best of both worlds for batch-super-dev!**
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ modes:
|
||||||
requires_approval: true
|
requires_approval: true
|
||||||
smart_batching: true # User can approve batching plan
|
smart_batching: true # User can approve batching plan
|
||||||
batch:
|
batch:
|
||||||
description: "Unattended execution for autonomous-epic"
|
description: "Unattended execution for batch-super-dev"
|
||||||
checkpoint_on_failure: true
|
checkpoint_on_failure: true
|
||||||
requires_approval: false
|
requires_approval: false
|
||||||
fail_fast: true
|
fail_fast: true
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ super_dev_settings:
|
||||||
fail_on_critical_issues: true
|
fail_on_critical_issues: true
|
||||||
max_fix_iterations: 3
|
max_fix_iterations: 3
|
||||||
|
|
||||||
# Autonomous mode settings (passed from parent workflow like autonomous-epic)
|
# Autonomous mode settings (passed from parent workflow like batch-super-dev)
|
||||||
auto_accept_gap_analysis: false # When true, skip gap analysis approval prompt
|
auto_accept_gap_analysis: false # When true, skip gap analysis approval prompt
|
||||||
|
|
||||||
standalone: true
|
standalone: true
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
<critical>The workflow execution engine is governed by: {project-root}/_bmad/core/tasks/workflow.xml</critical>
|
||||||
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
<critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
|
||||||
<critical>This is VALIDATION-ONLY mode - NO implementation, only status correction</critical>
|
<critical>This is VALIDATION-ONLY mode - NO implementation, only status correction</critical>
|
||||||
<critical>Uses same logic as autonomous-epic but READS instead of WRITES code</critical>
|
<critical>Uses same logic as batch-super-dev but READS instead of WRITES code</critical>
|
||||||
|
|
||||||
<step n="1" goal="Validate inputs and load epic">
|
<step n="1" goal="Validate inputs and load epic">
|
||||||
<action>Check if {{epic_num}} was provided</action>
|
<action>Check if {{epic_num}} was provided</action>
|
||||||
|
|
@ -96,7 +96,7 @@ Analyzing {{story_count}} story files...
|
||||||
<step n="4" goal="Check autonomous completion reports">
|
<step n="4" goal="Check autonomous completion reports">
|
||||||
<action>Search {{story_dir}} for files:
|
<action>Search {{story_dir}} for files:
|
||||||
- .epic-{{epic_num}}-completion-report.md
|
- .epic-{{epic_num}}-completion-report.md
|
||||||
- .autonomous-epic-{{epic_num}}-progress.yaml
|
- .batch-super-dev-{{epic_num}}-progress.yaml
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
<check if="autonomous report found">
|
<check if="autonomous report found">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue