bmad-method 6.2.1-next.19 → 6.2.1-next.20

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.2.1-next.19",
4
+ "version": "6.2.1-next.20",
5
5
  "description": "Breakthrough Method of Agile AI-driven Development",
6
6
  "keywords": [
7
7
  "agile",
@@ -30,19 +30,18 @@
30
30
  - Set `source` to the merged sources (e.g., `blind+edge`).
31
31
 
32
32
  3. **Classify** each finding into exactly one bucket:
33
- - **intent_gap** -- The spec/intent is incomplete; cannot resolve from existing information. Only possible if `{review_mode}` = `"full"`.
34
- - **bad_spec** -- The spec should have prevented this; spec is wrong or ambiguous. Only possible if `{review_mode}` = `"full"`.
35
- - **patch** -- Code issue that is trivially fixable without human input. Just needs a code change.
33
+ - **decision_needed** -- There is an ambiguous choice that requires human input. The code cannot be correctly patched without knowing the user's intent. Only possible if `{review_mode}` = `"full"`.
34
+ - **patch** -- Code issue that is fixable without human input. The correct fix is unambiguous.
36
35
  - **defer** -- Pre-existing issue not caused by the current change. Real but not actionable now.
37
- - **reject** -- Noise, false positive, or handled elsewhere.
36
+ - **dismiss** -- Noise, false positive, or handled elsewhere.
38
37
 
39
- If `{review_mode}` = `"no-spec"` and a finding would otherwise be `intent_gap` or `bad_spec`, reclassify it as `patch` (if code-fixable) or `defer` (if not).
38
+ 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).
40
39
 
41
- 4. **Drop** all `reject` findings. Record the reject count for the summary.
40
+ 4. **Drop** all `dismiss` findings. Record the dismiss count for the summary.
42
41
 
43
- 5. If `{failed_layers}` is non-empty, report which layers failed before announcing results. If zero findings remain after dropping rejects AND `{failed_layers}` is non-empty, warn the user that the review may be incomplete rather than announcing a clean review.
42
+ 5. 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.
44
43
 
45
- 6. If zero findings remain after dropping rejects and no layers failed, note clean review.
44
+ 6. 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}`.)
46
45
 
47
46
 
48
47
  ## NEXT
@@ -1,38 +1,84 @@
1
1
  ---
2
+ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
2
3
  ---
3
4
 
4
- # Step 4: Present
5
+ # Step 4: Present and Act
5
6
 
6
7
  ## RULES
7
8
 
8
9
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
9
- - Do NOT auto-fix anything. Present findings and let the user decide next steps.
10
+ - When `{spec_file}` is set, always write findings to the story file before offering action choices.
11
+ - `decision-needed` findings must be resolved before handling `patch` findings.
10
12
 
11
13
  ## INSTRUCTIONS
12
14
 
13
- 1. Group remaining findings by category.
15
+ ### 1. Clean review shortcut
14
16
 
15
- 2. Present to the user in this order (include a section only if findings exist in that category):
17
+ If zero findings remain after triage (all dismissed or none raised): state that and end the workflow.
16
18
 
17
- - **Intent Gaps**: "These findings suggest the captured intent is incomplete. Consider clarifying intent before proceeding."
18
- - List each with title + detail.
19
+ ### 2. Write findings to the story file
19
20
 
20
- - **Bad Spec**: "These findings suggest the spec should be amended. Consider regenerating or amending the spec with this context:"
21
- - List each with title + detail + suggested spec amendment.
21
+ If `{spec_file}` exists and contains a Tasks/Subtasks section, append a `### Review Findings` subsection. Write all findings in this order:
22
22
 
23
- - **Patch**: "These are fixable code issues:"
24
- - List each with title + detail + location (if available).
23
+ 1. **`decision-needed`** findings (unchecked):
24
+ `- [ ] [Review][Decision] <Title> <Detail>`
25
25
 
26
- - **Defer**: "Pre-existing issues surfaced by this review (not caused by current changes):"
27
- - List each with title + detail.
26
+ 2. **`patch`** findings (unchecked):
27
+ `- [ ] [Review][Patch] <Title> [<file>:<line>]`
28
28
 
