bmad-method 6.9.1-next.2 → 6.9.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.
Files changed (32) hide show
  1. package/.claude-plugin/marketplace.json +0 -1
  2. package/bmad-modules.yaml +42 -0
  3. package/package.json +1 -1
  4. package/removals.txt +3 -0
  5. package/src/bmm-skills/4-implementation/bmad-agent-dev/customize.toml +0 -5
  6. package/src/bmm-skills/4-implementation/bmad-code-review/SKILL.md +0 -1
  7. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-02-review.md +14 -8
  8. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-03-triage.md +7 -6
  9. package/src/bmm-skills/4-implementation/bmad-dev-auto/SKILL.md +2 -1
  10. package/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md +1 -1
  11. package/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md +1 -1
  12. package/src/bmm-skills/4-implementation/bmad-dev-auto/step-04-review.md +16 -5
  13. package/src/bmm-skills/4-implementation/bmad-quick-dev/SKILL.md +0 -1
  14. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-04-review.md +9 -4
  15. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +4 -1
  16. package/src/bmm-skills/module-help.csv +0 -1
  17. package/src/core-skills/bmad-advanced-elicitation/methods.csv +29 -27
  18. package/src/core-skills/bmad-forge-idea/SKILL.md +49 -21
  19. package/src/core-skills/bmad-party-mode/SKILL.md +4 -2
  20. package/src/core-skills/bmad-party-mode/customize.toml +38 -2
  21. package/src/core-skills/bmad-party-mode/references/mode-agent-team.md +2 -0
  22. package/src/core-skills/bmad-party-mode/references/mode-subagent.md +16 -4
  23. package/src/core-skills/bmad-review-edge-case-hunter/SKILL.md +10 -4
  24. package/src/core-skills/bmad-review-edge-case-hunter/references/deletion-check.md +14 -0
  25. package/tools/installer/core/installer.js +55 -0
  26. package/tools/installer/modules/custom-module-manager.js +15 -9
  27. package/tools/installer/modules/external-manager.js +111 -0
  28. package/tools/installer/modules/official-modules.js +66 -19
  29. package/tools/installer/ui.js +14 -7
  30. package/src/bmm-skills/4-implementation/bmad-investigate/SKILL.md +0 -196
  31. package/src/bmm-skills/4-implementation/bmad-investigate/customize.toml +0 -62
  32. package/src/bmm-skills/4-implementation/bmad-investigate/references/case-file-template.md +0 -127
@@ -63,7 +63,6 @@
63
63
  "./src/bmm-skills/3-solutioning/bmad-create-epics-and-stories",
64
64
  "./src/bmm-skills/3-solutioning/bmad-generate-project-context",
65
65
  "./src/bmm-skills/4-implementation/bmad-agent-dev",
66
- "./src/bmm-skills/4-implementation/bmad-investigate",
67
66
  "./src/bmm-skills/4-implementation/bmad-dev-story",
68
67
  "./src/bmm-skills/4-implementation/bmad-quick-dev",
69
68
  "./src/bmm-skills/4-implementation/bmad-checkpoint-preview",
package/bmad-modules.yaml CHANGED
@@ -7,6 +7,25 @@
7
7
  # default_channel (optional) — the install channel when the user does not
8
8
  # override with --channel/--pin/--next. Valid values: stable | next.
9
9
  # Omit to inherit the installer's hardcoded default (stable).
10
+ #
11
+ # deprecated (optional, default false) — when true, the module is hidden from
12
+ # the installer picker UNLESS it is already installed (so existing users can
13
+ # still see/manage it, but new users are not offered it).
14
+ # deprecation-message (optional) — surfaced in the picker hint for a deprecated
15
+ # module that is still installed; use it to point users to the replacement.
16
+ #
17
+ # marketplace-plugin (optional, default false) — when true, the module's
18
+ # installable skills are resolved from its .claude-plugin/marketplace.json via
19
+ # the plugin resolver (instead of copying the single module-definition dir).
20
+ # Use this for modules whose module.yaml does not sit alongside the skill
21
+ # folders. module-definition should still point at the real module.yaml so
22
+ # config/version lookups work.
23
+ #
24
+ # post-install-message (optional) — an "action needed" notice shown to the user
25
+ # after install completes, once for each install run that includes the module.
26
+ # Interactive installs require the user to acknowledge it (press Enter);
27
+ # non-interactive (--yes) installs print it and continue. Use for required
28
+ # follow-up steps (e.g. "run the X setup skill").
10
29
 
11
30
  modules:
12
31
  bmad-method-test-architecture-enterprise:
@@ -41,6 +60,29 @@ modules:
41
60
  type: experimental
42
61
  npmPackage: bmad-story-automator
43
62
  default_channel: next
