wdi-method 0.4.5 → 0.5.0
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 +58 -16
- package/bin/wdi-method.js +152 -60
- package/kit/.constitution/method/README.md +66 -169
- package/kit/.constitution/{constitution.md → method/constitution.md} +10 -56
- package/kit/.constitution/{document → method/document}/architecture-guide.md +1 -1
- package/kit/.constitution/{document → method/document}/corpus-guide.md +2 -2
- package/kit/.constitution/{document → method/document}/delivery-flow-guide.md +338 -338
- package/kit/.constitution/{document → method/document}/sdd-guide.md +1 -1
- package/kit/.constitution/{document → method/document}/templates/cross-cutting.md +5 -5
- package/kit/.constitution/{document → method/document}/templates/design-system.md +67 -67
- package/kit/.constitution/{document → method/document}/templates/inventory.md +69 -69
- package/kit/.constitution/{document → method/document}/templates/model.md +2 -2
- package/kit/.constitution/{document → method/document}/templates/questions.md +10 -9
- package/kit/.constitution/{document → method/document}/templates/sdd.md +1 -1
- package/kit/.constitution/{document → method/document}/templates/srs.md +2 -2
- package/kit/.constitution/{document → method/document}/templates/structure-codebase.md +129 -129
- package/kit/.constitution/{document → method/document}/templates/structure-document.md +90 -90
- package/kit/.constitution/{language-guide.md → method/language-guide.md} +2 -2
- package/kit/.constitution/{repo-guide.md → method/repo-guide.md} +16 -3
- package/kit/.constitution/{scripts → method/scripts}/inventory.py +102 -100
- package/kit/.constitution/{scripts → method/scripts}/timeline.py +665 -665
- package/kit/.constitution/{scripts → method/scripts}/validate.py +1599 -1579
- package/kit/.constitution/{structure-guide.md → method/structure-guide.md} +3 -3
- package/kit/.constitution/method/why/README.md +169 -0
- package/kit/.constitution/method/{artifact-map.md → why/artifact-map.md} +5 -5
- package/kit/.constitution/method/{rationale.md → why/rationale.md} +5 -5
- package/kit/.constitution/project/constitution.md +63 -0
- package/kit/assets/bmad-custom/bmad-advanced-elicitation.toml +9 -9
- package/kit/assets/bmad-custom/bmad-architecture.toml +33 -31
- package/kit/assets/bmad-custom/bmad-build-auto.toml +5 -5
- package/kit/assets/bmad-custom/bmad-build.toml +52 -52
- package/kit/assets/bmad-custom/bmad-code-review.toml +13 -12
- package/kit/assets/bmad-custom/bmad-correct-course.toml +20 -19
- package/kit/assets/bmad-custom/bmad-deep-recon.toml +12 -11
- package/kit/assets/bmad-custom/bmad-prd.toml +42 -42
- package/kit/assets/bmad-custom/bmad-product-brief.toml +18 -18
- package/kit/assets/bmad-custom/bmad-retrospective.toml +4 -4
- package/kit/assets/bmad-custom/bmad-spec.toml +16 -15
- package/kit/assets/bmad-custom/bmad-ux.toml +19 -19
- package/kit/assets/bmad-custom/config.toml +3 -3
- package/kit/skills/wdi-blueprint/SKILL.md +3 -3
- package/kit/skills/wdi-build/SKILL.md +244 -244
- package/kit/skills/wdi-component/SKILL.md +1 -1
- package/kit/skills/wdi-help/SKILL.md +98 -98
- package/kit/skills/wdi-init/SKILL.md +1 -1
- package/kit/skills/wdi-problem/SKILL.md +90 -90
- package/kit/skills/wdi-product/SKILL.md +127 -127
- package/kit/skills/wdi-reconcile/SKILL.md +2 -2
- package/kit/skills/wdi-report/SKILL.md +205 -205
- package/kit/skills/wdi-systematic-debugging/SKILL.md +193 -193
- package/kit/skills/wdi-ux/SKILL.md +145 -145
- package/kit-overlay/AGENTS.md +20 -20
- package/kit-overlay/README.md +24 -17
- package/kit-overlay/constitution.md +10 -56
- package/kit-overlay/portability.md +6 -6
- package/kit-overlay/repo-guide.md +112 -97
- package/package.json +37 -37
- package/scaffold/.control/product-glossary.md +21 -21
- package/scaffold/.control/project-non-technical-log.md +23 -23
- package/scaffold/.control/questions/answered.md +11 -11
- package/scaffold/.control/questions/assumptions.md +15 -15
- package/scaffold/.control/questions/blocking.md +21 -21
- package/scaffold/.control/questions/external.md +11 -11
- package/scaffold/.control/registry/components.yaml +21 -21
- package/scaffold/.control/registry/defects.yaml +3 -3
- package/scaffold/.control/registry/index.yaml +46 -46
- package/scaffold/.control/registry/requirements.yaml +15 -15
- package/scaffold/.control/registry/risks.yaml +5 -5
- package/scaffold/.control/registry/usecases.yaml +6 -6
- package/kit/.constitution/README.md +0 -66
- /package/kit/.constitution/{document → method/document}/bmad-guide.md +0 -0
- /package/kit/.constitution/{document → method/document}/bmad-skill-register.md +0 -0
- /package/kit/.constitution/{document → method/document}/brief-guide.md +0 -0
- /package/kit/.constitution/{document → method/document}/decision-guide.md +0 -0
- /package/kit/.constitution/{document → method/document}/prd-guide.md +0 -0
- /package/kit/.constitution/{document → method/document}/srs-guide.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/addendum.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/architecture-spine.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/brief.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/c4.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/contract.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/decision.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/flow.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/integration.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/lc.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/lifecycle.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/meeting.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/oq.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/prd.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/rtr.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/rules.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/scn.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/uc.md +0 -0
- /package/kit/.constitution/{document → method/document}/templates/ux.md +0 -0
- /package/kit/.constitution/{document → method/document}/ux-guide.md +0 -0
- /package/kit/.constitution/{method-glossary.md → method/method-glossary.md} +0 -0
- /package/kit/.constitution/method/{portability.md → why/portability.md} +0 -0
- /package/kit/.constitution/{codebase/brownfield-guide.md → project/codebase-brownfield-guide.md} +0 -0
- /package/kit/.constitution/{codebase/conventions-guide.md → project/codebase-conventions-guide.md} +0 -0
- /package/kit/.constitution/{codebase/stack-guide.md → project/codebase-stack-guide.md} +0 -0
|
@@ -1,145 +1,145 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: wdi-ux
|
|
3
|
-
description: Use when UX is produced or landed — dispatching bmad-ux for a PRD scope, then landing DESIGN.md, EXPERIENCE.md, the design system, and the screen registry into the layers they belong to. Optional, and it rides on G2. Never writes UX content itself.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# WDI UX
|
|
7
|
-
|
|
8
|
-
`bmad-ux` writes the UX. This skill decides whether it should run, hands it the scope, checks what
|
|
9
|
-
came back, and — because `bmad-ux` is **class B** — lands its output into the two layers it splits
|
|
10
|
-
across. No other skill MAY land these files.
|
|
11
|
-
|
|
12
|
-
Two acts, and a pass MAY do either or both: **run** the UX, and **land** it. They are separated because
|
|
13
|
-
they become possible at different moments. A run belongs to G2, where the PRD is fresh. Landing needs a
|
|
14
|
-
Product Component to land into, and that list is not born until the tail of G2.
|
|
15
|
-
|
|
16
|
-
You MUST NOT write or edit `DESIGN.md` or `EXPERIENCE.md` yourself. If a check fails, name what is
|
|
17
|
-
missing and re-dispatch — a hand-patched UX document makes the memlog lie about how it got that way.
|
|
18
|
-
The content rules are in `ux-guide.md` and MUST NOT be restated here.
|
|
19
|
-
|
|
20
|
-
## Inputs
|
|
21
|
-
|
|
22
|
-
| Source | What it answers |
|
|
23
|
-
|---|---|
|
|
24
|
-
| `.what/_prd/<initiative>/prd.md` | The promises the UX has to make usable — `FR`, `NFR`, `UJ-N` |
|
|
25
|
-
| `.what/_product-brief/brief.md` | The primary user, and the boundary the UX MUST respect |
|
|
26
|
-
| `.constitution/document/ux-guide.md` | The rules the result is checked against |
|
|
27
|
-
| `.constitution/document/templates/ux.md` | The required shape of each half |
|
|
28
|
-
| `.control/registry/components.yaml` | Whether the Product Components and containers a landing needs exist |
|
|
29
|
-
| `.constitution/document/templates/design-system.md` | The shape of the product-level tokens file |
|
|
30
|
-
| `.control/product-glossary.md` | Terms already fixed, so the screens do not invent competing ones |
|
|
31
|
-
| `_bmad-output/ux/` | An earlier run — the input to *land*, and to intent *update* |
|
|
32
|
-
| `.how/_platform/design-system.md` | Tokens and base components already agreed |
|
|
33
|
-
|
|
34
|
-
## Step 1 — Position
|
|
35
|
-
|
|
36
|
-
- UX is **optional**. It earns a run when the interface is a substantial part of what the PRD
|
|
37
|
-
promises; it MUST NOT be run to fill a slot. Say so and stop when a run buys nothing.
|
|
38
|
-
- The order is `wdi-product` → `wdi-ux`. A UX run with no PRD in scope is designing a promise nobody
|
|
39
|
-
made; route to `wdi-product` first.
|
|
40
|
-
- If the ask is a new capability rather than how an agreed one feels, this is the wrong skill — route
|
|
41
|
-
to `wdi-product` intent `update`.
|
|
42
|
-
- If the ask is how the system behaves internally, route to `wdi-blueprint` for the catalogue, or
|
|
43
|
-
`wdi-component` for a full flow.
|
|
44
|
-
|
|
45
|
-
## Step 2 — Mode
|
|
46
|
-
|
|
47
|
-
Read `_bmad-output/ux/` and `components.yaml`, then state the mode in one line before acting.
|
|
48
|
-
|
|
49
|
-
| State | Mode |
|
|
50
|
-
|---|---|
|
|
51
|
-
| No run for this scope | **run** — Step 3, then Step 5 for whatever is landable |
|
|
52
|
-
| A run exists, finalised, nothing landed | **land** — Step 5 only |
|
|
53
|
-
| A run exists and the PRD has changed under it | **run** intent *update*, then Step 5 |
|
|
54
|
-
| A run exists, landed, and a `<pc>` has since been born | **land** — the deferred half, Step 5 |
|
|
55
|
-
|
|
56
|
-
## Step 3 — Dispatch
|
|
57
|
-
|
|
58
|
-
Invoke `bmad-ux` with the detected intent. Do not restate the rules to it — they arrive through
|
|
59
|
-
`doc_standards` and `persistent_facts` in `_bmad/custom/bmad-ux.toml`, and a second copy here would
|
|
60
|
-
drift.
|
|
61
|
-
|
|
62
|
-
State the scope as **one PRD initiative**, and name the input files explicitly; the skill globs its
|
|
63
|
-
own default locations, which this project redirects. A scope spanning several initiatives MUST be
|
|
64
|
-
split into one run each — the run folder is a singleton per scope, and two initiatives in one folder
|
|
65
|
-
cannot be landed separately later.
|
|
66
|
-
|
|
67
|
-
## Step 4 — Verify
|
|
68
|
-
|
|
69
|
-
Check what came back against the guide. Report every failure; fix none of them by hand.
|
|
70
|
-
|
|
71
|
-
| # | Check | Fails when |
|
|
72
|
-
|---|---|---|
|
|
73
|
-
| 1 | Landing zone | Anything was written into `.what/` or `.how/` by the run itself |
|
|
74
|
-
| 2 | Two documents, split correctly | A layout, component, or token sits in `EXPERIENCE.md`; a promise sits first in `DESIGN.md` |
|
|
75
|
-
| 3 | Journeys reference `UJ-N` | The PRD's journeys were restated under new names |
|
|
76
|
-
| 4 | Every screen has an empty and an error state | Only the populated state was designed |
|
|
77
|
-
| 5 | Every user-facing noun is in the glossary | A new noun appeared — route it through `wdi-blueprint`, which owns the glossary, in this pass |
|
|
78
|
-
| 6 | No new capability | The run designed something no `FR` promises — route to `wdi-product`, and MUST NOT land it |
|
|
79
|
-
| 7 | Every `[ASSUMPTION]` filed | An assumption sits in the text with nothing in `.control/questions/` behind it |
|
|
80
|
-
| 8 | Memlog at `.control/memlog/ux.md` | A `.memlog.md` appeared inside the corpus — `--workspace` was used |
|
|
81
|
-
| 9 | `bmad-review` structure + prose ran at finalize | `doc_standards` did not fire |
|
|
82
|
-
|
|
83
|
-
Check 8 is the one that MUST be fixed immediately rather than reported. A `.memlog.md` inside `.what/`
|
|
84
|
-
or `.how/` is corpus pollution, and V16 rejects it.
|
|
85
|
-
|
|
86
|
-
## Step 5 — Land, at two speeds
|
|
87
|
-
|
|
88
|
-
Nothing is landed until the run is finalised. The homes are in `corpus-guide.md`; what is decided
|
|
89
|
-
here is **when each one becomes possible**.
|
|
90
|
-
|
|
91
|
-
| Output | Lands into | Possible once |
|
|
92
|
-
|---|---|---|
|
|
93
|
-
| Tokens and base components | `.how/_platform/design-system.md` | The run is final — it crosses components by definition |
|
|
94
|
-
| `EXPERIENCE.md` | `.what/<pc>/04-usecases/` | The `<pc>` is registered in `components.yaml` |
|
|
95
|
-
| `DESIGN.md` | `.how/<pc>/01-ux/` | The `<pc>` is registered **and** its container exists |
|
|
96
|
-
| Each screen | an `LC` of type `ui-screen` in `components.yaml` | Same as `DESIGN.md` — an `LC` MUST name its container. Registration is checked at wave close, V12 |
|
|
97
|
-
|
|
98
|
-
- A half that is not yet landable MUST stay in `_bmad-output/ux/` and be reported as deferred. At G2
|
|
99
|
-
that is the normal outcome, not a failure: the slicing is born at the tail of G2 and containers at G3.
|
|
100
|
-
- You MUST NOT create a Product Component or a container to make a landing possible. A PC comes from
|
|
101
|
-
`wdi-init` intent `component` and a container from `wdi-blueprint` intent `platform`.
|
|
102
|
-
- One run MAY land across several Product Components. Split by which `<pc>` the content serves; a
|
|
103
|
-
screen whose `<pc>` is ambiguous MUST be raised through `wdi-question`, not assigned by guess.
|
|
104
|
-
- Registering the screens is part of landing `DESIGN.md`, in the same act. A screen in `01-ux/`
|
|
105
|
-
without its `components.yaml` entry has been half-landed, and V12 catches it at a worse moment.
|
|
106
|
-
- `.how/_platform/` otherwise belongs to `wdi-blueprint`. `design-system.md` is the one file in it you
|
|
107
|
-
own, and it has its own template; you MUST NOT touch any other.
|
|
108
|
-
- The run folder MUST NOT be deleted after landing. Intent *update* reads it again.
|
|
109
|
-
|
|
110
|
-
## Step 6 — Impact
|
|
111
|
-
|
|
112
|
-
A landed UX changes what other documents can still claim. Check, and **report** — never edit.
|
|
113
|
-
|
|
114
|
-
| Found | Where it goes |
|
|
115
|
-
|---|---|
|
|
116
|
-
| A flow the PRD does not promise | `wdi-product` intent `update`, before it is designed |
|
|
117
|
-
| A behaviour the SRS never stated | `wdi-blueprint` for a catalogue line, `wdi-component` for a flow |
|
|
118
|
-
| A pattern that forces a technology choice | `wdi-decision` — a `DEC-`, not a note in `DESIGN.md` |
|
|
119
|
-
| A screen contradicting an `applied` `DEC-` | `wdi-decision` — a new `DEC-`, never an edit to one already applied |
|
|
120
|
-
|
|
121
|
-
`wdi-reconcile` is the read-only sweep across all layers. Run it rather than reimplementing it.
|
|
122
|
-
|
|
123
|
-
## Step 7 — Memlog
|
|
124
|
-
|
|
125
|
-
Everything in a UX pass — the run and the landing — logs to `.control/memlog/ux.md`, through
|
|
126
|
-
`memlog.py --path`. `--workspace` MUST NOT be used.
|
|
127
|
-
|
|
128
|
-
## Rules
|
|
129
|
-
|
|
130
|
-
- Content MUST NOT be edited while it is being landed. Splitting one document across the homes its
|
|
131
|
-
row names is not editing; changing a sentence to fit its new home is, and it goes back through
|
|
132
|
-
`bmad-ux`.
|
|
133
|
-
- You MUST NOT open G2 on UX that has not been through check 9. Gate time is for deciding.
|
|
134
|
-
- You MUST NOT raise `status:` as part of landing. Status is a stage; the `reviewed:` block is an
|
|
135
|
-
event, and `wdi-review` writes it.
|
|
136
|
-
- You MUST NOT land anything into a wave that is already closed. The wave is reopened through
|
|
137
|
-
`wdi-build`, or the gap is filed through `wdi-question`.
|
|
138
|
-
- When the UX concludes the PRD promised something that cannot be made usable, say so and stop. Route
|
|
139
|
-
to `wdi-product`; do not quietly narrow the promise in `EXPERIENCE.md`.
|
|
140
|
-
|
|
141
|
-
## Output
|
|
142
|
-
|
|
143
|
-
A short report: mode taken, scope run, the result of all nine checks naming the failures, what landed
|
|
144
|
-
and where, what was deferred and what has to exist before it can land, screens registered, impact
|
|
145
|
-
found and where it was routed, and open questions raised.
|
|
1
|
+
---
|
|
2
|
+
name: wdi-ux
|
|
3
|
+
description: Use when UX is produced or landed — dispatching bmad-ux for a PRD scope, then landing DESIGN.md, EXPERIENCE.md, the design system, and the screen registry into the layers they belong to. Optional, and it rides on G2. Never writes UX content itself.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# WDI UX
|
|
7
|
+
|
|
8
|
+
`bmad-ux` writes the UX. This skill decides whether it should run, hands it the scope, checks what
|
|
9
|
+
came back, and — because `bmad-ux` is **class B** — lands its output into the two layers it splits
|
|
10
|
+
across. No other skill MAY land these files.
|
|
11
|
+
|
|
12
|
+
Two acts, and a pass MAY do either or both: **run** the UX, and **land** it. They are separated because
|
|
13
|
+
they become possible at different moments. A run belongs to G2, where the PRD is fresh. Landing needs a
|
|
14
|
+
Product Component to land into, and that list is not born until the tail of G2.
|
|
15
|
+
|
|
16
|
+
You MUST NOT write or edit `DESIGN.md` or `EXPERIENCE.md` yourself. If a check fails, name what is
|
|
17
|
+
missing and re-dispatch — a hand-patched UX document makes the memlog lie about how it got that way.
|
|
18
|
+
The content rules are in `ux-guide.md` and MUST NOT be restated here.
|
|
19
|
+
|
|
20
|
+
## Inputs
|
|
21
|
+
|
|
22
|
+
| Source | What it answers |
|
|
23
|
+
|---|---|
|
|
24
|
+
| `.what/_prd/<initiative>/prd.md` | The promises the UX has to make usable — `FR`, `NFR`, `UJ-N` |
|
|
25
|
+
| `.what/_product-brief/brief.md` | The primary user, and the boundary the UX MUST respect |
|
|
26
|
+
| `.constitution/method/document/ux-guide.md` | The rules the result is checked against |
|
|
27
|
+
| `.constitution/method/document/templates/ux.md` | The required shape of each half |
|
|
28
|
+
| `.control/registry/components.yaml` | Whether the Product Components and containers a landing needs exist |
|
|
29
|
+
| `.constitution/method/document/templates/design-system.md` | The shape of the product-level tokens file |
|
|
30
|
+
| `.control/product-glossary.md` | Terms already fixed, so the screens do not invent competing ones |
|
|
31
|
+
| `_bmad-output/ux/` | An earlier run — the input to *land*, and to intent *update* |
|
|
32
|
+
| `.how/_platform/design-system.md` | Tokens and base components already agreed |
|
|
33
|
+
|
|
34
|
+
## Step 1 — Position
|
|
35
|
+
|
|
36
|
+
- UX is **optional**. It earns a run when the interface is a substantial part of what the PRD
|
|
37
|
+
promises; it MUST NOT be run to fill a slot. Say so and stop when a run buys nothing.
|
|
38
|
+
- The order is `wdi-product` → `wdi-ux`. A UX run with no PRD in scope is designing a promise nobody
|
|
39
|
+
made; route to `wdi-product` first.
|
|
40
|
+
- If the ask is a new capability rather than how an agreed one feels, this is the wrong skill — route
|
|
41
|
+
to `wdi-product` intent `update`.
|
|
42
|
+
- If the ask is how the system behaves internally, route to `wdi-blueprint` for the catalogue, or
|
|
43
|
+
`wdi-component` for a full flow.
|
|
44
|
+
|
|
45
|
+
## Step 2 — Mode
|
|
46
|
+
|
|
47
|
+
Read `_bmad-output/ux/` and `components.yaml`, then state the mode in one line before acting.
|
|
48
|
+
|
|
49
|
+
| State | Mode |
|
|
50
|
+
|---|---|
|
|
51
|
+
| No run for this scope | **run** — Step 3, then Step 5 for whatever is landable |
|
|
52
|
+
| A run exists, finalised, nothing landed | **land** — Step 5 only |
|
|
53
|
+
| A run exists and the PRD has changed under it | **run** intent *update*, then Step 5 |
|
|
54
|
+
| A run exists, landed, and a `<pc>` has since been born | **land** — the deferred half, Step 5 |
|
|
55
|
+
|
|
56
|
+
## Step 3 — Dispatch
|
|
57
|
+
|
|
58
|
+
Invoke `bmad-ux` with the detected intent. Do not restate the rules to it — they arrive through
|
|
59
|
+
`doc_standards` and `persistent_facts` in `_bmad/custom/bmad-ux.toml`, and a second copy here would
|
|
60
|
+
drift.
|
|
61
|
+
|
|
62
|
+
State the scope as **one PRD initiative**, and name the input files explicitly; the skill globs its
|
|
63
|
+
own default locations, which this project redirects. A scope spanning several initiatives MUST be
|
|
64
|
+
split into one run each — the run folder is a singleton per scope, and two initiatives in one folder
|
|
65
|
+
cannot be landed separately later.
|
|
66
|
+
|
|
67
|
+
## Step 4 — Verify
|
|
68
|
+
|
|
69
|
+
Check what came back against the guide. Report every failure; fix none of them by hand.
|
|
70
|
+
|
|
71
|
+
| # | Check | Fails when |
|
|
72
|
+
|---|---|---|
|
|
73
|
+
| 1 | Landing zone | Anything was written into `.what/` or `.how/` by the run itself |
|
|
74
|
+
| 2 | Two documents, split correctly | A layout, component, or token sits in `EXPERIENCE.md`; a promise sits first in `DESIGN.md` |
|
|
75
|
+
| 3 | Journeys reference `UJ-N` | The PRD's journeys were restated under new names |
|
|
76
|
+
| 4 | Every screen has an empty and an error state | Only the populated state was designed |
|
|
77
|
+
| 5 | Every user-facing noun is in the glossary | A new noun appeared — route it through `wdi-blueprint`, which owns the glossary, in this pass |
|
|
78
|
+
| 6 | No new capability | The run designed something no `FR` promises — route to `wdi-product`, and MUST NOT land it |
|
|
79
|
+
| 7 | Every `[ASSUMPTION]` filed | An assumption sits in the text with nothing in `.control/questions/` behind it |
|
|
80
|
+
| 8 | Memlog at `.control/memlog/ux.md` | A `.memlog.md` appeared inside the corpus — `--workspace` was used |
|
|
81
|
+
| 9 | `bmad-review` structure + prose ran at finalize | `doc_standards` did not fire |
|
|
82
|
+
|
|
83
|
+
Check 8 is the one that MUST be fixed immediately rather than reported. A `.memlog.md` inside `.what/`
|
|
84
|
+
or `.how/` is corpus pollution, and V16 rejects it.
|
|
85
|
+
|
|
86
|
+
## Step 5 — Land, at two speeds
|
|
87
|
+
|
|
88
|
+
Nothing is landed until the run is finalised. The homes are in `corpus-guide.md`; what is decided
|
|
89
|
+
here is **when each one becomes possible**.
|
|
90
|
+
|
|
91
|
+
| Output | Lands into | Possible once |
|
|
92
|
+
|---|---|---|
|
|
93
|
+
| Tokens and base components | `.how/_platform/design-system.md` | The run is final — it crosses components by definition |
|
|
94
|
+
| `EXPERIENCE.md` | `.what/<pc>/04-usecases/` | The `<pc>` is registered in `components.yaml` |
|
|
95
|
+
| `DESIGN.md` | `.how/<pc>/01-ux/` | The `<pc>` is registered **and** its container exists |
|
|
96
|
+
| Each screen | an `LC` of type `ui-screen` in `components.yaml` | Same as `DESIGN.md` — an `LC` MUST name its container. Registration is checked at wave close, V12 |
|
|
97
|
+
|
|
98
|
+
- A half that is not yet landable MUST stay in `_bmad-output/ux/` and be reported as deferred. At G2
|
|
99
|
+
that is the normal outcome, not a failure: the slicing is born at the tail of G2 and containers at G3.
|
|
100
|
+
- You MUST NOT create a Product Component or a container to make a landing possible. A PC comes from
|
|
101
|
+
`wdi-init` intent `component` and a container from `wdi-blueprint` intent `platform`.
|
|
102
|
+
- One run MAY land across several Product Components. Split by which `<pc>` the content serves; a
|
|
103
|
+
screen whose `<pc>` is ambiguous MUST be raised through `wdi-question`, not assigned by guess.
|
|
104
|
+
- Registering the screens is part of landing `DESIGN.md`, in the same act. A screen in `01-ux/`
|
|
105
|
+
without its `components.yaml` entry has been half-landed, and V12 catches it at a worse moment.
|
|
106
|
+
- `.how/_platform/` otherwise belongs to `wdi-blueprint`. `design-system.md` is the one file in it you
|
|
107
|
+
own, and it has its own template; you MUST NOT touch any other.
|
|
108
|
+
- The run folder MUST NOT be deleted after landing. Intent *update* reads it again.
|
|
109
|
+
|
|
110
|
+
## Step 6 — Impact
|
|
111
|
+
|
|
112
|
+
A landed UX changes what other documents can still claim. Check, and **report** — never edit.
|
|
113
|
+
|
|
114
|
+
| Found | Where it goes |
|
|
115
|
+
|---|---|
|
|
116
|
+
| A flow the PRD does not promise | `wdi-product` intent `update`, before it is designed |
|
|
117
|
+
| A behaviour the SRS never stated | `wdi-blueprint` for a catalogue line, `wdi-component` for a flow |
|
|
118
|
+
| A pattern that forces a technology choice | `wdi-decision` — a `DEC-`, not a note in `DESIGN.md` |
|
|
119
|
+
| A screen contradicting an `applied` `DEC-` | `wdi-decision` — a new `DEC-`, never an edit to one already applied |
|
|
120
|
+
|
|
121
|
+
`wdi-reconcile` is the read-only sweep across all layers. Run it rather than reimplementing it.
|
|
122
|
+
|
|
123
|
+
## Step 7 — Memlog
|
|
124
|
+
|
|
125
|
+
Everything in a UX pass — the run and the landing — logs to `.control/memlog/ux.md`, through
|
|
126
|
+
`memlog.py --path`. `--workspace` MUST NOT be used.
|
|
127
|
+
|
|
128
|
+
## Rules
|
|
129
|
+
|
|
130
|
+
- Content MUST NOT be edited while it is being landed. Splitting one document across the homes its
|
|
131
|
+
row names is not editing; changing a sentence to fit its new home is, and it goes back through
|
|
132
|
+
`bmad-ux`.
|
|
133
|
+
- You MUST NOT open G2 on UX that has not been through check 9. Gate time is for deciding.
|
|
134
|
+
- You MUST NOT raise `status:` as part of landing. Status is a stage; the `reviewed:` block is an
|
|
135
|
+
event, and `wdi-review` writes it.
|
|
136
|
+
- You MUST NOT land anything into a wave that is already closed. The wave is reopened through
|
|
137
|
+
`wdi-build`, or the gap is filed through `wdi-question`.
|
|
138
|
+
- When the UX concludes the PRD promised something that cannot be made usable, say so and stop. Route
|
|
139
|
+
to `wdi-product`; do not quietly narrow the promise in `EXPERIENCE.md`.
|
|
140
|
+
|
|
141
|
+
## Output
|
|
142
|
+
|
|
143
|
+
A short report: mode taken, scope run, the result of all nine checks naming the failures, what landed
|
|
144
|
+
and where, what was deferred and what has to exist before it can land, screens registered, impact
|
|
145
|
+
found and where it was routed, and open questions raised.
|
package/kit-overlay/AGENTS.md
CHANGED
|
@@ -154,31 +154,31 @@ verifies the result, and lands the memlog.
|
|
|
154
154
|
|
|
155
155
|
| Task | Load |
|
|
156
156
|
|---|---|
|
|
157
|
-
| Wanting the whole method in five minutes | `.constitution/method/README.md` |
|
|
158
|
-
| About to change a rule, and needing to know what breaks | `.constitution/method/rationale.md` |
|
|
159
|
-
| Asking whether a document exists at this `mode`, or where a file goes | `.constitution/method/artifact-map.md` |
|
|
160
|
-
| Unsure whether a file may exist in this repo | `.constitution/repo-guide.md` |
|
|
161
|
-
| Unsure where a file lives | `.constitution/document/corpus-guide.md` |
|
|
162
|
-
| Unsure what a method term means | `.constitution/method-glossary.md` |
|
|
157
|
+
| Wanting the whole method in five minutes | `.constitution/method/why/README.md` |
|
|
158
|
+
| About to change a rule, and needing to know what breaks | `.constitution/method/why/rationale.md` |
|
|
159
|
+
| Asking whether a document exists at this `mode`, or where a file goes | `.constitution/method/why/artifact-map.md` |
|
|
160
|
+
| Unsure whether a file may exist in this repo | `.constitution/method/repo-guide.md` |
|
|
161
|
+
| Unsure where a file lives | `.constitution/method/document/corpus-guide.md` |
|
|
162
|
+
| Unsure what a method term means | `.constitution/method/method-glossary.md` |
|
|
163
163
|
| Unsure about a domain term | `.control/product-glossary.md` |
|
|
164
164
|
| Looking for a non-technical fact — a domain, an account, a legal entity, a locked date | `.control/project-non-technical-log.md` |
|
|
165
|
-
| Naming anything — a code identifier, a file, a database column | `.constitution/language-guide.md` |
|
|
166
|
-
| Asking "which gate now, what next" | `.constitution/document/delivery-flow-guide.md` · skill `wdi-help` |
|
|
167
|
-
| Setting or changing `mode` or `risk_accepted` | `.constitution/document/delivery-flow-guide.md` · skill `wdi-init` |
|
|
168
|
-
| Invoking a BMad skill | `.constitution/document/bmad-guide.md` · `document/bmad-skill-register.md` |
|
|
169
|
-
| Writing or reviewing a product brief | `.constitution/document/brief-guide.md` |
|
|
170
|
-
| Writing or reviewing a PRD | `.constitution/document/prd-guide.md` |
|
|
171
|
-
| Writing or reviewing UX | `.constitution/document/ux-guide.md` |
|
|
172
|
-
| Writing or reviewing an SRS | `.constitution/document/srs-guide.md` |
|
|
173
|
-
| Writing or reviewing an SDD | `.constitution/document/sdd-guide.md` |
|
|
174
|
-
| Writing the spine, an `AD-N`, C4, or one of the three inventories | `.constitution/document/architecture-guide.md` |
|
|
175
|
-
| Opening, accepting, or applying a `DEC-` | `.constitution/document/decision-guide.md` |
|
|
176
|
-
| Writing or reading a structure map | `.constitution/structure-guide.md` |
|
|
165
|
+
| Naming anything — a code identifier, a file, a database column | `.constitution/method/language-guide.md` |
|
|
166
|
+
| Asking "which gate now, what next" | `.constitution/method/document/delivery-flow-guide.md` · skill `wdi-help` |
|
|
167
|
+
| Setting or changing `mode` or `risk_accepted` | `.constitution/method/document/delivery-flow-guide.md` · skill `wdi-init` |
|
|
168
|
+
| Invoking a BMad skill | `.constitution/method/document/bmad-guide.md` · `document/bmad-skill-register.md` |
|
|
169
|
+
| Writing or reviewing a product brief | `.constitution/method/document/brief-guide.md` |
|
|
170
|
+
| Writing or reviewing a PRD | `.constitution/method/document/prd-guide.md` |
|
|
171
|
+
| Writing or reviewing UX | `.constitution/method/document/ux-guide.md` |
|
|
172
|
+
| Writing or reviewing an SRS | `.constitution/method/document/srs-guide.md` |
|
|
173
|
+
| Writing or reviewing an SDD | `.constitution/method/document/sdd-guide.md` |
|
|
174
|
+
| Writing the spine, an `AD-N`, C4, or one of the three inventories | `.constitution/method/document/architecture-guide.md` |
|
|
175
|
+
| Opening, accepting, or applying a `DEC-` | `.constitution/method/document/decision-guide.md` |
|
|
176
|
+
| Writing or reading a structure map | `.constitution/method/structure-guide.md` |
|
|
177
177
|
| Looking for where code lives, or placing new code | `.control/structure-codebase.md` |
|
|
178
178
|
| Looking for where a document lives | `.control/structure-document.md` |
|
|
179
|
-
| Writing or reviewing code | `.constitution/codebase
|
|
179
|
+
| Writing or reviewing code | `.constitution/project/codebase-stack-guide.md` · `conventions-guide.md` · `brownfield-guide.md` |
|
|
180
180
|
|
|
181
|
-
All three
|
|
181
|
+
All three `.constitution/project/codebase-*-guide.md` start as `status: Draft`. While they are, their contents MAY be read
|
|
182
182
|
as guidance but MUST NOT be used to reject a change.
|
|
183
183
|
|
|
184
184
|
The two structure maps MUST NOT be installed as `doc_standards` — they are facts, not standards. Nor
|
package/kit-overlay/README.md
CHANGED
|
@@ -2,31 +2,37 @@
|
|
|
2
2
|
status: Reference
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# `.constitution/` — index
|
|
5
|
+
# `.constitution/method/` — index
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
`.constitution/` holds **exactly two folders**, and the folder is what says who owns a file:
|
|
8
|
+
|
|
9
|
+
| Folder | Owner | `update` | `promote` |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| `method/` — you are in it | the method | **overwritten** in full | carries it into the package |
|
|
12
|
+
| [`../project/`](../project/) | this product | **never touched** — seeded once when absent | never carries it, so your rules cannot be published |
|
|
13
|
+
|
|
14
|
+
Load [`constitution.md`](constitution.md) and [`../project/constitution.md`](../project/constitution.md)
|
|
15
|
+
before acting: Articles 3, 4, 6, 7 are here, Articles 1, 2, 5 are yours. Guides are loaded **lazily** —
|
|
16
|
+
only when the task matches, and every guide states when on its own **Loaded when:** line.
|
|
11
17
|
|
|
12
18
|
Every file here carries a `status:` — Article 4 owns the five values. Only `Accepted` binds;
|
|
13
19
|
`Reference` explains and MUST NOT be cited to reject a change. A template carries no status of its
|
|
14
20
|
own, because its frontmatter belongs to the artifact it produces.
|
|
15
21
|
|
|
16
|
-
A file this product
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
**A file this product adds MUST go in [`../project/`](../project/), not here** — anything in `method/`
|
|
23
|
+
is replaced on the next update, without warning, because that is what `method/` means. This index is
|
|
24
|
+
overwritten too.
|
|
19
25
|
|
|
20
|
-
## `
|
|
26
|
+
## `why/` — the explanation, `status: Reference`
|
|
21
27
|
|
|
22
28
|
Never a rule. When it disagrees with a guide, the guide wins and the disagreement is a defect.
|
|
23
29
|
|
|
24
30
|
| File | Opened when |
|
|
25
31
|
|---|---|
|
|
26
|
-
| [`
|
|
27
|
-
| [`
|
|
28
|
-
| [`
|
|
29
|
-
| [`
|
|
32
|
+
| [`why/README.md`](why/README.md) | You want the whole shape in five minutes — five gates, two settings, fifteen skills, WDI ↔ BMad |
|
|
33
|
+
| [`why/artifact-map.md`](why/artifact-map.md) | "Where does this file go", or "does this document exist at my `mode`" |
|
|
34
|
+
| [`why/rationale.md`](why/rationale.md) | Before changing a rule, to know what you would break |
|
|
35
|
+
| [`why/portability.md`](why/portability.md) | Which files are the method and which are the product; how promote and install move them |
|
|
30
36
|
|
|
31
37
|
## Cross-domain
|
|
32
38
|
|
|
@@ -51,12 +57,13 @@ Never a rule. When it disagrees with a guide, the guide wins and the disagreemen
|
|
|
51
57
|
| [`decision-guide.md`](document/decision-guide.md) | `DEC-`: the one test for recording at all, shape, global numbering, the `draft → accepted → applied` ladder, supersession |
|
|
52
58
|
| [`templates/`](document/templates/) | Templates, one per kind of document; they MUST be copied, and MUST NOT be reproduced from memory |
|
|
53
59
|
|
|
54
|
-
##
|
|
60
|
+
## Code rules — in the room, not here
|
|
55
61
|
|
|
56
|
-
All three are written by the **
|
|
57
|
-
|
|
62
|
+
All three are written by the **product**, so they live in [`../project/`](../project/) and no update
|
|
63
|
+
touches them at any `status:`. While `Draft`, their contents MAY be read as guidance but MUST NOT be
|
|
64
|
+
used to reject a change.
|
|
58
65
|
|
|
59
|
-
[`stack-guide.md`](codebase
|
|
66
|
+
[`stack-guide.md`](../project/codebase-stack-guide.md) · [`conventions-guide.md`](../project/codebase-conventions-guide.md) · [`brownfield-guide.md`](../project/codebase-brownfield-guide.md)
|
|
60
67
|
|
|
61
68
|
## `scripts/`
|
|
62
69
|
|
|
@@ -2,39 +2,15 @@
|
|
|
2
2
|
status: Accepted
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# Constitution —
|
|
5
|
+
# Constitution — the method's articles
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Articles 3, 4, 6, and 7 are the method and travel unchanged.
|
|
7
|
+
Articles 3, 4, 6, and 7. They are the **method's** and arrive from the WDI Method package —
|
|
8
|
+
`update` overwrites this file, so it MUST NOT be edited here.
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
This repo covers the product named at `product.name` in
|
|
16
|
-
`.control/registry/index.yaml`. One product, one repo. A second product MUST
|
|
17
|
-
get a repo of its own.
|
|
18
|
-
|
|
19
|
-
`product.client` in the same file names the client if there is one, and stays
|
|
20
|
-
empty if there is not. The product brief at G1 uses `product.name` as its
|
|
21
|
-
title. Neither this file nor the brief is a second source of the name.
|
|
22
|
-
|
|
23
|
-
An agent working here MUST NOT demand that sibling organisation repositories
|
|
24
|
-
be open in the same session.
|
|
25
|
-
|
|
26
|
-
## Article 2 — Content boundary, `.work/`, and cross-repo references
|
|
27
|
-
|
|
28
|
-
All three are governed by [`repo-guide.md`](repo-guide.md). Its rules MUST NOT be
|
|
29
|
-
repeated here — one rule, one place.
|
|
30
|
-
|
|
31
|
-
What is particular to this repo, and therefore lives here:
|
|
32
|
-
|
|
33
|
-
- Name any extra boundary this product has (a public-repo rule, a ban on `3p.md`,
|
|
34
|
-
a `.work/` resting state). If there is none, delete this bullet list and the
|
|
35
|
-
sentence above it.
|
|
36
|
-
- `3p.md` MUST NOT be created in a product repo. Operational engagement memory
|
|
37
|
-
lives outside.
|
|
10
|
+
This product's own articles — 1 Scope, 2 Content boundary, 5 Method ownership — live in
|
|
11
|
+
[`../project/constitution.md`](../project/constitution.md), which `update` never touches. The
|
|
12
|
+
numbering is shared across the two files and has gaps in each; the numbers are **not** reassigned,
|
|
13
|
+
because a frozen record that cites one MUST NOT be rewritten.
|
|
38
14
|
|
|
39
15
|
## Article 3 — Layers
|
|
40
16
|
|
|
@@ -43,13 +19,13 @@ The repo layout is governed by `corpus-guide.md` and mapped by
|
|
|
43
19
|
|
|
44
20
|
| Path | Role |
|
|
45
21
|
|---|---|
|
|
46
|
-
| `.constitution/` | Rules — how we work. `method/` holds the non-binding explanation of
|
|
22
|
+
| `.constitution/` | Rules — how we work. Exactly two folders: `method/` is the method's and is overwritten by `update`, `project/` is this product's and is never touched. `method/why/` holds the non-binding explanation of the rules |
|
|
47
23
|
| `.control/` | Control — what currently holds and what has been decided |
|
|
48
24
|
| `.what/` | What is promised |
|
|
49
25
|
| `.how/` | How it is built |
|
|
50
26
|
| `_bmad-output/` | Run workspace; committed, not curated |
|
|
51
27
|
| `.work/` | Scratch; committed, emptied when a task closes |
|
|
52
|
-
| *(application roots)* | Application code —
|
|
28
|
+
| *(application roots)* | Application code — named and mapped in `.control/structure-codebase.md` |
|
|
53
29
|
|
|
54
30
|
The method does not use a `docs/` layer for corpus or rules. A leftover `docs/`
|
|
55
31
|
folder is inventory to sort, not a second home.
|
|
@@ -73,33 +49,11 @@ so a status there would land in the artifact and mean something else entirely.
|
|
|
73
49
|
A missing header anywhere else is a **finding**, not an implicit anything.
|
|
74
50
|
|
|
75
51
|
`Reference` exists so that the *explanation* of a rule can live beside the rule without competing with it —
|
|
76
|
-
`method/` holds four such files. Where a `Reference` file and an `Accepted` one disagree, the `Accepted`
|
|
52
|
+
`method/why/` holds four such files. Where a `Reference` file and an `Accepted` one disagree, the `Accepted`
|
|
77
53
|
one wins, and the disagreement MUST be reported as a defect rather than resolved by preferring whichever was
|
|
78
54
|
opened first. A rule MUST NOT be born in a `Reference` file; when one is noticed there, it is stated as a
|
|
79
55
|
finding and written in the guide that owns it.
|
|
80
56
|
|
|
81
|
-
## Article 5 — The method arrives from WDI Method
|
|
82
|
-
|
|
83
|
-
This is the **consumer** article. Use it in every product repo.
|
|
84
|
-
|
|
85
|
-
`.constitution/` guides and templates (except this file's Articles 1, 2, and 5,
|
|
86
|
-
`codebase/*-guide.md`, and any extra file this repo added), the `wdi-*` skills,
|
|
87
|
-
and `_bmad/custom/*.toml` arrive from the public WDI Method package via
|
|
88
|
-
`npx wdi-method install` / `update`.
|
|
89
|
-
|
|
90
|
-
- A method file MUST NOT be invented or patched here to improve the method. If a
|
|
91
|
-
rule is wrong, it is fixed in the WDI Method package, then brought here with
|
|
92
|
-
`update`.
|
|
93
|
-
- `wdi-method update` MUST overwrite method files and MUST NOT touch `.what/`,
|
|
94
|
-
`.how/`, `.control/` product state, this file's Articles 1–2 and 5,
|
|
95
|
-
`codebase/*-guide.md` once `Accepted`, extra constitution files this repo
|
|
96
|
-
added, or `_bmad/custom/*.user.toml`.
|
|
97
|
-
- A rule particular to this repo MUST be written out in full in this file or a
|
|
98
|
-
sibling, and MUST NOT be replaced by a pointer into another repository.
|
|
99
|
-
|
|
100
|
-
A prefix in `.claude/skills/` names the **method**, not the owner: `bmad-*` is
|
|
101
|
-
BMad's, `wdi-*` is this method's.
|
|
102
|
-
|
|
103
57
|
## Article 6 — Decisions
|
|
104
58
|
|
|
105
59
|
A decision worth remembering is a `DEC-NNN`. Its shape, the one test that decides whether it is
|
|
@@ -22,14 +22,14 @@ them only an *example* does — not a rule.
|
|
|
22
22
|
|
|
23
23
|
| File | What is this product's | What to do when carrying it |
|
|
24
24
|
|---|---|---|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
25
|
+
| `../constitution.md` | Articles 1, 2, and 5 | **Rewrite 2 and 5.** Article 1 cites `index.yaml` `product.name`. Articles 3, 4, 6, 7 travel unchanged. `wdi-method promote` already replaces this file with the kit template |
|
|
26
|
+
| `../document/architecture-guide.md` | Seed examples of stack and tree shape | Re-point the examples. Every rule around them travels |
|
|
27
|
+
| `../document/corpus-guide.md` | Worked examples of `_platform` ownership | Re-point the examples. **Keep both kinds**: they teach the trap better than the rule alone |
|
|
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
31
|
Everything else — the five gates, the two fields, the fifteen skills, the templates, `validate.py`,
|
|
32
|
-
`inventory.py`,
|
|
32
|
+
`inventory.py`, `../method-glossary.md`, and the three files beside this one — carries without edit.
|
|
33
33
|
|
|
34
34
|
## What does NOT travel
|
|
35
35
|
|
|
@@ -37,7 +37,7 @@ Everything else — the five gates, the two fields, the fifteen skills, the temp
|
|
|
37
37
|
|---|---|
|
|
38
38
|
| `.control/` | This product's state. A new project scaffolds its own through `wdi-init` intent `setup`, or receives empty stubs on first `install` |
|
|
39
39
|
| `.what/` · `.how/` | This product's promises and build |
|
|
40
|
-
| `.constitution/codebase
|
|
40
|
+
| `.constitution/project/codebase-*-guide.md` | Written by the **project**, not the method. They ship as empty `Draft` stubs |
|
|
41
41
|
| `_bmad-output/` | Run workspace |
|
|
42
42
|
| The `bmad-*` skills themselves | BMad's, installed by BMad. Only `_bmad/custom/*.toml` is ours |
|
|
43
43
|
|
|
@@ -75,7 +75,7 @@ the steps that a runbook used to carry are now `wdi-init` intent `setup`. The or
|
|
|
75
75
|
|
|
76
76
|
1. `npx bmad-method install` in the product repo.
|
|
77
77
|
2. `npx wdi-method install` (optionally `--agents …`).
|
|
78
|
-
3. Set `product.name` in `.control/registry/index.yaml`. Rewrite
|
|
78
|
+
3. Set `product.name` in `.control/registry/index.yaml`. Rewrite `../constitution.md` Articles 2 and 5.
|
|
79
79
|
4. Merge the method routing into `AGENTS.md` if that file already existed.
|
|
80
80
|
5. Run `wdi-init` intent `setup`.
|
|
81
81
|
6. Sort what already existed. A file that is already the artifact one slot asks for goes into that
|