29
- 3. Summary line: **X** intent_gap, **Y** bad_spec, **Z** patch, **W** defer findings. **R** findings rejected as noise.
29
+ 3. **`defer`** findings (checked off, marked deferred):
30
+ `- [x] [Review][Defer] <Title> [<file>:<line>] — deferred, pre-existing`
30
31
 
31
- 4. If clean review (zero findings across all layers after triage): state that N findings were raised but all were classified as noise, or that no findings were raised at all (as applicable).
32
+ Also append each `defer` finding to `{deferred_work_file}` under a heading `## Deferred from: code review ({date})`. If `{spec_file}` is set, include its basename in the heading (e.g., `code review of story-3.3 (2026-03-18)`). One bullet per finding with description.
32
33
 
33
- 5. Offer the user next steps (recommendations, not automated actions):
34
- - If `patch` findings exist: "These can be addressed in a follow-up implementation pass or manually."
35
- - If `intent_gap` or `bad_spec` findings exist: "Consider running the planning workflow to clarify intent or amend the spec before continuing."
36
- - If only `defer` findings remain: "No action needed for this change. Deferred items are noted for future attention."
34
+ ### 3. Present summary
37
35
 
38
- Workflow complete.
36
+ Announce what was written:
37
+
38
+ > **Code review complete.** <D> `decision-needed`, <P> `patch`, <W> `defer`, <R> dismissed as noise.
39
+
40
+ If `{spec_file}` is set, add: `Findings written to the review findings section in {spec_file}.`
41
+ Otherwise add: `Findings are listed above. No story file was provided, so nothing was persisted.`
42
+
43
+ ### 4. Resolve decision-needed findings
44
+
45
+ If `decision_needed` findings exist, present each one with its detail and the options available. The user must decide — the correct fix is ambiguous without their input. Walk through each finding (or batch related ones) and get the user's call. Once resolved, each becomes a `patch`, `defer`, or is dismissed.
46
+
47
+ If the user chooses to defer, ask: Quick one-line reason for deferring this item? (helps future reviews): — then append that reason to both the story file bullet and the `{deferred_work_file}` entry.
48
+
49
+ **HALT** — I am waiting for your numbered choice. Reply with only the number (or "0" for batch). Do not proceed until you select an option.
50
+
51
+ ### 5. Handle `patch` findings
52
+
53
+ If `patch` findings exist (including any resolved from step 4), HALT. Ask the user:
54
+
55
+ If `{spec_file}` is set, present all three options (if >3 `patch` findings exist, also show option 0):
56
+
57
+ > **How would you like to handle the <Z> `patch` findings?**
58
+ > 0. **Batch-apply all** — automatically fix every non-controversial patch (recommended when there are many)
59
+ > 1. **Fix them automatically** — I will apply fixes now
60
+ > 2. **Leave as action items** — they are already in the story file
61
+ > 3. **Walk through each** — let me show details before deciding
62
+
63
+ If `{spec_file}` is **not** set, present only options 1 and 3 (omit option 2 — findings were not written to a file). If >3 `patch` findings exist, also show option 0:
64
+
65
+ > **How would you like to handle the <Z> `patch` findings?**
66
+ > 0. **Batch-apply all** — automatically fix every non-controversial patch (recommended when there are many)
67
+ > 1. **Fix them automatically** — I will apply fixes now
68
+ > 2. **Walk through each** — let me show details before deciding
69
+
70
+ **HALT** — I am waiting for your numbered choice. Reply with only the number (or "0" for batch). Do not proceed until you select an option.
71
+
72
+ - **Option 0** (only when >3 findings): Apply all non-controversial patches without per-finding confirmation. Skip any finding that requires judgment. Present a summary of changes made and any skipped findings.
73
+ - **Option 1**: Apply each fix. After all patches are applied, present a summary of changes made. If `{spec_file}` is set, check off the items in the story file.
74
+ - **Option 2** (only when `{spec_file}` is set): Done — findings are already written to the story.
75
+ - **Walk through each**: Present each finding with full detail, diff context, and suggested fix. After walkthrough, re-offer the applicable options above.
76
+
77
+ **HALT** — I am waiting for your numbered choice. Reply with only the number (or "0" for batch). Do not proceed until you select an option.
78
+
79
+ **✅ Code review actions complete**
80
+
81
+ - Decision-needed resolved: <D>
82
+ - Patches handled: <P>
83
+ - Deferred: <W>
84
+ - Dismissed: <R>