63
+ deprecated: true
64
+ deprecation-message: "BMad Automator has been deprecated and is replaced by BMad Auto (bmad-auto). Install BMad Auto instead."
65
+
66
+ bmad-auto:
67
+ url: https://github.com/bmad-code-org/bmad-auto
68
+ module-definition: src/automator/data/skills/bmad-auto-setup/assets/module.yaml
69
+ code: bauto
70
+ name: "BMad Auto"
71
+ description: "Automation-mode skills driven by the bmad-auto orchestrator: unattended dev, adversarial review, and deferred-work sweep triage"
72
+ defaultSelected: false
73
+ type: bmad-org
74
+ default_channel: stable
75
+ # Skills live outside a single module.yaml dir; resolve them from
76
+ # .claude-plugin/marketplace.json via the plugin resolver (see external-manager).
77
+ marketplace-plugin: true
78
+ post-install-message: |
79
+ BMad Auto installed. To finish setup, run the bmad-auto-setup skill
80
+ from your agent:
81
+
82
+ > use the bmad-auto-setup skill
83
+
84
+ It installs the bmad-auto orchestrator tool and wires up the per-project
85
+ hooks and policy. The automation skills don't run until setup completes.
44
86
 
45
87
  bmad-creative-intelligence-suite:
46
88
  url: https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite
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.9.1-next.2",
4
+ "version": "6.9.1-next.20",
5
5
  "description": "Breakthrough Method of Agile AI-driven Development",
6
6
  "keywords": [
7
7
  "agile",
package/removals.txt CHANGED
@@ -60,3 +60,6 @@ bmad-distillator
60
60
  # bmad-create-ux-design: renamed to bmad-ux (spine-based skill with separate
61
61
  # DESIGN.md and EXPERIENCE.md outputs).
62
62
  bmad-create-ux-design
63
+ # bmad-investigate: retired. Plain investigation reaches the same conclusions at
64
+ # lower cost.
65
+ bmad-investigate
@@ -88,8 +88,3 @@ skill = "bmad-create-story"
88
88
  code = "ER"
89
89
  description = "Party mode review of all work completed across an epic"
90
90
  skill = "bmad-retrospective"
91
-
92
- [[agent.menu]]
93
- code = "IN"
94
- description = "Forensic case investigation with evidence-graded findings, calibrated to the input"
95
- skill = "bmad-investigate"
@@ -50,7 +50,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
50
50
  - `date` as system-generated current datetime
51
51
  - `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
52
52
  - `project_context` = `**/project-context.md` (load if exists)
53
- - CLAUDE.md / memory files (load if exist)
54
53
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
55
54
 
56
55
  ### Step 5: Greet the User
@@ -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 subagents without conversation context. If subagents are not available, generate prompt files in `{implementation_artifacts}` one per reviewer role below — 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.
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** — receives inline `{diff_output}` only. No spec, no context docs, no project access. Invoke via the `bmad-review-adversarial-general` skill.
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** — receives `{diff_output}` and read access to the project. Invoke via the `bmad-review-edge-case-hunter` skill.
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"`) — receives `{diff_output}`, the content of the file at `{spec_file}`, and any loaded context docs. Its prompt:
26
- > You are an Acceptance Auditor. Review this diff against the spec and 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.
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
 
@@ -6,7 +6,6 @@
6
6
  ## RULES
7
7
 
8
8
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
9
- - Be precise. When uncertain between categories, prefer the more conservative classification.
10
9
 
11
10
  ## INSTRUCTIONS
12
11
 
@@ -29,13 +28,15 @@
29
28
  - Append any unique detail, reasoning, or location references from the other finding(s) into the surviving `detail` field.
30
29
  - Set `source` to the merged sources (e.g., `blind+edge`).
31
30
 
32
- 3. **Assign severity** to each finding by consequence for the artifact's main consumer (software user, document reader, etc).
31
+ 3. **Read the code before rating.** Before assigning severity, open the source at each finding's location and read enough surrounding code to judge reachability -- call sites, guards, and validation that live outside the diff hunk. Do not rate from the diff hunk alone. Severity reflects the real consequence at a real call site, not the worst theoretical reading.
32
+
33
+ 4. **Assign severity** to each finding by consequence for the artifact's main consumer (software user, document reader, etc).
33
34
  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
  - `low` -- none or cosmetic
35
36
  - `medium` -- tolerable
36
37
  - `high` -- intolerable
37
38
 
38
- 4. **Route** each finding into exactly one triage bucket:
39
+ 5. **Route** each finding into exactly one triage bucket:
39
40
  - **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"`.
40
41
  - **patch** -- Code issue that is fixable without human input. The correct fix is unambiguous.
41
42
  - **defer** -- Pre-existing issue not caused by the current change. Real but not actionable now.
@@ -43,11 +44,11 @@
43
44
 
44
45
  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).
45
46
 
46
- 5. **Drop** all `dismiss` findings. Record the dismiss count for the summary.
47
+ 6. **Drop** all `dismiss` findings. Record the dismiss count for the summary.
47
48
 
48
- 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.
49
+ 7. 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.
49
50
 
50
- 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}`.)
51
+ 8. 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}`.)
51
52
 
52
53
 
53
54
  ## NEXT
@@ -33,6 +33,8 @@ To HALT with a final status and optional blocking condition:
33
33
 
34
34
  Using subagents when instructed is mandatory. If you cannot, HALT with status `blocked` and blocking condition `no subagents`.
35
35
 
