fix(bmm): address second augment review batch on bmad-code-review

- step-02: guard the subagent-unavailable HALT behind {auto_mode} —
  in auto mode run reviewer roles inline instead of stalling (rule 1).
- deferred-work-format: drop "identical copy" wording; the sibling
  bmad-quick-dev copy shares the entry format but not the prose.
- step-01/03/04: use explicit ../automation-mode.md relative paths
  from steps/ for consistency with the PATH-05 deferred-work refs.

validate:refs, validate:skills, lint:md all pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
pbean 2026-06-21 22:13:39 -07:00
parent 3a5b471473
commit f3d72676de
5 changed files with 8 additions and 7 deletions

View File

@ -3,8 +3,9 @@
Canonical entry format for `{implementation_artifacts}/deferred-work.md`. Canonical entry format for `{implementation_artifacts}/deferred-work.md`.
Used (in `bmad-auto` automation mode) by bmad-quick-dev (multi-goal splits, Used (in `bmad-auto` automation mode) by bmad-quick-dev (multi-goal splits,
token splits, review defers) and bmad-code-review (defer findings). This copy token splits, review defers) and bmad-code-review (defer findings). This copy
lives in the bmad-code-review skill; an identical copy ships with bmad-quick-dev lives in the bmad-code-review skill; bmad-quick-dev ships a sibling copy of the
— keep the two in sync when the format changes. The file is append-only — never same entry format (its surrounding prose differs slightly) — keep the format
itself in sync across the two when it changes. The file is append-only — never
rewrite or delete existing entries. (One exception: freeform pre-DW-format rewrite or delete existing entries. (One exception: freeform pre-DW-format
content from older projects is rewritten wholesale into canonical entries by a content from older projects is rewritten wholesale into canonical entries by a
`bmad-auto sweep` migration run — an orchestrator-side process external to this `bmad-auto sweep` migration run — an orchestrator-side process external to this

View File

@ -12,7 +12,7 @@ story_key: '' # set at runtime when discovered from sprint status
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}` - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
- The prompt that triggered this workflow IS the intent — not a hint. - The prompt that triggered this workflow IS the intent — not a hint.
- Do not modify any files. This step is read-only. - Do not modify any files. This step is read-only.
- If `{auto_mode}`: do NOT HALT or ask anywhere in this step (automation-mode.md rule 1). The invocation argument is the spec file — apply rule 2 (target/baseline/story-key; this skips the instruction-1 cascade and instruction 2's ask), rule 3 (diff source), and rule 4 (no chunk question); skip instruction 4's spec-context question, instruction 6's question, and the CHECKPOINT — go straight to NEXT. - If `{auto_mode}`: do NOT HALT or ask anywhere in this step (`../automation-mode.md` rule 1). The invocation argument is the spec file — apply rule 2 (target/baseline/story-key; this skips the instruction-1 cascade and instruction 2's ask), rule 3 (diff source), and rule 4 (no chunk question); skip instruction 4's spec-context question, instruction 6's question, and the CHECKPOINT — go straight to NEXT.
## INSTRUCTIONS ## INSTRUCTIONS

View File

@ -28,7 +28,7 @@ failed_layers: '' # set at runtime: comma-separated list of layers that failed o
1. If `{review_mode}` = `"no-spec"`, note to the user: "Acceptance Auditor skipped — no spec file provided." 1. If `{review_mode}` = `"no-spec"`, note to the user: "Acceptance Auditor skipped — no spec file provided."
2. Launch parallel subagents without conversation context. If subagents are not available, generate prompt files in `{implementation_artifacts}` — one per reviewer role below — and HALT. Ask the user to run each in a separate session (ideally a different LLM) and paste back the findings. When findings are pasted, resume from this point and proceed to step 3. 2. Launch parallel subagents without conversation context. If subagents are not available: in `{auto_mode}` do NOT HALT (`../automation-mode.md` rule 1) — run each reviewer role below inline, one after another in this same session, keeping each role's input scoped as specified (the Blind Hunter still gets only the diff), then proceed to step 3. Otherwise (interactive), generate prompt files in `{implementation_artifacts}` — one per reviewer role below — and HALT. Ask the user to run each in a separate session (ideally a different LLM) and paste back the findings. When findings are pasted, resume from this point and proceed to step 3.
- **Blind Hunter** — receives inline `{diff_output}` only. No spec, no context docs, no project access. Invoke via the `bmad-review-adversarial-general` skill. - **Blind Hunter** — receives inline `{diff_output}` only. No spec, no context docs, no project access. Invoke via the `bmad-review-adversarial-general` skill.

View File

@ -54,7 +54,7 @@ have not verified.
If `{review_mode}` = `"no-spec"` and a finding would otherwise be `decision_needed`, reclassify it as `patch` (if the fix is unambiguous) or `defer` (if not). If `{review_mode}` = `"no-spec"` and a finding would otherwise be `decision_needed`, reclassify it as `patch` (if the fix is unambiguous) or `defer` (if not).
If `{auto_mode}` and a finding would otherwise be `decision_needed`: reclassify as `patch` only when the fix is genuinely unambiguous; otherwise reclassify as `defer` with reason "auto-mode: needs human decision" AND record it in the result escalations — severity `CRITICAL` if it concerns correctness or security of the new code, else `PREFERENCE` (see automation-mode.md rule 5). If `{auto_mode}` and a finding would otherwise be `decision_needed`: reclassify as `patch` only when the fix is genuinely unambiguous; otherwise reclassify as `defer` with reason "auto-mode: needs human decision" AND record it in the result escalations — severity `CRITICAL` if it concerns correctness or security of the new code, else `PREFERENCE` (see `../automation-mode.md` rule 5).
4. **Drop** all `dismiss` findings. Record the dismiss count for the summary. (`{auto_mode}`: do NOT drop — set each dismissed finding aside, keeping its title, location, and one-line dismissal reason; step-04 writes them to the Review Ledger so later cycles do not re-litigate them.) 4. **Drop** all `dismiss` findings. Record the dismiss count for the summary. (`{auto_mode}`: do NOT drop — set each dismissed finding aside, keeping its title, location, and one-line dismissal reason; step-04 writes them to the Review Ledger so later cycles do not re-litigate them.)

View File

@ -12,13 +12,13 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
## AUTOMATION MODE ## AUTOMATION MODE
If `{auto_mode}`, run this step with these substitutions (see automation-mode.md): If `{auto_mode}`, run this step with these substitutions (see `../automation-mode.md`):
- Sections 1, 2, 3, and 6 run as written (no waiting after section 3). - Sections 1, 2, 3, and 6 run as written (no waiting after section 3).
- Section 4: no `decision-needed` findings should remain (step-03's automation rule reclassified them). If any do, treat each as `defer` with reason "auto-mode: needs human decision" and record an escalation. - Section 4: no `decision-needed` findings should remain (step-03's automation rule reclassified them). If any do, treat each as `defer` with reason "auto-mode: needs human decision" and record an escalation.
- Section 5: do not present the menu — **Apply every patch**, then check off the patch items in the story file. - Section 5: do not present the menu — **Apply every patch**, then check off the patch items in the story file.
- Section 7: skip entirely. - Section 7: skip entirely.
- After section 6, write `$BMAD_AUTO_RUN_DIR/tasks/$BMAD_AUTO_TASK_ID/result.json` per the schema in automation-mode.md (`clean` is true only when `{new_status}` = `done` was set on disk), state the outcome in one line, and end your turn. - After section 6, write `$BMAD_AUTO_RUN_DIR/tasks/$BMAD_AUTO_TASK_ID/result.json` per the schema in `../automation-mode.md` (`clean` is true only when `{new_status}` = `done` was set on disk), state the outcome in one line, and end your turn.
## INSTRUCTIONS ## INSTRUCTIONS