sprint planning

This commit is contained in:
Brian Madison 2025-10-21 08:24:02 -05:00
parent b8db0806ed
commit 419043e704
29 changed files with 1919 additions and 39 deletions

1190
sample-epics-file.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -43,7 +43,7 @@ The heart of BMM - structured workflows for the four development phases:
- `story-ready` - Approve story for development (SM agent) - `story-ready` - Approve story for development (SM agent)
- `story-context` - Expertise injection (SM agent) - `story-context` - Expertise injection (SM agent)
- `dev-story` - Implementation (DEV agent) - `dev-story` - Implementation (DEV agent)
- `story-approved` - Mark story done (DEV agent) - `story-done` - Mark story done (DEV agent)
- `review-story` - Quality validation (DEV/SR agent) - `review-story` - Quality validation (DEV/SR agent)
- `correct-course` - Issue resolution - `correct-course` - Issue resolution
- `retrospective` - Continuous improvement - `retrospective` - Continuous improvement
@ -101,7 +101,7 @@ BACKLOG → TODO → IN PROGRESS → DONE
- **IN PROGRESS**: Single story approved for DEV to implement - **IN PROGRESS**: Single story approved for DEV to implement
- **DONE**: Completed stories with dates and points - **DONE**: Completed stories with dates and points
Agents never search for "next story" - they always read the exact story from the status file. Simple workflows (`story-ready`, `story-approved`) advance the queue automatically. Agents never search for "next story" - they always read the exact story from the status file. Simple workflows (`story-ready`, `story-done`) advance the queue automatically.
### Context Injection ### Context Injection

View File

@ -34,8 +34,8 @@ agent:
workflow: "{project-root}/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml" workflow: "{project-root}/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml"
description: "Execute Dev Story workflow, implementing tasks and tests, or performing updates to the story" description: "Execute Dev Story workflow, implementing tasks and tests, or performing updates to the story"
- trigger: story-approved - trigger: story-done
workflow: "{project-root}/bmad/bmm/workflows/4-implementation/story-approved/workflow.yaml" workflow: "{project-root}/bmad/bmm/workflows/4-implementation/story-done/workflow.yaml"
description: Mark story done after DoD complete description: Mark story done after DoD complete
- trigger: review - trigger: review

View File

@ -25,6 +25,10 @@ agent:
workflow: "{project-root}/bmad/bmm/workflows/workflow-status/workflow.yaml" workflow: "{project-root}/bmad/bmm/workflows/workflow-status/workflow.yaml"
description: Check workflow status and get recommendations description: Check workflow status and get recommendations
- trigger: sprint-planning
workflow: "{project-root}/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml"
description: Generate or update sprint-status.yaml from epic files
- trigger: create-story - trigger: create-story
workflow: "{project-root}/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml" workflow: "{project-root}/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml"
description: Create a Draft Story with Context description: Create a Draft Story with Context

View File

