From 79838b782b00e0aa8f63651b9848445a1783694a Mon Sep 17 00:00:00 2001 From: Alex Verkhovsky Date: Fri, 12 Dec 2025 19:21:11 -0700 Subject: [PATCH 1/2] fix(bmm): improve sprint-status validation and epic status handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add status validation with interactive correction for unknown values - Update epic statuses to match state machine: backlog, in-progress, done - Map legacy "contexted" status to "in-progress" explicitly - Add retrospective status counting (optional, completed) - Rewrite risk detection rules for LLM clarity - Fix warnings vs risks naming inconsistency in data mode Closes #1106 Closes #1118 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../sprint-status/instructions.md | 50 +++++++++++++++---- 1 file changed, 41 insertions(+), 9 deletions(-) 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 ab0fdecf..9fd64613 100644 --- a/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md @@ -40,14 +40,45 @@ Run `/bmad:bmm:workflows:sprint-planning` to generate it, then rerun sprint-stat - Epics: keys starting with "epic-" (and not ending with "-retrospective") - Retrospectives: keys ending with "-retrospective" - Stories: everything else (e.g., 1-2-login-form) - If any story has status `drafted`, treat as `ready-for-dev` (legacy status) + Map legacy story status "drafted" → "ready-for-dev" Count story statuses: backlog, ready-for-dev, in-progress, review, done - Count epic statuses: backlog, contexted + Map legacy epic status "contexted" → "in-progress" + Count epic statuses: backlog, in-progress, done + Count retrospective statuses: optional, completed + + 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 + + + +⚠️ **Unknown status detected:** +{{#each invalid_entries}} +- `{{key}}`: "{{status}}" (not recognized) +{{/each}} + +**Valid statuses:** +- Stories: backlog, ready-for-dev, in-progress, review, done +- Epics: backlog, in-progress, done +- Retrospectives: optional, completed + + How should these be corrected? +{{#each invalid_entries}} +{{@index}}. {{key}}: "{{status}}" → [select valid status] +{{/each}} + +Enter corrections (e.g., "1=in-progress, 2=backlog") or "skip" to continue without fixing: + + Update sprint-status.yaml with corrected values + Re-parse the file with corrected statuses + + + Detect risks: - - Stories in review but no reviewer assigned context → suggest `/bmad:bmm:workflows:code-review` - - Stories in in-progress with no ready-for-dev items behind them → keep focus on the active story - - All epics backlog/contexted but no stories ready-for-dev → prompt to run `/bmad:bmm:workflows:create-story` - - Stories in ready-for-dev may be unvalidated → suggest `/bmad:bmm:workflows:validate-create-story` before `dev-story` for quality check + - 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` @@ -71,7 +102,7 @@ Run `/bmad:bmm:workflows:sprint-planning` to generate it, then rerun sprint-stat **Stories:** backlog {{count_backlog}}, ready-for-dev {{count_ready}}, in-progress {{count_in_progress}}, review {{count_review}}, done {{count_done}} -**Epics:** backlog {{epic_backlog}}, contexted {{epic_contexted}} +**Epics:** backlog {{epic_backlog}}, in-progress {{epic_in_progress}}, done {{epic_done}} **Next Recommendation:** /bmad:bmm:workflows:{{next_workflow_id}} ({{next_story_id}}) @@ -141,8 +172,9 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted. count_review = {{count_review}} count_done = {{count_done}} epic_backlog = {{epic_backlog}} - epic_contexted = {{epic_contexted}} - warnings = {{risks}} + epic_in_progress = {{epic_in_progress}} + epic_done = {{epic_done}} + risks = {{risks}} Return to caller From d23976f99950581a8839a5b03230ecf183e3b7b4 Mon Sep 17 00:00:00 2001 From: Alex Verkhovsky Date: Fri, 12 Dec 2025 23:04:55 -0700 Subject: [PATCH 2/2] style: fix prettier formatting in sprint-status instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../sprint-status/instructions.md | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) 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 9fd64613..1308fe17 100644 --- a/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +++ b/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md @@ -46,40 +46,44 @@ Run `/bmad:bmm:workflows:sprint-planning` to generate it, then rerun sprint-stat Count epic statuses: backlog, in-progress, done Count retrospective statuses: optional, completed - 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 +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 ⚠️ **Unknown status detected:** {{#each invalid_entries}} + - `{{key}}`: "{{status}}" (not recognized) -{{/each}} + {{/each}} **Valid statuses:** + - Stories: backlog, ready-for-dev, in-progress, review, done - Epics: backlog, in-progress, done - Retrospectives: optional, completed - - How should these be corrected? -{{#each invalid_entries}} -{{@index}}. {{key}}: "{{status}}" → [select valid status] -{{/each}} + + How should these be corrected? + {{#each invalid_entries}} + {{@index}}. {{key}}: "{{status}}" → [select valid status] + {{/each}} Enter corrections (e.g., "1=in-progress, 2=backlog") or "skip" to continue without fixing: - - Update sprint-status.yaml with corrected values - Re-parse the file with corrected statuses - - + +Update sprint-status.yaml with corrected values +Re-parse the file with corrected statuses + + - Detect risks: - - 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` - +Detect risks: + +- 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` + Pick the next recommended workflow using priority: