Files
Entropyk/_bmad/bmm/4-implementation/bmad-sprint-status/workflow.md
Sepehr ab5dc7e568 chore: remove BMAD framework files and IDE configuration artifacts
Clean up unused BMAD workflow, agent, and command files across all IDE
configurations (.agent, .clinerules, .cursor, .gemini, .github, .kilocode,
.opencode) and internal module files (_bmad/bmb, _bmad/bmm).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-25 15:01:09 +02:00

9.8 KiB

Sprint Status Workflow

Goal: Summarize sprint status, surface risks, and recommend the next workflow action.

Your Role: You are a Scrum Master providing clear, actionable sprint visibility. No time estimates — focus on status, risks, and next steps.


INITIALIZATION

Configuration Loading

Load config from {project-root}/_bmad/bmm/config.yaml and resolve:

  • project_name, user_name
  • communication_language, document_output_language
  • implementation_artifacts
  • date as system-generated current datetime
  • YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config {communication_language}

Paths

  • sprint_status_file = {implementation_artifacts}/sprint-status.yaml

Input Files

Input Path Load Strategy
Sprint status {sprint_status_file} FULL_LOAD

Context

  • project_context = **/project-context.md (load if exists)

EXECUTION

Set mode = {{mode}} if provided by caller; otherwise mode = "interactive" Jump to Step 20 Jump to Step 30 Continue to Step 1 Load {project_context} for project-wide patterns and conventions (if exists) Try {sprint_status_file} sprint-status.yaml not found. Run `/bmad:bmm:workflows:sprint-planning` to generate it, then rerun sprint-status. Exit workflow Continue to Step 2 Read the FULL file: {sprint_status_file} Parse fields: generated, last_updated, project, project_key, tracking_system, story_location Parse development_status map. Classify keys: - Epics: keys starting with "epic-" (and not ending with "-retrospective") - Retrospectives: keys ending with "-retrospective" - Stories: everything else (e.g., 1-2-login-form) Map legacy story status "drafted" → "ready-for-dev" 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, 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, done

⚠️ 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, done 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:

  • 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 last_updated timestamp is more than 7 days old (or last_updated is missing, fall back to generated): 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 any retrospective status == optional → recommend `retrospective` 6. Else → All implementation items done; congratulate the user - you both did amazing work together! Store selected recommendation as: next_story_id, next_workflow_id, next_agent (SM/DEV as appropriate) ## 📊 Sprint Status
  • Project: {{project}} ({{project_key}})
  • Tracking: {{tracking_system}}
  • Status file: {sprint_status_file}

Stories: backlog {{count_backlog}}, ready-for-dev {{count_ready}}, in-progress {{count_in_progress}}, review {{count_review}}, done {{count_done}}

Epics: backlog {{epic_backlog}}, in-progress {{epic_in_progress}}, done {{epic_done}}

Next Recommendation: /bmad:bmm:workflows:{{next_workflow_id}} ({{next_story_id}})

{{#if risks}} Risks: {{#each risks}}

  • {{this}} {{/each}} {{/if}}

Pick an option: 1) Run recommended workflow now 2) Show all stories grouped by status 3) Show raw sprint-status.yaml 4) Exit Choice: Run `/bmad:bmm:workflows:{{next_workflow_id}}`. If the command targets a story, set `story_key={{next_story_id}}` when prompted. ### Stories by Status - In Progress: {{stories_in_progress}} - Review: {{stories_in_review}} - Ready for Dev: {{stories_ready_for_dev}} - Backlog: {{stories_backlog}} - Done: {{stories_done}} Display the full contents of {sprint_status_file} Exit workflow Load and parse {sprint_status_file} same as Step 2 Compute recommendation same as Step 3 next_workflow_id = {{next_workflow_id}} next_story_id = {{next_story_id}} count_backlog = {{count_backlog}} count_ready = {{count_ready}} count_in_progress = {{count_in_progress}} count_review = {{count_review}} count_done = {{count_done}} epic_backlog = {{epic_backlog}} epic_in_progress = {{epic_in_progress}} epic_done = {{epic_done}} risks = {{risks}} Return to caller Check that {sprint_status_file} exists is_valid = false error = "sprint-status.yaml missing" suggestion = "Run sprint-planning to create it" Return

Read and parse {sprint_status_file}

Validate required metadata fields exist: generated, project, project_key, tracking_system, story_location (last_updated is optional for backward compatibility) 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 valid: metadata complete, all statuses recognized"