bmad-method 6.11.1-next.21 → 6.11.1-next.23
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/plan/bmad-project-context/SKILL.md +1 -1
- package/src/bmm-skills/plan/bmad-sprint-planning/scripts/__pycache__/sprint_plan.cpython-311.pyc +0 -0
- package/src/bmm-skills/plan/bmad-sprint-planning/scripts/tests/__pycache__/test_sprint_plan.cpython-311-pytest-9.1.1.pyc +0 -0
- package/src/bmm-skills/ship/bmad-build/spec-template.md +5 -0
- package/src/bmm-skills/ship/bmad-build/step-04-review.md +10 -9
- package/src/bmm-skills/ship/bmad-build/step-05-present.md +6 -1
- package/src/bmm-skills/ship/bmad-build/step-oneshot.md +13 -6
- package/src/bmm-skills/ship/bmad-build-auto/spec-template.md +3 -3
- package/src/bmm-skills/ship/bmad-build-auto/step-04-review.md +16 -14
- package/src/bmm-skills/ship/bmad-build-auto/workflow.md +1 -1
- package/src/bmm-skills/ship/bmad-code-review/steps/step-03-triage.md +14 -21
- package/src/bmm-skills/ship/bmad-code-review/steps/step-04-present.md +3 -1
- package/src/bmm-skills/ship/bmad-retrospective/scripts/__pycache__/sprint_status.cpython-311.pyc +0 -0
- package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/__pycache__/test_git_evidence.cpython-311-pytest-9.1.1.pyc +0 -0
- package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/__pycache__/test_sprint_status.cpython-311-pytest-9.1.1.pyc +0 -0
- package/src/scripts/__pycache__/config_utils.cpython-311.pyc +0 -0
- package/src/scripts/tests/__pycache__/test_config_utils.cpython-311.pyc +0 -0
- package/src/scripts/tests/__pycache__/test_resolve_config.cpython-311.pyc +0 -0
- package/src/scripts/tests/__pycache__/test_resolve_customization.cpython-311.pyc +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bmad-project-context
|
|
3
|
-
description: 'Set up, adopt, refresh, or audit a repository''s agent instructions (the AGENTS.md block) so AI agents work well in that repo. Also records observed agent mistakes as pitfalls.
|
|
3
|
+
description: 'Set up, adopt, refresh, or audit a repository''s agent instructions (the AGENTS.md block) so AI agents work well in that repo. Also records observed agent mistakes as pitfalls. Use when invoked by name'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Overview
|
package/src/bmm-skills/plan/bmad-sprint-planning/scripts/__pycache__/sprint_plan.cpython-311.pyc
CHANGED
|
Binary file
|
|
Binary file
|
|
@@ -70,6 +70,11 @@ context: [] # optional: `{project-root}/`-prefixed paths to project-wide standar
|
|
|
70
70
|
the amendment avoids, and any KEEP instructions (what worked well and must survive re-derivation).
|
|
71
71
|
Empty until the first bad_spec loopback. -->
|
|
72
72
|
|
|
73
|
+
## Review Triage Log
|
|
74
|
+
|
|
75
|
+
<!-- Append-only. Populated by step-04 on every review pass: each dismissed finding with the
|
|
76
|
+
reason that disposed of its claim. Empty until the first review pass. -->
|
|
77
|
+
|
|
73
78
|
## Design Notes
|
|
74
79
|
|
|
75
80
|
<!-- If the approach is straightforward, DELETE THIS ENTIRE SECTION. Do not write "N/A" or "None". -->
|
|
@@ -28,18 +28,20 @@ If a layer's instruction requires subagents and none are available, for each suc
|
|
|
28
28
|
|
|
29
29
|
### Classify
|
|
30
30
|
|
|
31
|
-
1.
|
|
32
|
-
|
|
33
|
-
Disregard any severity assigned by a reviewing subagent. Review subagents operate under by-design information asymmetry and do not have enough context to set final severity for this workflow.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
1. Once every layer has reported — and not before — render a verdict on each finding on its own, ahead of any deduplication or grouping. For each finding:
|
|
32
|
+
- **Verify its own claimed consequence** at the location it names. Read past the diff hunk — into the callers, the guards upstream, whatever else the site depends on — far enough to tell whether that consequence actually occurs. Another finding's outcome, however adjacent, never settles this one.
|
|
33
|
+
- **Assign severity** from the verified consequence for the artifact's main consumer (software user, document reader, etc). Disregard any severity assigned by a reviewing subagent. Review subagents operate under by-design information asymmetry and do not have enough context to set final severity for this workflow.
|
|
34
|
+
- `low`: none or cosmetic
|
|
35
|
+
- `medium`: tolerable
|
|
36
|
+
- `high`: intolerable
|
|
37
|
+
- **Keep or dismiss.** Keep a finding only where verification confirmed its consequence. Dismiss noise, claims the verification refuted, and claims it could not substantiate — no path to the claimed consequence at the named site is a valid disposal. Whatever the reason, it must dispose of the finding's own claim: a true fact about neighboring code that leaves the claim standing is not a dismissal, and the finding stays kept. Record each dismissal with its reason in the `## Review Triage Log` section of `{spec_file}`; never drop a finding silently.
|
|
38
|
+
- A finding whose fix edits `{spec_file}`: dismiss. A finding whose fix edits an agent-context document (CLAUDE.md, AGENTS.md, rules files, specs): defer, never patch.
|
|
39
|
+
2. Group the survivors by shared root cause — two findings belong in one entry only when the same underlying defect produced both. Same location alone is not a shared root cause, and neither is a shared fix. An entry carries every member's verified consequence and the highest severity among them.
|
|
40
|
+
3. Route each entry into exactly one triage category. The first three are **this story's problem** — caused or exposed by the current change. The last is **not this story's problem**.
|
|
38
41
|
- **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.
|
|
39
42
|
- **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.
|
|
40
43
|
- **patch** — caused by the change; trivially fixable without human input. Just part of the diff.
|
|
41
44
|
- **defer** — pre-existing issue not caused by this story, surfaced incidentally by the review. Collect for later focused attention.
|
|
42
|
-
- **reject** — noise. Drop silently. When unsure between defer and reject, prefer reject — only defer findings you are confident are real.
|
|
43
45
|
4. Process findings in cascading order. If intent_gap or bad_spec findings exist, they trigger a loopback — lower findings are moot since code will be re-derived. If neither exists, process patch and defer normally. Before each loopback, read `{spec_file}` frontmatter `review_loop_iteration` (missing means `0`), increment it by 1, and write it back. If it exceeds 5, HALT and escalate to the human.
|
|
44
46
|
- **intent_gap** — Root cause is inside `<frozen-after-approval>`. Revert code changes. Loop back to the human to resolve. Once resolved, read fully and follow `[[bmad-snapshot:step-02-plan.md]]` to re-run steps 2–4.
|
|
45
47
|
- **bad_spec** — Root cause is outside `<frozen-after-approval>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the non-frozen sections that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Read fully and follow `[[bmad-snapshot:step-03-implement.md]]` to re-derive the code, then this step will run again.
|
|
@@ -50,7 +52,6 @@ If a layer's instruction requires subagents and none are available, for each suc
|
|
|
50
52
|
summary: <one sentence>
|
|
51
53
|
evidence: <why this is real>
|
|
52
54
|
```
|
|
53
|
-
- **reject** — Drop silently.
|
|
54
55
|
|
|
55
56
|
## NEXT
|
|
56
57
|
|
|
@@ -62,7 +62,12 @@ If version control is available and the tree is dirty, create a local commit wit
|
|
|
62
62
|
|
|
63
63
|
### Display Summary
|
|
64
64
|
|
|
65
|
-
Display summary of your work to the user, including
|
|
65
|
+
Display summary of your work to the user, including:
|
|
66
|
+
|
|
67
|
+
- The commit hash, if one was created.
|
|
68
|
+
- Review findings breakdown: patches applied, items deferred, and the dismissed count — dismissal reasons are recorded in the spec's `## Review Triage Log`.
|
|
69
|
+
|
|
70
|
+
Any file paths shown in conversation/terminal output must use CWD-relative format (no leading `/`) with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability — the goal is to make paths clickable in terminal emulators.
|
|
66
71
|
|
|
67
72
|
Offer to push and/or create a pull request.
|
|
68
73
|
|
|
@@ -25,17 +25,23 @@ If a layer's instruction requires subagents and none are available, for each suc
|
|
|
25
25
|
|
|
26
26
|
### Classify
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
Once every layer has reported — and not before — render a verdict on each finding on its own, ahead of any deduplication or grouping:
|
|
29
29
|
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
30
|
+
- **Verify its own claimed consequence** at the location it names. Read past the changed lines — into the callers, the guards upstream, whatever else the site depends on — far enough to tell whether that consequence actually occurs. Another finding's outcome, however adjacent, never settles this one.
|
|
31
|
+
- **Assign severity** from the verified consequence for the software's user: `low` (none or cosmetic), `medium` (tolerable), `high` (intolerable).
|
|
32
|
+
- **Keep or dismiss.** Keep a finding only where verification confirmed its consequence. Dismiss noise, claims the verification refuted, and claims it could not substantiate — no path to the claimed consequence at the named site is a valid disposal. Whatever the reason, it must dispose of the finding's own claim: a true fact about neighboring code that leaves the claim standing is not a dismissal, and the finding stays kept. Record each dismissal with its reason; never drop a finding silently.
|
|
33
|
+
- A finding whose fix edits an agent-context document (CLAUDE.md, AGENTS.md, rules files, specs): defer, never patch.
|
|
34
|
+
|
|
35
|
+
Group the survivors by shared root cause — two findings belong in one entry only when the same underlying defect produced both. Same location alone is not a shared root cause, and neither is a shared fix. An entry carries every member's verified consequence and the highest severity among them. Then route each entry in this order:
|
|
36
|
+
|
|
37
|
+
- **patch** — Patch every entry caused or exposed by this change that shows a defect that actually occurs, missing coverage for a specific case, or a broken gate or convention — not a state nothing reaches — and whose smallest fix is trivial, adds no public surface, and guards no state the finding did not demonstrate. Apply that smallest fix immediately.
|
|
38
|
+
- **HALT** — HALT on every entry caused or exposed by this change that shows the same evidence but whose smallest fix fails any of those conditions. Present it to the human for decision before proceeding.
|
|
39
|
+
- **defer** — Defer every other entry, including pre-existing issues and improvement ideas. Append one new entry to `{{.implementation_artifacts}}/deferred-work.md` using this format. Do not modify existing entries or look for duplicates.
|
|
33
40
|
```markdown
|
|
34
41
|
- source_spec: `{spec_file}`
|
|
35
42
|
summary: <one sentence>
|
|
36
43
|
evidence: <why this is real>
|
|
37
44
|
```
|
|
38
|
-
- **reject** — Reject only noise. Drop silently.
|
|
39
45
|
|
|
40
46
|
### Generate Spec Trace
|
|
41
47
|
|
|
@@ -46,6 +52,7 @@ Write `{spec_file}` using `[[bmad-snapshot:spec-template.md]]`. Fill only these
|
|
|
46
52
|
1. **Frontmatter** — set `title: '{title}'`, `type`, `created`, `status: 'done'`. Add `route: 'one-shot'`.
|
|
47
53
|
2. **Title and Intent** — `# {title}` heading and `## Intent` with **Problem** and **Approach** lines. Reuse the summary you already generated for the terminal.
|
|
48
54
|
3. **Suggested Review Order** — append after Intent. Build using the same convention as `[[bmad-snapshot:step-05-present.md]]` § "Generate Suggested Review Order" (spec-file-relative links, concern-based ordering, ultra-concise framing).
|
|
55
|
+
4. **Review Triage Log** — only when findings were dismissed: one line per dismissal, the finding and the reason that disposed of its claim.
|
|
49
56
|
|
|
50
57
|
Follow `[[bmad-snapshot:sync-sprint-status.md]]` with `target_status` = `review`.
|
|
51
58
|
|
|
@@ -61,7 +68,7 @@ Display a summary in conversation output, including:
|
|
|
61
68
|
|
|
62
69
|
- The commit hash (if one was created).
|
|
63
70
|
- List of files changed with one-line descriptions. Any file paths shown in conversation/terminal output must use CWD-relative format (no leading `/`) with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability — this differs from spec-file links which use spec-file-relative paths.
|
|
64
|
-
- Review findings breakdown: patches applied, items deferred,
|
|
71
|
+
- Review findings breakdown: patches applied, items deferred, and the dismissed count — dismissal reasons are recorded in the spec trace. If every finding was dismissed, say so.
|
|
65
72
|
|
|
66
73
|
Offer to push and/or create a pull request.
|
|
67
74
|
|
|
@@ -76,9 +76,9 @@ deferred: [] # append-only machine-readable deferred review findings; each item
|
|
|
76
76
|
## Review Triage Log
|
|
77
77
|
|
|
78
78
|
<!-- Append-only. Populated by step-04 on EVERY review pass, including loopbacks and blocked exits.
|
|
79
|
-
Each entry records triage decision counts for intent_gap, bad_spec, patch, defer,
|
|
80
|
-
|
|
81
|
-
that pass. Empty until the first review pass. -->
|
|
79
|
+
Each entry records triage decision counts for intent_gap, bad_spec, patch, and defer, with
|
|
80
|
+
per-category severity breakdowns using low/medium/high, plus each dismissed finding with its
|
|
81
|
+
reason and the findings addressed in that pass. Empty until the first review pass. -->
|
|
82
82
|
|
|
83
83
|
## Design Notes
|
|
84
84
|
|
|
@@ -28,19 +28,21 @@ Announce skipped layers first, then launch every active layer before handling an
|
|
|
28
28
|
|
|
29
29
|
### Classify
|
|
30
30
|
|
|
31
|
-
1.
|
|
32
|
-
|
|
33
|
-
Disregard any severity assigned by a reviewing subagent. Review subagents operate under by-design information asymmetry and do not have enough context to set final severity for this workflow.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
Scope authority: a finding may be
|
|
31
|
+
1. Once every layer has reported — and not before — render a verdict on each finding on its own, ahead of any deduplication or grouping. For each finding:
|
|
32
|
+
- **Verify its own claimed consequence** at the location it names. Read past the diff hunk — into the callers, the guards upstream, whatever else the site depends on — far enough to tell whether that consequence actually occurs. Another finding's outcome, however adjacent, never settles this one.
|
|
33
|
+
- **Assign severity** from the verified consequence for the artifact's main consumer (software user, document reader, etc). Disregard any severity assigned by a reviewing subagent. Review subagents operate under by-design information asymmetry and do not have enough context to set final severity for this workflow.
|
|
34
|
+
- `low`: none or cosmetic
|
|
35
|
+
- `medium`: tolerable
|
|
36
|
+
- `high`: intolerable
|
|
37
|
+
- **Keep or dismiss.** Keep a finding only where verification confirmed its consequence. Dismiss noise, claims the verification refuted, and claims it could not substantiate — no path to the claimed consequence at the named site is a valid disposal. Whatever the reason, it must dispose of the finding's own claim: a true fact about neighboring code that leaves the claim standing is not a dismissal, and the finding stays kept. Record each dismissal with its reason in the triage log below; never drop a finding silently.
|
|
38
|
+
- Scope authority: a finding may be dismissed or later deferred *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.
|
|
39
|
+
- A finding whose fix edits `{spec_file}`: dismiss. A finding whose fix edits an agent-context document (CLAUDE.md, AGENTS.md, rules files, specs): defer, never patch.
|
|
40
|
+
2. Group the survivors by shared root cause — two findings belong in one entry only when the same underlying defect produced both. Same location alone is not a shared root cause, and neither is a shared fix. An entry carries every member's verified consequence and the highest severity among them.
|
|
41
|
+
3. Route each entry into exactly one triage category. The first three are **this story's problem** — caused or exposed by the current change. The last is **not this story's problem**.
|
|
39
42
|
- **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.
|
|
40
43
|
- **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.
|
|
41
44
|
- **patch** — caused by the change; trivially fixable without human input. Just part of the diff.
|
|
42
45
|
- **defer** — pre-existing issue not caused by this story, surfaced incidentally by the review. Collect for later focused attention.
|
|
43
|
-
- **reject** — noise. Drop silently. When unsure between defer and reject, prefer reject — only defer findings you are confident are real.
|
|
44
46
|
4. Append a new entry to the `## Review Triage Log` section in `{spec_file}`, in this format:
|
|
45
47
|
```markdown
|
|
46
48
|
### {date} — Review pass
|
|
@@ -48,11 +50,12 @@ Announce skipped layers first, then launch every active layer before handling an
|
|
|
48
50
|
- bad_spec: count
|
|
49
51
|
- patch: count
|
|
50
52
|
- defer: count
|
|
51
|
-
-
|
|
53
|
+
- dismissed:
|
|
54
|
+
- <finding summary> — <the reason, which must dispose of that finding's own claim>
|
|
52
55
|
- addressed_findings:
|
|
53
56
|
- `[high|medium|low]` `[patch|bad_spec]` <finding summary and action taken in this pass>
|
|
54
57
|
```
|
|
55
|
-
Where `{date}` is the current system date and `count` is either just `0`, or total with breakdown by severity `N: (high Nhigh, medium Nmedium, low Nlow)`.
|
|
58
|
+
Where `{date}` is the current system date and `count` is either just `0`, or total with breakdown by severity `N: (high Nhigh, medium Nmedium, low Nlow)`. Give `dismissed` one line per dismissal, or the single line `- none` when nothing was dismissed.
|
|
56
59
|
If no patch was fixed and no bad_spec repair loopback was triggered in this pass, write:
|
|
57
60
|
```markdown
|
|
58
61
|
- addressed_findings:
|
|
@@ -74,15 +77,14 @@ Announce skipped layers first, then launch every active layer before handling an
|
|
|
74
77
|
severity: medium # optional — high | medium | low
|
|
75
78
|
```
|
|
76
79
|
After all appends, parse the complete frontmatter as YAML and verify that `deferred` is one list containing every prior item plus the new items with their intended text. Repair serialization errors before continuing.
|
|
77
|
-
- **reject** — Drop silently.
|
|
78
80
|
|
|
79
81
|
## Finalize
|
|
80
82
|
|
|
81
83
|
Write the following details to `{spec_file}` under `## Auto Run Result`:
|
|
82
84
|
- Summary of implemented change
|
|
83
85
|
- Files changed with one-line descriptions
|
|
84
|
-
- Review findings breakdown: patches applied, items deferred,
|
|
85
|
-
- Follow-up review recommendation: count only this pass's
|
|
86
|
+
- Review findings breakdown: patches applied, items deferred, and every dismissed finding with its reason
|
|
87
|
+
- Follow-up review recommendation: count only this pass's entries triaged `patch`, at entry severity — never deferred or dismissed ones. `true` if any patched entry was `high` severity, or if `3 × medium count + 1 × low count` is 5 or more; otherwise `false`. Record the patched counts by severity and the score.
|
|
86
88
|
- Verification performed, including command outcomes or manual inspection notes
|
|
87
89
|
- Any residual risks
|
|
88
90
|
|
|
@@ -52,7 +52,7 @@ If anything appears below, follow it as the final terminal instruction before ex
|
|
|
52
52
|
|
|
53
53
|
Using subagents when instructed is mandatory. If you cannot, HALT with status `blocked` and blocking condition `no subagents`.
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Launch all the subagents a step calls for in **one message** — several **blocking** calls awaited together in the same turn — then wait for all their results before continuing; a step that calls for one subagent is that same message with one call. Never split a step's launches across messages, and never run one detached. Never run a subagent in the background / detached / async (e.g. `run_in_background: true`), and never end your turn to "await a completion notification." This workflow runs unattended: there is no event loop to resume a yielded turn, so a backgrounded subagent never hands control back and the run stalls. The only sanctioned way to end a turn is the HALT protocol above with an explicit terminal `status`.
|
|
56
56
|
|
|
57
57
|
## READY FOR DEVELOPMENT STANDARD
|
|
58
58
|
|
|
@@ -11,39 +11,32 @@
|
|
|
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` -- the `id` of the layer that produced the finding (e.g., `blind-hunter`)
|
|
14
|
+
- `source` -- the `id` of the layer that produced the finding (e.g., `blind-hunter`)
|
|
15
15
|
- `title` -- one-line summary
|
|
16
16
|
- `detail` -- full description
|
|
17
17
|
- `location` -- file and line reference (if available)
|
|
18
18
|
|
|
19
|
-
2.
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
|
|
19
|
+
2. Once every layer has reported -- and not before -- render a verdict on each finding on its own, ahead of any deduplication or grouping. For each finding:
|
|
20
|
+
- **Verify its own claimed consequence** at the location it names. Read past the diff hunk -- into the callers, the guards upstream, whatever else the site depends on -- far enough to tell whether that consequence actually occurs. Another finding's outcome, however adjacent, never settles this one.
|
|
21
|
+
- **Assign severity** from the verified consequence for the artifact's main consumer (software user, document reader, etc). Disregard any severity assigned by a reviewing subagent. Review subagents operate under by-design information asymmetry and do not have enough context to set final severity for this workflow.
|
|
22
|
+
- `low` -- none or cosmetic
|
|
23
|
+
- `medium` -- tolerable
|
|
24
|
+
- `high` -- intolerable
|
|
25
|
+
- **Keep or dismiss.** Keep a finding only where verification confirmed its consequence. Dismiss noise, claims the verification refuted, and claims it could not substantiate -- no path to the claimed consequence at the named site is a valid disposal. Whatever the reason, it must dispose of the finding's own claim: a true fact about neighboring code that leaves the claim standing is not a dismissal, and the finding stays kept. Record each dismissal with its reason for the summary; never drop a finding silently.
|
|
26
|
+
- A finding whose fix edits `{spec_file}`: dismiss. A finding whose fix edits an agent-context document (CLAUDE.md, AGENTS.md, rules files, specs): defer, never patch.
|
|
23
27
|
|
|
24
|
-
3.
|
|
28
|
+
3. **Group the survivors by shared root cause** -- two findings belong in one entry only when the same underlying defect produced both. Same location alone is not a shared root cause, and neither is a shared fix. An entry carries every member's verified consequence in `detail` and the highest severity among them; set `source` to the contributing layers joined with `+` (e.g., `blind-hunter+edge-case-hunter`).
|
|
25
29
|
|
|
26
|
-
4. **
|
|
27
|
-
|
|
28
|
-
5. **Assign severity** to each finding by consequence for the artifact's main consumer (software user, document reader, etc).
|
|
29
|
-
Disregard any severity assigned by a reviewing subagent. Review subagents operate under by-design information asymmetry and do not have enough context to set final severity for this workflow.
|
|
30
|
-
- `low` -- none or cosmetic
|
|
31
|
-
- `medium` -- tolerable
|
|
32
|
-
- `high` -- intolerable
|
|
33
|
-
|
|
34
|
-
6. **Route** each finding into exactly one triage bucket:
|
|
30
|
+
4. **Route** each entry into exactly one triage bucket:
|
|
35
31
|
- **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"`.
|
|
36
32
|
- **patch** -- Code issue that is fixable without human input. The correct fix is unambiguous.
|
|
37
33
|
- **defer** -- Pre-existing issue not caused by the current change. Real but not actionable now.
|
|
38
|
-
- **dismiss** -- Noise, false positive, or handled elsewhere.
|
|
39
|
-
|
|
40
|
-
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).
|
|
41
34
|
|
|
42
|
-
|
|
35
|
+
If `{review_mode}` = `"no-spec"` and an entry would otherwise be `decision_needed`, reclassify it as `patch` (if the fix is unambiguous) or `defer` (if not).
|
|
43
36
|
|
|
44
|
-
|
|
37
|
+
5. If `{failed_layers}` is non-empty, report which layers failed before announcing results. If zero entries remain after dismissals AND `{failed_layers}` is non-empty, warn the user that the review may be incomplete rather than announcing a clean review.
|
|
45
38
|
|
|
46
|
-
|
|
39
|
+
6. If zero entries remain after triage (all dismissed or none raised): state "✅ Clean review — all layers passed." (Step 3 already warned if any review layers failed via `{failed_layers}`.)
|
|
47
40
|
|
|
48
41
|
## NEXT
|
|
49
42
|
|
|
@@ -35,7 +35,9 @@ Also append each `defer` finding to `{deferred_work_file}` under a heading `## D
|
|
|
35
35
|
|
|
36
36
|
Announce what was written:
|
|
37
37
|
|
|
38
|
-
> **Code review complete.** <D> `decision-needed`, <P> `patch`, <W> `defer`, <R> dismissed
|
|
38
|
+
> **Code review complete.** <D> `decision-needed`, <P> `patch`, <W> `defer`, <R> dismissed.
|
|
39
|
+
|
|
40
|
+
The findings report ends with a `Dismissed` appendix — one line per dismissed finding: the finding and the reason that disposed of its claim — in the story file's `### Review Findings` section when `{spec_file}` is set, at the tail of the chat listing otherwise.
|
|
39
41
|
|
|
40
42
|
If `{spec_file}` is set, add: `Findings written to the review findings section in {spec_file}.`
|
|
41
43
|
Otherwise add: `Findings are listed above. No story file was provided, so nothing was persisted.`
|
package/src/bmm-skills/ship/bmad-retrospective/scripts/__pycache__/sprint_status.cpython-311.pyc
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|