wdi-method 0.4.6 → 0.5.2
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 +271 -252
- package/bin/wdi-method.js +1221 -1030
- package/kit/.constitution/method/README.md +73 -169
- package/kit/.constitution/{constitution.md → method/constitution.md} +10 -56
- package/kit/.constitution/{document → method/document}/architecture-guide.md +209 -209
- package/kit/.constitution/{document → method/document}/corpus-guide.md +4 -4
- 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 +2 -2
- 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/sdd.md +1 -1
- 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/{method-glossary.md → method/method-glossary.md} +169 -169
- package/kit/.constitution/{repo-guide.md → method/repo-guide.md} +120 -97
- package/kit/.constitution/method/scripts/__pycache__/validate.cpython-314.pyc +0 -0
- package/kit/.constitution/{scripts → method/scripts}/timeline.py +2 -2
- package/kit/.constitution/{scripts → method/scripts}/validate.py +1648 -1581
- 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/{portability.md → why/portability.md} +6 -6
- package/kit/.constitution/method/{rationale.md → why/rationale.md} +5 -5
- package/kit/.constitution/project/README.md +68 -68
- package/kit/.constitution/project/constitution.md +64 -0
- package/kit/assets/bmad-custom/bmad-advanced-elicitation.toml +15 -15
- package/kit/assets/bmad-custom/bmad-architecture.toml +33 -33
- package/kit/assets/bmad-custom/bmad-code-review.toml +13 -13
- package/kit/assets/bmad-custom/bmad-correct-course.toml +28 -28
- package/kit/assets/bmad-custom/bmad-prd.toml +42 -42
- package/kit/assets/bmad-custom/bmad-product-brief.toml +34 -34
- package/kit/assets/bmad-custom/bmad-retrospective.toml +9 -9
- package/kit/assets/bmad-custom/bmad-spec.toml +16 -16
- package/kit/assets/bmad-custom/bmad-ux.toml +19 -19
- package/kit/skills/wdi-blueprint/SKILL.md +203 -203
- 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 +215 -212
- 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 +120 -97
- package/package.json +4 -2
- package/scaffold/.control/questions/blocking.md +1 -1
- 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/model.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/questions.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/srs.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/{scripts → method/scripts}/inventory.py +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,169 +1,73 @@
|
|
|
1
|
-
---
|
|
2
|
-
status: Reference
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
##
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
|
31
|
-
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
`SPEC.md` and story files are **not read by humans**. The human review surface stops at the PRD, `.what/`,
|
|
75
|
-
and `.how/`.
|
|
76
|
-
|
|
77
|
-
## The run, every time after
|
|
78
|
-
|
|
79
|
-
| Situation | Run |
|
|
80
|
-
|---|---|
|
|
81
|
-
| The next component is being taken on | `wdi-init` intent `mode` or `risk` if either needs changing → `wdi-component` → **G4** → `wdi-build` → **G5** |
|
|
82
|
-
| That component is at `mode: catalog` | straight to `wdi-build`. G4 is skipped |
|
|
83
|
-
| A promise changes where a PRD already exists | `wdi-product` intent `update` — never a second PRD for the same area |
|
|
84
|
-
| A new initiative with a different reader | `wdi-product` intent `prd` → `wdi-init` intent `component` if it births components |
|
|
85
|
-
| A small fix touching no `FR`, `UC`, `AD-N`, or domain model | Fast Path: `bmad-build` directly. It **stops and becomes a wave `S`** the moment an `FR` is touched |
|
|
86
|
-
| A bug, a failing test, unexpected behaviour | `wdi-systematic-debugging`, **before** any fix is proposed |
|
|
87
|
-
| A planning assumption turned out void | `wdi-decision` — it wraps `bmad-correct-course`, proposes, and changes nothing itself |
|
|
88
|
-
| An estimate or a task list is needed | `wdi-report` intent `estimate` |
|
|
89
|
-
| You do not know where you are | `wdi-help` |
|
|
90
|
-
|
|
91
|
-
## Fifteen skills
|
|
92
|
-
|
|
93
|
-
Named for the **gate they serve**, so *"which skill do I run"* is answered by *"which gate am I at"*.
|
|
94
|
-
|
|
95
|
-
**Moment-bound** — running them outside their point is wrong:
|
|
96
|
-
|
|
97
|
-
| Skill | Its moment |
|
|
98
|
-
|---|---|
|
|
99
|
-
| `wdi-init` intent `setup` | before G1, once per project |
|
|
100
|
-
| `wdi-problem` | G1 |
|
|
101
|
-
| `wdi-product` | G2 |
|
|
102
|
-
| `wdi-init` intent `component` | tail of G2, and whenever a new PRD births a component |
|
|
103
|
-
| `wdi-blueprint` | G3 |
|
|
104
|
-
| `wdi-component` | G4 |
|
|
105
|
-
| `wdi-build` | G5, one wave per run |
|
|
106
|
-
|
|
107
|
-
**Anytime** — run the moment the trigger appears, without waiting for a gate:
|
|
108
|
-
|
|
109
|
-
| Skill | Its trigger |
|
|
110
|
-
|---|---|
|
|
111
|
-
| `wdi-decision` | A decision worth remembering · a void assumption · an accepted decision to carry into documents |
|
|
112
|
-
| `wdi-question` | Something that cannot be decided now |
|
|
113
|
-
| `wdi-log` | A meeting finished, or a non-technical fact now binds |
|
|
114
|
-
| `wdi-help` | "Where am I, what next" |
|
|
115
|
-
| `wdi-reconcile` | Any time. Read-only — it reports, it never edits |
|
|
116
|
-
| `wdi-review` | Over any document, any time |
|
|
117
|
-
| `wdi-systematic-debugging` | A bug, a failed test, a failed build, unexpected behaviour |
|
|
118
|
-
| `wdi-report` | An estimate at the start · progress periodically · before a client update |
|
|
119
|
-
| `wdi-init` intents `mode` · `risk` · `structure` | Any time |
|
|
120
|
-
| `wdi-ux` | Any time after a PRD exists, if UX is being used |
|
|
121
|
-
|
|
122
|
-
## Who writes what — WDI and BMad
|
|
123
|
-
|
|
124
|
-
| Artifact | Written by | Wrapped in |
|
|
125
|
-
|---|---|---|
|
|
126
|
-
| Product brief | `bmad-product-brief` | `wdi-problem` |
|
|
127
|
-
| PRD | `bmad-prd` | `wdi-product` |
|
|
128
|
-
| UX | `bmad-ux` | `wdi-ux` |
|
|
129
|
-
| Spine + C4 | `bmad-architecture` | `wdi-blueprint` |
|
|
130
|
-
| **UC catalogue · actors · entities · business rules** | **nothing in BMad** | `wdi-blueprint` writes it itself |
|
|
131
|
-
| **SRS and all of `.what/<pc>/`** | **nothing in BMad** | `wdi-component` writes it itself |
|
|
132
|
-
| **SDD and all of `.how/<pc>/`** | **nothing in BMad** | `wdi-component` writes it itself |
|
|
133
|
-
| `SPEC.md` + stories | `bmad-spec` | `wdi-build` |
|
|
134
|
-
| Code | `bmad-build` · `bmad-build-auto` | `wdi-build` |
|
|
135
|
-
| Retrospective | `bmad-retrospective` | `wdi-build` |
|
|
136
|
-
| Document review | `bmad-review` | `wdi-review` |
|
|
137
|
-
| Course correction | `bmad-correct-course` | `wdi-decision` |
|
|
138
|
-
|
|
139
|
-
**The bold rows are why this method exists.** BMad stops at the promise and starts again at the mechanism,
|
|
140
|
-
and every behaviour in between had no author. Three consequences stick to those artifacts and are handled
|
|
141
|
-
deliberately: no `doc_standards` fires a review, no memlog is born on its own, and no template enforces
|
|
142
|
-
itself.
|
|
143
|
-
|
|
144
|
-
## Where things live
|
|
145
|
-
|
|
146
|
-
| The thing in your hand | Its folder |
|
|
147
|
-
|---|---|
|
|
148
|
-
| How we work — a rule, a guide, a template | `.constitution/` |
|
|
149
|
-
| What currently holds — a decision, a question, a registry, a map | `.control/` |
|
|
150
|
-
| What is promised — the brief, a PRD, a use case, a business rule | `.what/` |
|
|
151
|
-
| How it is built — the spine, C4, an inventory, an SDD, a contract | `.how/` |
|
|
152
|
-
| A skill run's working output | `_bmad-output/` |
|
|
153
|
-
| Scratch that empties when the task closes | `.work/` |
|
|
154
|
-
| The application | `src/` · `web/` |
|
|
155
|
-
|
|
156
|
-
The test that settles anything ambiguous: **is this file still correct after its wave has passed?** Yes →
|
|
157
|
-
the corpus. No → `_bmad-output/`. In doubt, `document/corpus-guide.md`.
|
|
158
|
-
|
|
159
|
-
## Model choice
|
|
160
|
-
|
|
161
|
-
| Point | Model |
|
|
162
|
-
|---|---|
|
|
163
|
-
| Decisions — proposing a slicing, wording a `DEC-`, preparing a gate | `opus@high` |
|
|
164
|
-
| Writing, derivation, a review-fix pass | `sonnet@high` |
|
|
165
|
-
| Code review panel | Two different CLI families, and never the family that wrote the code |
|
|
166
|
-
|
|
167
|
-
In a derivation pass, quality comes from the input rather than the model. Running a "find the gap" lens with
|
|
168
|
-
the most careful model produces the most gaps, and each one becomes an open question — a cost nobody sees
|
|
169
|
-
until the question list has stopped being readable.
|
|
1
|
+
---
|
|
2
|
+
status: Reference
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# `.constitution/method/` — index
|
|
6
|
+
|
|
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.
|
|
17
|
+
|
|
18
|
+
Every file here carries a `status:` — Article 4 owns the five values. Only `Accepted` binds;
|
|
19
|
+
`Reference` explains and MUST NOT be cited to reject a change. A template carries no status of its
|
|
20
|
+
own, because its frontmatter belongs to the artifact it produces.
|
|
21
|
+
|
|
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.
|
|
25
|
+
|
|
26
|
+
## `why/` — the explanation, `status: Reference`
|
|
27
|
+
|
|
28
|
+
Never a rule. When it disagrees with a guide, the guide wins and the disagreement is a defect.
|
|
29
|
+
|
|
30
|
+
| File | Opened when |
|
|
31
|
+
|---|---|
|
|
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 |
|
|
36
|
+
|
|
37
|
+
## Cross-domain
|
|
38
|
+
|
|
39
|
+
| File | Loaded when |
|
|
40
|
+
|---|---|
|
|
41
|
+
| [`repo-guide.md`](repo-guide.md) | Adding a file that is neither code nor corpus; the content boundary, `.work/`, cross-repo references |
|
|
42
|
+
| [`language-guide.md`](language-guide.md) | Naming anything — a code identifier, a code file, a document file |
|
|
43
|
+
| [`method-glossary.md`](method-glossary.md) | Unsure what a method term means — layer, wave, Product Component, ID code |
|
|
44
|
+
| [`structure-guide.md`](structure-guide.md) | Writing or checking the two structure maps in `.control/` |
|
|
45
|
+
|
|
46
|
+
## `document/` — document rules
|
|
47
|
+
|
|
48
|
+
| File | Governs |
|
|
49
|
+
|---|---|
|
|
50
|
+
| [`corpus-guide.md`](document/corpus-guide.md) | Where a file lives. Read before the other guides |
|
|
51
|
+
| [`delivery-flow-guide.md`](document/delivery-flow-guide.md) | Five gates, `mode`, `risk_accepted`, the gate checklists, units of work, wave size, Fast Path, the story-closing checklist, change control |
|
|
52
|
+
| [`bmad-guide.md`](document/bmad-guide.md) | How BMad skills are used here; classes A–D, the read-write map, memlog |
|
|
53
|
+
| [`bmad-skill-register.md`](document/bmad-skill-register.md) | The installed BMad skills with the documents each reads and writes |
|
|
54
|
+
| [`brief-guide.md`](document/brief-guide.md) · [`prd-guide.md`](document/prd-guide.md) · [`ux-guide.md`](document/ux-guide.md) | The G1 and G2 artifacts |
|
|
55
|
+
| [`srs-guide.md`](document/srs-guide.md) · [`sdd-guide.md`](document/sdd-guide.md) | The G3 and G4 artifacts, per Product Component |
|
|
56
|
+
| [`architecture-guide.md`](document/architecture-guide.md) | The architecture spine, `AD-N`, C4, and the three inventories |
|
|
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 |
|
|
58
|
+
| [`templates/`](document/templates/) | Templates, one per kind of document; they MUST be copied, and MUST NOT be reproduced from memory |
|
|
59
|
+
|
|
60
|
+
## Code rules — in the room, not here
|
|
61
|
+
|
|
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.
|
|
65
|
+
|
|
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)
|
|
67
|
+
|
|
68
|
+
## `scripts/`
|
|
69
|
+
|
|
70
|
+
`validate.py` — registry gates and the `.control/generated/` generator. `timeline.py` — the time
|
|
71
|
+
dimension from git history. `inventory.py` — derives the three inventories from code and reports the
|
|
72
|
+
difference against the plan; it MUST NOT patch either side into agreement. All three run through
|
|
73
|
+
`uv run`.
|
|
@@ -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
|