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
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"