@ -0,0 +1,221 @@
# Phase 4: Implementation
## Overview
Phase 4 is where planning transitions into actual development. This phase manages the iterative implementation of stories defined in the epic files, tracking their progress through a well-defined status workflow.
## Status Definitions
### Epic Status
Epics progress through a simple two-state flow:
| Status | Description | Next Status |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| **backlog** | Epic exists in epic file but technical context has not been created | contexted |
| **contexted** | Epic technical context has been created via `epic-tech-context` workflow. This is a prerequisite before any stories in the epic can be drafted. | - |
**File Indicators:**
- `backlog`: No `epic-{n}-context.md` file exists
- `contexted`: `{output_folder}/epic-{n}-context.md` file exists
### Story Status
Stories progress through a six-state flow representing their journey from idea to implementation:
| Status | Description | Set By | Next Status |
| ----------------- | ---------------------------------------------------------------------------------- | ------------- | ------------- |
| **backlog** | Story only exists in the epic file, no work has begun | Initial state | drafted |
| **drafted** | Story file has been created via `create-story` workflow | SM Agent | ready-for-dev |
| **ready-for-dev** | Story has been drafted, approved, and context created via `story-context` workflow | SM Agent | in-progress |
| **in-progress** | Developer is actively implementing the story | Dev Agent | review |
| **review** | Implementation complete, under SM review via `review-story` workflow | Dev Agent | done |
| **done** | Story has been reviewed and completed | Dev Agent | - |
**File Indicators:**
- `backlog`: No story file exists
- `drafted`: `{story_dir}/{story-key}.md` file exists (e.g., `1-1-user-auth.md`)
- `ready-for-dev`: Both story file and context exist (e.g., `1-1-user-auth-context.md`)
- `in-progress`, `review`, `done`: Manual status updates in sprint-status.yaml
### Retrospective Status
Optional retrospectives can be completed after an epic:
| Status | Description |
| ------------- | -------------------------------------------------- |
| **optional** | Retrospective can be completed but is not required |
| **completed** | Retrospective has been completed |
## Status Transitions
### Epic Flow
```mermaid
graph LR
backlog --> contexted[contexted via epic-tech-context]
```
### Story Flow
```mermaid
graph LR
backlog --> drafted[drafted via create-story]
drafted --> ready[ready-for-dev via story-context]
ready --> progress[in-progress - dev starts]
progress --> review[review via review-story]
review --> done[done - dev completes]
```
## Sprint Status Management
The `sprint-status.yaml` file is the single source of truth for tracking all work items. It contains:
- All epics with their current status
- All stories with their current status
- Retrospective placeholders for each epic
- Clear documentation of status definitions
### Example Sprint Status File
```yaml
development_status:
epic-1: contexted
1-1-project-foundation: done
1-2-app-shell: done
1-3-user-authentication: in-progress
1-4-plant-data-model: ready-for-dev
1-5-add-plant-manual: drafted
1-6-photo-identification: backlog
1-7-plant-naming: backlog
epic-1-retrospective: optional
epic-2: backlog
2-1-personality-system: backlog
2-2-chat-interface: backlog
2-3-llm-integration: backlog
epic-2-retrospective: optional
```
## Workflows in Phase 4
### Core Workflows
| Workflow | Purpose | Updates Status |
| --------------------- | -------------------------------------------------- | ----------------------------------- |
| **sprint-planning** | Generate/update sprint-status.yaml from epic files | Auto-detects file-based statuses |
| **epic-tech-context** | Create technical context for an epic | epic: backlog → contexted |
| **create-story** | Draft a story from epics/PRD | story: backlog → drafted |
| **story-context** | Add implementation context to story | story: drafted → ready-for-dev |
| **dev-story** | Developer implements the story | story: ready-for-dev → in-progress |
| **review-story** | SM reviews implementation | story: in-progress → review |
| **retrospective** | Conduct epic retrospective | retrospective: optional → completed |
| **correct-course** | Course correction when needed | Various status updates |
### Sprint Planning Workflow
The `sprint-planning` workflow is the foundation of Phase 4. It:
1. **Parses all epic files** (`epic*.md` or `epics.md`)
2. **Extracts all epics and stories** maintaining their order
3. **Auto-detects current status** based on existing files:
- Checks for epic context files
- Checks for story files
- Checks for story context files
4. **Generates sprint-status.yaml** with current reality
5. **Preserves manual status updates** (won't downgrade statuses)
Run this workflow:
- Initially after Phase 3 completion
- After creating epic contexts
- Periodically to sync file-based status
- To verify current project state
### Workflow Guidelines
1. **Epic Context First**: Epics should be contexted before drafting their stories
2. **Flexible Parallelism**: Multiple stories can be in-progress based on team capacity
3. **Sequential Default**: Stories within an epic are typically worked in order
4. **Learning Transfer**: SM drafts next story after previous is done, incorporating learnings
5. **Review Flow**: Dev moves to review, SM reviews, Dev moves to done
## Agent Responsibilities
### SM (Scrum Master) Agent
- Run `sprint-planning` to generate initial status
- Create epic contexts (`epic-tech-context`)
- Draft stories (`create-story`)
- Create story contexts (`story-context`)
- Review completed work (`review-story`)
- Update status in sprint-status.yaml
### Developer Agent
- Check sprint-status.yaml for `ready-for-dev` stories
- Update status to `in-progress` when starting
- Implement stories (`dev-story`)
- Move to `review` when complete
- Address review feedback
- Update to `done` after approval
### Test Architect
- Monitor stories entering `review` status
- Track epic progress
- Identify when retrospectives needed
- Validate implementation quality
## Best Practices
1. **Always run sprint-planning first** to establish current state
2. **Update status immediately** as work progresses
3. **Check sprint-status.yaml** before starting any work
4. **Preserve learning** by drafting stories sequentially when possible
5. **Document decisions** in story and context files
## Naming Conventions
### Story File Naming
- Format: `{epic}-{story}-{kebab-title}.md`
- Example: `1-1-user-authentication.md`
- Avoids YAML float parsing issues (1.1 vs 1.10)
- Makes files self-descriptive
### Git Branch Naming
- Format: `feat/{epic}-{story}-{kebab-title}`
- Example: `feat/1-1-user-authentication`
- Consistent with story file naming
- Clean for branch management
## File Structure
```
{output_folder}/
├── sprint-status.yaml # Sprint status tracking
├── epic*.md or epics.md # Epic definitions
├── epic-1-context.md # Epic technical contexts
├── epic-2-context.md
└── stories/
├── 1-1-user-authentication.md # Story drafts
├── 1-1-user-authentication-context.md # Story contexts
├── 1-2-account-management.md
├── 1-2-account-management-context.md
└── ...
```
## Next Steps
After Phase 4 implementation, projects typically move to:
- Deployment and release
- User acceptance testing
- Production monitoring
- Maintenance and updates
The sprint-status.yaml file provides a complete audit trail of the development process and can be used for project reporting and retrospectives.

View File

@ -136,7 +136,7 @@
**Next Steps:** **Next Steps:**
1. Review the implemented story and test the changes 1. Review the implemented story and test the changes
2. Verify all acceptance criteria are met 2. Verify all acceptance criteria are met
3. When satisfied, run `story-approved` to mark story complete and advance the queue 3. When satisfied, run `story-done` to mark story complete and advance the queue
Or check status anytime with: `workflow-status` Or check status anytime with: `workflow-status`
</output> </output>

View File

@ -220,7 +220,7 @@ Running in standalone mode - no progress tracking.</output>
**Next Steps:** **Next Steps:**
1. Review the Senior Developer Review notes appended to story 1. Review the Senior Developer Review notes appended to story
2. Address any action items or changes requested 2. Address any action items or changes requested
3. When ready, run `story-approved` to mark story complete 3. When ready, run `story-done` to mark story complete
Check status anytime with: `workflow-status` Check status anytime with: `workflow-status`
</output> </output>

View File

@ -0,0 +1,156 @@
# Sprint Planning Workflow
## Overview
The sprint-planning workflow generates and manages the sprint status tracking file that serves as the single source of truth for Phase 4 implementation. It extracts all epics and stories from epic files and tracks their progress through the development lifecycle.
In Agile terminology, this workflow facilitates **Sprint Planning** or **Sprint 0 Kickoff** - the transition from planning/architecture into actual development execution.
## Purpose
This workflow creates a `sprint-status.yaml` file that:
- Lists all epics, stories, and retrospectives in order
- Tracks the current status of each item
- Provides a clear view of what needs to be worked on next
- Ensures only one story is in progress at a time
- Maintains the development flow from backlog to done
## When to Use
Run this workflow:
1. **Initially** - After Phase 3 (solutioning) is complete and epics are finalized
2. **After epic context creation** - To update epic status to 'contexted'
3. **Periodically** - To auto-detect newly created story files
4. **For status checks** - To see overall project progress
## Status State Machine
### Epic Flow
```
backlog → contexted
```
### Story Flow
```
backlog → drafted → ready-for-dev → in-progress → review → done
```
### Retrospective Flow
```
optional ↔ completed
```
## Key Guidelines
1. **Epic Context Recommended**: Epics should be `contexted` before their stories can be `drafted`
2. **Flexible Parallelism**: Multiple stories can be `in-progress` based on team capacity
3. **Sequential Default**: Stories within an epic are typically worked in order, but parallel work is supported
4. **Review Flow**: Stories should go through `review` before `done`
5. **Learning Transfer**: SM typically drafts next story after previous is `done`, incorporating learnings
## File Locations
### Input Files
- **Epic Files**: `{output_folder}/epic*.md` or `{output_folder}/epics.md`
- **Epic Context**: `{output_folder}/epic-{n}-context.md`
- **Story Files**: `{story_dir}/{epic}-{story}-{title}.md`
- Example: `stories/1-1-user-authentication.md`
- **Story Context**: `{story_dir}/{epic}-{story}-{title}-context.md`
- Example: `stories/1-1-user-authentication-context.md`
### Output File
- **Status File**: `{output_folder}/sprint-status.yaml`
## Usage by Agents
### SM (Scrum Master) Agent
```yaml
Tasks:
- Check sprint-status.yaml for stories in 'done' status
- Identify next 'backlog' story to draft
- Run create-story workflow
- Update status to 'drafted'
- Create story context
- Update status to 'ready-for-dev'
```
### Developer Agent
```yaml
Tasks:
- Find stories with 'ready-for-dev' status
- Update to 'in-progress' when starting
- Implement the story
- Update to 'review' when complete
- Address review feedback
- Update to 'done' after review
```
### Test Architect
```yaml
Tasks:
- Monitor stories entering 'review'
- Track epic progress
- Identify when retrospectives are needed
```
## Example Output
```yaml
# Sprint Status
# Generated: 2025-01-20
# Project: MyPlantFamily
development_status:
epic-1: contexted
1-1-project-foundation: done
1-2-app-shell: done
1-3-user-authentication: in-progress
1-4-plant-data-model: ready-for-dev
1-5-add-plant-manual: drafted
1-6-photo-identification: backlog
epic-1-retrospective: optional
epic-2: contexted
2-1-personality-system: in-progress
2-2-chat-interface: drafted
2-3-llm-integration: backlog
2-4-reminder-system: backlog
epic-2-retrospective: optional
```
## Integration with BMM Workflow
This workflow is part of Phase 4 (Implementation) and integrates with:
1. **epic-tech-context** - Creates technical context for epics
2. **create-story** - Drafts individual story files
3. **story-context** - Adds implementation context to stories
4. **dev-story** - Developer implements the story
5. **review-story** - SM reviews implementation
6. **retrospective** - Optional epic retrospective
## Benefits
- **Clear Visibility**: Everyone knows what's being worked on
- **Flexible Capacity**: Supports both sequential and parallel work patterns
- **Learning Transfer**: SM can incorporate learnings when drafting next story
- **Progress Tracking**: Easy to see overall project status
- **Automation Friendly**: Simple YAML format for agent updates
## Tips
1. **Initial Generation**: Run immediately after epics are finalized
2. **Regular Updates**: Agents should update status as they work
3. **Manual Override**: You can manually edit the file if needed
4. **Backup First**: The workflow backs up existing status before regenerating
5. **Validation**: The workflow validates legal status transitions

View File

@ -0,0 +1,33 @@
# Sprint Planning Validation Checklist
## Core Validation
### Complete Coverage Check
- [ ] Every epic found in epic\*.md files appears in sprint-status.yaml
- [ ] Every story found in epic\*.md files appears in sprint-status.yaml
- [ ] Every epic has a corresponding retrospective entry
- [ ] No items in sprint-status.yaml that don't exist in epic files
### Parsing Verification
Compare epic files against generated sprint-status.yaml:
```
Epic Files Contains: Sprint Status Contains:
✓ Epic 1 ✓ epic-1: [status]
✓ Story 1.1: User Auth ✓ 1-1-user-auth: [status]
✓ Story 1.2: Account Mgmt ✓ 1-2-account-mgmt: [status]
✓ Story 1.3: Plant Naming ✓ 1-3-plant-naming: [status]
✓ epic-1-retrospective: [status]
✓ Epic 2 ✓ epic-2: [status]
✓ Story 2.1: Personality Model ✓ 2-1-personality-model: [status]
✓ Story 2.2: Chat Interface ✓ 2-2-chat-interface: [status]
✓ epic-2-retrospective: [status]
```
### Final Check
- [ ] Total count of epics matches
- [ ] Total count of stories matches
- [ ] All items are in the expected order (epic, stories, retrospective)

View File

@ -0,0 +1,192 @@
# Sprint Planning - Sprint Status Generator
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml</critical>
<workflow>
<step n="1" goal="Parse epic files and extract all work items">
<action>Communicate in {communication_language} with {user_name}</action>
<action>Look for all files matching `{epics_pattern}` in {epics_location}</action>
<action>Could be a single `epics.md` file or multiple `epic-1.md`, `epic-2.md` files</action>
<action>For each epic file found, extract:</action>
- Epic numbers from headers like `## Epic 1:` or `## Epic 2:`
- Story IDs and titles from patterns like `### Story 1.1: User Authentication`
- Convert story format from `Epic.Story: Title` to kebab-case key: `epic-story-title`
**Story ID Conversion Rules:**
- Original: `### Story 1.1: User Authentication`
- Replace period with dash: `1-1`
- Convert title to kebab-case: `user-authentication`
- Final key: `1-1-user-authentication`
<action>Build complete inventory of all epics and stories from all epic files</action>
</step>
<step n="2" goal="Build sprint status structure">
<action>For each epic found, create entries in this order:</action>
1. **Epic entry** - Key: `epic-{num}`, Default status: `backlog`
2. **Story entries** - Key: `{epic}-{story}-{title}`, Default status: `backlog`
3. **Retrospective entry** - Key: `epic-{num}-retrospective`, Default status: `optional`
**Example structure:**
```yaml
development_status:
epic-1: backlog
1-1-user-authentication: backlog
1-2-account-management: backlog
epic-1-retrospective: optional
```
</step>
<step n="3" goal="Apply intelligent status detection">
<action>For each epic, check if tech context file exists:</action>
- Check: `{output_folder}/epic-{num}-context.md`
- If exists → set epic status to `contexted`
- Else → keep as `backlog`
<action>For each story, detect current status by checking files:</action>
**Story file detection:**
- Check: `{story_dir}/{story-key}.md` (e.g., `stories/1-1-user-authentication.md`)
- If exists → upgrade status to at least `drafted`
**Story context detection:**
- Check: `{story_dir}/{story-key}-context.md` (e.g., `stories/1-1-user-authentication-context.md`)
- If exists → upgrade status to at least `ready-for-dev`
**Preservation rule:**
- If existing `{status_file}` exists and has more advanced status, preserve it
- Never downgrade status (e.g., don't change `done` to `drafted`)
**Status Flow Reference:**
- Epic: `backlog``contexted`
- Story: `backlog``drafted``ready-for-dev``in-progress``review``done`
- Retrospective: `optional``completed`
</step>
<step n="4" goal="Generate sprint status file">
<action>Create or update {status_file} with:</action>
**File Header:**
```yaml
# Sprint Status - Generated {date}
# Project: {project_name}
# Status Definitions:
# Epic: backlog → contexted
# Story: backlog → drafted → ready-for-dev → in-progress → review → done
# Retrospective: optional → completed
```
**Development Status Section:**
```yaml
development_status:
# All epics, stories, and retrospectives in order
```
<action>Write the complete sprint status YAML to {status_file}</action>
<action>Ensure all items are ordered: epic, its stories, its retrospective, next epic...</action>
</step>
<step n="5" goal="Validate and report">
<action>Perform validation checks:</action>
- [ ] Every epic in epic files appears in sprint-status.yaml
- [ ] Every story in epic files appears in sprint-status.yaml
- [ ] Every epic has a corresponding retrospective entry
- [ ] No items in sprint-status.yaml that don't exist in epic files
- [ ] All status values are legal (match state machine definitions)
- [ ] File is valid YAML syntax
<action>Count totals:</action>
- Total epics: {{epic_count}}
- Total stories: {{story_count}}
- Epics contexted: {{contexted_count}}
- Stories in progress: {{in_progress_count}}
- Stories done: {{done_count}}
<action>Display completion summary to {user_name} in {communication_language}:</action>
**Sprint Status Generated Successfully**
- **File Location:** {status_file}
- **Total Epics:** {{epic_count}}
- **Total Stories:** {{story_count}}
- **Contexted Epics:** {{contexted_count}}
- **Stories In Progress:** {{in_progress_count}}
- **Stories Completed:** {{done_count}}
**Next Steps:**
1. Review the generated sprint-status.yaml
2. Use this file to track development progress
3. Agents will update statuses as they work
4. Re-run this workflow to refresh auto-detected statuses
</step>
</workflow>
## Additional Documentation
### Status State Machine
**Epic Status Flow:**
```
backlog → contexted
```
- **backlog**: Epic exists in epic file but tech context not created
- **contexted**: Epic tech context has been generated (prerequisite for story drafting)
**Story Status Flow:**
```
backlog → drafted → ready-for-dev → in-progress → review → done
```
- **backlog**: Story only exists in epic file
- **drafted**: Story file created (e.g., `stories/1-3-plant-naming.md`)
- **ready-for-dev**: Draft approved + story context created
- **in-progress**: Developer actively working
- **review**: Under SM review (via review-story workflow)
- **done**: Completed
**Retrospective Status:**
```
optional ↔ completed
```
- **optional**: Can be done but not required
- **completed**: Retrospective has been completed
### Guidelines
1. **Epic Context Recommended**: Epics should be `contexted` before stories can be `drafted`
2. **Sequential Default**: Stories are typically worked in order, but parallel work is supported
3. **Parallel Work Supported**: Multiple stories can be `in-progress` if team capacity allows
4. **Review Before Done**: Stories should pass through `review` before `done`
5. **Learning Transfer**: SM typically drafts next story after previous one is `done` to incorporate learnings
### Error Handling
- If epic file can't be parsed, report specific file and continue with others
- If existing status file is malformed, backup and regenerate
- Log warnings for duplicate story IDs across epics
- Validate status transitions are legal (can't go from `backlog` to `done`)

View File

@ -0,0 +1,47 @@
# Sprint Status Template
# This is an EXAMPLE showing the expected format
# The actual file will be generated with all epics/stories from your epic files
#
# Generated: {date}
# Project: {project_name}
# Language: {document_output_language}
#
# STATUS DEFINITIONS:
# ==================
# Epic Status:
# - backlog: Epic exists in epic file but not contexted
# - contexted: Epic tech context created (required before drafting stories)
#
# Story Status:
# - backlog: Story only exists in epic file
# - drafted: Story file created in stories folder
# - ready-for-dev: Draft approved and story context created
# - in-progress: Developer actively working on implementation
# - review: Under SM review (via review-story workflow)
# - done: Story completed
#
# Retrospective Status:
# - optional: Can be completed but not required
# - completed: Retrospective has been done
#
# WORKFLOW NOTES:
# ===============
# - Epics should be 'contexted' before stories can be 'drafted'
# - Stories can be worked in parallel if team capacity allows
# - SM typically drafts next story after previous one is 'done' to incorporate learnings
# - Dev moves story to 'review', SM reviews, then Dev moves to 'done'
# EXAMPLE STRUCTURE (your actual epics/stories will replace these):
development_status:
epic-1: contexted
1-1-user-authentication: done
1-2-account-management: drafted
1-3-plant-data-model: backlog
1-4-add-plant-manual: backlog
epic-1-retrospective: optional
epic-2: backlog
2-1-personality-system: backlog
2-2-chat-interface: backlog
2-3-llm-integration: backlog
epic-2-retrospective: optional

View File

@ -0,0 +1,37 @@
name: sprint-planning
description: "Generate and manage the sprint status tracking file for Phase 4 implementation, extracting all epics and stories from epic files and tracking their status through the development lifecycle"
author: "BMad"
# Critical variables from config
config_source: "{project-root}/bmad/bmm/config.yaml"
output_folder: "{config_source}:output_folder"
user_name: "{config_source}:user_name"
communication_language: "{config_source}:communication_language"
document_output_language: "{config_source}:document_output_language"
date: system-generated
# Workflow components
installed_path: "{project-root}/bmad/bmm/workflows/4-implementation/sprint-planning"
instructions: "{installed_path}/instructions.md"
template: "{installed_path}/sprint-status-template.yaml"
validation: "{installed_path}/checklist.md"
# Variables and inputs
variables:
# Project identification
project_name: "{config_source}:project_name"
# Source files
epics_location: "{output_folder}" # Directory containing epic*.md files
epics_pattern: "epic*.md" # Pattern to find epic files
# Output configuration
status_file: "{output_folder}/sprint-status.yaml"
# Story locations
story_dir: "{config_source}:dev_story_location" # Where story files are created
# Output configuration
default_output_file: "{status_file}"
web_bundle: false

View File

@ -1,5 +1,5 @@
# Story Approved Workflow (DEV Agent) # Story Done Workflow (DEV Agent)
name: story-approved name: story-done
description: "Marks a story as done (DoD complete) and moves it from IN PROGRESS → DONE in the status file. Advances the story queue. Simple status-update workflow with no searching required." description: "Marks a story as done (DoD complete) and moves it from IN PROGRESS → DONE in the status file. Advances the story queue. Simple status-update workflow with no searching required."
author: "BMad" author: "BMad"
@ -13,7 +13,7 @@ user_skill_level: "{config_source}:user_skill_level"
date: system-generated date: system-generated
# Workflow components # Workflow components
installed_path: "{project-root}/bmad/bmm/workflows/4-implementation/story-approved" installed_path: "{project-root}/bmad/bmm/workflows/4-implementation/story-done"
instructions: "{installed_path}/instructions.md" instructions: "{installed_path}/instructions.md"
# Variables and inputs # Variables and inputs

View File

@ -250,7 +250,7 @@ BACKLOG → TODO → IN PROGRESS → DONE
- Story status is "Ready" or "In Review" - Story status is "Ready" or "In Review"
- **DONE**: Completed stories with dates and points - **DONE**: Completed stories with dates and points
- Moved here by `story-approved` workflow after DoD complete - Moved here by `story-done` workflow after DoD complete
- Immutable record of completed work - Immutable record of completed work
**Key Innovation**: Agents never search for "next story" - they always read the exact story from the status file. **Key Innovation**: Agents never search for "next story" - they always read the exact story from the status file.
@ -294,7 +294,7 @@ Phase Transition (Phase 2 or 3 → Phase 4)
┌─────────────────────────────────────────────────┐ ┌─────────────────────────────────────────────────┐
│ User reviews implementation (DoD check) │ │ User reviews implementation (DoD check) │
│ ↓ │ │ ↓ │
│ DEV: story-approved (marks story done) │ │ DEV: story-done (marks story done) │
│ Actions: IN PROGRESS → DONE │ │ Actions: IN PROGRESS → DONE │
│ TODO → IN PROGRESS (if exists) │ │ TODO → IN PROGRESS (if exists) │
│ BACKLOG → TODO (if exists) │ │ BACKLOG → TODO (if exists) │
@ -319,7 +319,7 @@ Phase Transition (Phase 2 or 3 → Phase 4)
| **story-ready** | SM | Approve drafted story for development | TODO → IN PROGRESS | Reads TODO section | | **story-ready** | SM | Approve drafted story for development | TODO → IN PROGRESS | Reads TODO section |
| **story-context** | SM | Generate expertise injection XML | (No state change) | Reads IN PROGRESS | | **story-context** | SM | Generate expertise injection XML | (No state change) | Reads IN PROGRESS |
| **dev-story** | DEV | Implement story | (No state change) | Reads IN PROGRESS | | **dev-story** | DEV | Implement story | (No state change) | Reads IN PROGRESS |
| **story-approved** | DEV | Mark story done after DoD complete | IN PROGRESS → DONE | Reads IN PROGRESS | | **story-done** | DEV | Mark story done after DoD complete | IN PROGRESS → DONE | Reads IN PROGRESS |
| **review-story** | SR/DEV | Quality validation (optional) | (No state change) | Manual story selection | | **review-story** | SR/DEV | Quality validation (optional) | (No state change) | Manual story selection |
| **correct-course** | SM | Handle issues/changes | (Adaptive) | Manual story selection | | **correct-course** | SM | Handle issues/changes | (Adaptive) | Manual story selection |
| **retrospective** | SM | Capture epic learnings | (No state change) | Manual or epic-triggered | | **retrospective** | SM | Capture epic learnings | (No state change) | Manual or epic-triggered |
@ -335,7 +335,7 @@ Status: Ready (User approved via story-ready, ready for implementation)
Status: In Review (Implementation complete, awaiting final approval) Status: In Review (Implementation complete, awaiting final approval)
Status: Done (User approved via story-approved, DoD complete) Status: Done (User approved via story-done, DoD complete)
``` ```
**Status File Position vs Story File Status:** **Status File Position vs Story File Status:**
@ -483,7 +483,7 @@ bmad sm create-story # Draft story from TODO section
bmad sm story-ready # Approve story for development (after user review) bmad sm story-ready # Approve story for development (after user review)
bmad sm story-context # Generate context XML (optional but recommended) bmad sm story-context # Generate context XML (optional but recommended)
bmad dev dev-story # Implement story from IN PROGRESS section bmad dev dev-story # Implement story from IN PROGRESS section
bmad dev story-approved # Mark story done (after user confirms DoD) bmad dev story-done # Mark story done (after user confirms DoD)
bmad dev review-story # Quality validation (optional) bmad dev review-story # Quality validation (optional)
bmad sm correct-course # If issues arise bmad sm correct-course # If issues arise
bmad sm retrospective # After epic complete bmad sm retrospective # After epic complete

View File

@ -664,7 +664,7 @@ npm run test:e2e -- user-authentication.spec.ts --debug
2. Run failing tests to confirm RED phase: `npm run test:e2e` 2. Run failing tests to confirm RED phase: `npm run test:e2e`
3. Begin implementation using checklist as guide 3. Begin implementation using checklist as guide
4. Share progress in daily standup 4. Share progress in daily standup
5. When all tests pass, run `bmad sm story-approved` to move story to DONE 5. When all tests pass, run `bmad sm story-done` to move story to DONE
``` ```

View File

@ -296,7 +296,7 @@ test('should do something', async ({ {fixtureName} }) => {
4. **Work one test at a time** (red → green for each) 4. **Work one test at a time** (red → green for each)
5. **Share progress** in daily standup 5. **Share progress** in daily standup
6. **When all tests pass**, refactor code for quality 6. **When all tests pass**, refactor code for quality
7. **When refactoring complete**, run `bmad sm story-approved` to move story to DONE 7. **When refactoring complete**, run `bmad sm story-done` to move story to DONE
--- ---

View File

@ -786,7 +786,7 @@ Use for: Alpha/beta releases, internal tools, proof-of-concept
- `bmad tea *automate` - Expand regression suite based on gaps - `bmad tea *automate` - Expand regression suite based on gaps
- `bmad tea *nfr-assess` - Validate non-functional requirements (for gate) - `bmad tea *nfr-assess` - Validate non-functional requirements (for gate)
- `bmad tea *test-review` - Review test quality issues flagged by trace - `bmad tea *test-review` - Review test quality issues flagged by trace
- `bmad sm story-approved` - Mark story as complete (triggers gate) - `bmad sm story-done` - Mark story as complete (triggers gate)
--- ---

View File

@ -58,10 +58,10 @@ phases:
required: true required: true
agent: "dev" agent: "dev"
command: "dev-story" command: "dev-story"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
story_naming: "story-<short-title>.md" story_naming: "story-<short-title>.md"
story_example: "story-fix-auth-bug.md" story_example: "story-fix-auth-bug.md"

View File

@ -66,10 +66,10 @@ phases:
optional: true optional: true
agent: "dev" agent: "dev"
command: "review-story" command: "review-story"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
story_naming: "story-<short-title>.md" story_naming: "story-<short-title>.md"
story_example: "story-add-auth.md, story-update-dashboard.md" story_example: "story-add-auth.md, story-update-dashboard.md"

View File

@ -84,10 +84,10 @@ phases:
recommended: true recommended: true
agent: "dev" agent: "dev"
command: "review-story" command: "review-story"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
story_naming: "story-<short-title>.md" story_naming: "story-<short-title>.md"
story_example: "story-user-dashboard.md, story-api-integration.md" story_example: "story-user-dashboard.md, story-api-integration.md"

View File

@ -117,10 +117,10 @@ phases:
conditional: "if_review_fails" conditional: "if_review_fails"
agent: "dev" agent: "dev"
command: "correct-course" command: "correct-course"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
epic_completion: epic_completion:
- id: "integration-test" - id: "integration-test"
required: true required: true

View File

@ -115,10 +115,10 @@ phases:
agent: "dev" agent: "dev"
command: "integration-test" command: "integration-test"
note: "Test integration with existing systems" note: "Test integration with existing systems"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
epic_completion: epic_completion:
- id: "retrospective" - id: "retrospective"
required: true required: true

View File

@ -72,7 +72,7 @@ phases:
- id: "dev-story" - id: "dev-story"
required: true required: true
agent: "dev" agent: "dev"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
level_2_4: level_2_4:
@ -99,7 +99,7 @@ phases:
- id: "review-story" - id: "review-story"
recommended: true recommended: true
agent: "dev" agent: "dev"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
feature_completion: feature_completion:

View File

@ -50,10 +50,10 @@ phases:
required: true required: true
agent: "dev" agent: "dev"
command: "dev-story" command: "dev-story"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
story_naming: "story-<short-title>.md" story_naming: "story-<short-title>.md"
story_example: "story-fix-login.md" story_example: "story-fix-login.md"

View File

@ -63,10 +63,10 @@ phases:
optional: true optional: true
agent: "dev" agent: "dev"
command: "review-story" command: "review-story"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
story_naming: "story-<title>-<n>.md" story_naming: "story-<title>-<n>.md"
story_example: "story-oauth-integration-1.md" story_example: "story-oauth-integration-1.md"

View File

@ -88,10 +88,10 @@ phases:
optional: true optional: true
agent: "dev" agent: "dev"
command: "review-story" command: "review-story"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
epic_completion: epic_completion:
- id: "retrospective" - id: "retrospective"
optional: true optional: true

View File

@ -94,10 +94,10 @@ phases:
conditional: "if_review_fails" conditional: "if_review_fails"
agent: "dev" agent: "dev"
command: "correct-course" command: "correct-course"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
epic_completion: epic_completion:
- id: "retrospective" - id: "retrospective"
recommended: true recommended: true

View File

@ -96,10 +96,10 @@ phases:
conditional: "if_review_fails" conditional: "if_review_fails"
agent: "dev" agent: "dev"
command: "correct-course" command: "correct-course"
- id: "story-approved" - id: "story-done"
required: true required: true
agent: "dev" agent: "dev"
command: "story-approved" command: "story-done"
epic_completion: epic_completion:
- id: "retrospective" - id: "retrospective"
required: true required: true