Merge 7ef58deb19 into 242dc6ef75
This commit is contained in:
commit
e50cbc23e0
|
|
@ -350,6 +350,7 @@ Amelia (Developer): "I found our retrospectives from Epic {{prev_epic_num}}. Let
|
|||
|
||||
**Action Item Follow-Through:**
|
||||
- For each action item from Epic {{prev_epic_num}} retro, check if it was completed
|
||||
- Cross-check the action_items section in {sprint_status_file} (if present) for Epic {{prev_epic_num}} entries and their current status
|
||||
- Look for evidence in current epic's story records
|
||||
- Mark each action item: ✅ Completed, ⏳ In Progress, ❌ Not Addressed
|
||||
|
||||
|
|
@ -1403,6 +1404,19 @@ Amelia (Developer): "See you all when prep work is done. Meeting adjourned!"
|
|||
<action>Find development_status key "epic-{{epic_number}}-retrospective"</action>
|
||||
<action>Verify current status (typically "optional" or "pending")</action>
|
||||
<action>Update development_status["epic-{{epic_number}}-retrospective"] = "done"</action>
|
||||
<action>Append each Epic {{epic_number}} action item to the action_items section, creating the section after development_status if missing. One entry per item:</action>
|
||||
|
||||
```yaml
|
||||
action_items:
|
||||
- epic: {{epic_number}}
|
||||
action: "{{action_description}}"
|
||||
owner: "{{owner}}"
|
||||
status: open
|
||||
```
|
||||
|
||||
<action>Quote action and owner values so punctuation (e.g., "#") cannot break YAML parsing</action>
|
||||
|
||||
<action>Update Epic {{prev_epic_num}} action_items entries based on Step 4 follow-through: ✅ Completed → done, ⏳ In Progress → in-progress, ❌ Not Addressed → keep existing status (do not modify)</action>
|
||||
<action>Update last_updated field to current date</action>
|
||||
<action>Save file, preserving ALL comments and structure including STATUS DEFINITIONS</action>
|
||||
|
||||
|
|
@ -1412,6 +1426,7 @@ Amelia (Developer): "See you all when prep work is done. Meeting adjourned!"
|
|||
|
||||
Retrospective key: epic-{{epic_number}}-retrospective
|
||||
Status: {{previous_status}} → done
|
||||
Action items recorded: {{action_count}}
|
||||
</output>
|
||||
</check>
|
||||
|
||||
|
|
|
|||
|
|
@ -151,6 +151,7 @@ development_status:
|
|||
|
||||
- If existing `{status_file}` exists and has more advanced status, preserve it
|
||||
- Never downgrade status (e.g., don't change `done` to `ready-for-dev`)
|
||||
- If existing `{status_file}` has an `action_items` section, carry it over unchanged
|
||||
|
||||
**Status Flow Reference:**
|
||||
|
||||
|
|
@ -194,12 +195,18 @@ development_status:
|
|||
# - optional: Can be completed but not required
|
||||
# - done: Retrospective has been completed
|
||||
#
|
||||
# Action Item Status:
|
||||
# - open: Committed during a retrospective, not yet addressed
|
||||
# - in-progress: Actively being worked on
|
||||
# - done: Completed
|
||||
#
|
||||
# WORKFLOW NOTES:
|
||||
# ===============
|
||||
# - Epic transitions to 'in-progress' automatically when first story is created
|
||||
# - Stories can be worked in parallel if team capacity allows
|
||||
# - Developer typically creates next story after previous one is 'done' to incorporate learnings
|
||||
# - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended)
|
||||
# - Retrospective appends its action items to action_items; sprint-status surfaces open ones
|
||||
|
||||
generated: { date }
|
||||
last_updated: { date }
|
||||
|
|
@ -215,6 +222,7 @@ development_status:
|
|||
<action>Write the complete sprint status YAML to {status_file}</action>
|
||||
<action>CRITICAL: Metadata appears TWICE - once as comments (#) for documentation, once as YAML key:value fields for parsing</action>
|
||||
<action>Ensure all items are ordered: epic, its stories, its retrospective, next epic...</action>
|
||||
<action>If the existing file had an action_items section, write it back unchanged after development_status</action>
|
||||
</step>
|
||||
|
||||
<step n="5" goal="Validate and report">
|
||||
|
|
@ -223,7 +231,8 @@ development_status:
|
|||
- [ ] Every epic in epic files appears in {status_file}
|
||||
- [ ] Every story in epic files appears in {status_file}
|
||||
- [ ] Every epic has a corresponding retrospective entry
|
||||
- [ ] No items in {status_file} that don't exist in epic files
|
||||
- [ ] No development_status items in {status_file} that don't exist in epic files
|
||||
- [ ] action_items section (if it existed) carried over unchanged
|
||||
- [ ] All status values are legal (match state machine definitions)
|
||||
- [ ] File is valid YAML syntax
|
||||
|
||||
|
|
@ -291,6 +300,16 @@ optional ↔ done
|
|||
- **optional**: Ready to be conducted but not required
|
||||
- **done**: Finished
|
||||
|
||||
**Action Item Status:**
|
||||
|
||||
```
|
||||
open → in-progress → done
|
||||
```
|
||||
|
||||
- **open**: Committed during a retrospective, not yet addressed
|
||||
- **in-progress**: Actively being worked on
|
||||
- **done**: Completed
|
||||
|
||||
### Guidelines
|
||||
|
||||
1. **Epic Activation**: Mark epic as `in-progress` when starting work on its first story
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
- [ ] Every epic found in epic\*.md files appears in sprint-status.yaml
|
||||
- [ ] Every story found in epic\*.md files appears in sprint-status.yaml
|
||||
- [ ] Every epic has a corresponding retrospective entry
|
||||
- [ ] No items in sprint-status.yaml that don't exist in epic files
|
||||
- [ ] No development_status items in sprint-status.yaml that don't exist in epic files
|
||||
- [ ] action_items section (if it existed) carried over unchanged
|
||||
|
||||
### Parsing Verification
|
||||
|
||||
|
|
|
|||
|
|
@ -26,11 +26,17 @@
|
|||
# - optional: Can be completed but not required
|
||||
# - done: Retrospective has been completed
|
||||
#
|
||||
# Action Item Status:
|
||||
# - open: Committed during a retrospective, not yet addressed
|
||||
# - in-progress: Actively being worked on
|
||||
# - done: Completed
|
||||
#
|
||||
# WORKFLOW NOTES:
|
||||
# ===============
|
||||
# - Mark epic as 'in-progress' when starting work on its first story
|
||||
# - Developer typically creates next story ONLY after previous one is 'done' to incorporate learnings
|
||||
# - Dev moves story to 'review', then Dev runs code-review (fresh context, ideally different LLM)
|
||||
# - Retrospective appends its action items to action_items; sprint-status surfaces open ones
|
||||
|
||||
# EXAMPLE STRUCTURE (your actual epics/stories will replace these):
|
||||
|
||||
|
|
@ -54,3 +60,10 @@ development_status:
|
|||
2-2-chat-interface: backlog
|
||||
2-3-llm-integration: backlog
|
||||
epic-2-retrospective: optional
|
||||
|
||||
# Action items committed during retrospectives (section created by the retrospective workflow)
|
||||
action_items:
|
||||
- epic: 1
|
||||
action: "Add error-handling review to the code review checklist"
|
||||
owner: "Charlie"
|
||||
status: open
|
||||
|
|
|
|||
|
|
@ -112,12 +112,14 @@ Run `/bmad:bmm:workflows:sprint-planning` to generate it, then rerun sprint-stat
|
|||
<action>Map legacy epic status "contexted" → "in-progress"</action>
|
||||
<action>Count epic statuses: backlog, in-progress, done</action>
|
||||
<action>Count retrospective statuses: optional, done</action>
|
||||
<action>Parse action_items list if present. Set open_action_items = entries with status "open" or "in-progress"</action>
|
||||
|
||||
<action>Validate all statuses against known values:</action>
|
||||
|
||||
- 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
|
||||
- Valid action item statuses: open, in-progress, done
|
||||
|
||||
<check if="any status is unrecognized">
|
||||
<output>
|
||||
|
|
@ -132,6 +134,7 @@ Run `/bmad:bmm:workflows:sprint-planning` to generate it, then rerun sprint-stat
|
|||
- Stories: backlog, ready-for-dev, in-progress, review, done
|
||||
- Epics: backlog, in-progress, done
|
||||
- Retrospectives: optional, done
|
||||
- Action items: open, in-progress, done
|
||||
</output>
|
||||
<ask>How should these be corrected?
|
||||
{{#each invalid_entries}}
|
||||
|
|
@ -181,6 +184,14 @@ Enter corrections (e.g., "1=in-progress, 2=backlog") or "skip" to continue witho
|
|||
|
||||
**Next Recommendation:** /bmad:bmm:workflows:{{next_workflow_id}} ({{next_story_id}})
|
||||
|
||||
{{#if open_action_items}}
|
||||
**Open Action Items:**
|
||||
{{#each open_action_items}}
|
||||
|
||||
- {{action}} — {{status}} (epic {{epic}}, owner: {{owner}})
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
|
||||
{{#if risks}}
|
||||
**Risks:**
|
||||
{{#each risks}}
|
||||
|
|
@ -243,6 +254,7 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted.
|
|||
<template-output>epic_backlog = {{epic_backlog}}</template-output>
|
||||
<template-output>epic_in_progress = {{epic_in_progress}}</template-output>
|
||||
<template-output>epic_done = {{epic_done}}</template-output>
|
||||
<template-output>open_action_items = {{open_action_items}}</template-output>
|
||||
<template-output>risks = {{risks}}</template-output>
|
||||
<action>Return to caller</action>
|
||||
</step>
|
||||
|
|
@ -283,6 +295,7 @@ If the command targets a story, set `story_key={{next_story_id}}` when prompted.
|
|||
- Stories: backlog, ready-for-dev, in-progress, review, done (legacy: drafted)
|
||||
- Epics: backlog, in-progress, done (legacy: contexted)
|
||||
- Retrospectives: optional, done
|
||||
- Action items (if present): open, in-progress, done
|
||||
<check if="any invalid status found">
|
||||
<template-output>is_valid = false</template-output>
|
||||
<template-output>error = "Invalid status values: {{invalid_entries}}"</template-output>
|
||||
|
|
|
|||
Loading…
Reference in New Issue