wdi-method 0.6.0 → 0.6.1
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/README.md +4 -4
- package/bin/wdi-method.js +1 -0
- package/kit/.constitution/method/README.md +1 -1
- package/kit/.constitution/method/method-glossary.md +1 -1
- package/kit/.constitution/method/why/README.md +2 -1
- package/kit/.constitution/method/why/artifact-map.md +1 -1
- package/kit/.constitution/method/why/portability.md +1 -1
- package/kit/skills/wdi-explain-to-me/SKILL.md +84 -0
- package/kit/skills/wdi-help/SKILL.md +1 -0
- package/kit-overlay/AGENTS.md +3 -2
- package/kit-overlay/README.md +1 -1
- package/kit-overlay/portability.md +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -282,7 +282,7 @@ which review lenses run, and which review traces a validator will demand.
|
|
|
282
282
|
|
|
283
283
|
---
|
|
284
284
|
|
|
285
|
-
## Five gates,
|
|
285
|
+
## Five gates, seventeen skills
|
|
286
286
|
|
|
287
287
|
| Gate | Decides | Skill |
|
|
288
288
|
|---|---|---|
|
|
@@ -293,7 +293,7 @@ which review lenses run, and which review traces a validator will demand.
|
|
|
293
293
|
| **G5 Release** | Whether it is done and proven | `wdi-build` |
|
|
294
294
|
|
|
295
295
|
Around them: `wdi-init` (scaffold, component birth, depth and risk settings, structure maps),
|
|
296
|
-
`wdi-decision`, `wdi-question`, `wdi-log`, `wdi-help`, `wdi-reconcile`, `wdi-review`, `wdi-report`,
|
|
296
|
+
`wdi-decision`, `wdi-question`, `wdi-log`, `wdi-help`, `wdi-explain-to-me`, `wdi-reconcile`, `wdi-review`, `wdi-report`,
|
|
297
297
|
`wdi-systematic-debugging`, and `wdi-upgrade` (moves a corpus written under an older kit into the current
|
|
298
298
|
shape — content moves, nothing is invented).
|
|
299
299
|
|
|
@@ -382,9 +382,9 @@ English, whatever the settings say — it travels to every repo through this pac
|
|
|
382
382
|
|
|
383
383
|
| | |
|
|
384
384
|
|---|---|
|
|
385
|
-
| Overwrites | everything in `.constitution/method/` · the
|
|
385
|
+
| Overwrites | everything in `.constitution/method/` · the seventeen wrappers · `_bmad/custom/*.toml` · the marked block in `AGENTS.md` |
|
|
386
386
|
| Renames | a file whose content needs no judgment to move — `waves.yaml` → `specs.yaml`, the pre-0.5 registry names. Content is never rewritten |
|
|
387
|
-
| Removes | Wrappers the method has retired — a `wdi-*` folder with a `SKILL.md` that is no longer one of the
|
|
387
|
+
| Removes | Wrappers the method has retired — a `wdi-*` folder with a `SKILL.md` that is no longer one of the seventeen. Each removal is printed |
|
|
388
388
|
| Reports | what is still in the OLD shape, as an `upgrade` line — and names `wdi-upgrade` as the next step. The installer does not move content; that is a decision, and the skill's |
|
|
389
389
|
| Keeps | All of `.constitution/project/`, plus your initiative slug and your language choice. A setting somebody already chose is not the installer's to change behind their back |
|
|
390
390
|
| Never resurrects | A folder you retired. On update, absence is treated as a decision |
|
package/bin/wdi-method.js
CHANGED
|
@@ -29,7 +29,7 @@ Never a rule. When it disagrees with a guide, the guide wins and the disagreemen
|
|
|
29
29
|
|
|
30
30
|
| File | Opened when |
|
|
31
31
|
|---|---|
|
|
32
|
-
| [`why/README.md`](why/README.md) | You want the whole shape in five minutes — five gates, two settings,
|
|
32
|
+
| [`why/README.md`](why/README.md) | You want the whole shape in five minutes — five gates, two settings, seventeen skills, WDI ↔ BMad |
|
|
33
33
|
| [`why/artifact-map.md`](why/artifact-map.md) | "Where does this file go", or "does this document exist at my `mode`" |
|
|
34
34
|
| [`why/mode-risk-map.md`](why/mode-risk-map.md) | A `mode` and a `risk_accepted` are set and you want the two side by side — all twelve cells |
|
|
35
35
|
| [`why/rationale.md`](why/rationale.md) | Before changing a rule, to know what you would break |
|
|
@@ -137,7 +137,7 @@ where BMad's own meaning is wider, the narrower one here wins.
|
|
|
137
137
|
| `epics.md` · `sprint-status.yaml` · `bmad-sprint-planning` · `bmad-create-epics-and-stories` · `stories.yaml` | Tickets, each carrying its own status and its blocking edges |
|
|
138
138
|
| Validator `V10` | Nothing. Its number is not reused |
|
|
139
139
|
| `bmad-help` as the answer to "where am I" | `wdi-help` |
|
|
140
|
-
| The skills `wdi-analysis` · `wdi-architecture` · `wdi-design` · `wdi-glossary` · `wdi-structure` · `wdi-apply` · `wdi-correct-course` · `wdi-wave` · `wdi-ship-story` · `wdi-product-brief` · `wdi-meeting` · `wdi-project-log` | The
|
|
140
|
+
| The skills `wdi-analysis` · `wdi-architecture` · `wdi-design` · `wdi-glossary` · `wdi-structure` · `wdi-apply` · `wdi-correct-course` · `wdi-wave` · `wdi-ship-story` · `wdi-product-brief` · `wdi-meeting` · `wdi-project-log` | The seventeen in `why/README.md`. `why/rationale.md` says which absorbed which, and why |
|
|
141
141
|
| An Indonesian synonym for a `mode` value — *ringkas*, *terjaga*, *katalog* as prose | The English value, used as written: `catalog` · `outline` · `guarded` · `deep` |
|
|
142
142
|
|
|
143
143
|
## Synonyms that MUST NOT be coined
|
|
@@ -101,7 +101,7 @@ and the Fast Path do not.
|
|
|
101
101
|
| `wdi-method update` printed an `upgrade` line | `wdi-upgrade`, before any other skill — it moves content into the new shape, never invents it, one commit |
|
|
102
102
|
| You do not know where you are | `wdi-help` |
|
|
103
103
|
|
|
104
|
-
##
|
|
104
|
+
## Seventeen skills
|
|
105
105
|
|
|
106
106
|
Named for the **gate they serve**, so *"which skill do I run"* is answered by *"which gate am I at"*.
|
|
107
107
|
|
|
@@ -125,6 +125,7 @@ Named for the **gate they serve**, so *"which skill do I run"* is answered by *"
|
|
|
125
125
|
| `wdi-question` | Something that cannot be decided now |
|
|
126
126
|
| `wdi-log` | A meeting finished, or a non-technical fact now binds |
|
|
127
127
|
| `wdi-help` | "Where am I, what next" |
|
|
128
|
+
| `wdi-explain-to-me` | "Brief me so I can decide this" — an open question, a defect, a design fork. Reads everything, writes nothing; the decision then goes to `wdi-decision` or `wdi-question` |
|
|
128
129
|
| `wdi-upgrade` | `wdi-method update` just moved the method version, and the summary listed content still in the old shape. Moves it, never invents it; one commit |
|
|
129
130
|
| `wdi-reconcile` | Any time. Read-only — it reports, it never edits |
|
|
130
131
|
| `wdi-review` | Over any document, any time |
|
|
@@ -124,7 +124,7 @@ someone else performs. `../document/corpus-guide.md` holds the binding version o
|
|
|
124
124
|
| `wdi-report` | `.control/reports/<period>.md` |
|
|
125
125
|
| a script | everything in `.control/generated/`, and the three inventories once code exists |
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
Five skills write **no file at all**, and that is deliberate: `wdi-reconcile`, `wdi-help`, `wdi-explain-to-me`,
|
|
128
128
|
`wdi-report` intent `dispatch`, and `wdi-review` apart from one frontmatter block. What reports MUST NOT
|
|
129
129
|
also change things — otherwise there is nothing left to check with.
|
|
130
130
|
|
|
@@ -28,7 +28,7 @@ them only an *example* does — not a rule.
|
|
|
28
28
|
| `templates/design-system.md` | The pointer to wherever this project keeps its tokens | Re-point at that project's token file |
|
|
29
29
|
| `templates/oq.md` | One example of a bad question title | Cosmetic |
|
|
30
30
|
|
|
31
|
-
Everything else — the five gates, the two fields, the
|
|
31
|
+
Everything else — the five gates, the two fields, the seventeen skills, the templates, `validate.py`,
|
|
32
32
|
`inventory.py`, `../method-glossary.md`, and the three files beside this one — carries without edit.
|
|
33
33
|
|
|
34
34
|
One half-exception, and it is by design: `inventory.py` is the generic engine and carries whole, but
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wdi-explain-to-me
|
|
3
|
+
description: Use when the owner has to decide something — an open question, a defect, a design fork, a failing validator, a vague worry — and wants the reading done for them. Investigates, then briefs in six fixed sections, in the owner's language. Writes no file; the decision itself goes to wdi-decision or wdi-question.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# WDI Explain To Me
|
|
8
|
+
|
|
9
|
+
The owner names a problem. The result is a **decision briefing**: everything needed to decide, with the
|
|
10
|
+
agent doing all of the reading and the owner doing only the deciding.
|
|
11
|
+
|
|
12
|
+
`disable-model-invocation: true` is deliberate. A briefing is written for a person who has to choose;
|
|
13
|
+
a skill that wants one has nothing to choose, and would only be reading its own summary back.
|
|
14
|
+
|
|
15
|
+
Four asks look alike from the outside and are four skills:
|
|
16
|
+
|
|
17
|
+
| Ask | Skill |
|
|
18
|
+
|---|---|
|
|
19
|
+
| "Where am I, what next" | `wdi-help` — position and routing, under fifteen lines |
|
|
20
|
+
| "Brief me so I can decide this" | **this skill** — investigation, then a briefing |
|
|
21
|
+
| "Record what was decided" | `wdi-decision` |
|
|
22
|
+
| "This cannot be decided now" | `wdi-question` |
|
|
23
|
+
|
|
24
|
+
## Inputs
|
|
25
|
+
|
|
26
|
+
| Source | What it answers |
|
|
27
|
+
|---|---|
|
|
28
|
+
| The topic argument | An id (`OQ-12`, `DEC-007`, a defect row, a validator name), a file path, or a sentence |
|
|
29
|
+
| `.control/registry/*.yaml` · `.control/generated/status` | What the registry says holds today, and which validators are red |
|
|
30
|
+
| `.control/questions/` · `.control/decisions/` | Whether this was asked or decided before, and what is already settled |
|
|
31
|
+
| The working documents in `.what/` and `.how/` | The promise and the mechanism the topic touches |
|
|
32
|
+
| `validate.py` output · tests · git history · the code | What actually holds, as opposed to what a document claims |
|
|
33
|
+
|
|
34
|
+
## Step 1 — Investigate
|
|
35
|
+
|
|
36
|
+
When the topic is too vague to investigate, ask **one** narrowing question first — one, not a list. A
|
|
37
|
+
briefing on the wrong topic wastes the owner's five minutes.
|
|
38
|
+
|
|
39
|
+
Then read the sources that bear on the topic before writing a word: files, registries, validator or test
|
|
40
|
+
output, git history. Run what can be run. Done when every claim the briefing will make traces to
|
|
41
|
+
something read or executed in this session, with its `file:line` in hand.
|
|
42
|
+
|
|
43
|
+
## Step 2 — Brief
|
|
44
|
+
|
|
45
|
+
**Language.** Write in the language the owner is using in the conversation. When that is unclear, use
|
|
46
|
+
`policy.doc_language` from `.control/registry/index.yaml`. Method terminology — ids, gate names, the
|
|
47
|
+
values of `mode` and `risk_accepted`, validator names — stays English as `language-guide.md` requires;
|
|
48
|
+
those are keys, not prose.
|
|
49
|
+
|
|
50
|
+
**Six sections, fixed in number, order, and meaning.** The headings are given here in English; render
|
|
51
|
+
each one in the briefing's language and keep its slot. A briefing that drops, merges, or reorders a
|
|
52
|
+
section has changed what the owner can compare it against.
|
|
53
|
+
|
|
54
|
+
1. **Topic** — what kind of thing this is (an `OQ-`? a defect? a design fork? stale prose?) and the one
|
|
55
|
+
decision it asks for. Two or three sentences.
|
|
56
|
+
2. **Background** — how it came to exist and what is already settled. Plain language; gloss any term of
|
|
57
|
+
art in half a sentence where it first appears.
|
|
58
|
+
3. **Problem Analysis** — what is actually wrong and why, with evidence. Put a `file:line` citation
|
|
59
|
+
beside each claim; the reader MAY verify, but MUST NOT need to.
|
|
60
|
+
4. **Solution Design** — 2–4 options. For each: what changes, what it costs, what breaks or is lost, and
|
|
61
|
+
the size of the work. An option whose downside is missing has not been analysed.
|
|
62
|
+
5. **Recommendation** — exactly one, with its reason and the single condition that would flip it.
|
|
63
|
+
6. **What Helps You Decide** — the facts worth weighing against each other, then a verdict on the
|
|
64
|
+
owner's own eyes: either state that this briefing is sufficient, or name the exact file, section, or
|
|
65
|
+
screen the owner MUST look at themselves and what to look for there. Reserve that second verdict for
|
|
66
|
+
judgement only the owner can make — taste, risk appetite, a promise to a stakeholder — never for
|
|
67
|
+
legwork the investigation could have done.
|
|
68
|
+
|
|
69
|
+
Done when the owner could decide from the briefing alone, or knows exactly what to open and why.
|
|
70
|
+
|
|
71
|
+
## Rules
|
|
72
|
+
|
|
73
|
+
- Reading time MUST stay under five minutes; push detail into citations, not prose.
|
|
74
|
+
- A claim without a source read this session MUST NOT appear in the briefing. Memory is not a source.
|
|
75
|
+
- This skill writes **no file** and MUST NOT edit anything. The briefing lives in the conversation. It
|
|
76
|
+
MUST NOT open a `DEC-`, file an `OQ-`, or patch the corpus on the way — a briefing that also changes
|
|
77
|
+
things leaves nothing to decide against.
|
|
78
|
+
- You MUST NOT run other skills on the owner's behalf. Name the skill; let them invoke it.
|
|
79
|
+
|
|
80
|
+
## Output
|
|
81
|
+
|
|
82
|
+
The six sections, then one line naming where the decision goes once it is made: `wdi-decision` intent
|
|
83
|
+
`open` when it is worth remembering, the owning document directly when it is not, or `wdi-question`
|
|
84
|
+
when it turns out it cannot be decided yet.
|
|
@@ -64,6 +64,7 @@ mis-route in this flow, because every other gate is the same for every component
|
|
|
64
64
|
| Depth done and G4 passed for every component the work touches | `wdi-build` — it opens the spec, has the owner run `to-spec` and `to-tickets`, ships each ticket, closes the spec |
|
|
65
65
|
| A small fix touching no `FR`, `UC`, `AD-N`, or domain model | Fast Path: the owner runs `/implement` directly. It stops and becomes a spec `S` the moment an `FR` is touched |
|
|
66
66
|
| A planning assumption turned out void | `wdi-decision` intent `open` — it proposes, and changes nothing |
|
|
67
|
+
| The owner has to decide something and wants the reading done first | `wdi-explain-to-me` — it briefs, and changes nothing; the decision then goes to `wdi-decision` or `wdi-question` |
|
|
67
68
|
| An accepted `DEC-` has not reached its documents | `wdi-decision` intent `apply` |
|
|
68
69
|
| A bug, a failing test, unexpected behaviour | `wdi-systematic-debugging`, before any fix is proposed |
|
|
69
70
|
| Numbers are wanted before the work is committed | `wdi-report` intent `estimate` |
|
package/kit-overlay/AGENTS.md
CHANGED
|
@@ -112,7 +112,7 @@ derived from the other: one component MAY be thin on purpose and reviewed the ha
|
|
|
112
112
|
`.constitution/method/document/delivery-flow-guide.md` owns both;
|
|
113
113
|
`.constitution/method/why/rationale.md` says why they are separate.
|
|
114
114
|
|
|
115
|
-
## The five gates and the
|
|
115
|
+
## The five gates and the seventeen skills
|
|
116
116
|
|
|
117
117
|
| Gate | Decides | Skill |
|
|
118
118
|
|---|---|---|
|
|
@@ -125,7 +125,7 @@ derived from the other: one component MAY be thin on purpose and reviewed the ha
|
|
|
125
125
|
Before G1 and at the tail of G2: `wdi-init`, five intents — `setup` · `component` · `mode` · `risk` ·
|
|
126
126
|
`structure`.
|
|
127
127
|
|
|
128
|
-
Any time: `wdi-decision` · `wdi-question` · `wdi-log` · `wdi-help` · `wdi-reconcile` · `wdi-review` ·
|
|
128
|
+
Any time: `wdi-decision` · `wdi-question` · `wdi-log` · `wdi-help` · `wdi-explain-to-me` · `wdi-reconcile` · `wdi-review` ·
|
|
129
129
|
`wdi-report` · `wdi-systematic-debugging`.
|
|
130
130
|
|
|
131
131
|
**No BMad skill is invoked directly.** Each has a wrapper, and the wrapper is what checks position,
|
|
@@ -166,6 +166,7 @@ verifies the result, and lands the memlog.
|
|
|
166
166
|
| Looking for a non-technical fact — a domain, an account, a legal entity, a locked date | `.control/project-non-technical-log.md` |
|
|
167
167
|
| Naming anything — a code identifier, a file, a database column | `.constitution/method/language-guide.md` |
|
|
168
168
|
| Asking "which gate now, what next" | `.constitution/method/document/delivery-flow-guide.md` · skill `wdi-help` |
|
|
169
|
+
| Having to decide something, and wanting the reading done first | skill `wdi-explain-to-me` — it briefs, and changes nothing |
|
|
169
170
|
| Setting or changing `mode` or `risk_accepted` | `.constitution/method/document/delivery-flow-guide.md` · skill `wdi-init` |
|
|
170
171
|
| Invoking a BMad skill | `.constitution/method/document/bmad-guide.md` · `.constitution/method/document/bmad-skill-register.md` |
|
|
171
172
|
| Writing or reviewing a product brief | `.constitution/method/document/brief-guide.md` |
|
package/kit-overlay/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Never a rule. When it disagrees with a guide, the guide wins and the disagreemen
|
|
|
29
29
|
|
|
30
30
|
| File | Opened when |
|
|
31
31
|
|---|---|
|
|
32
|
-
| [`why/README.md`](why/README.md) | You want the whole shape in five minutes — five gates, two settings,
|
|
32
|
+
| [`why/README.md`](why/README.md) | You want the whole shape in five minutes — five gates, two settings, seventeen skills, WDI ↔ BMad |
|
|
33
33
|
| [`why/artifact-map.md`](why/artifact-map.md) | "Where does this file go", or "does this document exist at my `mode`" |
|
|
34
34
|
| [`why/mode-risk-map.md`](why/mode-risk-map.md) | A `mode` and a `risk_accepted` are set and you want the two side by side — all twelve cells |
|
|
35
35
|
| [`why/rationale.md`](why/rationale.md) | Before changing a rule, to know what you would break |
|
|
@@ -28,7 +28,7 @@ them only an *example* does — not a rule.
|
|
|
28
28
|
| `templates/design-system.md` | The pointer to wherever this project keeps its tokens | Re-point at that project's token file |
|
|
29
29
|
| `templates/oq.md` | One example of a bad question title | Cosmetic |
|
|
30
30
|
|
|
31
|
-
Everything else — the five gates, the two fields, the
|
|
31
|
+
Everything else — the five gates, the two fields, the seventeen skills, the templates, `validate.py`,
|
|
32
32
|
`inventory.py`, `../method-glossary.md`, and the three files beside this one — carries without edit.
|
|
33
33
|
|
|
34
34
|
One half-exception, and it is by design: `inventory.py` is the generic engine and carries whole, but
|