mirror of
https://github.com/bmadcode/BMAD-METHOD.git
synced 2025-12-17 17:55:34 +00:00
- Fix checklist to only accept 'review' status (not 'ready-for-review') - Include MEDIUM issues in done/in-progress status determination - Initialize and track fixed_count/action_count variables for summary - Add sprint-status.yaml sync when story status changes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
parent
72ef9e9722
commit
c95b65f462
@ -1,7 +1,7 @@
|
|||||||
# Senior Developer Review - Validation Checklist
|
# Senior Developer Review - Validation Checklist
|
||||||
|
|
||||||
- [ ] Story file loaded from `{{story_path}}`
|
- [ ] Story file loaded from `{{story_path}}`
|
||||||
- [ ] Story Status verified as one of: {{allow_status_values}}
|
- [ ] Story Status verified as reviewable (review)
|
||||||
- [ ] Epic and Story IDs resolved ({{epic_num}}.{{story_num}})
|
- [ ] Epic and Story IDs resolved ({{epic_num}}.{{story_num}})
|
||||||
- [ ] Story Context located or warning recorded
|
- [ ] Story Context located or warning recorded
|
||||||
- [ ] Epic Tech Spec located or warning recorded
|
- [ ] Epic Tech Spec located or warning recorded
|
||||||
@ -17,6 +17,7 @@
|
|||||||
- [ ] Review notes appended under "Senior Developer Review (AI)"
|
- [ ] Review notes appended under "Senior Developer Review (AI)"
|
||||||
- [ ] Change Log updated with review entry
|
- [ ] Change Log updated with review entry
|
||||||
- [ ] Status updated according to settings (if enabled)
|
- [ ] Status updated according to settings (if enabled)
|
||||||
|
- [ ] Sprint status synced (if sprint tracking enabled)
|
||||||
- [ ] Story saved successfully
|
- [ ] Story saved successfully
|
||||||
|
|
||||||
_Reviewer: {{user_name}} on {{date}}_
|
_Reviewer: {{user_name}} on {{date}}_
|
||||||
@ -16,6 +16,7 @@
|
|||||||
<step n="1" goal="Load story and discover changes">
|
<step n="1" goal="Load story and discover changes">
|
||||||
<action>Use provided {{story_path}} or ask user which story file to review</action>
|
<action>Use provided {{story_path}} or ask user which story file to review</action>
|
||||||
<action>Read COMPLETE story file</action>
|
<action>Read COMPLETE story file</action>
|
||||||
|
<action>Set {{story_key}} = extracted key from filename (e.g., "1-2-user-authentication.md" → "1-2-user-authentication") or story metadata</action>
|
||||||
<action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Agent Record → File List, Change Log</action>
|
<action>Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Agent Record → File List, Change Log</action>
|
||||||
|
|
||||||
<!-- Discover actual changes via git -->
|
<!-- Discover actual changes via git -->
|
||||||
@ -106,6 +107,8 @@
|
|||||||
|
|
||||||
<step n="4" goal="Present findings and fix them">
|
<step n="4" goal="Present findings and fix them">
|
||||||
<action>Categorize findings: HIGH (must fix), MEDIUM (should fix), LOW (nice to fix)</action>
|
<action>Categorize findings: HIGH (must fix), MEDIUM (should fix), LOW (nice to fix)</action>
|
||||||
|
<action>Set {{fixed_count}} = 0</action>
|
||||||
|
<action>Set {{action_count}} = 0</action>
|
||||||
|
|
||||||
<output>**🔥 CODE REVIEW FINDINGS, {user_name}!**
|
<output>**🔥 CODE REVIEW FINDINGS, {user_name}!**
|
||||||
|
|
||||||
@ -145,11 +148,15 @@
|
|||||||
<action>Add/update tests as needed</action>
|
<action>Add/update tests as needed</action>
|
||||||
<action>Update File List in story if files changed</action>
|
<action>Update File List in story if files changed</action>
|
||||||
<action>Update story Dev Agent Record with fixes applied</action>
|
<action>Update story Dev Agent Record with fixes applied</action>
|
||||||
|
<action>Set {{fixed_count}} = number of HIGH and MEDIUM issues fixed</action>
|
||||||
|
<action>Set {{action_count}} = 0</action>
|
||||||
</check>
|
</check>
|
||||||
|
|
||||||
<check if="user chooses 2">
|
<check if="user chooses 2">
|
||||||
<action>Add "Review Follow-ups (AI)" subsection to Tasks/Subtasks</action>
|
<action>Add "Review Follow-ups (AI)" subsection to Tasks/Subtasks</action>
|
||||||
<action>For each issue: `- [ ] [AI-Review][Severity] Description [file:line]`</action>
|
<action>For each issue: `- [ ] [AI-Review][Severity] Description [file:line]`</action>
|
||||||
|
<action>Set {{action_count}} = number of action items created</action>
|
||||||
|
<action>Set {{fixed_count}} = 0</action>
|
||||||
</check>
|
</check>
|
||||||
|
|
||||||
<check if="user chooses 3">
|
<check if="user chooses 3">
|
||||||
@ -158,11 +165,52 @@
|
|||||||
</check>
|
</check>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step n="5" goal="Update story status">
|
<step n="5" goal="Update story status and sync sprint tracking">
|
||||||
<action>If all HIGH issues fixed and ACs implemented → Update story Status to "done"</action>
|
<!-- Determine new status based on review outcome -->
|
||||||
<action>If issues remain → Update story Status to "in-progress"</action>
|
<check if="all HIGH and MEDIUM issues fixed AND all ACs implemented">
|
||||||
|
<action>Set {{new_status}} = "done"</action>
|
||||||
|
<action>Update story Status field to "done"</action>
|
||||||
|
</check>
|
||||||
|
<check if="HIGH or MEDIUM issues remain OR ACs not fully implemented">
|
||||||
|
<action>Set {{new_status}} = "in-progress"</action>
|
||||||
|
<action>Update story Status field to "in-progress"</action>
|
||||||
|
</check>
|
||||||
<action>Save story file</action>
|
<action>Save story file</action>
|
||||||
|
|
||||||
|
<!-- Determine sprint tracking status -->
|
||||||
|
<check if="{sprint_status} file exists">
|
||||||
|
<action>Set {{current_sprint_status}} = "enabled"</action>
|
||||||
|
</check>
|
||||||
|
<check if="{sprint_status} file does NOT exist">
|
||||||
|
<action>Set {{current_sprint_status}} = "no-sprint-tracking"</action>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
<!-- Sync sprint-status.yaml when story status changes (only if sprint tracking enabled) -->
|
||||||
|
<check if="{{current_sprint_status}} != 'no-sprint-tracking'">
|
||||||
|
<action>Load the FULL file: {sprint_status}</action>
|
||||||
|
<action>Find development_status key matching {{story_key}}</action>
|
||||||
|
|
||||||
|
<check if="{{new_status}} == 'done'">
|
||||||
|
<action>Update development_status[{{story_key}}] = "done"</action>
|
||||||
|
<action>Save file, preserving ALL comments and structure</action>
|
||||||
|
<output>✅ Sprint status synced: {{story_key}} → done</output>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
<check if="{{new_status}} == 'in-progress'">
|
||||||
|
<action>Update development_status[{{story_key}}] = "in-progress"</action>
|
||||||
|
<action>Save file, preserving ALL comments and structure</action>
|
||||||
|
<output>🔄 Sprint status synced: {{story_key}} → in-progress</output>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
<check if="story key not found in sprint status">
|
||||||
|
<output>⚠️ Story file updated, but sprint-status sync failed: {{story_key}} not found in sprint-status.yaml</output>
|
||||||
|
</check>
|
||||||
|
</check>
|
||||||
|
|
||||||
|
<check if="{{current_sprint_status}} == 'no-sprint-tracking'">
|
||||||
|
<output>ℹ️ Story status updated (no sprint tracking configured)</output>
|
||||||
|
</check>
|
||||||
|
|
||||||
<output>**✅ Review Complete!**
|
<output>**✅ Review Complete!**
|
||||||
|
|
||||||
**Story Status:** {{new_status}}
|
**Story Status:** {{new_status}}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user