Compare commits

..

1 Commits

Author SHA1 Message Date
PinkyD 939c489887
Merge 71e9ecd027 into 6ac4c26b69 2026-06-22 06:39:27 -07:00
4 changed files with 6 additions and 15 deletions

View File

@ -16,14 +16,10 @@ failed_layers: '' # set at runtime: comma-separated list of layers that failed o
0. **Static prefilter** (`{auto_mode}` only — skip entirely in interactive runs). Before any LLM review, run the project's deterministic 0. **Static prefilter** (`{auto_mode}` only — skip entirely in interactive runs). Before any LLM review, run the project's deterministic
checks — they are free, precise findings the hunters should not have to checks — they are free, precise findings the hunters should not have to
rediscover. Build the command list from BOTH sources below (the orchestrator rediscover. Resolve the command list in this order, first match wins:
runs only the policy.toml gates itself, never the spec's, so the spec's 1. `[verify] commands` in `{project-root}/.automator/policy.toml` (if the file exists)
story-specific checks must run here or nowhere), then run each unique command 2. the `## Verification` commands in `{spec_file}` (if `{review_mode}` = `"full"`)
once — dedupe identical command strings: 3. none found — skip this instruction silently.
- `[verify] commands` in `{project-root}/.automator/policy.toml` (if the file exists) — the orchestrator's project-wide gates
- the `## Verification` commands in `{spec_file}` (if `{review_mode}` = `"full"`) — story-specific checks
If neither source yields a command, skip this instruction silently.
Record each failing command as a finding with `source: static` (title = the Record each failing command as a finding with `source: static` (title = the
command, detail = the failure output tail). Summarize failures in one line command, detail = the failure output tail). Summarize failures in one line

View File

@ -62,7 +62,7 @@
6. If `{failed_layers}` is non-empty, report which layers failed before announcing results. If zero findings remain after dropping dismissed AND `{failed_layers}` is non-empty, warn the user that the review may be incomplete rather than announcing a clean review. 6. If `{failed_layers}` is non-empty, report which layers failed before announcing results. If zero findings remain after dropping dismissed AND `{failed_layers}` is non-empty, warn the user that the review may be incomplete rather than announcing a clean review.
7. If zero findings remain after triage (all rejected or none raised) AND `{failed_layers}` is empty: state "✅ Clean review — all layers passed." (If any layers failed, step 6 already issued the incompleteness warning instead of a clean announcement.) 7. If zero findings remain after triage (all rejected or none raised): state "✅ Clean review — all layers passed." (Step 3 already warned if any review layers failed via `{failed_layers}`.)
## NEXT ## NEXT

View File

@ -109,8 +109,6 @@ overflow choose `[S] Split` per the decision table.
| step-01/02 unclear intent after investigation | Escalate `CRITICAL` (`type: intent-gap`). Do not fantasize requirements. | | step-01/02 unclear intent after investigation | Escalate `CRITICAL` (`type: intent-gap`). Do not fantasize requirements. |
| step-02 token budget exceeded | Choose **[S] Split** (defer secondary scope per `./deferred-work-format.md`). | | step-02 token budget exceeded | Choose **[S] Split** (defer secondary scope per `./deferred-work-format.md`). |
| step-02 CHECKPOINT 1 | Perform the self-review against the READY FOR DEVELOPMENT standard, fix what it surfaces, then auto-approve: set status `ready-for-dev`, lock the frozen block, continue to step-03. | | step-02 CHECKPOINT 1 | Perform the self-review against the READY FOR DEVELOPMENT standard, fix what it surfaces, then auto-approve: set status `ready-for-dev`, lock the frozen block, continue to step-03. |
| step-02 CHECKPOINT 1 spec preflight fails | If `{spec_file}` is missing or empty after the write, escalate `CRITICAL` (`type: spec-write-failure`) instead of approving. |
| step-auto-finalize verification cannot pass | If a spec `## Verification` command cannot pass without violating the frozen intent, escalate `CRITICAL` (`type: verification-failure`) instead of finalizing. |
| step-03 missing/empty spec precondition | Escalate `CRITICAL` (`type: missing-spec`). | | step-03 missing/empty spec precondition | Escalate `CRITICAL` (`type: missing-spec`). |
| step-04 no sub-agents → "generate prompt files & HALT" | Only reachable when `$BMAD_AUTO_SKIP_REVIEW` is set. Sub-agents are pre-authorized — run the three reviewers inline; never generate prompt files or HALT. | | step-04 no sub-agents → "generate prompt files & HALT" | Only reachable when `$BMAD_AUTO_SKIP_REVIEW` is set. Sub-agents are pre-authorized — run the three reviewers inline; never generate prompt files or HALT. |
| step-04 `intent_gap` finding (loop back to human) | Revert the code changes, then escalate `CRITICAL` (`type: intent-gap`). Do not infer intent. | | step-04 `intent_gap` finding (loop back to human) | Revert the code changes, then escalate `CRITICAL` (`type: intent-gap`). Do not infer intent. |

View File

@ -2,10 +2,7 @@
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). The file is
lives in the bmad-quick-dev skill; bmad-code-review ships a sibling copy of the
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 append-only — never rewrite or delete existing entries. (One exception: freeform
pre-DW-format content from older projects is rewritten wholesale into canonical pre-DW-format content from older projects is rewritten wholesale into canonical
entries by a `bmad-auto sweep` migration run — an orchestrator-side process entries by a `bmad-auto sweep` migration run — an orchestrator-side process