36
+ Invoke every subagent **synchronously**: launch it, wait for it to return within the same turn, then continue with its result. When a step says to run subagents "in parallel" (e.g. the reviewers), that means several **blocking** calls awaited together in one turn — not detached execution. 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`.
37
+
36
38
  ## READY FOR DEVELOPMENT STANDARD
37
39
 
38
40
  A specification is "Ready for Development" when:
@@ -81,7 +83,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
81
83
  - `communication_language`, `document_output_language`, `user_skill_level`
82
84
  - `date` as system-generated current datetime
83
85
  - `project_context` = `**/project-context.md` (load if exists)
84
- - CLAUDE.md / memory files (load if exist)
85
86
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
86
87
  - Language MUST be tailored to `{user_skill_level}`
87
88
  - Generate all documents in `{document_output_language}`
@@ -20,7 +20,7 @@ If the invocation prompt explicitly points to an existing spec file with recogni
20
20
  - `ready-for-dev` or `in-progress` → `./step-03-implement.md`
21
21
  - `in-review` → `./step-04-review.md`
22
22
  - `blocked` → HALT with status `blocked` and blocking condition `blocked spec supplied`.
23
- - `done` → ingest as context and proceed to INSTRUCTIONS do not resume.
23
+ - `done` → set `review_loop_iteration` to `0` in the frontmatter, then **EARLY EXIT** to `./step-04-review.md` for a fresh review pass. (A `done` spec is a completed run, so this starts a follow-up review, not a resumption.)
24
24
 
25
25
  Otherwise, treat the invocation prompt as starting intent. This may be a story ID, ticket ID, file path, short description, or longer free-form intent. Do not infer workflow state from non-spec files.
26
26
  If the invocation prompt does not contain enough intent to identify what to implement, HALT with status `blocked` and blocking condition `unclear intent`.
@@ -25,7 +25,7 @@ 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.
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.
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
 
@@ -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 two subagents without prior session context.
25
+ Launch Blind Hunter and Edge Case Hunter in parallel without prior conversation context.
27
26
 
28
- - **Blind hunter** — receives inline `{diff_output}` only. No spec, no context docs, no project access. Invoke via the `bmad-review-adversarial-general` skill.
29
- - **Edge case hunter** — receives `{diff_output}` and read access to the project. Invoke via the `bmad-review-edge-case-hunter` skill.
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
 
@@ -81,6 +86,12 @@ Prepare `Auto Run Result` details:
81
86
  - Verification performed, including command outcomes or manual inspection notes
82
87
  - Any residual risks
83
88
 
84
- Before HALT with status `done`, set `{spec_file}` frontmatter `followup_review_recommended` from the final-pass judgment above. Do not set or recommend follow-up review on blocked exits, including review-loop non-convergence.
89
+ Set `{spec_file}` frontmatter `followup_review_recommended` from the judgment above.
90
+
91
+ If version control is available, commit. Do not push.
92
+
93
+ Capture `final_revision` (current HEAD after committing, or `NO_VCS` if version control is unavailable) into `{spec_file}` frontmatter.
94
+
95
+ Set `{spec_file}` frontmatter `status: done`.
85
96
 
86
97
  HALT with status `done`.
@@ -71,7 +71,6 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
71
71
  - `date` as system-generated current datetime
72
72
  - `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
73
73
  - `project_context` = `**/project-context.md` (load if exists)
74
- - CLAUDE.md / memory files (load if exist)
75
74
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
76
75
  - Language MUST be tailored to `{user_skill_level}`
77
76
  - Generate all documents in `{document_output_language}`
@@ -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 two subagents without 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.
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 hunter** — receives inline `{diff_output}` only. No spec, no context docs, no project access. Invoke via the `bmad-review-adversarial-general` skill.
28
- - **Edge case hunter** — receives `{diff_output}` and read access to the project. Invoke via the `bmad-review-edge-case-hunter` skill.
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
- Invoke the `bmad-review-adversarial-general` skill in a subagent with the changed files. The subagent gets NO conversation context — to avoid anchoring bias. Launch at the same model capability as the current session. If no subagents are available, write the changed files to a review prompt file in `{implementation_artifacts}` and HALT. Ask the human to run the review in a separate session and paste back the findings.
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
 
@@ -29,4 +29,3 @@ BMad Method,bmad-code-review,Code Review,CR,Story cycle: If issues back to DS if
29
29
  BMad Method,bmad-checkpoint-preview,Checkpoint,CK,Guided walkthrough of a change from purpose and context into details. Use for human review of commits branches or PRs.,,,4-implementation,,,false,,
30
30
  BMad Method,bmad-qa-generate-e2e-tests,QA Automation Test,QA,Generate automated API and E2E tests for implemented code. NOT for code review or story validation — use CR for that.,,,4-implementation,bmad-dev-story,,false,implementation_artifacts,test suite
31
31
  BMad Method,bmad-retrospective,Retrospective,ER,Optional at epic end: Review completed work lessons learned and next epic or if major issues consider CC.,,,4-implementation,bmad-code-review,,false,implementation_artifacts,retrospective
32
- BMad Method,bmad-investigate,Investigate,IN,Forensic case investigation calibrated to the input. Evidence-graded analysis with hypothesis tracking. Produces a structured case file.,,4-implementation,,,false,implementation_artifacts,investigation report
@@ -41,30 +41,32 @@ num,category,method_name,description,output_pattern
41
41
  40,creative,Genre Mashup,Combine two unrelated domains to find fresh approaches - innovation through unexpected cross-pollination,domain A + domain B → hybrid insights
