BMAD-METHOD/src/bmm/workflows/4-implementation/dev-story/steps/step-09-mark-review-ready.md

3.3 KiB
Raw Blame History

name description nextStepFile
step-09-mark-review-ready Finalize story, enforce definition-of-done, and set review status ./step-10-closeout.md
Verify ALL tasks and subtasks are marked [x] (re-scan the story document now) Run the full regression suite (do not skip) Confirm File List includes every changed file Execute enhanced definition-of-done validation Update the story Status to: "review" Initialize sprint tracking state: - If {sprint_status} exists and is readable, load file and set {{current_sprint_status}} from tracking mode/content - If file does not exist, unreadable, or indicates no sprint tracking, set {{current_sprint_status}} = "no-sprint-tracking"
<!-- Enhanced Definition of Done Validation -->
<action>Validate definition-of-done checklist with essential requirements:
  - All tasks/subtasks marked complete with [x]
  - Implementation satisfies every Acceptance Criterion
  - Unit tests for core functionality added/updated
  - Integration tests for component interactions added when required
  - End-to-end tests for critical flows added when story demands them
  - All tests pass (no regressions, new tests successful)
  - Code quality checks pass (linting, static analysis if configured)
  - File List includes every new/modified/deleted file (relative paths)
  - Dev Agent Record contains implementation notes
  - Change Log includes summary of changes
  - Only permitted story sections were modified
</action>

<!-- Mark story ready for review - sprint status conditional -->
<check if="{sprint_status} file exists AND {{current_sprint_status}} != 'no-sprint-tracking'">
  <action>Load the FULL file: {sprint_status}</action>
  <action>Find development_status key matching {{story_key}}</action>
  <action>Verify current status is "in-progress" (expected previous state)</action>
  <action>Update development_status[{{story_key}}] = "review"</action>
  <action>Save file, preserving ALL comments and structure including STATUS DEFINITIONS</action>
  <output>✅ Story status updated to "review" in sprint-status.yaml</output>
</check>

<check if="{sprint_status} file does NOT exist OR {{current_sprint_status}} == 'no-sprint-tracking'">
  <output> Story status updated to "review" in story file (no sprint tracking configured)</output>
</check>

<check if="story key not found in sprint status">
  <output>⚠️ Story file updated, but sprint-status update failed: {{story_key}} not found

    Story status is set to "review" in file, but sprint-status.yaml may be out of sync.
  </output>
</check>

<!-- Final validation gates -->
<action if="any task is incomplete">HALT - Complete remaining tasks before marking ready for review</action>
<action if="regression failures exist">HALT - Fix regression issues before completing</action>
<action if="File List is incomplete">HALT - Update File List with all changed files</action>
<action if="definition-of-done validation fails">HALT - Address DoD failures before completing</action>

Next

  • Read fully and follow: ./step-10-closeout.md.