Skip to content

fix: add copy-paste command for adversarial review in quick-spec#1910

Open
nikolasdehor wants to merge 1 commit intobmad-code-org:mainfrom
nikolasdehor:fix/quick-spec-adversarial-review-command
Open

fix: add copy-paste command for adversarial review in quick-spec#1910
nikolasdehor wants to merge 1 commit intobmad-code-org:mainfrom
nikolasdehor:fix/quick-spec-adversarial-review-command

Conversation

@nikolasdehor
Copy link
Copy Markdown
Contributor

Summary

Fixes #1659

The final menu in quick-spec step 4 provides a ready-to-copy quick-dev command 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 existing quick-dev command

Test plan

  • Run quick-spec workflow through to step 4 and verify the adversarial review command appears in the menu
  • Verify the command references the correct {finalFile} variable

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.
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 12, 2026

📝 Walkthrough

Walkthrough

This 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

Cohort / File(s) Summary
Adversarial Review Instructions
src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md
Adds a copy-paste command and guidance for running adversarial review in a fresh context, consistent with the dev mode UX pattern.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Suggested reviewers

  • bmadcode
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'fix: add copy-paste command for adversarial review in quick-spec' accurately and specifically describes the main change in the PR.
Description check ✅ Passed The description clearly explains the issue being fixed, the specific changes made, and includes a test plan, all directly related to the changeset.
Linked Issues check ✅ Passed The PR fully addresses issue #1659 by adding the required /bmad-review-adversarial-general {finalFile} command block in step-04-review.md as specified.
Out of Scope Changes check ✅ Passed The change is limited to adding instructional guidance for adversarial review in the final menu, directly addressing the issue without introducing unrelated modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 | 🟠 Major

Competing 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 #1659 objective: "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 | 🟠 Major

Fresh 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:

  1. Add a parallel "Process findings from fresh context" section that matches lines 164-173, OR
  2. 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 #1659 objective), why isn't it a dedicated menu option? The current UX requires users to:

  1. Read the menu
  2. Notice buried text below the menu
  3. 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:

  1. Explanatory text: "Once you are fully satisfied... run implementation in a FRESH CONTEXT for best results."
  2. Directive: "Copy this prompt to start dev:"
  3. Command block
  4. Explanation: "This ensures the dev agent has clean context..."

Lines 123-128 invert this pattern:

  1. Directive: "To run adversarial review in a fresh context..."
  2. Command block
  3. (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

📥 Commits

Reviewing files that changed from the base of the PR and between 32693f1 and 40fd565.

📒 Files selected for processing (1)
  • src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md

Comment on lines +123 to +128
To run adversarial review in a fresh context (recommended for information asymmetry):

\`\`\`
/bmad-review-adversarial-general {finalFile}
\`\`\`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

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:

  1. Menu with [R] option
  2. Adversarial review command (lines 123-128)
  3. Horizontal rule
  4. "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}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@bmadcode
Copy link
Copy Markdown
Collaborator

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quick-Spec Step 4: Provide copy-paste command for Adversarial Review in fresh context

2 participants