doc: standardize quick-flow menu patterns to newer format (#1388)

Update quick-spec and quick-dev workflow menus to match established standards:
- Uppercase all menu option letters ([A], [P], [C], [T], [E], [W], etc.)
- Add "Menu Handling Logic:" sections with IF/THEN structure
- Add "EXECUTION RULES:" sections with halt/wait behavior
- Add chat handling for checkpoint menus (A/P/C)
- Remove code blocks from Display patterns, use standard format
- Add header for adversarial review process block

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
This commit is contained in:
Alex Verkhovsky
2026-01-24 10:17:28 -08:00
committed by GitHub
parent 7d63dcd6a0
commit 8bdf21f65b
9 changed files with 131 additions and 88 deletions

View File

@@ -52,7 +52,7 @@ Analyze the user's input to determine mode:
- Load the spec, extract tasks/context/AC - Load the spec, extract tasks/context/AC
- Set `{execution_mode}` = "tech-spec" - Set `{execution_mode}` = "tech-spec"
- Set `{tech_spec_path}` = provided path - Set `{tech_spec_path}` = provided path
- **NEXT:** Load `step-03-execute.md` - **NEXT:** Read fully and follow: `step-03-execute.md`
**Mode B: Direct Instructions** **Mode B: Direct Instructions**
@@ -88,43 +88,63 @@ Use holistic judgment, not mechanical keyword matching.
### No Escalation (simple request) ### No Escalation (simple request)
Present choice: Display: "**Select:** [T] Plan first (tech-spec) [E] Execute directly"
``` #### Menu Handling Logic:
**[t] Plan first** - Create tech-spec then implement
**[e] Execute directly** - Start now
```
- **[t]:** Direct user to `{quick_spec_workflow}`. **EXIT Quick Dev.** - IF T: Direct user to `{quick_spec_workflow}`. **EXIT Quick Dev.**
- **[e]:** Ask for any additional guidance, then **NEXT:** Load `step-02-context-gathering.md` - IF E: Ask for any additional guidance, then **NEXT:** Read fully and follow: `step-02-context-gathering.md`
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed when user makes a selection
---
### Escalation Triggered - Level 0-2 ### Escalation Triggered - Level 0-2
``` Present: "This looks like a focused feature with multiple components."
This looks like a focused feature with multiple components.
**[t] Create tech-spec first** (recommended) Display:
**[w] Seems bigger than quick-dev** - Recommend the Full BMad Flow PRD Process
**[e] Execute directly**
```
- **[t]:** Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.** **[T] Create tech-spec first** (recommended)
- **[w]:** Direct user to run the PRD workflow instead. **EXIT Quick Dev.** **[W] Seems bigger than quick-dev** - Recommend the Full BMad Flow PRD Process
- **[e]:** Ask for guidance, then **NEXT:** Load `step-02-context-gathering.md` **[E] Execute directly**
#### Menu Handling Logic:
- IF T: Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.**
- IF W: Direct user to run the PRD workflow instead. **EXIT Quick Dev.**
- IF E: Ask for guidance, then **NEXT:** Read fully and follow: `step-02-context-gathering.md`
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed when user makes a selection
---
### Escalation Triggered - Level 3+ ### Escalation Triggered - Level 3+
``` Present: "This sounds like platform/system work."
This sounds like platform/system work.
**[w] Start BMad Method** (recommended) Display:
**[t] Create tech-spec** (lighter planning)
**[e] Execute directly** - feeling lucky
```
- **[t]:** Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.** **[W] Start BMad Method** (recommended)
- **[w]:** Direct user to run the PRD workflow instead. **EXIT Quick Dev.** **[T] Create tech-spec** (lighter planning)
- **[e]:** Ask for guidance, then **NEXT:** Load `step-02-context-gathering.md` **[E] Execute directly** - feeling lucky
#### Menu Handling Logic:
- IF T: Direct to `{quick_spec_workflow}`. **EXIT Quick Dev.**
- IF W: Direct user to run the PRD workflow instead. **EXIT Quick Dev.**
- IF E: Ask for guidance, then **NEXT:** Read fully and follow: `step-02-context-gathering.md`
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed when user makes a selection
--- ---
@@ -132,9 +152,9 @@ This sounds like platform/system work.
**CRITICAL:** When this step completes, explicitly state which step to load: **CRITICAL:** When this step completes, explicitly state which step to load:
- Mode A (tech-spec): "**NEXT:** Loading `step-03-execute.md`" - Mode A (tech-spec): "**NEXT:** read fully and follow: `step-03-execute.md`"
- Mode B (direct, [e] selected): "**NEXT:** Loading `step-02-context-gathering.md`" - Mode B (direct, [E] selected): "**NEXT:** Read fully and follow: `step-02-context-gathering.md`"
- Escalation ([t] or [w]): "**EXITING Quick Dev.** Follow the directed workflow." - Escalation ([T] or [W]): "**EXITING Quick Dev.** Follow the directed workflow."
--- ---

View File

@@ -99,7 +99,7 @@ Ready to execute? (y/n/adjust)
**CRITICAL:** When user confirms ready, explicitly state: **CRITICAL:** When user confirms ready, explicitly state:
- **y:** "**NEXT:** Loading `step-03-execute.md`" - **y:** "**NEXT:** Read fully and follow: `step-03-execute.md`"
- **n/adjust:** Continue gathering context, then re-present plan - **n/adjust:** Continue gathering context, then re-present plan
--- ---

View File

@@ -91,7 +91,7 @@ For each task:
## NEXT STEP ## NEXT STEP
When ALL tasks are complete (or halted on blocker), load `step-04-self-check.md`. When ALL tasks are complete (or halted on blocker), read fully and follow: `step-04-self-check.md`.
--- ---

View File

@@ -85,7 +85,7 @@ If TodoWrite or similar tool is available, turn each finding into a TODO, includ
## NEXT STEP ## NEXT STEP
With findings in hand, load `step-06-resolve-findings.md` for user to choose resolution approach. With findings in hand, read fully and follow: `step-06-resolve-findings.md` for user to choose resolution approach.
--- ---

View File

@@ -25,15 +25,24 @@ From previous steps:
## RESOLUTION OPTIONS ## RESOLUTION OPTIONS
Present choice to user: Present: "How would you like to handle these findings?"
``` Display:
How would you like to handle these findings?
**[1] Walk through** - Discuss each finding individually **[1] Walk through** - Discuss each finding individually
**[2] Auto-fix** - Automatically fix issues classified as "real" **[2] Auto-fix** - Automatically fix issues classified as "real"
**[3] Skip** - Acknowledge and proceed to commit **[3] Skip** - Acknowledge and proceed to commit
```
### Menu Handling Logic:
- IF 1: Execute OPTION 1 (Walk Through) below
- IF 2: Execute OPTION 2 (Auto-fix) below
- IF 3: Execute OPTION 3 (Skip) below
### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed when user makes a selection
--- ---

View File

@@ -47,20 +47,20 @@ Hey {user_name}! Found a tech-spec in progress:
Is this what you're here to continue? Is this what you're here to continue?
[y] Yes, pick up where I left off [Y] Yes, pick up where I left off
[n] No, archive it and start something new [N] No, archive it and start something new
``` ```
4. **HALT and wait for user selection.** 4. **HALT and wait for user selection.**
a) **Menu Handling:** a) **Menu Handling:**
- **[y] Continue existing:** - **[Y] Continue existing:**
- Jump directly to the appropriate step based on `stepsCompleted`: - Jump directly to the appropriate step based on `stepsCompleted`:
- `[1]` → Load `{nextStepFile}` (Step 2) - `[1]` → Load `{nextStepFile}` (Step 2)
- `[1, 2]` → Load `{skipToStepFile}` (Step 3) - `[1, 2]` → Load `{skipToStepFile}` (Step 3)
- `[1, 2, 3]` → Load `./step-04-review.md` (Step 4) - `[1, 2, 3]` → Load `./step-04-review.md` (Step 4)
- **[n] Archive and start fresh:** - **[N] Archive and start fresh:**
- Rename `{wipFile}` to `{implementation_artifacts}/tech-spec-{slug}-archived-{date}.md` - Rename `{wipFile}` to `{implementation_artifacts}/tech-spec-{slug}-archived-{date}.md`
### 1. Greet and Ask for Initial Request ### 1. Greet and Ask for Initial Request
@@ -162,19 +162,22 @@ b) **Report to user:**
a) **Display menu:** a) **Display menu:**
``` Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Deep Investigation (Step 2 of 4)"
[a] Advanced Elicitation - dig deeper into requirements
[c] Continue - proceed to next step
[p] Party Mode - bring in other experts
```
b) **HALT and wait for user selection.** b) **HALT and wait for user selection.**
#### Menu Handling: #### Menu Handling Logic:
- **[a]**: Read fully and follow: `{advanced_elicitation}`, then return here and redisplay menu - IF A: Read fully and follow: `{advanced_elicitation}` with current tech-spec content, process enhanced insights, ask user "Accept improvements? (y/n)", if yes update WIP file then redisplay menu, if no keep original then redisplay menu
- **[c]**: Read fully and follow: `{nextStepFile}` (Map Technical Constraints) - IF P: Read fully and follow: `{party_mode_exec}` with current tech-spec content, process collaborative insights, ask user "Accept changes? (y/n)", if yes update WIP file then redisplay menu, if no keep original then redisplay menu
- **[p]**: Read fully and follow: `{party_mode_exec}`, then return here and redisplay menu - IF C: Verify `{wipFile}` has `stepsCompleted: [1]`, then read fully and follow: `{nextStepFile}`
- IF Any other comments or queries: respond helpfully then redisplay menu
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After A or P execution, return to this menu
--- ---
@@ -186,4 +189,4 @@ b) **HALT and wait for user selection.**
- [ ] WIP check performed FIRST before any greeting. - [ ] WIP check performed FIRST before any greeting.
- [ ] `{wipFile}` created with correct frontmatter, Overview, Context for Development, and `stepsCompleted: [1]`. - [ ] `{wipFile}` created with correct frontmatter, Overview, Context for Development, and `stepsCompleted: [1]`.
- [ ] User selected [c] to continue. - [ ] User selected [C] to continue.

