feat(quick-spec): add copy-paste command for adversarial review in step-04 final menu#1749
Conversation
…ep-04 final menu
Adds /bmad-review-adversarial-general {finalFile} copy-paste block alongside
the existing quick-dev command, ensuring consistent fresh-context UX for both
adversarial review and development. Fixes bmad-code-org#1659.
📝 WalkthroughWalkthroughThis PR updates step-04-review.md to provide a copy-paste command for running adversarial review in a fresh context, addressing issue Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 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: 4
🧹 Nitpick comments (5)
src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md (5)
127-128: Undefined jargon (“information asymmetry”).“Information asymmetry” is unexplained and will confuse users not steeped in your internal lingo. Either define it briefly or remove the parenthetical.
🤖 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 127 - 128, The phrase "information asymmetry" in the parenthetical next to "To run **Adversarial Review** in a fresh context (recommended for information asymmetry):" is undefined jargon; either remove the parenthetical or replace it with a one-line clarification immediately after the heading (e.g., "recommended when reviewers and authors have different access to details" or a short definition of information asymmetry) so readers unfamiliar with the term understand why a fresh context is recommended; update the sentence in step-04-review.md that contains the string "information asymmetry" accordingly.
127-139: Menu behavior conflicts with “fresh context” guidance.The menu’s [R] flow executes adversarial review inline (same context), yet you just recommended running it in a fresh context. That’s contradictory. Either update the [R] handler to explicitly mention the fresh-context alternative or adjust the guidance to avoid conflict.
🤖 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 127 - 139, The README recommends running "Adversarial Review" in a fresh context but the interactive menu's [R] option currently runs adversarial review inline, which contradicts that guidance; update the menu [R] handler (the interactive branch that displays the [R] choice) to either (A) change its description to explicitly recommend the fresh-context command (/bmad-review-adversarial-general {finalFile}) and link or show the quick-dev alternative, or (B) change its behavior so selecting [R] invokes the fresh-context flow by calling /bmad-review-adversarial-general {finalFile} instead of running inline; locate and modify the menu code that renders/handles the [R] choice and any associated help text so the menu and the step-04-review guidance are consistent.
127-131: “Fresh context” lacks explicit instruction to open it.You tell users to run a command in a fresh context but never say how to create one (new chat, new session, new process). That’s a usability footgun in a workflow guide.
🤖 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 127 - 131, The text tells users to run "/bmad-review-adversarial-general {finalFile}" in a "fresh context" but doesn't explain how to create one; update the step-04-review.md content near the command to explicitly instruct the user to open a fresh context (e.g., "open a new chat or start a new session/process") before running the command, and optionally give both GUI and CLI examples (e.g., "start a new chat window or run in a new terminal/session") so readers know exactly how to create the required fresh context.
139-139: Ambiguous “its task” reference.“This ensures the agent has clean context focused solely on its task” is unclear after two commands. Specify which task (review vs development) or rephrase to cover both.
🤖 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 139, Replace the ambiguous sentence "This ensures the agent has clean context focused solely on its task." in step-04-review.md with a specific reference to which task you mean (e.g., "review task" or "development task"), or reword to cover both (e.g., "This ensures the agent has a clean context focused only on the current task—either the review or the development task—so prior prompts don't interfere."); locate the exact sentence to update and apply the clearer wording.
125-127: Contradictory sequencing: “fully satisfied” precedes Adversarial Review.You now recommend Adversarial Review after “Once you are fully satisfied…”, which reads as mutually exclusive. This insertion makes the advice self‑contradictory. Move the “fully satisfied” sentence after the Adversarial Review guidance, or reword it to reflect that the review happens before satisfaction.
🤖 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 125 - 127, The two sentences are sequenced contradictorily: the line "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." appears before the "To run **Adversarial Review** in a fresh context (recommended for information asymmetry):" guidance, implying review happens after satisfaction. Fix by either moving the "Once you are fully satisfied..." sentence to follow the Adversarial Review guidance or reword the sentence to state that Adversarial Review (and Advanced Elicitation) should occur before you consider yourself "fully satisfied" (e.g., "After completing Adversarial Review and any Advanced Elicitation, and once you are fully satisfied..."), ensuring references to Adversarial Review and Advanced Elicitation remain clear.
🤖 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 127-139: The action-instruction phrasing ("To run …" and "To start
…") should be standardized to the project's required verbs; replace those lines
so the commands use "load and follow" or "read and follow" phrasing instead
(e.g., change the directive introducing "/bmad-review-adversarial-general
{finalFile}" and the one introducing "quick-dev {finalFile}" to begin with "Load
and follow" or "Read and follow" as appropriate), keeping the same command
examples and surrounding explanatory sentence about fresh context.
- Around line 135-137: The dev command example uses unquoted {finalFile} which
will break on paths containing spaces; update the example invocation of
quick-dev to wrap {finalFile} in quotes (e.g., quick-dev "{finalFile}") so the
shell treats the entire path as a single argument — apply this change where the
snippet shows quick-dev {finalFile} in the step-04-review.md content.
- Around line 129-131: The command snippet uses an unquoted placeholder
"/bmad-review-adversarial-general {finalFile}" which will break if {finalFile}
contains spaces or special characters; update the markdown in step-04-review.md
so the placeholder {finalFile} is wrapped in quotes inside the code block (i.e.,
replace the unquoted {finalFile} with a quoted version wherever
"/bmad-review-adversarial-general {finalFile}" appears) to ensure the command
works with filenames containing spaces or special chars.
- Around line 133-137: The documentation shows inconsistent command prefixing:
"/bmad-review-adversarial-general" has a leading slash while "quick-dev" does
not; decide and standardize the convention in step-04-review.md by either
removing the leading slash from "/bmad-review-adversarial-general" or adding a
slash to "quick-dev" across this code block, and add a short clarifying note if
the slash denotes a different scope/type; update the instances of the commands
("/bmad-review-adversarial-general" and "quick-dev") so they follow the chosen
convention and ensure surrounding text reflects that choice.
---
Nitpick comments:
In `@src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md`:
- Around line 127-128: The phrase "information asymmetry" in the parenthetical
next to "To run **Adversarial Review** in a fresh context (recommended for
information asymmetry):" is undefined jargon; either remove the parenthetical or
replace it with a one-line clarification immediately after the heading (e.g.,
"recommended when reviewers and authors have different access to details" or a
short definition of information asymmetry) so readers unfamiliar with the term
understand why a fresh context is recommended; update the sentence in
step-04-review.md that contains the string "information asymmetry" accordingly.
- Around line 127-139: The README recommends running "Adversarial Review" in a
fresh context but the interactive menu's [R] option currently runs adversarial
review inline, which contradicts that guidance; update the menu [R] handler (the
interactive branch that displays the [R] choice) to either (A) change its
description to explicitly recommend the fresh-context command
(/bmad-review-adversarial-general {finalFile}) and link or show the quick-dev
alternative, or (B) change its behavior so selecting [R] invokes the
fresh-context flow by calling /bmad-review-adversarial-general {finalFile}
instead of running inline; locate and modify the menu code that renders/handles
the [R] choice and any associated help text so the menu and the step-04-review
guidance are consistent.
- Around line 127-131: The text tells users to run
"/bmad-review-adversarial-general {finalFile}" in a "fresh context" but doesn't
explain how to create one; update the step-04-review.md content near the command
to explicitly instruct the user to open a fresh context (e.g., "open a new chat
or start a new session/process") before running the command, and optionally give
both GUI and CLI examples (e.g., "start a new chat window or run in a new
terminal/session") so readers know exactly how to create the required fresh
context.
- Line 139: Replace the ambiguous sentence "This ensures the agent has clean
context focused solely on its task." in step-04-review.md with a specific
reference to which task you mean (e.g., "review task" or "development task"), or
reword to cover both (e.g., "This ensures the agent has a clean context focused
only on the current task—either the review or the development task—so prior
prompts don't interfere."); locate the exact sentence to update and apply the
clearer wording.
- Around line 125-127: The two sentences are sequenced contradictorily: the line
"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." appears before the
"To run **Adversarial Review** in a fresh context (recommended for information
asymmetry):" guidance, implying review happens after satisfaction. Fix by either
moving the "Once you are fully satisfied..." sentence to follow the Adversarial
Review guidance or reword the sentence to state that Adversarial Review (and
Advanced Elicitation) should occur before you consider yourself "fully
satisfied" (e.g., "After completing Adversarial Review and any Advanced
Elicitation, and once you are fully satisfied..."), ensuring references to
Adversarial Review and Advanced Elicitation remain clear.
| To run **Adversarial Review** in a fresh context (recommended for information asymmetry): | ||
|
|
||
| \`\`\` | ||
| /bmad-review-adversarial-general {finalFile} | ||
| \`\`\` | ||
|
|
||
| To start **development** in a fresh context: | ||
|
|
||
| \`\`\` | ||
| quick-dev {finalFile} | ||
| \`\`\` | ||
|
|
||
| This ensures the dev agent has clean context focused solely on implementation. | ||
| This ensures the agent has clean context focused solely on its task. |
There was a problem hiding this comment.
Action‑instruction verb standardization not followed.
These lines are action instructions; the project standard is to use “load and follow” / “read and follow” for such directives. The new “To run…” and “To start…” wording deviates.
Based on learnings: “only action instructions … are replaced with ‘load and follow’ or ‘read and follow’.”
🤖 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 127 - 139, The action-instruction phrasing ("To run …" and "To start …")
should be standardized to the project's required verbs; replace those lines so
the commands use "load and follow" or "read and follow" phrasing instead (e.g.,
change the directive introducing "/bmad-review-adversarial-general {finalFile}"
and the one introducing "quick-dev {finalFile}" to begin with "Load and follow"
or "Read and follow" as appropriate), keeping the same command examples and
surrounding explanatory sentence about fresh context.
| To start **development** in a fresh context: | ||
|
|
||
| \`\`\` | ||
| quick-dev {finalFile} | ||
| \`\`\` |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, let's examine the specific file and lines mentioned
cat -n src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md | sed -n '125,145p'Repository: bmad-code-org/BMAD-METHOD
Length of output: 806
🏁 Script executed:
# Now search for quick-dev and /bmad-review patterns across markdown files
rg -n --no-heading -C2 '\b/quick-dev\b|\bquick-dev\b' -g '*.md' | head -50Repository: bmad-code-org/BMAD-METHOD
Length of output: 4536
🏁 Script executed:
# Search for /bmad-review and similar command patterns
rg -n --no-heading -C2 '/bmad-review' -g '*.md' | head -50Repository: bmad-code-org/BMAD-METHOD
Length of output: 494
🏁 Script executed:
# Check if there's a command reference or documentation
find . -name "*.md" -o -name "*.txt" | xargs rg -l "command\|prefix\|slash" | head -20Repository: bmad-code-org/BMAD-METHOD
Length of output: 51
Inconsistent command prefixing convention between command types.
Line 130 uses /bmad-review-adversarial-general with a leading slash, while line 136 uses quick-dev without one. Throughout the documentation, quick-dev is consistently written without a slash (correct as-is), but the adjacent command uses a different prefix convention. Clarify whether the slash prefix distinguishes command scope/type, or standardize the convention for consistency within this code block.
🤖 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 133 - 137, The documentation shows inconsistent command prefixing:
"/bmad-review-adversarial-general" has a leading slash while "quick-dev" does
not; decide and standardize the convention in step-04-review.md by either
removing the leading slash from "/bmad-review-adversarial-general" or adding a
slash to "quick-dev" across this code block, and add a short clarifying note if
the slash denotes a different scope/type; update the instances of the commands
("/bmad-review-adversarial-general" and "quick-dev") so they follow the chosen
convention and ensure surrounding text reflects that choice.
|
Sounds like a great idea. Please resolve CodeRabbit comments, and I'll give it a closer look. |
|
Hi @alexeyv, thanks for the quick response and interest. Two of the changes suggested are pretty straightforward (related to quotes) and I'll take care of them ASAP. The other two might require some digging but I'll try and do my best. |
…line (bmad-code-org#1746) * fix(installer): remove double-escaping of quotes in CSV manifest pipeline cleanForCSV() pre-escaped " to "" before storing in memory, then escapeCsv() escaped again at CSV write time. After csv-parse round-trip (which only un-escapes once), descriptions retained doubled quotes instead of originals, corrupting generated output files. Fix: remove the redundant quote escaping from cleanForCSV() since escapeCsv() already handles CSV quoting correctly at write time. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(installer): use single quotes for description in Gemini workflow templates Replace triple-quoted """{{description}}""" with single-quoted '{{description}}' to avoid TOML escaping issues in Gemini workflow templates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…n step-04
- Add `/` prefix to `quick-dev` slash command references for clarity
- Quote `{finalFile}` in copy-paste commands to handle spaces in paths
- Update wording from "To run" to "Load and follow" for precision
- Add inline note clarifying both are BMAD slash commands/skills
|
Hi @alexeyv, Have made the changes as per my limited understanding, please help and guide here as I am relatively new here. |
What
Adds a ready-to-copy
/bmad-review-adversarial-general {finalFile}command block in the Quick-Spec Step 4 final menu, alongside the existingquick-devcommand.Why
The final menu already provided a copy-paste command for starting development in a fresh context, but gave no equivalent for Adversarial Review — which is equally recommended to run in a fresh context for information asymmetry. This inconsistency forced users to manually ask the agent for the command.
Fixes #1659
How
/bmad-review-adversarial-general {finalFile}before the existingquick-devblockTesting
Ran
npm run validate:refsandnpm run validate:schemas— all pass. Fullnpm testsuite (52 tests) passes with zero errors.