name: 'step-04-review' description: 'Review and finalize the tech-spec'
workflow_path: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec'
Progress: Step 4 of 4 - Final Step
{communication_language}{wipFile} from Step 3.workflow.md.Read {wipFile} completely and extract slug from frontmatter for later use.
Present to user:
"Here's your complete tech-spec. Please review:"
[Display the complete spec content - all sections]
"Quick Summary:
Present review menu:
Display: "Select: [C] Continue [E] Edit [Q] Questions [A] Advanced Elicitation [P] Party Mode"
HALT and wait for user selection.
{advanced_elicitation} with current spec content, process enhanced insights, ask user "Accept improvements? (y/n)", if yes update spec then redisplay menu, if no keep original then redisplay menu{party_mode_exec} with current spec content, process collaborative insights, ask user "Accept changes? (y/n)", if yes update spec then redisplay menu, if no keep original then redisplay menua) If user requests changes:
{wipFile}b) If the spec does NOT meet the "Ready for Development" standard:
c) If user has questions:
When user confirms the spec is good AND it meets the "Ready for Development" standard:
a) Update {wipFile} frontmatter:
---
# ... existing values ...
status: 'ready-for-dev'
stepsCompleted: [1, 2, 3, 4]
---
b) Rename WIP file to final filename:
slug extracted in Section 1{wipFile} → {implementation_artifacts}/tech-spec-{slug}.mdfinalFile for use in menus belowa) Display completion message and menu:
**Tech-Spec Complete!**
Saved to: {finalFile}
---
**Next Steps:**
[A] Advanced Elicitation - refine further
[R] Adversarial Review - critique of the spec (highly recommended)
[B] Begin Development - start implementing now (not recommended)
[D] Done - exit workflow
[P] Party Mode - get expert feedback before dev
---
Once you are fully satisfied with the spec (ideally after **Adversarial Review** and maybe a few rounds of **Advanced Elicitation**), it is recommended to run implementation in a FRESH CONTEXT for best results.
Copy this prompt to start dev:
\`\`\`
quick-dev {finalFile}
\`\`\`
This ensures the dev agent has clean context focused solely on implementation.
b) HALT and wait for user selection.
{advanced_elicitation} with current spec content, process enhanced insights, ask user "Accept improvements? (y/n)", if yes update spec then redisplay menu, if no keep original then redisplay menu{quick_dev_workflow} and follow the instructions with the final spec file (warn: fresh context is better){party_mode_exec} with current spec content, process collaborative insights, ask user "Accept changes? (y/n)", if yes update spec then redisplay menu, if no keep original then redisplay menuInvoke Adversarial Review Task:
With
{finalFile}constructed, invoke the review task. If possible, use information asymmetry: run this task, and only it, in a separate subagent or process with read access to the project, but no context except the{finalFile}. Review {finalFile} using {project-root}/_bmad/core/tasks/review-adversarial-general.xml Platform fallback: If task invocation not available, load the task file and follow its instructions inline, passing{finalFile}as the content. The task should: review{finalFile}and return a list of findings.
Process Findings:
Capture the findings from the task output. If zero findings: HALT - this is suspicious. Re-analyze or request user guidance. Evaluate severity (Critical, High, Medium, Low) and validity (real, noise, undecided). DO NOT exclude findings based on severity or validity unless explicitly asked to do so. Order findings by severity. Number the ordered findings (F1, F2, F3, etc.). If TodoWrite or similar tool is available, turn each finding into a TODO, include ID, severity, validity, and description in the TODO; otherwise present findings as a table with columns: ID, Severity, Validity, Description
Return here and redisplay menu.
When user selects [D]:
"All done! Your tech-spec is ready at:
{finalFile}
When you're ready to implement, run:
quick-dev {finalFile}
Ship it!"
tech-spec-{slug}.md.stepsCompleted: [1, 2, 3, 4] set and file renamed.