42
42
  41,creative,Constraint Injection,Deliberately add an artificial limitation (budget - time - technology) to force novel solutions — creativity thrives under pressure,add constraint → forced creativity → remove constraint → evaluate
43
43
  42,creative,Morphological Analysis,List independent parameters of a problem - enumerate options for each - then systematically combine — ensures you don't miss non-obvious configurations,parameters → options grid → combinations → evaluation
44
- 43,framing,Abstraction Laddering,"Move up (""why?"") for strategic clarity or down (""how?"") for tactical detail ensures you're solving at the right altitude",concrete abstractright level
45
- 44,framing,Reframe the Question,Challenge whether the stated problem is the real problem often the question itself is wrong and a better framing unlocks an easy answer,stated problem reframe true problem → solution
46
- 45,framing,Stakeholder Lens Rotation,Serially adopt each stakeholder's world-view to see the same situation differently reveals whose needs are being overlooked,perspective ABCgaps found
47
- 46,learning,Feynman Technique,Explain complex concepts simply as if teaching a child - the ultimate test of true understanding,complexsimplegapsmastery
48
- 47,learning,Active Recall Testing,Test understanding without references to verify true knowledge - essential for identifying gaps,testgapsreinforcement
49
- 48,learning,Deliberate Practice Loop,Identify a specific sub-skill - drill it with immediate feedback - adjust - repeat targeted improvement beats general repetition,isolatedrillfeedbackadjust → repeat
50
- 49,philosophical,Occam's Razor Application,Find the simplest sufficient explanation by eliminating unnecessary complexity - essential for debugging,optionssimplificationselection
51
- 50,philosophical,Trolley Problem Variations,Explore ethical trade-offs through moral dilemmas - valuable for understanding values and difficult decisions,dilemmaanalysisdecision
52
- 51,research,Literature Review Personas,Optimist researcher + skeptic researcher + synthesizer review sources - balanced assessment of evidence quality,sourcescritiquessynthesis
53
- 52,research,Thesis Defense Simulation,Student defends hypothesis against committee with different concerns - stress-tests research methodology and conclusions,thesischallengesdefense → refinements
54
- 53,research,Comparative Analysis Matrix,Multiple analysts evaluate options against weighted criteria - structured decision-making with explicit scoring,options criteriascoresrecommendation
55
- 54,research,Source Triangulation,Require at least three independent source types (quantitative - qualitative - expert) before accepting a claim — guards against single-source bias,claimsource A source B source C → confidence rating
56
- 55,retrospective,Hindsight Reflection,Imagine looking back from the future to gain perspective - powerful for project reviews,future viewinsightsapplication
57
- 56,retrospective,Lessons Learned Extraction,Systematically identify key takeaways and actionable improvements - essential for continuous improvement,experiencelessonsactions
58
- 57,risk,Pre-mortem Analysis,Imagine future failure then work backwards to prevent it - powerful technique for risk mitigation before major launches,failure scenariocausesprevention
59
- 58,risk,Failure Mode Analysis,Systematically explore how each component could fail - critical for reliability engineering and safety-critical systems,componentsfailuresprevention
60
- 59,risk,Challenge from Critical Perspective,Play devil's advocate to stress-test ideas and find weaknesses - essential for overcoming groupthink,assumptionschallengesstrengthening
61
- 60,risk,Identify Potential Risks,Brainstorm what could go wrong across all categories - fundamental for project planning and deployment preparation,categoriesrisksmitigations
62
- 61,risk,Chaos Monkey Scenarios,Deliberately break things to test resilience and recovery - ensures systems handle failures gracefully,breakobserveharden
63
- 62,risk,Assumption Audit,Explicitly list every assumption underlying a plan - rate each by confidence and impact - then stress-test the weakest — prevents building on shaky foundations,listratestress-test → shore up
64
- 63,risk,Cascading Failure Simulation,Trace how one component's failure propagates through dependencies reveals hidden coupling and single points of failure,trigger failure trace propagation find amplifiers → decouple
65
- 64,technical,Architecture Decision Records,Multiple architect personas propose and debate architectural choices with explicit trade-offs - ensures decisions are well-reasoned and documented,optionstrade-offsdecisionrationale
66
- 65,technical,Rubber Duck Debugging Evolved,Explain your code to progressively more technical ducks until you find the bug - forces clarity at multiple abstraction levels,simpledetailed technical aha
67
- 66,technical,Algorithm Olympics,Multiple approaches compete on the same problem with benchmarks - finds optimal solution through direct comparison,implementationsbenchmarkswinner
68
- 67,technical,Security Audit Personas,Hacker + defender + auditor examine system from different threat models - comprehensive security review from multiple angles,vulnerabilitiesdefensescompliance
69
- 68,technical,Performance Profiler Panel,Database expert + frontend specialist + DevOps engineer diagnose slowness - finds bottlenecks across the full stack,symptomsanalysisoptimizations
70
- 69,technical,Boundary & Edge Case Sweep,Systematically test extremes - zeros - nulls - maximums - and type mismatches catches the failures that happy-path thinking always misses,inputsboundariesedge cases → failures found
44
+ 43,creative,Subtraction,Improve by deliberately removing elements instead of adding them - counters the well-documented additive bias where people overlook subtractive changes that would simplify and strengthen the work,current state what to remove simplified result
45
+ 44,framing,Abstraction Laddering,"Move up (""why?"") for strategic clarity or down (""how?"") for tactical detail ensures you're solving at the right altitude",concrete abstractright level
46
+ 45,framing,Reframe the Question,Challenge whether the stated problem is the real problem — often the question itself is wrong and a better framing unlocks an easy answer,stated problemreframetrue problem solution
47
+ 46,framing,Stakeholder Lens Rotation,Serially adopt each stakeholder's world-view to see the same situation differently reveals whose needs are being overlooked,perspective A BCgaps found
48
+ 47,framing,Map Is Not the Territory,Treat any model or diagram as a lossy abstraction of reality - check where the representation diverges from the real system before trusting it,modelreality check divergences found → corrected understanding
49
+ 48,learning,Feynman Technique,Explain complex concepts simply as if teaching a child - the ultimate test of true understanding,complexsimplegapsmastery
50
+ 49,learning,Active Recall Testing,Test understanding without references to verify true knowledge - essential for identifying gaps,testgapsreinforcement
51
+ 50,learning,Deliberate Practice Loop,Identify a specific sub-skill - drill it with immediate feedback - adjust - repeat targeted improvement beats general repetition,isolatedrillfeedback → adjust → repeat
52
+ 51,philosophical,Occam's Razor Application,Find the simplest sufficient explanation by eliminating unnecessary complexity - essential for debugging,optionssimplificationselection
53
+ 52,philosophical,Trolley Problem Variations,Explore ethical trade-offs through moral dilemmas - valuable for understanding values and difficult decisions,dilemmaanalysisdecision
54
+ 53,research,Literature Review Personas,Optimist researcher + skeptic researcher + synthesizer review sources - balanced assessment of evidence quality,sourcescritiquessynthesis
55
+ 54,research,Thesis Defense Simulation,Student defends hypothesis against committee with different concerns - stress-tests research methodology and conclusions,thesischallengesdefenserefinements
56
+ 55,research,Comparative Analysis Matrix,Multiple analysts evaluate options against weighted criteria - structured decision-making with explicit scoring,options criteria scoresrecommendation
57
+ 56,research,Source Triangulation,Require at least three independent source types (quantitative - qualitative - expert) before accepting a claim — guards against single-source bias,claimsource A source B → source C → confidence rating
58
+ 57,retrospective,Hindsight Reflection,Imagine looking back from the future to gain perspective - powerful for project reviews,future viewinsightsapplication
59
+ 58,retrospective,Lessons Learned Extraction,Systematically identify key takeaways and actionable improvements - essential for continuous improvement,experiencelessonsactions
60
+ 59,risk,Pre-mortem Analysis,Imagine future failure then work backwards to prevent it - powerful technique for risk mitigation before major launches,failure scenario causesprevention
61
+ 60,risk,Failure Mode Analysis,Systematically explore how each component could fail - critical for reliability engineering and safety-critical systems,componentsfailuresprevention
62
+ 61,risk,Challenge from Critical Perspective,Play devil's advocate to stress-test ideas and find weaknesses - essential for overcoming groupthink,assumptionschallengesstrengthening
63
+ 62,risk,Identify Potential Risks,Brainstorm what could go wrong across all categories - fundamental for project planning and deployment preparation,categoriesrisksmitigations
64
+ 63,risk,Chaos Monkey Scenarios,Deliberately break things to test resilience and recovery - ensures systems handle failures gracefully,breakobserveharden
65
+ 64,risk,Assumption Audit,Explicitly list every assumption underlying a plan - rate each by confidence and impact - then stress-test the weakest prevents building on shaky foundations,listratestress-testshore up
66
+ 65,risk,Cascading Failure Simulation,Trace how one component's failure propagates through dependencies reveals hidden coupling and single points of failure,trigger failure trace propagation find amplifiersdecouple
67
+ 66,technical,Architecture Decision Records,Multiple architect personas propose and debate architectural choices with explicit trade-offs - ensures decisions are well-reasoned and documented,optionstrade-offsdecision → rationale
68
+ 67,technical,Rubber Duck Debugging Evolved,Explain your code to progressively more technical ducks until you find the bug - forces clarity at multiple abstraction levels,simpledetailedtechnical → aha
69
+ 68,technical,Algorithm Olympics,Multiple approaches compete on the same problem with benchmarks - finds optimal solution through direct comparison,implementationsbenchmarkswinner
70
+ 69,technical,Security Audit Personas,Hacker + defender + auditor examine system from different threat models - comprehensive security review from multiple angles,vulnerabilitiesdefensescompliance
71
+ 70,technical,Performance Profiler Panel,Database expert + frontend specialist + DevOps engineer diagnose slowness - finds bottlenecks across the full stack,symptoms → analysis → optimizations
72
+ 71,technical,Boundary & Edge Case Sweep,Systematically test extremes - zeros - nulls - maximums - and type mismatches — catches the failures that happy-path thinking always misses,inputs → boundaries → edge cases → failures found
@@ -7,13 +7,13 @@ description: Pressure-test an idea through persona-driven interrogation until it
7
7
 
