wdi-method 0.6.30 → 0.6.32
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/CHANGELOG.md +129 -0
- package/NOTICE +7 -2
- package/README.md +16 -11
- package/bin/wdi-method.js +396 -87
- package/kit/.constitution/method/document/architecture-guide.md +217 -209
- package/kit/.constitution/method/document/bmad-skill-register.md +107 -104
- package/kit/.constitution/method/document/corpus-guide.md +522 -517
- package/kit/.constitution/method/document/decision-guide.md +236 -216
- package/kit/.constitution/method/document/delivery-flow-guide.md +20 -0
- package/kit/.constitution/method/document/prd-guide.md +245 -245
- package/kit/.constitution/method/document/templates/design-system.md +96 -66
- package/kit/.constitution/method/document/templates/experience.md +62 -0
- package/kit/.constitution/method/document/templates/structure-codebase.md +131 -129
- package/kit/.constitution/method/document/templates/ux.md +78 -76
- package/kit/.constitution/method/document/ux-guide.md +161 -115
- package/kit/.constitution/method/method-glossary.md +3 -0
- package/kit/.constitution/method/scripts/validate.py +3375 -3200
- package/kit/.constitution/method/structure-guide.md +204 -202
- package/kit/.constitution/method/why/README.md +1 -1
- package/kit/.constitution/method/why/artifact-map.md +158 -157
- package/kit/.constitution/method/why/portability.md +19 -2
- package/kit/skills/wdi-autopilot/SKILL.md +32 -19
- package/kit/skills/wdi-blueprint/SKILL.md +271 -264
- package/kit/skills/wdi-build/SKILL.md +28 -19
- package/kit/skills/wdi-component/SKILL.md +179 -174
- package/kit/skills/wdi-daily-autopilot/SKILL.md +24 -13
- package/kit/skills/wdi-daily-what-to-build/SKILL.md +9 -6
- package/kit/skills/wdi-daily-what-to-test/SKILL.md +2 -0
- package/kit/skills/wdi-decision/SKILL.md +206 -203
- package/kit/skills/wdi-explain-to-me/SKILL.md +2 -0
- package/kit/skills/wdi-help/SKILL.md +130 -125
- package/kit/skills/wdi-init/SKILL.md +10 -5
- package/kit/skills/wdi-problem/SKILL.md +114 -108
- package/kit/skills/wdi-product/SKILL.md +167 -162
- package/kit/skills/wdi-prune-or-archive/SKILL.md +2 -0
- package/kit/skills/wdi-reconcile/SKILL.md +170 -169
- package/kit/skills/wdi-upgrade/SKILL.md +234 -215
- package/kit/skills/wdi-ux/SKILL.md +187 -169
- package/kit-overlay/AGENTS.md +15 -2
- package/kit-overlay/portability.md +19 -2
- package/lib/platforms.mjs +420 -248
- package/package.json +1 -1
- package/scaffold/.control/registry/index.yaml +2 -1
|
@@ -1,104 +1,107 @@
|
|
|
1
|
-
---
|
|
2
|
-
status: Accepted
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# BMad Skill Register
|
|
6
|
-
|
|
7
|
-
**Loaded when:** deciding which BMad skill a piece of work needs, or checking what one writes
|
|
8
|
-
|
|
9
|
-
This used to be the full catalogue of all 59 installed BMad skills. **That catalogue is retired.** It was a
|
|
10
|
-
copy of somebody else's inventory, it went stale on every BMad update, and nothing in this method read more
|
|
11
|
-
than a dozen of its rows. What binds is the division of labour below; for anything about a BMad skill this
|
|
12
|
-
method does not invoke, ask `bmad-help`, which reads BMad's own documentation.
|
|
13
|
-
|
|
14
|
-
## Who writes what
|
|
15
|
-
|
|
16
|
-
| Artifact | Written by | Wrapped in |
|
|
17
|
-
|---|---|---|
|
|
18
|
-
| Product brief | `bmad-product-brief` | `wdi-problem` |
|
|
19
|
-
| PRD | `bmad-prd` | `wdi-product` |
|
|
20
|
-
| UX — `EXPERIENCE.md` + `DESIGN.md` | `bmad-ux` | `wdi-ux` |
|
|
21
|
-
| Architecture spine + the C4 set | `bmad-architecture` | `wdi-blueprint` intent `platform` |
|
|
22
|
-
| **UC catalogue · actors · entities · business rules** | **nothing in BMad** | `wdi-blueprint` writes it itself |
|
|
23
|
-
| **SRS and all of `.what/<pc>/`** | **nothing in BMad** | `wdi-component` writes it itself |
|
|
24
|
-
| **SDD and all of `.how/<pc>/`** | **nothing in BMad** | `wdi-component` writes it itself |
|
|
25
|
-
| Document review | `bmad-review` | `wdi-review` |
|
|
26
|
-
| Course correction | `bmad-correct-course` | `wdi-decision` |
|
|
27
|
-
|
|
28
|
-
**Everything below G5 left this table.** `SPEC.md`, the tickets, the code, and the code panel are produced
|
|
29
|
-
by `to-spec`, `to-tickets`, `implement`, `tdd`, and `code-review` — engines that are not BMad's. Three of
|
|
30
|
-
the five ship with `disable-model-invocation: true`; `wdi-method` strips it from the copies installed in
|
|
31
|
-
this repo and writes a guard line naming who may drive them, so **`wdi-build` and `wdi-autopilot` invoke
|
|
32
|
-
them directly** and an unattended iteration needs nobody. `wdi-build` owns that pipeline;
|
|
33
|
-
`bmad-guide.md` owns the reasoning.
|
|
34
|
-
|
|
35
|
-
**The three bold rows are why this method exists.** BMad stops at the promise and starts again at the
|
|
36
|
-
mechanism, and every behaviour in between had no author. Three consequences attach to those artifacts and
|
|
37
|
-
MUST be handled deliberately rather than discovered: no `doc_standards` fires a review, no memlog is born on
|
|
38
|
-
its own, and no template enforces itself.
|
|
39
|
-
|
|
40
|
-
## No BMad skill is invoked directly
|
|
41
|
-
|
|
42
|
-
Every one above has a wrapper, and the wrapper is what checks position, verifies the result against the
|
|
43
|
-
guide, and lands the memlog. Routing past it produces an artifact nothing verifies.
|
|
44
|
-
|
|
45
|
-
**One exception, and it is narrow:** on the Fast Path the owner runs `/implement` directly, with no wrapper.
|
|
46
|
-
A Fast Path that turns out to touch an `FR` MUST stop and become a spec `S`, which puts it back inside
|
|
47
|
-
`wdi-build`.
|
|
48
|
-
|
|
49
|
-
## What is available but writes nothing
|
|
50
|
-
|
|
51
|
-
| Skill | Use |
|
|
52
|
-
|---|---|
|
|
53
|
-
| `bmad-advanced-elicitation` · `bmad-party-mode` | Thinking aids. They produce no artifact and MUST NOT be treated as authors |
|
|
54
|
-
| `bmad-deep-recon` | Research, before a brief rests on outside data. Its output stays in `_bmad-output/` permanently and MUST NOT be folded into the brief |
|
|
55
|
-
| `bmad-qa-generate-e2e-tests` | Tests for a feature that **already exists**. `tdd` is test-first for work being built, so this has no replacement here and is NOT retired — but what it writes is a test, never a contract, and it MUST NOT be read as one |
|
|
56
|
-
| `bmad-checkpoint-preview` | A human reading aid over a change, the same class as `bmad-advanced-elicitation`. It MUST NOT be counted as the Step 3 panel: that one is a separate dispatch by a different agent |
|
|
57
|
-
| `bmad-help` | Questions about BMad itself. It MUST NOT be used to answer "where am I" — that is `wdi-help` |
|
|
58
|
-
|
|
59
|
-
## What is NOT USED, and MUST NOT be
|
|
60
|
-
|
|
61
|
-
**The criterion, and it binds every row below.** A BMad skill is retired only where this method has a
|
|
62
|
-
**named replacement** for what it produces. Without one it is not retired — it goes in the table above
|
|
63
|
-
instead, as something that may be used but MUST NOT author. Banning a capability with nothing in its
|
|
64
|
-
place is how a method gets worked around rather than followed.
|
|
65
|
-
|
|
66
|
-
### Retired at G5 — enforced by install and update
|
|
67
|
-
|
|
68
|
-
**This is enforced, not only stated.** `install` and `update` set
|
|
69
|
-
every wrapper below
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
|
78
|
-
|
|
79
|
-
| `bmad-
|
|
80
|
-
| `bmad-
|
|
81
|
-
| `bmad-
|
|
82
|
-
| `bmad-
|
|
83
|
-
| `bmad-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
1
|
+
---
|
|
2
|
+
status: Accepted
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# BMad Skill Register
|
|
6
|
+
|
|
7
|
+
**Loaded when:** deciding which BMad skill a piece of work needs, or checking what one writes
|
|
8
|
+
|
|
9
|
+
This used to be the full catalogue of all 59 installed BMad skills. **That catalogue is retired.** It was a
|
|
10
|
+
copy of somebody else's inventory, it went stale on every BMad update, and nothing in this method read more
|
|
11
|
+
than a dozen of its rows. What binds is the division of labour below; for anything about a BMad skill this
|
|
12
|
+
method does not invoke, ask `bmad-help`, which reads BMad's own documentation.
|
|
13
|
+
|
|
14
|
+
## Who writes what
|
|
15
|
+
|
|
16
|
+
| Artifact | Written by | Wrapped in |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| Product brief | `bmad-product-brief` | `wdi-problem` |
|
|
19
|
+
| PRD | `bmad-prd` | `wdi-product` |
|
|
20
|
+
| UX — `EXPERIENCE.md` + `DESIGN.md` | `bmad-ux` | `wdi-ux` |
|
|
21
|
+
| Architecture spine + the C4 set | `bmad-architecture` | `wdi-blueprint` intent `platform` |
|
|
22
|
+
| **UC catalogue · actors · entities · business rules** | **nothing in BMad** | `wdi-blueprint` writes it itself |
|
|
23
|
+
| **SRS and all of `.what/<pc>/`** | **nothing in BMad** | `wdi-component` writes it itself |
|
|
24
|
+
| **SDD and all of `.how/<pc>/`** | **nothing in BMad** | `wdi-component` writes it itself |
|
|
25
|
+
| Document review | `bmad-review` | `wdi-review` |
|
|
26
|
+
| Course correction | `bmad-correct-course` | `wdi-decision` |
|
|
27
|
+
|
|
28
|
+
**Everything below G5 left this table.** `SPEC.md`, the tickets, the code, and the code panel are produced
|
|
29
|
+
by `to-spec`, `to-tickets`, `implement`, `tdd`, and `code-review` — engines that are not BMad's. Three of
|
|
30
|
+
the five ship with `disable-model-invocation: true`; `wdi-method` strips it from the copies installed in
|
|
31
|
+
this repo and writes a guard line naming who may drive them, so **`wdi-build` and `wdi-autopilot` invoke
|
|
32
|
+
them directly** and an unattended iteration needs nobody. `wdi-build` owns that pipeline;
|
|
33
|
+
`bmad-guide.md` owns the reasoning.
|
|
34
|
+
|
|
35
|
+
**The three bold rows are why this method exists.** BMad stops at the promise and starts again at the
|
|
36
|
+
mechanism, and every behaviour in between had no author. Three consequences attach to those artifacts and
|
|
37
|
+
MUST be handled deliberately rather than discovered: no `doc_standards` fires a review, no memlog is born on
|
|
38
|
+
its own, and no template enforces itself.
|
|
39
|
+
|
|
40
|
+
## No BMad skill is invoked directly
|
|
41
|
+
|
|
42
|
+
Every one above has a wrapper, and the wrapper is what checks position, verifies the result against the
|
|
43
|
+
guide, and lands the memlog. Routing past it produces an artifact nothing verifies.
|
|
44
|
+
|
|
45
|
+
**One exception, and it is narrow:** on the Fast Path the owner runs `/implement` directly, with no wrapper.
|
|
46
|
+
A Fast Path that turns out to touch an `FR` MUST stop and become a spec `S`, which puts it back inside
|
|
47
|
+
`wdi-build`.
|
|
48
|
+
|
|
49
|
+
## What is available but writes nothing
|
|
50
|
+
|
|
51
|
+
| Skill | Use |
|
|
52
|
+
|---|---|
|
|
53
|
+
| `bmad-advanced-elicitation` · `bmad-party-mode` | Thinking aids. They produce no artifact and MUST NOT be treated as authors |
|
|
54
|
+
| `bmad-deep-recon` | Research, before a brief rests on outside data. Its output stays in `_bmad-output/` permanently and MUST NOT be folded into the brief |
|
|
55
|
+
| `bmad-qa-generate-e2e-tests` | Tests for a feature that **already exists**. `tdd` is test-first for work being built, so this has no replacement here and is NOT retired — but what it writes is a test, never a contract, and it MUST NOT be read as one |
|
|
56
|
+
| `bmad-checkpoint-preview` | A human reading aid over a change, the same class as `bmad-advanced-elicitation`. It MUST NOT be counted as the Step 3 panel: that one is a separate dispatch by a different agent |
|
|
57
|
+
| `bmad-help` | Questions about BMad itself. It MUST NOT be used to answer "where am I" — that is `wdi-help` |
|
|
58
|
+
|
|
59
|
+
## What is NOT USED, and MUST NOT be
|
|
60
|
+
|
|
61
|
+
**The criterion, and it binds every row below.** A BMad skill is retired only where this method has a
|
|
62
|
+
**named replacement** for what it produces. Without one it is not retired — it goes in the table above
|
|
63
|
+
instead, as something that may be used but MUST NOT author. Banning a capability with nothing in its
|
|
64
|
+
place is how a method gets worked around rather than followed.
|
|
65
|
+
|
|
66
|
+
### Retired at G5 — enforced by install and update
|
|
67
|
+
|
|
68
|
+
**This is enforced, not only stated — as far as each host allows.** `install` and `update` set
|
|
69
|
+
`disable-model-invocation: true` on every wrapper below (every host that honours the key holds it),
|
|
70
|
+
add a `Skill(<name>)` deny rule to `.claude/settings.json` for Claude Code and `"<name>": "ask"` under
|
|
71
|
+
`permission.skill` in `opencode.json` for OpenCode, all re-applied on every run because BMad's installer
|
|
72
|
+
rewrites its own wrappers. On a host with no lock at all, the `AGENTS.md` method block — mirrored into
|
|
73
|
+
that host's own rule file — is what forbids them. A person typing `/bmad-build` still gets
|
|
74
|
+
it: the method retires a default, it does not confiscate a tool. The list lives in
|
|
75
|
+
`bin/wdi-method.js` as `BMAD_RETIRED_G5`, and a test fails when this table and that array disagree.
|
|
76
|
+
|
|
77
|
+
| Skill | Replaced by | Why |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| `bmad-spec` | `to-spec` | **Retired.** The contract below G5 is no longer BMad's. Its `_bmad/custom/*.toml` override is withdrawn and `update` removes any still installed |
|
|
80
|
+
| `bmad-build` · `bmad-build-auto` | `implement` · `wdi-autopilot` | **Retired.** `bmad-build` describes itself as implementing "any user intent, requirement, story, bug fix or change request" — the most inviting description in the repo's skill index, for the one thing this method owns most tightly. `bmad-build-auto` is an unattended loop, which is `wdi-autopilot`'s |
|
|
81
|
+
| `bmad-code-review` | `code-review` | **Retired.** The panel at Step 3 is a separate dispatch by a different agent; BMad's own review layers are the builder reviewing itself |
|
|
82
|
+
| `bmad-retrospective` | — | **Retired** with `RTR-` and `V19`. A frozen `RTR-` file stays where it is |
|
|
83
|
+
| `bmad-agent-dev` | `implement` | **Retired.** "Senior software engineer for story execution and code implementation" is `implement`'s sentence |
|
|
84
|
+
| `bmad-create-epics-and-stories` | `to-tickets` | **Retired**, and not merely by preference: the `epics` level between a spec and its tickets is **repealed in code** — `validate.py` reads a flat `tickets:` list. A skill whose only output is a shape nothing reads |
|
|
85
|
+
| `bmad-create-story` · `bmad-dev-story` · `bmad-dev-auto` · `bmad-quick-dev` | `implement` | **Retired.** BMad deprecated all four in favour of `bmad-build`, which is itself retired here. An alias to a retired skill is retired |
|
|
86
|
+
| `bmad-sprint-planning` · `bmad-sprint-status` | the ticket itself | **Retired.** The sprint route keeps status in a hand-edited file; this method reads status from the ticket — `bmad-guide.md` owns the reasoning |
|
|
87
|
+
|
|
88
|
+
### Not used for other reasons — not enforced, and not G5's
|
|
89
|
+
|
|
90
|
+
These are outside the enforced list above: nothing locks them, because nothing here replaces them and
|
|
91
|
+
none of them competes for G5's work.
|
|
92
|
+
|
|
93
|
+
| Skill | Why |
|
|
94
|
+
|---|---|
|
|
95
|
+
| `bmad-editorial-review*` · `bmad-review-*` | Shims onto `bmad-review` lenses. Ask for the lens, not the shim |
|
|
96
|
+
| `bmad-document-project` · `bmad-generate-project-context` | Forward to `bmad-project-context`. This repo's agent instructions are maintained by hand |
|
|
97
|
+
| Any skill named as a **gate condition** | A gate is passed by its checklist and its validators, never by a skill having run |
|
|
98
|
+
|
|
99
|
+
## The class that decides where output lands
|
|
100
|
+
|
|
101
|
+
`bmad-guide.md` owns the class definitions; what matters here is that **class B** exists because some skills
|
|
102
|
+
write several things at once that belong to different layers. `bmad-ux` is the case: `EXPERIENCE.md` is a
|
|
103
|
+
promise and `DESIGN.md` is a build detail, and no configuration can send them to two places. Its output
|
|
104
|
+
lands in a neutral folder first, and `wdi-ux` places it.
|
|
105
|
+
|
|
106
|
+
Which skill lands which output is the ownership table in `corpus-guide.md`, and it MUST NOT be duplicated
|
|
107
|
+
here.
|