bmad-method 6.9.1-next.12 → 6.9.1-next.14
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 +1 -1
- package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-02-review.md +14 -8
- package/src/bmm-skills/4-implementation/bmad-dev-auto/step-04-review.md +9 -4
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-04-review.md +9 -4
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +4 -1
- package/src/core-skills/bmad-review-edge-case-hunter/SKILL.md +9 -4
- package/src/core-skills/bmad-review-edge-case-hunter/references/deletion-check.md +14 -0
package/package.json
CHANGED
|
@@ -7,23 +7,29 @@ failed_layers: '' # set at runtime: comma-separated list of layers that failed o
|
|
|
7
7
|
## RULES
|
|
8
8
|
|
|
9
9
|
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
10
|
-
- The Blind Hunter subagent receives NO project context — diff only.
|
|
11
|
-
- The Edge Case Hunter subagent receives diff and project read access.
|
|
12
|
-
- The Acceptance Auditor subagent receives diff, spec, and context docs.
|
|
13
10
|
- All review subagents must run at the same model capability as the current session.
|
|
14
11
|
|
|
15
12
|
## INSTRUCTIONS
|
|
16
13
|
|
|
17
14
|
1. If `{review_mode}` = `"no-spec"`, note to the user: "Acceptance Auditor skipped — no spec file provided."
|
|
18
15
|
|
|
19
|
-
2. Launch parallel
|
|
16
|
+
2. Launch Blind Hunter and Edge Case Hunter 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.
|
|
20
17
|
|
|
21
|
-
- **Blind Hunter** — prompt:
|
|
18
|
+
- **Blind Hunter** — prompt:
|
|
19
|
+
> Invoke the `bmad-review-adversarial-general` skill on this diff:
|
|
20
|
+
>
|
|
21
|
+
> {diff_output}
|
|
22
22
|
|
|
23
|
-
- **Edge Case Hunter** — prompt:
|
|
23
|
+
- **Edge Case Hunter** — prompt:
|
|
24
|
+
> Invoke the `bmad-review-edge-case-hunter` skill on this diff:
|
|
25
|
+
>
|
|
26
|
+
> {diff_output}
|
|
24
27
|
|
|
25
|
-
- **Acceptance Auditor** (only if `{review_mode}` = `"full"`) —
|
|
26
|
-
> You are an Acceptance Auditor. Review
|
|
28
|
+
- **Acceptance Auditor** (only if `{review_mode}` = `"full"`) — prompt:
|
|
29
|
+
> 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.
|
|
30
|
+
>
|
|
31
|
+
> Diff:
|
|
32
|
+
> {diff_output}
|
|
27
33
|
|
|
28
34
|
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.
|
|
29
35
|
|
|
@@ -8,7 +8,6 @@ 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
|
- No human interaction: do not ask questions or wait for approval in this step.
|
|
11
|
-
- Review subagents get no prior session context.
|
|
12
11
|
- All review subagents must run at the same model capability as the current session.
|
|
13
12
|
|
|
14
13
|
## INSTRUCTIONS
|
|
@@ -23,10 +22,16 @@ Do NOT `git add` anything — this is read-only inspection.
|
|
|
23
22
|
|
|
24
23
|
### Review
|
|
25
24
|
|
|
26
|
-
Launch
|
|
25
|
+
Launch Blind Hunter and Edge Case Hunter in parallel without prior conversation context.
|
|
27
26
|
|
|
28
|
-
- **Blind
|
|
29
|
-
|
|
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}
|
|
30
35
|
|
|
31
36
|
### Classify
|
|
32
37
|
|
|
@@ -7,7 +7,6 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
|
|
7
7
|
## RULES
|
|
8
8
|
|
|
9
9
|
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
10
|
-
- Review subagents get NO conversation context.
|
|
11
10
|
- All review subagents must run at the same model capability as the current session.
|
|
12
11
|
|
|
13
12
|
## INSTRUCTIONS
|
|
@@ -22,10 +21,16 @@ Do NOT `git add` anything — this is read-only inspection.
|
|
|
22
21
|
|
|
23
22
|
### Review
|
|
24
23
|
|
|
25
|
-
Launch
|
|
24
|
+
Launch Blind Hunter and Edge Case Hunter in parallel without prior conversation context. If no subagents are available, generate two 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.
|
|
26
25
|
|
|
27
|
-
- **Blind
|
|
28
|
-
|
|
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}
|
|
29
34
|
|
|
30
35
|
### Classify
|
|
31
36
|
|
|
@@ -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
|
- NEVER auto-push.
|
|
11
|
+
- All review subagents must run at the same model capability as the current session.
|
|
11
12
|
|
|
12
13
|
## INSTRUCTIONS
|
|
13
14
|
|
|
@@ -19,7 +20,9 @@ Implement the clarified intent directly.
|
|
|
19
20
|
|
|
20
21
|
### Review
|
|
21
22
|
|
|
22
|
-
|
|
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
|
+
|
|
25
|
+
- **Blind Hunter** — prompt: "Invoke the `bmad-review-adversarial-general` skill on the changed files."
|
|
23
26
|
|
|
24
27
|
### Classify
|
|
25
28
|
|
|
@@ -9,6 +9,7 @@ description: 'Walk every branching path and boundary condition in content, repor
|
|
|
9
9
|
When a diff is provided, scan only the diff hunks and list boundaries that are directly reachable from the changed lines and lack an explicit guard in the diff.
|
|
10
10
|
When no diff is provided (full file or function), treat the entire provided content as the scope.
|
|
11
11
|
Ignore the rest of the codebase unless the provided content explicitly references external functions.
|
|
12
|
+
A brief secondary deletion check runs as Step 4 when the diff removes code.
|
|
12
13
|
|
|
13
14
|
**Inputs:**
|
|
14
15
|
- **content** — Content to review: diff, full file, or function
|
|
@@ -42,14 +43,18 @@ Ignore the rest of the codebase unless the provided content explicitly reference
|
|
|
42
43
|
- Revisit every edge class from Step 2 — e.g., missing else/default, null/empty inputs, off-by-one loops, arithmetic overflow, implicit type coercion, race conditions, timeout gaps
|
|
43
44
|
- Add any newly found unhandled paths to findings; discard confirmed-handled ones
|
|
44
45
|
|
|
45
|
-
### Step 4:
|
|
46
|
+
### Step 4: Deletion Check
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
If the diff removed or replaced meaningful code (ignore pure renames and whitespace): load `references/deletion-check.md` and follow it.
|
|
49
|
+
|
|
50
|
+
### Step 5: Present Findings
|
|
51
|
+
|
|
52
|
+
Output all findings as a single JSON array following the Output Format specification exactly.
|
|
48
53
|
|
|
49
54
|
|
|
50
55
|
## OUTPUT FORMAT
|
|
51
56
|
|
|
52
|
-
Return ONLY a valid JSON array of objects. Each
|
|
57
|
+
Return ONLY a valid JSON array of objects. Each edge-case finding contains exactly these four fields:
|
|
53
58
|
|
|
54
59
|
```json
|
|
55
60
|
[{
|
|
@@ -60,7 +65,7 @@ Return ONLY a valid JSON array of objects. Each object must contain exactly thes
|
|
|
60
65
|
}]
|
|
61
66
|
```
|
|
62
67
|
|
|
63
|
-
No extra text, no explanations, no markdown wrapping. An empty array `[]` is valid when
|
|
68
|
+
No extra text, no explanations, no markdown wrapping. An empty array `[]` is valid when nothing is found. Deletion findings from Step 4, if any, go in the same array with the extra fields defined in `references/deletion-check.md`.
|
|
64
69
|
|
|
65
70
|
|
|
66
71
|
## HALT CONDITIONS
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Deletion Check
|
|
2
|
+
|
|
3
|
+
Secondary pass for the Edge Case Hunter — runs only when the diff removed meaningful code. Subordinate to the edge-case pass; findings are usually few or none.
|
|
4
|
+
|
|
5
|
+
For each chunk of removed or replaced code (ignore pure renames and whitespace), ask: did it carry behavior or a contract that the change neither re-established nor intentionally retired? Add a finding for any resulting regression, orphaned reference, or newly-dead code. Skip anything already covered by your edge-case findings.
|
|
6
|
+
|
|
7
|
+
Append each finding to the same JSON array as the edge-case findings, with the four standard fields plus:
|
|
8
|
+
|
|
9
|
+
- `kind`: `"deletion"`
|
|
10
|
+
- `confidence`: `"high"`, `"medium"`, or `"low"` — these are inferences; rate them
|
|
11
|
+
|
|
12
|
+
For a deletion finding the standard fields read as: `location` = the removed item; `trigger_condition` = the behavior or contract it enforced; `guard_snippet` = where or how to re-establish it; `potential_consequence` = the regression or orphan.
|
|
13
|
+
|
|
14
|
+
Add nothing if nothing qualifies.
|