8
8
  ## Overview
9
9
 
10
- Take a half-formed idea out of the user's head and pressure-test it now, in conversation, where changing your mind is free until what survives is something they can act on with earned conviction, or it dies cheaply. The enemy is the hole you cannot see in your own idea: every unexamined assumption and unresolved branch is a crack that otherwise surfaces later, in the build or the launch, when it costs far more to fix.
10
+ Take a half-formed idea and pressure-test it in conversation, while changing your mind is still cheap, until it becomes something the user can act on with conviction or reject. The main risk is what the user has not examined yet: unchecked assumptions and unresolved decisions usually become more expensive problems later.
11
11
 
12
- The product is the quality of the user's thinking, not an artifact. Hardening an idea, proving or disproving it, or just being an unsparing thinking partner are each a complete outcome. A distilled `forged-idea.md` and a handoff downstream are one optional exit, never the destination — so never herd the user toward "shall we build it?"
12
+ The main goal is better thinking, not producing an artifact. Strengthening an idea, rejecting it, or thinking it through more clearly are all complete outcomes. Writing `forged-idea.md` to hand off to another workflow is optional. Do not steer the conversation toward "shall we build it?"
13
13
 
14
- This is domain-agnostic — the idea may be software, a business model, a creative concept, a research hypothesis, a life decision, or a frivolous thought experiment. When it's a product or feature — net-new or a change inside an existing project — the forge stands in as an alternative analysis-and-definition tool, and what survives distills into `forged-idea.md` for downstream planning.
14
+ This skill can be used on many kinds of ideas. When the idea is about a product or feature, what survives may be written to `forged-idea.md` for later planning.
15
15
 
