From 2632f6c5380bfb4f1860acc411ea2e0064495e89 Mon Sep 17 00:00:00 2001 From: NOI03_Ajay Singh Date: Tue, 24 Feb 2026 12:57:15 +0530 Subject: [PATCH 1/3] feat(quick-spec): add copy-paste command for adversarial review in step-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 #1659. --- .../bmad-quick-flow/quick-spec/steps/step-04-review.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md b/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md index 24c65d088..ae8ee8c3f 100644 --- a/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +++ b/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md @@ -124,13 +124,19 @@ Saved to: {finalFile} 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: +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. ``` b) **HALT and wait for user selection.** From 622e1fd813ba251a300e01e2dd942c9b99c39011 Mon Sep 17 00:00:00 2001 From: PinkyD Date: Tue, 24 Feb 2026 16:43:33 -0800 Subject: [PATCH 2/3] fix(installer): remove double-escaping of quotes in CSV manifest pipeline (#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 * 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 --------- Co-authored-by: Claude Opus 4.6 --- tools/cli/installers/lib/core/manifest-generator.js | 10 ++++------ .../ide/templates/combined/gemini-workflow-yaml.toml | 2 +- .../lib/ide/templates/combined/gemini-workflow.toml | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/tools/cli/installers/lib/core/manifest-generator.js b/tools/cli/installers/lib/core/manifest-generator.js index bc4694a6d..06e2e3f4b 100644 --- a/tools/cli/installers/lib/core/manifest-generator.js +++ b/tools/cli/installers/lib/core/manifest-generator.js @@ -24,16 +24,14 @@ class ManifestGenerator { } /** - * Clean text for CSV output by normalizing whitespace and escaping quotes + * Clean text for CSV output by normalizing whitespace. + * Note: Quote escaping is handled by escapeCsv() at write time. * @param {string} text - Text to clean - * @returns {string} Cleaned text safe for CSV + * @returns {string} Cleaned text */ cleanForCSV(text) { if (!text) return ''; - return text - .trim() - .replaceAll(/\s+/g, ' ') // Normalize all whitespace (including newlines) to single space - .replaceAll('"', '""'); // Escape quotes for CSV + return text.trim().replaceAll(/\s+/g, ' '); // Normalize all whitespace (including newlines) to single space } /** diff --git a/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml b/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml index 063ca0d0b..bc6c8da39 100644 --- a/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml +++ b/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml @@ -1,4 +1,4 @@ -description = """{{description}}""" +description = '{{description}}' prompt = """ Execute the BMAD '{{name}}' workflow. diff --git a/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml b/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml index 526241061..3306cce04 100644 --- a/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml +++ b/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml @@ -1,4 +1,4 @@ -description = """{{description}}""" +description = '{{description}}' prompt = """ Execute the BMAD '{{name}}' workflow. From d756b793224dfbd5e9c528368da2e304fe46b46b Mon Sep 17 00:00:00 2001 From: ak95asb Date: Wed, 25 Feb 2026 13:03:15 +0530 Subject: [PATCH 3/3] fix(quick-spec): fix slash command formatting and file path quoting in 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 --- .../quick-spec/steps/step-04-review.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md b/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md index ae8ee8c3f..4088c9910 100644 --- a/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +++ b/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md @@ -124,18 +124,20 @@ Saved to: {finalFile} 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. -To run **Adversarial Review** in a fresh context (recommended for information asymmetry): +Load and follow **Adversarial Review** in a fresh context (recommended for information asymmetry): \`\`\` -/bmad-review-adversarial-general {finalFile} +/bmad-review-adversarial-general "{finalFile}" \`\`\` -To start **development** in a fresh context: +Load and follow **development** in a fresh context: \`\`\` -quick-dev {finalFile} +/quick-dev "{finalFile}" \`\`\` +_(Both are slash commands — prefix `/` invokes a BMAD skill or workflow.)_ + This ensures the agent has clean context focused solely on its task. ``` @@ -185,7 +187,7 @@ b) **HALT and wait for user selection.** When you're ready to implement, run: ``` -quick-dev {finalFile} +/quick-dev {finalFile} ``` Ship it!"