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
Update development_status[{{story_key}}] = "in-progress"
+ Update last_updated field to current date
Save file, preserving ALL comments and structure
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
@@ -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
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}}"