16
- Act as an exacting interrogator who would rather find the crack than spare the feelings. This is interactive and socratic by nature; there is no headless mode.
16
+ Lead by questioning, not lecturing. Ask one question at a time, press on weak points, and do not let vague claims pass without examination.
17
17
 
18
18
  ## Conventions
19
19
 
@@ -31,21 +31,47 @@ Act as an exacting interrogator who would rather find the crack than spare the f
31
31
 
32
32
  ## Open the session
33
33
 
34
- Open cold. Acknowledging the idea is not endorsing it — do not praise it before it has survived anything, on this turn or any turn. The pull to validate the idea up front to build rapport is the exact reflex this skill exists to refuse.
34
+ Start by scrutinizing the idea, not endorsing it.
35
35
 
36
- Determine the goal before pressing (if a persona is already active with an idea on the table, confirm it in a line rather than asking). Otherwise ask in one message: what is the idea, and what do you want — harden it, prove or kill it, or just think it through? The goal steers the push: proving goes for the load-bearing claim first; hardening drives each branch to a resolved answer. Note whether the idea is net-new or a change inside an existing project.
36
+ ### Discover intent
37
+ Identify:
38
+ - the subject idea,
39
+ - the user's goal for the session,
40
+ - whether the idea is new or a change to an existing project
37
41
 
38
- Tell the user the gear they can call anytime: **"adversarial on this"** (attacked to destruction — you attack, they defend; "switch roles," "you defend now, they attack"). The room is always in play once the topic is set (see The personas) — they can name any persona or call a whole party by name to steer who's at the table.
42
+ If any of these are already clear from the prompt that invoked this skill or previous context, ask the user to confirm and continue.
43
+
44
+ Otherwise ask for what's missing, in order:
45
+ - what is the idea?
46
+ - do you want to clarify and understand it, test whether it holds up, or make it better?
47
+ - is it a new idea or a change to an existing project? If the latter, what project is it, and where can I find its files or other relevant materials?
48
+
49
+ ### Steering the conversation
50
+
51
+ Tell the user they can say **"attack this"**, **"defend this"**, or **"switch roles"** at any time to change how the current idea is argued. In attack mode, do not agree with the idea; look for contradictions, weak assumptions, and failure cases. In defend mode, argue for the strongest version of the idea. Tell the user they can also name a persona or party at any time to change who participates in the session.
52
+
53
+ ### Set up the session
39
54
 
40
55
  Derive a kebab-case `{slug}` for the idea and bind the session workspace `{workspace} = {workflow.forge_output_path}/{workflow.run_folder_pattern}` (the pattern fills with `{slug}`). Create the memlog once the goal is known:
41
56
  `uv run {project-root}/_bmad/scripts/memlog.py init --workspace {workspace} --field idea="<idea>" --field goal="<goal>"`
57
+
42
58
  Tell the user the path; state is on disk now, so the session survives interruption. If init fails, don't abort — run the forge in-conversation and tell the user state won't persist this session.
43
59
 
44
60
  ## The forge
45
61
 
46
- Work one question at a time, in dependency order. Put your own recommended answer on the table each time — a position to push against gets further than an open prompt. Find discoverable answers yourself rather than asking. Treat the user's own words as suspect too: when a term is fuzzy or carries two meanings — a business 'user' versus 'buyer' versus 'payer', not just a code noun — name the ambiguity and force a precise choice before the branch resolves, because a branch built on an overloaded word resolves falsely. When the idea lands inside an existing project, that project's material is your ground truth, and a label is not a move: find the relevant material yourself, check the claim against it, and when it contradicts, make the contradiction the next question. When a branch resolves, give the user a beat before moving on — the crack they were holding back surfaces in that opening.
62
+ Let the session goal set the first move: for clarifying, pin down terms, boundaries, and assumptions; for testing, go after the central claim first; for making it better, drive each unresolved branch to a concrete decision.
63
+
64
+ Work one question at a time, in dependency order.
47
65
 
