bmad-method 6.10.1-next.3 → 6.10.1-next.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "bmad-method",
4
- "version": "6.10.1-next.3",
4
+ "version": "6.10.1-next.5",
5
5
  "description": "Breakthrough Method of Agile AI-driven Development",
6
6
  "keywords": [
7
7
  "agile",
@@ -1,13 +1,11 @@
1
1
  ---
2
2
  name: bmad-code-review
3
- description: 'Review code changes adversarially using parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor) with structured triage into actionable categories. Use when the user says "run code review" or "review this code"'
3
+ description: 'Adversarial code review using parallel review layers and structured triage. Use when the user says "run code review" or "review this code"'
4
4
  ---
5
5
 
6
6
  # Code Review Workflow
7
7
 
8
- **Goal:** Review code changes adversarially using parallel review layers and structured triage.
9
-
10
- **Your Role:** You are an elite code reviewer. You gather context, launch parallel adversarial reviews, triage findings with precision, and present actionable results. No noise, no filler.
8
+ **Goal:** Review code changes adversarially. No noise, no filler.
11
9
 
12
10
  Subagents, when the capability is available, are an important part of this workflow. Use them as directed by the workflow steps.
13
11
  If you need an explicit user instruction to run them, ask once now for the whole workflow run.
@@ -39,3 +39,55 @@ persistent_facts = [
39
39
  # Leave empty for no custom post-completion behavior.
40
40
 
41
41
  on_complete = ""
42
+
43
+ # Review layers for the review step. `instruction` is the layer's whole
44
+ # execution recipe — subagents by default, but an override may run anything
45
+ # (e.g. an external reviewer via bash). {diff_output} and {spec_file} are
46
+ # substituted at run time. `when` (optional) gates a layer; empty
47
+ # `instruction` disables it.
48
+
49
+ [[workflow.review_layers]]
50
+ id = "blind-hunter"
51
+ name = "Blind Hunter"
52
+ instruction = """
53
+ Launch a subagent with no prior conversation context, with this prompt:
54
+
55
+ > Invoke the `bmad-review-adversarial-general` skill on this diff:
56
+ >
57
+ > {diff_output}
58
+ """
59
+
60
+ [[workflow.review_layers]]
61
+ id = "edge-case-hunter"
62
+ name = "Edge Case Hunter"
63
+ instruction = """
64
+ Launch a subagent with no prior conversation context, with this prompt:
65
+
66
+ > Invoke the `bmad-review-edge-case-hunter` skill on this diff:
67
+ >
68
+ > {diff_output}
69
+ """
70
+
71
+ [[workflow.review_layers]]
72
+ id = "verification-gap"
73
+ name = "Verification Gap Reviewer"
74
+ instruction = """
75
+ Launch a subagent with no prior conversation context, with this prompt:
76
+
77
+ > Invoke the `bmad-review-verification-gap` skill on this diff:
78
+ >
79
+ > {diff_output}
80
+ """
81
+
82
+ [[workflow.review_layers]]
83
+ id = "acceptance-auditor"
84
+ name = "Acceptance Auditor"
85
+ when = 'Only when {review_mode} = "full".'
86
+ instruction = """
87
+ Launch a subagent with no prior conversation context, with this prompt:
88
+
89
+ > You are an Acceptance Auditor. Review the provided diff against `{spec_file}` and any loaded context docs. Check for: violations of acceptance criteria, deviations from spec intent, missing implementation of specified behavior, contradictions between spec constraints and actual code. Output findings as a Markdown list. Each finding: one-line title, which AC/constraint it violates, and evidence from the diff.
90
+ >
91
+ > Diff:
92
+ > {diff_output}
93
+ """
@@ -79,7 +79,6 @@ story_key: '' # set at runtime when discovered from sprint status
79
79
 
80
80
  Present a summary before proceeding: diff stats (files changed, lines added/removed), `{review_mode}`, and loaded spec/context docs (if any). HALT and wait for user confirmation to proceed.
81
81
 
82
-
83
82
  ## NEXT
84
83
 
85
84
  Read fully and follow `./step-02-review.md`
@@ -8,38 +8,24 @@ failed_layers: '' # set at runtime: comma-separated list of layers that failed o
8
8
 
9
9
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
10
10
  - All review subagents must run at the same model capability as the current session.
11
+ - Run subagents synchronously: launch them together, then wait for all results before continuing.
11
12
 
12
13
  ## INSTRUCTIONS
13
14
 
14
- 1. If `{review_mode}` = `"no-spec"`, note to the user: "Acceptance Auditor skipped — no spec file provided."
15
+ 1. The review layers are `{workflow.review_layers}`, resolved during activation.
15
16
 
16
- 2. Launch Blind Hunter, Edge Case Hunter, and Verification Gap Reviewer in parallel without prior conversation context. If `{review_mode}` = `"full"`, include the Acceptance Auditor in the same parallel launch. If subagents are not available, generate prompt files in `{implementation_artifacts}` for each applicable reviewer role 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.
17
+ 2. For each layer in `{workflow.review_layers}`:
18
+ - `instruction` empty or missing → drop the layer silently (an override disabled it).
19
+ - `when` condition present and not satisfied by the current context (`{review_mode}`, `{spec_file}`) → drop the layer and tell the user, e.g. "Acceptance Auditor skipped — no spec file provided."
20
+ - otherwise → the layer is active.
17
21
 
18
- - **Blind Hunter** prompt:
19
- > Invoke the `bmad-review-adversarial-general` skill on this diff:
20
- >
21
- > {diff_output}
22
+ If no layer is active, HALT with status `blocked` and blocking condition `no active review layers`.
22
23
 
23
- - **Edge Case Hunter** prompt:
24
- > Invoke the `bmad-review-edge-case-hunter` skill on this diff:
25
- >
26
- > {diff_output}
24
+ 3. Execute all active layers in parallel wherever their execution methods allow: substitute the runtime placeholders (`{diff_output}`, `{spec_file}`) into each layer's `instruction`, then follow it verbatim. If a layer's instruction requires subagents and subagents are not available, generate prompt files in `{implementation_artifacts}` for each such layer 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, treat them as those layers' findings and resume from this point.
27
25
 
28
- - **Verification Gap Reviewer** prompt:
29
- > Invoke the `bmad-review-verification-gap` skill on this diff:
30
- >
31
- > {diff_output}
32
-
33
- - **Acceptance Auditor** (only if `{review_mode}` = `"full"`) — prompt:
34
- > You are an Acceptance Auditor. Review the provided diff against `{spec_file}` and any loaded context docs. Check for: violations of acceptance criteria, deviations from spec intent, missing implementation of specified behavior, contradictions between spec constraints and actual code. Output findings as a Markdown list. Each finding: one-line title, which AC/constraint it violates, and evidence from the diff.
35
- >
36
- > Diff:
37
- > {diff_output}
38
-
39
- 3. **Subagent failure handling**: If any subagent fails, times out, or returns empty results, append the layer name to `{failed_layers}` (comma-separated) and proceed with findings from the remaining layers.
40
-
41
- 4. Collect all findings from the completed layers.
26
+ 4. **Layer failure handling**: If any layer fails, times out, or returns empty results, append the layer's `name` to `{failed_layers}` (comma-separated) and proceed with findings from the remaining layers.
42
27
 
28
+ 5. Collect all findings from the completed layers, keeping track of each finding's originating layer `id`.
43
29
 
44
30
  ## NEXT
45
31
 
@@ -11,15 +11,15 @@
11
11
 
12
12
  1. **Normalize** findings from all layers into a unified list where each finding has:
13
13
  - `id` -- sequential integer
14
- - `source` -- `blind`, `edge`, `vgap`, `auditor`, or merged sources (e.g., `blind+edge`)
14
+ - `source` -- the `id` of the layer that produced the finding (e.g., `blind-hunter`), or merged sources joined with `+` (e.g., `blind-hunter+edge-case-hunter`)
15
15
  - `title` -- one-line summary
16
16
  - `detail` -- full description
17
17
  - `location` -- file and line reference (if available)
18
18
 
19
19
  2. **Deduplicate.** Deduplicate only findings with the same claim and same required action. If two or more findings meet both conditions, merge them into one:
20
- - Use the most specific finding as the base (prefer edge-case JSON with location over adversarial prose).
20
+ - Use the most specific finding as the base (prefer findings with a precise location over prose-only findings).
21
21
  - Append any unique detail, reasoning, or location references from the other finding(s) into the surviving `detail` field.
22
- - Set `source` to the merged sources (e.g., `blind+edge`).
22
+ - Set `source` to the merged sources (e.g., `blind-hunter+edge-case-hunter`).
23
23
 
24
24
  3. Then evaluate each remaining finding independently. Do not reject a finding because a related finding was rejected.
25
25
 
@@ -45,7 +45,6 @@
45
45
 
46
46
  9. 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}`.)
47
47
 
48
-
49
48
  ## NEXT
50
49
 
51
50
  Read fully and follow `./step-04-present.md`
@@ -42,6 +42,7 @@ A specification is "Ready for Development" when:
42
42
  - **Actionable**: Every task has a file path and specific action.
43
43
  - **Logical**: Tasks ordered by dependency.
44
44
  - **Testable**: All ACs use Given/When/Then.
45
+ - **Surface-anchored**: ACs observe the outermost surface the intent references — never a more internal proxy for it (e.g. the API response, not the database row behind it).
45
46
  - **Complete**: No placeholders or TBDs.
46
47
  - **Sufficient**: No known requirement, acceptance, dependency, or implementation gaps remain unresolved.
47
48
  - **Coherent**: No unresolved ambiguities or internal contradictions.
@@ -8,6 +8,7 @@
8
8
  # - Strings replace the default.
9
9
  # - Lists append to the default list.
10
10
  # - Tables merge key by key.
11
+ # - Arrays of tables merge by `id`: matching `id` replaces, new `id`s append.
11
12
 
12
13
  [workflow]
13
14
 
@@ -31,3 +32,58 @@ persistent_facts = [
31
32
  # Empty means no extra terminal behavior.
32
33
 
33
34
  on_complete = ""
35
+
36
+ # Review layers for the review step. `instruction` is the layer's whole
37
+ # execution recipe — subagents by default, but an override may run anything
38
+ # (e.g. an external reviewer via bash). {diff_output} is substituted at run
39
+ # time. `when` (optional) gates a layer; empty `instruction` disables it.
40
+
41
+ [[workflow.review_layers]]
42
+ id = "blind-hunter"
43
+ name = "Blind Hunter"
44
+ instruction = """
45
+ Launch a subagent with no prior conversation context, with this prompt:
46
+
47
+ > Invoke the `bmad-review-adversarial-general` skill on this diff:
48
+ >
49
+ > {diff_output}
50
+ """
51
+
52
+ [[workflow.review_layers]]
53
+ id = "edge-case-hunter"
54
+ name = "Edge Case Hunter"
55
+ instruction = """
56
+ Launch a subagent with no prior conversation context, with this prompt:
57
+
58
+ > Invoke the `bmad-review-edge-case-hunter` skill on this diff:
59
+ >
60
+ > {diff_output}
61
+ """
62
+
63
+ [[workflow.review_layers]]
64
+ id = "verification-gap"
65
+ name = "Verification Gap Reviewer"
66
+ instruction = """
67
+ Launch a subagent with no prior conversation context, with this prompt:
68
+
69
+ > Invoke the `bmad-review-verification-gap` skill on this diff:
70
+ >
71
+ > {diff_output}
72
+ """
73
+
74
+ [[workflow.review_layers]]
75
+ id = "intent-alignment"
76
+ name = "Intent Alignment Auditor"
77
+ instruction = """
78
+ Launch a subagent with no prior conversation context, with this prompt:
79
+
80
+ > You are an intent-alignment auditor. You have no other context about how this change was produced. Here is the verbatim intent this work started from:
81
+ >
82
+ > {verbatim_intent}
83
+ >
84
+ > Here is the diff:
85
+ >
86
+ > {diff_output}
87
+ >
88
+ > Your task is strictly descriptive — do not prescribe additional work. Report: (1) the defensible readings of the intent, enumerated; (2) which reading this diff implements; (3) where the readings and the diff diverge — specifically, which surface the intent's expectations live at versus which surface the diff's changes and its tests exercise.
89
+ """
@@ -60,7 +60,7 @@ warnings: [] # optional: machine-readable warnings for orchestration, e.g. overs
60
60
  <!-- AC covers system-level behaviors not captured by the I/O Matrix. Do not duplicate I/O scenarios here. -->
61
61
 
62
62
  **Execution:**
63
- - [ ] `FILE` -- ACTION -- RATIONALE
63
+ - `FILE` -- ACTION -- RATIONALE
64
64
 
65
65
  **Acceptance Criteria:**
66
66
  - Given PRECONDITION, when ACTION, then EXPECTED_RESULT
@@ -15,7 +15,7 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
15
15
  2. Investigate codebase. _Read the code yourself for narrow, localized tasks. Isolate deep exploration in subagents: instruct them to give you distilled summaries only, and plan from those summaries._
16
16
  3. Read `./spec-template.md` fully. Fill it out based on the intent and investigation. If `{preserved_intent_contract}` is non-empty, substitute it for the `<intent-contract>` block in your filled spec before writing. Write the result to `{spec_file}`.
17
17
  4. Self-review against READY FOR DEVELOPMENT standard.
18
- 5. If intent gaps exist, do not fantasize and do not leave open questions. HALT with status `blocked`, blocking condition `intent gaps`, and include the unanswered questions and evidence gathered.
18
+ 5. If intent gaps exist, do not fantasize and do not leave open questions. Multiple defensible readings of the intent that lead to observably different outcomes, with nothing in the intent to select between them, are an intent gap — do not resolve one by picking a reading. HALT with status `blocked`, blocking condition `intent gaps`, and include the unanswered questions and evidence gathered.
19
19
  6. Warning check. If step-01 carried `multiple-goals`, add it to `{spec_file}` frontmatter `warnings`. If `{spec_file}` exceeds 1600 tokens, add `oversized` to frontmatter `warnings`. Continue either way.
20
20
 
21
21
  ### READY-FOR-DEVELOPMENT GATE
@@ -26,7 +26,6 @@ Re-read `./SKILL.md`, then re-read `{spec_file}` from disk and verify the spec m
26
26
  - **If the spec meets the standard:** set `{spec_file}` frontmatter status to `ready-for-dev`, then continue to step 3.
27
27
  - **If the spec does not meet the standard:** repair it once, then re-read it from disk and verify again. If it still does not meet the standard, HALT with status `blocked`, blocking condition `spec failed ready-for-development standard`, and include the failing criteria and evidence gathered.
28
28
 
29
-
30
29
  ## NEXT
31
30
 
32
31
  Read fully and follow `./step-03-implement.md`
@@ -25,13 +25,13 @@ Change `{spec_file}` status to `in-progress` in the frontmatter before starting
25
25
 
26
26
  If `{spec_file}` has a non-empty `context:` list in its frontmatter, load those files before implementation begins. When handing to a subagent, include them in the subagent prompt so it has access to the referenced context.
27
27
 
28
- Hand `{spec_file}` to an implementation subagent. Invoke it **synchronously** and wait for it to return in this same turn — do not background/detach it (`run_in_background`) or end your turn to await a notification (see SKILL.md → Subagents). Resume at "Tasks & Acceptance Verification" only after it returns.
28
+ Hand `{spec_file}` to an implementation subagent. Invoke it **synchronously** and wait for it to return in this same turn — do not background/detach it (`run_in_background`) or end your turn to await a notification (see SKILL.md → Subagents). Resume at "Verify" only after it returns.
29
29
 
30
30
  **Path formatting rule:** Any markdown links written into `{spec_file}` must use paths relative to `{spec_file}`'s directory so they are clickable in VS Code. Any file paths displayed in terminal/conversation output must use CWD-relative format with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability. No leading `/` in either case.
31
31
 
32
- ### Tasks & Acceptance Verification
32
+ ### Verify
33
33
 
34
- After the implementation subagent returns, verify every task in the `## Tasks & Acceptance` section of `{spec_file}` is complete and every acceptance criterion is satisfied. Mark each finished task `[x]`. If any task is not done or any acceptance criterion is not satisfied, finish the missing work before proceeding. If the missing work cannot be completed, HALT with status `blocked`, blocking condition `implementation verification failed`, and include the unfinished task or failing acceptance criterion and reason.
34
+ After the implementation subagent returns: if it reported unfinished work, finish it before proceeding. Run the commands in `{spec_file}`'s `## Verification` section (or perform its manual checks). If verification fails and the failure cannot be fixed, HALT with status `blocked`, blocking condition `implementation verification failed`, and include the failing command or check and reason. Acceptance criteria are judged at review, not here.
35
35
 
36
36
  ### Matrix Test Audit
37
37
 
@@ -22,20 +22,13 @@ Do NOT `git add` anything — this is read-only inspection.
22
22
 
23
23
  ### Review
24
24
 
25
- Launch Blind Hunter, Edge Case Hunter, and Verification Gap Reviewer in parallel without prior conversation context.
26
-
27
- - **Blind Hunter**prompt:
28
- > Invoke the `bmad-review-adversarial-general` skill on this diff:
29
- >
30
- > {diff_output}
31
- - **Edge Case Hunter** prompt:
32
- > Invoke the `bmad-review-edge-case-hunter` skill on this diff:
33
- >
34
- > {diff_output}
35
- - **Verification Gap Reviewer** — prompt:
36
- > Invoke the `bmad-review-verification-gap` skill on this diff:
37
- >
38
- > {diff_output}
25
+ The review layers are `{workflow.review_layers}`, resolved during activation.
26
+
27
+ Skip every layer whose `instruction` is empty or missing that is how an override disables a default layer — and every layer whose `when` condition (if present) does not hold in the current context. If no layers remain, HALT with status `blocked` and blocking condition `no active review layers`.
28
+
29
+ Runtime placeholders: `{diff_output}` is the diff constructed above. `{verbatim_intent}` is the invocation intent exactly as this run received it at step-01; if the run started from an existing spec file rather than a fresh intent, it is the spec's `<intent-contract>` block instead.
30
+
31
+ Execute all remaining layers in parallel wherever their execution methods allow: substitute the runtime placeholders (e.g. `{diff_output}`) into each layer's `instruction`, then follow it verbatim.
39
32
 
40
33
  ### Classify
41
34
 
@@ -46,6 +39,7 @@ Launch Blind Hunter, Edge Case Hunter, and Verification Gap Reviewer in parallel
46
39
  - `medium`: tolerable
47
40
  - `high`: intolerable
48
41
  3. Route each finding into exactly one triage category. The first three categories are **this story's problem** — caused or exposed by the current change. The last two are **not this story's problem**.
42
+ Scope authority: a finding may be routed to defer or reject *as out of scope* only on the authority of the intent itself. The spec's scope language, the plan, and the diff's own shape are not admissible scope authorities — if only they exclude a finding, treat it as evidence against the chosen reading (intent_gap or bad_spec), not as out of scope.
49
43
  - **intent_gap** — caused by the change; cannot be resolved from the spec because the captured intent is incomplete. Do not infer intent unless there is exactly one possible reading.
50
44
  - **bad_spec** — caused by the change, including direct deviations from spec. The spec should have been clear enough to prevent it. When in doubt between bad_spec and patch, prefer bad_spec — a spec-level fix is more likely to produce coherent code.
51
45
  - **patch** — caused by the change; trivially fixable without human input. Just part of the diff.
@@ -8,6 +8,7 @@
8
8
  # - Strings replace the default.
9
9
  # - Lists append to the default list.
10
10
  # - Tables merge key by key.
11
+ # - Arrays of tables merge by `id`: matching `id` replaces, new `id`s append.
11
12
 
12
13
  [workflow]
13
14
 
@@ -31,3 +32,52 @@ persistent_facts = [
31
32
  # Empty means no extra completion behavior.
32
33
 
33
34
  on_complete = ""
35
+
36
+ # Review layers for the review step. `instruction` is the layer's whole
37
+ # execution recipe — subagents by default, but an override may run anything
38
+ # (e.g. an external reviewer via bash). {diff_output} is substituted at run
39
+ # time. `when` (optional) gates a layer; empty `instruction` disables it.
40
+
41
+ [[workflow.review_layers]]
42
+ id = "blind-hunter"
43
+ name = "Blind Hunter"
44
+ instruction = """
45
+ Launch a subagent with no prior conversation context, with this prompt:
46
+
47
+ > Invoke the `bmad-review-adversarial-general` skill on this diff:
48
+ >
49
+ > {diff_output}
50
+ """
51
+
52
+ [[workflow.review_layers]]
53
+ id = "edge-case-hunter"
54
+ name = "Edge Case Hunter"
55
+ instruction = """
56
+ Launch a subagent with no prior conversation context, with this prompt:
57
+
58
+ > Invoke the `bmad-review-edge-case-hunter` skill on this diff:
59
+ >
60
+ > {diff_output}
61
+ """
62
+
63
+ [[workflow.review_layers]]
64
+ id = "verification-gap"
65
+ name = "Verification Gap Reviewer"
66
+ instruction = """
67
+ Launch a subagent with no prior conversation context, with this prompt:
68
+
69
+ > Invoke the `bmad-review-verification-gap` skill on this diff:
70
+ >
71
+ > {diff_output}
72
+ """
73
+
74
+ # Review layers for the one-shot route.
75
+
76
+ [[workflow.oneshot_review_layers]]
77
+ id = "blind-hunter"
78
+ name = "Blind Hunter"
79
+ instruction = """
80
+ Launch a subagent with no prior conversation context, with this prompt:
81
+
82
+ > Invoke the `bmad-review-adversarial-general` skill on the changed files.
83
+ """
@@ -99,7 +99,6 @@ If the spec is an epic story and `{sprint_status}` exists: find the `development
99
99
 
100
100
  **b) Plan-code-review** — everything else. When uncertain whether blast radius is truly zero, choose this path.
101
101
 
102
-
103
102
  ## NEXT
104
103
 
105
104
  Read fully and follow `./step-02-plan.md`
@@ -46,7 +46,6 @@ HALT and ask human: `[A] Approve` | `[E] Edit`
46
46
  - **If the file exists:** Compare the content to what you wrote. If it has changed since you wrote it, acknowledge the external edits — show a brief summary of what changed — and proceed with the updated version. Then set status `ready-for-dev` in `{spec_file}`. Everything inside `<frozen-after-approval>` is now locked — only the human can change it. → Step 3.
47
47
  - **E**: Apply changes, then return to CHECKPOINT 1.
48
48
 
49
-
50
49
  ## NEXT
51
50
 
52
51
  Read fully and follow `./step-03-implement.md`
@@ -8,6 +8,7 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
8
8
 
9
9
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
10
10
  - All review subagents must run at the same model capability as the current session.
11
+ - Run subagents synchronously: launch them together, then wait for all results before continuing.
11
12
 
12
13
  ## INSTRUCTIONS
13
14
 
@@ -21,20 +22,13 @@ Do NOT `git add` anything — this is read-only inspection.
21
22
 
22
23
  ### Review
23
24
 
24
- Launch Blind Hunter, Edge Case Hunter, and Verification Gap Reviewer in parallel without prior conversation context. If no subagents are available, generate three review prompt files in `{implementation_artifacts}` one per reviewer role below — and HALT. Ask the human to run each in a separate session (ideally a different LLM) and paste back the findings.
25
-
26
- - **Blind Hunter**prompt:
27
- > Invoke the `bmad-review-adversarial-general` skill on this diff:
28
- >
29
- > {diff_output}
30
- - **Edge Case Hunter** prompt:
31
- > Invoke the `bmad-review-edge-case-hunter` skill on this diff:
32
- >
33
- > {diff_output}
34
- - **Verification Gap Reviewer** — prompt:
35
- > Invoke the `bmad-review-verification-gap` skill on this diff:
36
- >
37
- > {diff_output}
25
+ The review layers are `{workflow.review_layers}`, resolved during activation.
26
+
27
+ Skip every layer whose `instruction` is empty or missing that is how an override disables a default layer — and every layer whose `when` condition (if present) does not hold in the current context. If no layers remain, HALT with status `blocked` and blocking condition `no active review layers`.
28
+
29
+ Execute all remaining layers in parallel wherever their execution methods allow: substitute the runtime placeholders (e.g. `{diff_output}`) into each layer's `instruction`, then follow it verbatim.
30
+
31
+ If a layer's instruction requires subagents and none are available, generate one review prompt file per such layer in `{implementation_artifacts}` and HALT. Ask the human to run each in a separate session (ideally a different LLM) and paste back the findings.
38
32
 
39
33
  ### Classify
40
34
 
@@ -9,6 +9,7 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
9
9
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
10
10
  - NEVER auto-push.
11
11
  - All review subagents must run at the same model capability as the current session.
12
+ - Run subagents synchronously: launch them together, then wait for all results before continuing.
12
13
 
13
14
  ## INSTRUCTIONS
14
15
 
@@ -20,9 +21,11 @@ Implement the clarified intent directly.
20
21
 
21
22
  ### Review
22
23
 
23
- Launch Blind Hunter without prior conversation context. If no subagents are available, generate one review prompt file in `{implementation_artifacts}` and HALT. Ask the human to run it in a separate session and paste back the findings.
24
+ The review layers for this route are `{workflow.oneshot_review_layers}`, resolved during activation.
24
25
 
25
- - **Blind Hunter** prompt: "Invoke the `bmad-review-adversarial-general` skill on the changed files."
26
+ Skip every layer whose `instruction` is empty or missing, and every layer whose `when` condition (if present) does not hold. If no layers remain, HALT with status `blocked` and blocking condition `no active review layers`. Execute all remaining layers in parallel wherever their execution methods allow, following each layer's `instruction` verbatim after substituting any runtime placeholders.
27
+
28
+ If a layer's instruction requires subagents and none are available, generate one review prompt file per such layer in `{implementation_artifacts}` and HALT. Ask the human to run each in a separate session and paste back the findings.
26
29
 
27
30
  ### Classify
28
31