fix: add copy-paste command for adversarial review in quick-spec#1910
fix: add copy-paste command for adversarial review in quick-spec#1910nikolasdehor wants to merge 1 commit intobmad-code-org:mainfrom
Conversation
The final menu in quick-spec step 4 provides a ready-to-copy command for starting development in a fresh context, but no equivalent command for adversarial review. This is inconsistent since adversarial review also benefits from running in a fresh context for information asymmetry. Add the /bmad-review-adversarial-general command block alongside the existing quick-dev command in the Next Steps menu.
📝 WalkthroughWalkthroughThis change adds instructional guidance to the adversarial review option in the Quick-Spec final menu, providing a copy-paste command for running the review in a fresh context to align with the existing user experience pattern for development mode. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md (2)
118-118:⚠️ Potential issue | 🟠 MajorCompeting recommendations without clear prioritization.
- Line 118: "[R] Adversarial Review - critique of the spec (highly recommended)"
- Line 123: "To run adversarial review in a fresh context (recommended for information asymmetry)"
- Line 131: "ideally after Adversarial Review"
Which pathway is actually recommended? "Highly recommended" vs "recommended" vs "ideally" creates hierarchy confusion. If fresh context is superior (per issue
#1659objective: "recommended for information asymmetry"), why is the in-session [R] option marked "highly recommended"?Clarify the hierarchy:
- If fresh context is best: demote [R] or make [R] invoke fresh context by default
- If both are valid: explain when to use each ("use [R] for quick iteration; use fresh context for final unbiased review")
Also applies to: 123-123
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md` at line 118, The labels for adversarial review are inconsistent: update the copy around "[R] Adversarial Review - critique of the spec (highly recommended)", the "fresh context (recommended for information asymmetry)" mention, and the "ideally after Adversarial Review" note to explicitly state the hierarchy or usage guidance; either demote the in-session "[R]" label or change it to invoke fresh context by default, and add a short sentence explaining when to use each (e.g., "[R] for quick, in-session iterations; fresh context recommended/ideal for unbiased, final reviews (per issue `#1659`)"), so readers clearly know which pathway is preferred and when to choose the alternative.
158-173:⚠️ Potential issue | 🟠 MajorFresh context pathway bypasses the detailed adversarial review process.
Lines 158-173 define a rigorous adversarial review process for the [R] menu option:
- Invoke skill with information asymmetry (line 161)
- Process findings (lines 164-165)
- HALT if zero findings (line 166)
- Evaluate severity and validity (line 167)
- Order by severity, number findings (lines 169-170)
- Create TODOs or present table (line 171)
- Return and redisplay menu (line 173)
The fresh context command at line 126 has none of this. If users follow the copy-paste command, they get findings... and then what? No HALT, no severity evaluation, no TODO creation, no menu return. The two pathways provide drastically different quality of review integration.
Either:
- Add a parallel "Process findings from fresh context" section that matches lines 164-173, OR
- Instruct users who run fresh context to return to this workflow and select [R] to process the findings using the existing logic
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md` around lines 158 - 173, Add a "Process findings from fresh context" subsection for the "fresh context" command that mirrors the Adversarial Review [R] workflow: after invoking the bmad-review-adversarial-general skill with the `{finalFile}` from fresh context, capture findings and apply the same logic as the [R] path — HALT if zero findings, evaluate severity (Critical/High/Medium/Low) and validity (real/noise/undecided), order findings by severity, number them (F1, F2, ...), and convert each into TODOs (ID, severity, validity, description) or present a table; then explicitly instruct returning to and redisplaying the menu (or, as an alternative, add a clear note telling users to return to the [R] workflow to process findings).
🧹 Nitpick comments (3)
src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md (3)
123-128: Recommended approach buried in prose instead of being a menu option.If running adversarial review in fresh context is the recommended approach (per line 123 and issue
#1659objective), why isn't it a dedicated menu option? The current UX requires users to:
- Read the menu
- Notice buried text below the menu
- Copy-paste a command manually
Compare to how quick-dev fresh context is handled: it's the only option presented after "Once you are fully satisfied", with clear setup text. The adversarial review fresh context command competes with menu option [R] for visibility.
Add a distinct menu option:
[R] Adversarial Review (in-session) - quick iterative critique [F] Adversarial Review (fresh context) - unbiased final review (recommended)OR remove [R] entirely and make fresh context the default [R] behavior.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md` around lines 123 - 128, The UX currently buries the recommended "fresh context" adversarial review behind prose instead of exposing it as a menu choice; update the review menu in step-04-review.md to explicitly present two distinct options (e.g. keep [R] for in-session and add [F] for fresh context) and/or make [R] default to fresh context; reference the existing menu token [R] and the command shown (/bmad-review-adversarial-general {finalFile}) so the new menu line clearly maps [F] to the fresh-context command and shows the recommended label "(fresh context) - unbiased final review (recommended)".
123-128: No error handling or failure guidance for fresh context command.What happens if:
- The fresh context command fails to execute?
{finalFile}path is invalid in the fresh context?- The skill returns an error instead of findings?
- The user pastes the command in the wrong context (e.g., a context without repo access)?
The [R] menu option benefits from being executed in the current workflow session where errors can be caught and handled. The copy-paste fresh context command has no error guidance.
Add a note after line 127:
> **Note:** Ensure the fresh context has read access to your project repository and that the file path is valid.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md` around lines 123 - 128, Add a short failure-guidance note immediately after the displayed fresh-context command (/bmad-review-adversarial-general {finalFile}) in the quick-spec step document: insert the provided markdown note advising users to ensure the fresh context has read access to the repo and that the {finalFile} path is valid, so users receive explicit guidance when running the copy-paste fresh-context command.
123-128: Inconsistent pattern: adversarial command before explanation, quick-dev command after.Lines 131-139 follow a clear pattern:
- Explanatory text: "Once you are fully satisfied... run implementation in a FRESH CONTEXT for best results."
- Directive: "Copy this prompt to start dev:"
- Command block
- Explanation: "This ensures the dev agent has clean context..."
Lines 123-128 invert this pattern:
- Directive: "To run adversarial review in a fresh context..."
- Command block
- (No follow-up explanation of benefits)
This inconsistency makes the file harder to scan and understand.
Restructure lines 123-128 to match the quick-dev pattern: explanation → directive → command → benefit statement.
Also applies to: 131-139
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md` around lines 123 - 128, Reorder the adversarial review block so it matches the quick-dev pattern used later: add an explanatory sentence before the directive (e.g., similar to "Once you are fully satisfied... run implementation in a FRESH CONTEXT for best results."), then place the directive line "To run adversarial review in a fresh context (recommended for information asymmetry):", then the command block containing "/bmad-review-adversarial-general {finalFile}", and finally add a short benefit statement (e.g., "This ensures the adversarial agent runs with a clean context and reduces information leakage.") — apply the same restructuring to the analogous quick-dev block (the block containing "Copy this prompt to start dev:" / its command) so both follow explanation → directive → command → benefit.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md`:
- Around line 123-128: Move the standalone adversarial review command block (the
/bmad-review-adversarial-general {finalFile} snippet) so it no longer interrupts
the menu flow: either place that command immediately after the menu display
(i.e., after the content that ends with the menu and before the horizontal rule)
or incorporate the command into the "Once you are fully satisfied" paragraph
that references Adversarial Review, adding a short contextual sentence
explaining when to run /bmad-review-adversarial-general {finalFile} so users
know to choose [R] from the menu OR run the command in a fresh context.
---
Outside diff comments:
In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md`:
- Line 118: The labels for adversarial review are inconsistent: update the copy
around "[R] Adversarial Review - critique of the spec (highly recommended)", the
"fresh context (recommended for information asymmetry)" mention, and the
"ideally after Adversarial Review" note to explicitly state the hierarchy or
usage guidance; either demote the in-session "[R]" label or change it to invoke
fresh context by default, and add a short sentence explaining when to use each
(e.g., "[R] for quick, in-session iterations; fresh context recommended/ideal
for unbiased, final reviews (per issue `#1659`)"), so readers clearly know which
pathway is preferred and when to choose the alternative.
- Around line 158-173: Add a "Process findings from fresh context" subsection
for the "fresh context" command that mirrors the Adversarial Review [R]
workflow: after invoking the bmad-review-adversarial-general skill with the
`{finalFile}` from fresh context, capture findings and apply the same logic as
the [R] path — HALT if zero findings, evaluate severity
(Critical/High/Medium/Low) and validity (real/noise/undecided), order findings
by severity, number them (F1, F2, ...), and convert each into TODOs (ID,
severity, validity, description) or present a table; then explicitly instruct
returning to and redisplaying the menu (or, as an alternative, add a clear note
telling users to return to the [R] workflow to process findings).
---
Nitpick comments:
In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md`:
- Around line 123-128: The UX currently buries the recommended "fresh context"
adversarial review behind prose instead of exposing it as a menu choice; update
the review menu in step-04-review.md to explicitly present two distinct options
(e.g. keep [R] for in-session and add [F] for fresh context) and/or make [R]
default to fresh context; reference the existing menu token [R] and the command
shown (/bmad-review-adversarial-general {finalFile}) so the new menu line
clearly maps [F] to the fresh-context command and shows the recommended label
"(fresh context) - unbiased final review (recommended)".
- Around line 123-128: Add a short failure-guidance note immediately after the
displayed fresh-context command (/bmad-review-adversarial-general {finalFile})
in the quick-spec step document: insert the provided markdown note advising
users to ensure the fresh context has read access to the repo and that the
{finalFile} path is valid, so users receive explicit guidance when running the
copy-paste fresh-context command.
- Around line 123-128: Reorder the adversarial review block so it matches the
quick-dev pattern used later: add an explanatory sentence before the directive
(e.g., similar to "Once you are fully satisfied... run implementation in a FRESH
CONTEXT for best results."), then place the directive line "To run adversarial
review in a fresh context (recommended for information asymmetry):", then the
command block containing "/bmad-review-adversarial-general {finalFile}", and
finally add a short benefit statement (e.g., "This ensures the adversarial agent
runs with a clean context and reduces information leakage.") — apply the same
restructuring to the analogous quick-dev block (the block containing "Copy this
prompt to start dev:" / its command) so both follow explanation → directive →
command → benefit.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 17e8bd44-e120-450f-bf8c-fd332e337552
📒 Files selected for processing (1)
src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md
| To run adversarial review in a fresh context (recommended for information asymmetry): | ||
|
|
||
| \`\`\` | ||
| /bmad-review-adversarial-general {finalFile} | ||
| \`\`\` | ||
|
|
There was a problem hiding this comment.
Placement breaks narrative flow and creates UX confusion.
The command block interrupts the flow between the menu display (ending line 122) and the "Once you are fully satisfied" guidance (line 131). Readers encounter:
- Menu with [R] option
- Adversarial review command (lines 123-128)
- Horizontal rule
- "Once you are fully satisfied... ideally after Adversarial Review"
This creates confusion: Should users select [R] from the menu, or copy-paste the command? Why is there a command outside the menu flow? The quick-dev pattern (lines 131-139) correctly places the command AFTER the explanatory text, not before.
Move lines 123-128 to appear AFTER line 122 (before the horizontal rule at 129) OR integrate into the "Once you are fully satisfied" paragraph at line 131 with contextual explanation.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md` around
lines 123 - 128, Move the standalone adversarial review command block (the
/bmad-review-adversarial-general {finalFile} snippet) so it no longer interrupts
the menu flow: either place that command immediately after the menu display
(i.e., after the content that ends with the menu and before the horizontal rule)
or incorporate the command into the "Once you are fully satisfied" paragraph
that references Adversarial Review, adding a short contextual sentence
explaining when to run /bmad-review-adversarial-general {finalFile} so users
know to choose [R] from the menu OR run the command in a fresh context.
| To run adversarial review in a fresh context (recommended for information asymmetry): | ||
|
|
||
| \`\`\` | ||
| /bmad-review-adversarial-general {finalFile} |
There was a problem hiding this comment.
we are going to be updating all language to say Invoke skill {skill-name} since some tools for whatever dumb reason did not follow convention of / command.
|
cc @alexeyv - I pointed out in this good idea of a PR to @nikolasdehor that we are aligning on not listing slash commands in the code and instead using language of run the skill-name - although typing it that way might actually cause it to be called. |
Summary
Fixes #1659
The final menu in quick-spec step 4 provides a ready-to-copy
quick-devcommand for starting development in a fresh context, but no equivalent command for adversarial review. This is inconsistent since adversarial review also benefits from fresh context for information asymmetry.Changes
src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md: Added/bmad-review-adversarial-general {finalFile}copy-paste command block in the Next Steps menu, alongside the existingquick-devcommandTest plan
{finalFile}variable