48
- **Never default-agree.** Reflexive agreement lowers the pressure and the user thinks shallower for it. Attack the weak point or build on the strong one whichever drives deeper thinking and praise only what genuinely earns it. The objective is the best idea, not a comfortable user.
66
+ Include your current best answer or hypothesis when it helps the user respond. A concrete proposal is easier to accept, reject, or revise than an open-ended prompt. Find discoverable answers yourself instead of asking.
67
+
68
+ Do not assume the user's terms are precise. When a term is fuzzy or overloaded, name the ambiguity and ask for a precise choice before continuing. For example, do not let `user`, `buyer`, and `payer` collapse into one entity unless the idea actually requires that.
69
+
70
+ For ideas about an existing project, treat the project's files and materials as the source of truth. Do not accept a label or summary as proof. Find the relevant material yourself and check the user's claim against it. If the material contradicts the user's claim, stop and resolve that before continuing.
71
+
72
+ When a branch resolves, pause before moving on. Give the user a chance to raise any remaining concern.
73
+
74
+ Do not use agreement or praise to make the interaction smoother; they lower pressure and lead to shallower thinking. Agreement is allowed only when it helps the user think better. Praise is noise. Continued engagement and ego-stroking are not objectives. In attack mode, never agree with the idea until the user ends the mode. For each answer, either challenge the weak point or build on the strong point, whichever helps the user think better.
49
75
 
50
76
  Capture as you go — each decision, assumption, crack, kill, and locked idea, one bullet in the user's meaning:
51
77
  `uv run {project-root}/_bmad/scripts/memlog.py append --workspace {workspace} --type <decision|assumption|crack|kill|direction|lock|note> --text "<gist>"`
@@ -53,27 +79,29 @@ A `lock` is an idea the user hardens — settled, not to be reopened; locks are
53
79
 
54
80
  ## The personas
55
81
 
56
- The forge is voiced, not generic and once the topic is set it always runs with the room, because a branch worked by two sharp characters goes deeper and lands harder than a faceless assistant ever could. A persona loaded at activation leads throughout and holds character.
82
+ If a BMad persona was already active when the forge started, keep that persona as the lead voice.
57
83
 
58
- Resolve the pool once, as soon as the goal is known:
84
+ Resolve the available persona pool once, as soon as the goal is known:
59
85
  `uv run {skill-root}/scripts/resolve_personas.py --project-root {project-root} --skill {skill-root}`
60
- It returns the installed BMad roster (`agents`), any custom personas the user authored (`members`), and their saved party groups (`parties` each with an optional `scene` to play, open-cast rooms flagged) everything `bmad-party-mode` knows, without invoking it.
86
+ The script returns installed BMad agents (`agents`), user-defined personas (`members`), and saved parties (`parties`). Parties may include a `scene`; some are open-cast. This gives you the same roster information as `bmad-party-mode` without invoking it.
87
+
88
+ Each turn uses two voices:
89
+ - **One available persona** — choose an installed agent or user-defined persona whose expertise fits the current branch. Vary this voice every few turns; do not let one voice dominate. If the user names a specific persona, use it. If the user calls a saved party, use the whole party and its scene. If the user asks to go one-on-one, use only the requested persona. If no pool is available, generate this voice yourself.
90
+ - **One generated persona** — create a fresh outside voice, such as a competitor, buyer, finance reviewer, domain expert, or critic. Give it a name and enough characterization to keep its viewpoint distinct.
61
91
 
62
- From then on, every turn brings two voices to the branch witnesses you cross-examine, not a panel that debates:
63
- - **One from the user's pool** — an installed agent or custom persona they'll recognize, whose expertise fits the branch in play. Vary who shows up every few turns to keep the pressure high and the angles fresh; don't let the same voice dominate. If the user calls a specific name, bring them in. If the pool resolves empty (a core-only install with no roster), generate both voices on the fly so every branch still arrives with two.
64
- - **One you generate on the fly** — a fresh persona the topic conjures (a hostile competitor, a skeptical CFO, a domain specialist, a historical persona or expert), named and characterized so it's unmistakably itself.
92
+ Use these voices in character to pressure-test the current branch: find sharper objections, missing assumptions, and stronger defenses. Cross-examine them for what matters, then synthesize their input into your next question. Do not let the session turn into a panel debate or persona performance.
65
93
 
66
- They hammer the branch in character; you synthesize their hits into your next question and drive it to a resolved answer. The user steers anytime — name a specific person, call a whole saved party for its scene, or go one-on-one. Voice them yourself by default; spawn separate agents (as `bmad-party-mode` does) only when a branch needs genuinely independent minds a verdict that shouldn't be colored by one voice speaking for all.
94
+ Voice the personas yourself by default. Spawn separate agents only when a branch needs independent reasoning that should not be influenced by one shared voice.
67
95
 
