diff --git a/src/bmm/workflows/4-implementation/code-review/instructions.xml b/src/bmm/workflows/4-implementation/code-review/instructions.xml index e5649559d..37b3eb63f 100644 --- a/src/bmm/workflows/4-implementation/code-review/instructions.xml +++ b/src/bmm/workflows/4-implementation/code-review/instructions.xml @@ -195,12 +195,14 @@ Update development_status[{{story_key}}] = "done" + Update last_updated field to current date Save file, preserving ALL comments and structure ✅ Sprint status synced: {{story_key}} → done Update development_status[{{story_key}}] = "in-progress" + Update last_updated field to current date Save file, preserving ALL comments and structure 🔄 Sprint status synced: {{story_key}} → in-progress diff --git a/src/bmm/workflows/4-implementation/create-story/instructions.xml b/src/bmm/workflows/4-implementation/create-story/instructions.xml index f9433371f..8e53cdd8e 100644 --- a/src/bmm/workflows/4-implementation/create-story/instructions.xml +++ b/src/bmm/workflows/4-implementation/create-story/instructions.xml @@ -321,6 +321,7 @@ Find development_status key matching {{story_key}} Verify current status is "backlog" (expected previous state) Update development_status[{{story_key}}] = "ready-for-dev" + Update last_updated field to current date Save file, preserving ALL comments and structure including STATUS DEFINITIONS diff --git a/src/bmm/workflows/4-implementation/dev-story/instructions.xml b/src/bmm/workflows/4-implementation/dev-story/instructions.xml index 3c4989f39..c39c35f2e 100644 --- a/src/bmm/workflows/4-implementation/dev-story/instructions.xml +++ b/src/bmm/workflows/4-implementation/dev-story/instructions.xml @@ -195,6 +195,7 @@ Update the story in the sprint status report to = "in-progress" + Update last_updated field to current date 🚀 Starting work on story {{story_key}} Status updated: ready-for-dev → in-progress @@ -348,6 +349,7 @@ Find development_status key matching {{story_key}} Verify current status is "in-progress" (expected previous state) Update development_status[{{story_key}}] = "review" + Update last_updated field to current date Save file, preserving ALL comments and structure including STATUS DEFINITIONS ✅ Story status updated to "review" in sprint-status.yaml diff --git a/src/bmm/workflows/4-implementation/retrospective/instructions.md b/src/bmm/workflows/4-implementation/retrospective/instructions.md index 018ef6ee3..d2bf7e390 100644 --- a/src/bmm/workflows/4-implementation/retrospective/instructions.md +++ b/src/bmm/workflows/4-implementation/retrospective/instructions.md @@ -1336,6 +1336,7 @@ Bob (Scrum Master): "See you all when prep work is done. Meeting adjourned!" Find development_status key "epic-{{epic_number}}-retrospective" Verify current status (typically "optional" or "pending") Update development_status["epic-{{epic_number}}-retrospective"] = "done" +Update last_updated field to current date Save file, preserving ALL comments and structure including STATUS DEFINITIONS diff --git a/src/bmm/workflows/4-implementation/sprint-planning/instructions.md b/src/bmm/workflows/4-implementation/sprint-planning/instructions.md index 316d2fec3..04492088b 100644 --- a/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +++ b/src/bmm/workflows/4-implementation/sprint-planning/instructions.md @@ -95,6 +95,7 @@ development_status: ```yaml # generated: {date} +# last_updated: {date} # project: {project_name} # project_key: {project_key} # tracking_system: {tracking_system} @@ -130,6 +131,7 @@ development_status: # - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended) generated: { date } +last_updated: { date } project: { project_name } project_key: { project_key } tracking_system: { tracking_system } diff --git a/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml b/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml index 80d404310..6725b206c 100644 --- a/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +++ b/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml @@ -35,6 +35,7 @@ # EXAMPLE STRUCTURE (your actual epics/stories will replace these): generated: 05-06-2-2025 21:30 +last_updated: 05-06-2-2025 21:30 project: My Awesome Project project_key: NOKEY tracking_system: file-system diff --git a/src/bmm/workflows/4-implementation/sprint-status/instructions.md b/src/bmm/workflows/4-implementation/sprint-status/instructions.md index 4182e1f25..b37bff9a5 100644 --- a/src/bmm/workflows/4-implementation/sprint-status/instructions.md +++ b/src/bmm/workflows/4-implementation/sprint-status/instructions.md @@ -36,7 +36,7 @@ Run `/bmad:bmm:workflows:sprint-planning` to generate it, then rerun sprint-stat Read the FULL file: {sprint_status_file} - Parse fields: generated, project, project_key, tracking_system, story_location + 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" @@ -84,7 +84,7 @@ 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 `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" @@ -195,7 +195,7 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted. Read and parse {sprint_status_file} -Validate required metadata fields exist: generated, project, project_key, tracking_system, story_location +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}}"