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.
- package/.claude-plugin/marketplace.json +0 -1
- package/bmad-modules.yaml +42 -0
- package/package.json +1 -1
- package/removals.txt +3 -0
- package/src/bmm-skills/4-implementation/bmad-agent-dev/customize.toml +0 -5
- package/src/bmm-skills/4-implementation/bmad-code-review/SKILL.md +0 -1
- package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-02-review.md +14 -8
- package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-03-triage.md +7 -6
- package/src/bmm-skills/4-implementation/bmad-dev-auto/SKILL.md +2 -1
- package/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md +1 -1
- package/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md +1 -1
- package/src/bmm-skills/4-implementation/bmad-dev-auto/step-04-review.md +16 -5
- package/src/bmm-skills/4-implementation/bmad-quick-dev/SKILL.md +0 -1
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-04-review.md +9 -4
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +4 -1
- package/src/bmm-skills/module-help.csv +0 -1
- package/src/core-skills/bmad-advanced-elicitation/methods.csv +29 -27
- package/src/core-skills/bmad-forge-idea/SKILL.md +49 -21
- package/src/core-skills/bmad-party-mode/SKILL.md +4 -2
- package/src/core-skills/bmad-party-mode/customize.toml +38 -2
- package/src/core-skills/bmad-party-mode/references/mode-agent-team.md +2 -0
- package/src/core-skills/bmad-party-mode/references/mode-subagent.md +16 -4
- package/src/core-skills/bmad-review-edge-case-hunter/SKILL.md +10 -4
- package/src/core-skills/bmad-review-edge-case-hunter/references/deletion-check.md +14 -0
- package/tools/installer/core/installer.js +55 -0
- package/tools/installer/modules/custom-module-manager.js +15 -9
- package/tools/installer/modules/external-manager.js +111 -0
- package/tools/installer/modules/official-modules.js +66 -19
- package/tools/installer/ui.js +14 -7
- package/src/bmm-skills/4-implementation/bmad-investigate/SKILL.md +0 -196
- package/src/bmm-skills/4-implementation/bmad-investigate/customize.toml +0 -62
- 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
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
|
|
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** —
|
|
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** —
|
|
23
|
+
- **Edge Case Hunter** — prompt:
|
|
24
|
+
> Invoke the `bmad-review-edge-case-hunter` skill on this diff:
|
|
25
|
+
>
|
|
26
|
+
> {diff_output}
|
|
24
27
|
|
|
25
|
-
- **Acceptance Auditor** (only if `{review_mode}` = `"full"`) —
|
|
26
|
-
> You are an Acceptance Auditor. Review
|
|
28
|
+
- **Acceptance Auditor** (only if `{review_mode}` = `"full"`) — prompt:
|
|
29
|
+
> You are an Acceptance Auditor. Review the provided diff against `{spec_file}` and any loaded context docs. Check for: violations of acceptance criteria, deviations from spec intent, missing implementation of specified behavior, contradictions between spec constraints and actual code. Output findings as a Markdown list. Each finding: one-line title, which AC/constraint it violates, and evidence from the diff.
|
|
30
|
+
>
|
|
31
|
+
> Diff:
|
|
32
|
+
> {diff_output}
|
|
27
33
|
|
|
28
34
|
3. **Subagent failure handling**: If any subagent fails, times out, or returns empty results, append the layer name to `{failed_layers}` (comma-separated) and proceed with findings from the remaining layers.
|
|
29
35
|
|
|
@@ -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. **
|
|
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
|
-
|
|
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
|
-
|
|
47
|
+
6. **Drop** all `dismiss` findings. Record the dismiss count for the summary.
|
|
47
48
|
|
|
48
|
-
|
|
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
|
-
|
|
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` →
|
|
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
|
|
25
|
+
Launch Blind Hunter and Edge Case Hunter in parallel without prior conversation context.
|
|
27
26
|
|
|
28
|
-
- **Blind
|
|
29
|
-
|
|
27
|
+
- **Blind Hunter** — prompt:
|
|
28
|
+
> Invoke the `bmad-review-adversarial-general` skill on this diff:
|
|
29
|
+
>
|
|
30
|
+
> {diff_output}
|
|
31
|
+
- **Edge Case Hunter** — prompt:
|
|
32
|
+
> Invoke the `bmad-review-edge-case-hunter` skill on this diff:
|
|
33
|
+
>
|
|
34
|
+
> {diff_output}
|
|
30
35
|
|
|
31
36
|
### Classify
|
|
32
37
|
|
|
@@ -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
|
-
|
|
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
|
|
24
|
+
Launch Blind Hunter and Edge Case Hunter in parallel without prior conversation context. If no subagents are available, generate two review prompt files in `{implementation_artifacts}` — one per reviewer role below — and HALT. Ask the human to run each in a separate session (ideally a different LLM) and paste back the findings.
|
|
26
25
|
|
|
27
|
-
- **Blind
|
|
28
|
-
|
|
26
|
+
- **Blind Hunter** — prompt:
|
|
27
|
+
> Invoke the `bmad-review-adversarial-general` skill on this diff:
|
|
28
|
+
>
|
|
29
|
+
> {diff_output}
|
|
30
|
+
- **Edge Case Hunter** — prompt:
|
|
31
|
+
> Invoke the `bmad-review-edge-case-hunter` skill on this diff:
|
|
32
|
+
>
|
|
33
|
+
> {diff_output}
|
|
29
34
|
|
|
30
35
|
### Classify
|
|
31
36
|
|
|
@@ -8,6 +8,7 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
|
|
8
8
|
|
|
9
9
|
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
10
10
|
- NEVER auto-push.
|
|
11
|
+
- All review subagents must run at the same model capability as the current session.
|
|
11
12
|
|
|
12
13
|
## INSTRUCTIONS
|
|
13
14
|
|
|
@@ -19,7 +20,9 @@ Implement the clarified intent directly.
|
|
|
19
20
|
|
|
20
21
|
### Review
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
Launch Blind Hunter without prior conversation context. If no subagents are available, generate one review prompt file in `{implementation_artifacts}` and HALT. Ask the human to run it in a separate session and paste back the findings.
|
|
24
|
+
|
|
25
|
+
- **Blind Hunter** — prompt: "Invoke the `bmad-review-adversarial-general` skill on the changed files."
|
|
23
26
|
|
|
24
27
|
### Classify
|
|
25
28
|
|
|
@@ -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,
|
|
45
|
-
44,framing,
|
|
46
|
-
45,framing,
|
|
47
|
-
46,
|
|
48
|
-
47,
|
|
49
|
-
48,learning,
|
|
50
|
-
49,
|
|
51
|
-
50,
|
|
52
|
-
51,
|
|
53
|
-
52,
|
|
54
|
-
53,research,
|
|
55
|
-
54,research,
|
|
56
|
-
55,
|
|
57
|
-
56,
|
|
58
|
-
57,
|
|
59
|
-
58,
|
|
60
|
-
59,risk,
|
|
61
|
-
60,risk,
|
|
62
|
-
61,risk,
|
|
63
|
-
62,risk,
|
|
64
|
-
63,risk,
|
|
65
|
-
64,
|
|
66
|
-
65,
|
|
67
|
-
66,technical,
|
|
68
|
-
67,technical,
|
|
69
|
-
68,technical,
|
|
70
|
-
69,technical,
|
|
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 ↔ abstract → right 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 problem → reframe → true 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 → B → C → gaps 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,model → reality 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,complex → simple → gaps → mastery
|
|
50
|
+
49,learning,Active Recall Testing,Test understanding without references to verify true knowledge - essential for identifying gaps,test → gaps → reinforcement
|
|
51
|
+
50,learning,Deliberate Practice Loop,Identify a specific sub-skill - drill it with immediate feedback - adjust - repeat — targeted improvement beats general repetition,isolate → drill → feedback → adjust → repeat
|
|
52
|
+
51,philosophical,Occam's Razor Application,Find the simplest sufficient explanation by eliminating unnecessary complexity - essential for debugging,options → simplification → selection
|
|
53
|
+
52,philosophical,Trolley Problem Variations,Explore ethical trade-offs through moral dilemmas - valuable for understanding values and difficult decisions,dilemma → analysis → decision
|
|
54
|
+
53,research,Literature Review Personas,Optimist researcher + skeptic researcher + synthesizer review sources - balanced assessment of evidence quality,sources → critiques → synthesis
|
|
55
|
+
54,research,Thesis Defense Simulation,Student defends hypothesis against committee with different concerns - stress-tests research methodology and conclusions,thesis → challenges → defense → refinements
|
|
56
|
+
55,research,Comparative Analysis Matrix,Multiple analysts evaluate options against weighted criteria - structured decision-making with explicit scoring,options → criteria → scores → recommendation
|
|
57
|
+
56,research,Source Triangulation,Require at least three independent source types (quantitative - qualitative - expert) before accepting a claim — guards against single-source bias,claim → source 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 view → insights → application
|
|
59
|
+
58,retrospective,Lessons Learned Extraction,Systematically identify key takeaways and actionable improvements - essential for continuous improvement,experience → lessons → actions
|
|
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 → causes → prevention
|
|
61
|
+
60,risk,Failure Mode Analysis,Systematically explore how each component could fail - critical for reliability engineering and safety-critical systems,components → failures → prevention
|
|
62
|
+
61,risk,Challenge from Critical Perspective,Play devil's advocate to stress-test ideas and find weaknesses - essential for overcoming groupthink,assumptions → challenges → strengthening
|
|
63
|
+
62,risk,Identify Potential Risks,Brainstorm what could go wrong across all categories - fundamental for project planning and deployment preparation,categories → risks → mitigations
|
|
64
|
+
63,risk,Chaos Monkey Scenarios,Deliberately break things to test resilience and recovery - ensures systems handle failures gracefully,break → observe → harden
|
|
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,list → rate → stress-test → shore 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 amplifiers → decouple
|
|
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,options → trade-offs → decision → 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,simple → detailed → technical → aha
|
|
69
|
+
68,technical,Algorithm Olympics,Multiple approaches compete on the same problem with benchmarks - finds optimal solution through direct comparison,implementations → benchmarks → winner
|
|
70
|
+
69,technical,Security Audit Personas,Hacker + defender + auditor examine system from different threat models - comprehensive security review from multiple angles,vulnerabilities → defenses → compliance
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
34
|
+
Start by scrutinizing the idea, not endorsing it.
|
|
35
35
|
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
98
|
+
The session can end in three valid states:
|
|
71
99
|
|
|
72
|
-
- **Hardened** — the idea
|
|
73
|
-
- **Killed** — the idea
|
|
74
|
-
- **Clearer** — the user
|
|
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
|
-
|
|
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`** —
|
|
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
|
|
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.
|