68
96
  ## Exits
69
97
 
70
- The session ends however the thinking lands, and every landing is a real outcome:
98
+ The session can end in three valid states:
71
99
 
72
- - **Hardened** — the idea survived. Distill the memlog into `{workspace}/forged-idea.md`: super succinct the locked items and what was killed and why, in the user's meaning. Not a prose retelling, not a template, not the conversation replayed — the load-bearing residue, nothing else. If it reads like a document, it's too long. Note it can feed `bmad-spec`, `bmad-prd`, or `bmad-prfaq`.
73
- - **Killed** — the idea did not survive. Say so plainly and record why. Finding this cheaply is a win, not a failure.
74
- - **Clearer** — the user simply thinks straighter now. The memlog stands on its own; no `forged-idea.md` needed (the report below still renders).
100
+ - **Hardened** — the idea is stronger and specific enough to use. Distill the memlog into `{workspace}/forged-idea.md`. Keep it extremely short: only the decisions, rejected options, and reasons that matter downstream, in the user's meaning. Do not write a prose summary, template, or conversation recap. If it reads like a document, it is too long. Note that it can feed `bmad-spec`, `bmad-prd`, or `bmad-prfaq`.
101
+ - **Killed** — the idea does not hold up. Say so plainly and record why. Finding that out early is a valid outcome.
102
+ - **Clearer** — the user understands the idea better, but there is no hardened idea to hand off. Leave the memlog as the record; no `forged-idea.md` is needed.
75
103
 
76
- However it lands, render the verdict as a self-contained HTML report the user can open — `{workspace}/forge-report.html`, written every time, no asking. Strike it with a bespoke wax-seal/stamp matched to the outcome: **HARDENED** for a survivor, an **Idea Death Certificate** stamped **KILLED** (with the cause of death) for one that didn't, or a fitting bespoke seal for wherever else it landed (e.g. **CLARIFIED**). Lay out the load-bearing residue — the locked items, what was killed and why, the cracks that held in the user's meaning, and credit the room: the personas and parties that pressure-tested it, by name, icon, and voice. One nicely-styled page (inline CSS, an inline-SVG seal, light flourish only where it lifts the piece) a genuine keepsake, not a templated dump. Tell the user the path.
104
+ Always render `{workspace}/forge-report.html` as a self-contained HTML file the user can open, with inline CSS and an inline-SVG seal or stamp. Summarize the outcome, the locked decisions, what was rejected and why, and the weak points that survived scrutiny, in the user's meaning. Credit the personas and parties that pressure-tested the idea by name, icon, and voice. Render a prominent wax-seal-style or stamped outcome mark, matched to the result: `HARDENED`, an `Idea Death Certificate` stamped `KILLED` with the cause of death, or `CLARIFIED`. Tell the user the path.
77
105
 
78
106
  Flip the status at the end: `uv run {project-root}/_bmad/scripts/memlog.py set --workspace {workspace} --key status --value complete`.
79
107
  If `{workflow.on_complete}` is non-empty, run all instructions in order.
@@ -42,14 +42,16 @@ This is the bar — strive for every one of these, every round. It's the differe
42
42
 
43
43
  Use `{workflow.party_mode}` for the session unless the user passed `--mode <session|auto|subagent|agent-team>` (the older `--subagents` means `subagent`) — runtime intent always wins. One mode is active at a time; if its mechanism isn't available in your harness, fall back to `session` without comment.
44
44
 
45
+ **A party is interactive and open-ended.** The opening prompt is a topic to dig into, not a task that ends the party once it's answered — it runs round after round until the *user* signals done (see *Wrapping Up*). A served opening intent means *what's next?*, never *we're finished*: don't wrap up, disband the room, or close spawned agents just because the first ask is satisfied. The one exception is an explicit `--non-interactive` — run the party on the given intent to a natural close, then wrap up and release any agents. That's the only non-interactive path, and only when the user asked for it.
46
+
45
47
  - **`session`** — voice every persona inline, one mind behind every voice. The floor every other mode degrades to; needs no extra instructions.
46
48
  - **`auto`** — voice inline for ordinary back-and-forth, spawn real agents only when independent thinking changes the outcome. Load `references/mode-auto.md` for that call; when it says to spawn, follow `references/mode-subagent.md`.
47
- - **`subagent`** — spawn a real agent per substantive round so each persona thinks independently. Load `references/mode-subagent.md`, favor faster cheaper models if available for each subagent.
49
+ - **`subagent`** — a real agent behind each persona every substantive round so each thinks independently. Load `references/mode-subagent.md`, favor faster cheaper models if available for each subagent.
48
50
  - **`agent-team`** — stand the personas up as a persistent team who address each other directly (Claude Code only). Load `references/mode-agent-team.md`.
49
51
 
50
52
  ## Wrapping Up
51
53
 
52
- When the user signals done (read the room don't wait for a magic word):
54
+ When the user signals done read the room, don't wait for a magic word — or an explicit `--non-interactive` run has served its intent (never merely because the opening prompt got answered):
53
55
 
54
56
  - Read back the best takeaways.
55
57
  - If memory is on, top up the memlog with the final outcome and any memorable beat not yet captured (`references/party-memory.md`) — a top-up; memory accrued live.