View File

@@ -115,21 +115,22 @@ Fill in:
### 4. Present Checkpoint Menu ### 4. Present Checkpoint Menu
**Display menu:** Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Generate Spec (Step 3 of 4)"
```
[a] Advanced Elicitation - explore more context
[c] Continue - proceed to Generate Spec
[p] Party Mode - bring in other experts
```
**HALT and wait for user selection.** **HALT and wait for user selection.**
#### Menu Handling: #### Menu Handling Logic:
- **[a]**: Read fully and follow: `{advanced_elicitation}`, then return here and redisplay menu - IF A: Read fully and follow: `{advanced_elicitation}` with current tech-spec content, process enhanced insights, ask user "Accept improvements? (y/n)", if yes update WIP file then redisplay menu, if no keep original then redisplay menu
- **[c]**: Verify frontmatter updated with `stepsCompleted: [1, 2]`, then read fully and follow: `{nextStepFile}` - IF P: Read fully and follow: `{party_mode_exec}` with current tech-spec content, process collaborative insights, ask user "Accept changes? (y/n)", if yes update WIP file then redisplay menu, if no keep original then redisplay menu
- **[p]**: Read fully and follow: `{party_mode_exec}`, then return here and redisplay menu - IF C: Verify frontmatter updated with `stepsCompleted: [1, 2]`, then read fully and follow: `{nextStepFile}`
- IF Any other comments or queries: respond helpfully then redisplay menu
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After A or P execution, return to this menu
--- ---

