diff --git a/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md b/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md index 2aea9146..387fb627 100644 --- a/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md @@ -84,7 +84,7 @@ development_status: - Epic: `backlog` → `in-progress` → `done` - Story: `backlog` → `ready-for-dev` → `in-progress` → `review` → `done` -- Retrospective: `optional` ↔ `completed` +- Retrospective: `optional` ↔ `done` @@ -119,7 +119,7 @@ development_status: # # Retrospective Status: # - optional: Can be completed but not required -# - completed: Retrospective has been done +# - done: Retrospective has been completed # # WORKFLOW NOTES: # =============== @@ -210,11 +210,11 @@ backlog → ready-for-dev → in-progress → review → done **Retrospective Status:** ``` -optional ↔ completed +optional ↔ done ``` -- **optional**: Can be done but not required -- **completed**: Retrospective has been completed +- **optional**: Ready to be conducted but not required +- **done**: Finished ### Guidelines diff --git a/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml b/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml index fbfea426..fd93e3b3 100644 --- a/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +++ b/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml @@ -24,7 +24,7 @@ # # Retrospective Status: # - optional: Can be completed but not required -# - completed: Retrospective has been done by *retrospective +# - done: Retrospective has been completed # # WORKFLOW NOTES: # =============== diff --git a/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md b/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md index dc5241c7..593231fc 100644 --- a/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md @@ -44,13 +44,13 @@ Run `/bmad:bmm:workflows:sprint-planning` to generate it, then rerun sprint-stat Count story statuses: backlog, ready-for-dev, in-progress, review, done Map legacy epic status "contexted" → "in-progress" Count epic statuses: backlog, in-progress, done - Count retrospective statuses: optional, completed + Count retrospective statuses: optional, done Validate all statuses against known values: - Valid story statuses: backlog, ready-for-dev, in-progress, review, done, drafted (legacy) - Valid epic statuses: backlog, in-progress, done, contexted (legacy) -- Valid retrospective statuses: optional, completed +- Valid retrospective statuses: optional, done @@ -64,7 +64,7 @@ Run `/bmad:bmm:workflows:sprint-planning` to generate it, then rerun sprint-stat - Stories: backlog, ready-for-dev, in-progress, review, done - Epics: backlog, in-progress, done -- Retrospectives: optional, completed +- Retrospectives: optional, done How should these be corrected? {{#each invalid_entries}} @@ -83,15 +83,19 @@ Enter corrections (e.g., "1=in-progress, 2=backlog") or "skip" to continue witho - IF any story has status "review": suggest `/bmad:bmm:workflows:code-review` - IF any story has status "in-progress" AND no stories have status "ready-for-dev": recommend staying focused on active story - IF all epics have status "backlog" AND no stories have status "ready-for-dev": prompt `/bmad:bmm:workflows:create-story` +- IF `generated` timestamp is more than 7 days old: warn "sprint-status.yaml may be stale" +- IF any story key doesn't match an epic pattern (e.g., story "5-1-..." but no "epic-5"): warn "orphaned story detected" +- IF any epic has status in-progress but has no associated stories: warn "in-progress epic has no stories" Pick the next recommended workflow using priority: + When selecting "first" story: sort by epic number, then story number (e.g., 1-1 before 1-2 before 2-1) 1. If any story status == in-progress → recommend `dev-story` for the first in-progress story 2. Else if any story status == review → recommend `code-review` for the first review story 3. Else if any story status == ready-for-dev → recommend `dev-story` 4. Else if any story status == backlog → recommend `create-story` - 5. Else if retrospectives are optional → recommend `retrospective` + 5. Else if any retrospective status == optional → recommend `retrospective` 6. Else → All implementation items done; suggest `workflow-status` to plan next phase Store selected recommendation as: next_story_id, next_workflow_id, next_agent (SM/DEV as appropriate) @@ -118,13 +122,6 @@ Enter corrections (e.g., "1=in-progress, 2=backlog") or "skip" to continue witho {{/each}} {{/if}} -{{#if by_epic}} -**Per Epic:** -{{#each by_epic}} - -- {{epic_id}}: context={{context_status}}, stories → backlog {{backlog}}, ready {{ready_for_dev}}, in-progress {{in_progress}}, review {{review}}, done {{done}} - {{/each}} - {{/if}} @@ -194,15 +191,39 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted. suggestion = "Run sprint-planning to create it" Return - Read file and verify it has a development_status section with at least one entry - - is_valid = false - error = "development_status missing or empty" - suggestion = "Re-run sprint-planning or repair the file manually" - Return + +Read and parse {sprint_status_file} + +Validate required metadata fields exist: generated, project, project_key, tracking_system, story_location + +is_valid = false +error = "Missing required field(s): {{missing_fields}}" +suggestion = "Re-run sprint-planning or add missing fields manually" +Return + + +Verify development_status section exists with at least one entry + +is_valid = false +error = "development_status missing or empty" +suggestion = "Re-run sprint-planning or repair the file manually" +Return + + +Validate all status values against known valid statuses: + +- Stories: backlog, ready-for-dev, in-progress, review, done (legacy: drafted) +- Epics: backlog, in-progress, done (legacy: contexted) +- Retrospectives: optional, done + + is_valid = false + error = "Invalid status values: {{invalid_entries}}" + suggestion = "Fix invalid statuses in sprint-status.yaml" + Return - is_valid = true - message = "sprint-status.yaml present and parsable" + +is_valid = true +message = "sprint-status.yaml valid: metadata complete, all statuses recognized"