View File

@@ -43,23 +43,24 @@ wipFile: '{implementation_artifacts}/tech-spec-wip.md'
**Present review menu:** **Present review menu:**
``` Display: "**Select:** [Y] Approve [C] Changes [Q] Questions [A] Advanced Elicitation [P] Party Mode"
[y] Approve - finalize the spec
[c] Changes - request modifications
[q] Questions - ask about any section
[a] Advanced Elicitation - dig deeper before approving
[p] Party Mode - get expert feedback before approving
```
**HALT and wait for user selection.** **HALT and wait for user selection.**
#### Menu Handling: #### Menu Handling Logic:
- **[y]**: Proceed to Section 3 (Finalize the Spec) - IF Y: Proceed to Section 3 (Finalize the Spec)
- **[c]**: Proceed to Section 2 (Handle Review Feedback), then return here and redisplay menu - IF C: Proceed to Section 2 (Handle Review Feedback), then return here and redisplay menu
- **[q]**: Answer questions, then redisplay this menu - IF Q: Answer questions, then redisplay this menu
- **[a]**: Read fully and follow: `{advanced_elicitation}`, then return here and redisplay menu - IF A: Read fully and follow: `{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
- **[p]**: Read fully and follow: `{party_mode_exec}`, then return here and redisplay menu - IF P: Read fully and follow: `{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 menu
- IF Any other comments or queries: respond helpfully then redisplay menu
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to finalize when user selects 'Y'
- After other menu items execution, return to this menu
### 2. Handle Review Feedback ### 2. Handle Review Feedback
@@ -114,11 +115,11 @@ Saved to: {finalFile}
**Next Steps:** **Next Steps:**
[a] Advanced Elicitation - refine further [A] Advanced Elicitation - refine further
[r] Adversarial Review - critique of the spec (highly recommended) [R] Adversarial Review - critique of the spec (highly recommended)
[b] Begin Development - start implementing now (not recommended) [B] Begin Development - start implementing now (not recommended)
[d] Done - exit workflow [D] Done - exit workflow
[p] Party Mode - get expert feedback before dev [P] Party Mode - get expert feedback before dev
--- ---
@@ -135,14 +136,23 @@ This ensures the dev agent has clean context focused solely on implementation.
b) **HALT and wait for user selection.** b) **HALT and wait for user selection.**
#### Menu Handling: #### Menu Handling Logic:
- **[a]**: Read fully and follow: `{advanced_elicitation}`, then return here and redisplay menu - IF A: Read fully and follow: `{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
- **[b]**: Read fully and follow: `{quick_dev_workflow}` with the final spec file (warn: fresh context is better) - IF B: Load and execute `{quick_dev_workflow}` with the final spec file (warn: fresh context is better)
- **[d]**: Exit workflow - display final confirmation and path to spec - IF D: Exit workflow - display final confirmation and path to spec
- **[p]**: Read fully and follow: `{party_mode_exec}`, then return here and redisplay menu - IF P: Read fully and follow: `{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 menu
- **[r]**: Execute Adversarial Review: - IF R: Execute Adversarial Review (see below)
1. **Invoke Adversarial Review Task**: - IF Any other comments or queries: respond helpfully then redisplay menu
#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- After A, P, or R execution, return to this menu
#### Adversarial Review [R] Process:
1. **Invoke 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}`. > 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}`.
<invoke-task>Review {finalFile} using {project-root}/_bmad/core/tasks/review-adversarial-general.xml</invoke-task> <invoke-task>Review {finalFile} using {project-root}/_bmad/core/tasks/review-adversarial-general.xml</invoke-task>
> **Platform fallback:** If task invocation not available, load the task file and follow its instructions inline, passing `{finalFile}` as the content. > **Platform fallback:** If task invocation not available, load the task file and follow its instructions inline, passing `{finalFile}` as the content.
@@ -161,7 +171,7 @@ b) **HALT and wait for user selection.**
### 5. Exit Workflow ### 5. Exit Workflow
**When user selects [d]:** **When user selects [D]:**
"**All done!** Your tech-spec is ready at: "**All done!** Your tech-spec is ready at:

View File

@@ -47,7 +47,7 @@ This uses **step-file architecture** for disciplined execution:
1. **READ COMPLETELY**: Always read the entire step file before taking any action 1. **READ COMPLETELY**: Always read the entire step file before taking any action
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
4. **CHECK CONTINUATION**: Only proceed to next step when user selects [c] (Continue) 4. **CHECK CONTINUATION**: Only proceed to next step when user selects [C] (Continue)
5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step 5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
6. **LOAD NEXT**: When directed, read fully and follow the next step file 6. **LOAD NEXT**: When directed, read fully and follow the next step file