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.
Files changed (87) hide show
  1. package/README.md +271 -252
  2. package/bin/wdi-method.js +1221 -1030
  3. package/kit/.constitution/method/README.md +73 -169
  4. package/kit/.constitution/{constitution.md → method/constitution.md} +10 -56
  5. package/kit/.constitution/{document → method/document}/architecture-guide.md +209 -209
  6. package/kit/.constitution/{document → method/document}/corpus-guide.md +4 -4
  7. package/kit/.constitution/{document → method/document}/delivery-flow-guide.md +338 -338
  8. package/kit/.constitution/{document → method/document}/sdd-guide.md +1 -1
  9. package/kit/.constitution/{document → method/document}/templates/cross-cutting.md +2 -2
  10. package/kit/.constitution/{document → method/document}/templates/design-system.md +67 -67
  11. package/kit/.constitution/{document → method/document}/templates/inventory.md +69 -69
  12. package/kit/.constitution/{document → method/document}/templates/sdd.md +1 -1
  13. package/kit/.constitution/{document → method/document}/templates/structure-codebase.md +129 -129
  14. package/kit/.constitution/{document → method/document}/templates/structure-document.md +90 -90
  15. package/kit/.constitution/{language-guide.md → method/language-guide.md} +2 -2
  16. package/kit/.constitution/{method-glossary.md → method/method-glossary.md} +169 -169
  17. package/kit/.constitution/{repo-guide.md → method/repo-guide.md} +120 -97
  18. package/kit/.constitution/method/scripts/__pycache__/validate.cpython-314.pyc +0 -0
  19. package/kit/.constitution/{scripts → method/scripts}/timeline.py +2 -2
  20. package/kit/.constitution/{scripts → method/scripts}/validate.py +1648 -1581
  21. package/kit/.constitution/{structure-guide.md → method/structure-guide.md} +3 -3
  22. package/kit/.constitution/method/why/README.md +169 -0
  23. package/kit/.constitution/method/{artifact-map.md → why/artifact-map.md} +5 -5
  24. package/kit/.constitution/method/{portability.md → why/portability.md} +6 -6
  25. package/kit/.constitution/method/{rationale.md → why/rationale.md} +5 -5
  26. package/kit/.constitution/project/README.md +68 -68
  27. package/kit/.constitution/project/constitution.md +64 -0
  28. package/kit/assets/bmad-custom/bmad-advanced-elicitation.toml +15 -15
  29. package/kit/assets/bmad-custom/bmad-architecture.toml +33 -33
  30. package/kit/assets/bmad-custom/bmad-code-review.toml +13 -13
  31. package/kit/assets/bmad-custom/bmad-correct-course.toml +28 -28
  32. package/kit/assets/bmad-custom/bmad-prd.toml +42 -42
  33. package/kit/assets/bmad-custom/bmad-product-brief.toml +34 -34
  34. package/kit/assets/bmad-custom/bmad-retrospective.toml +9 -9
  35. package/kit/assets/bmad-custom/bmad-spec.toml +16 -16
  36. package/kit/assets/bmad-custom/bmad-ux.toml +19 -19
  37. package/kit/skills/wdi-blueprint/SKILL.md +203 -203
  38. package/kit/skills/wdi-build/SKILL.md +244 -244
  39. package/kit/skills/wdi-component/SKILL.md +1 -1
  40. package/kit/skills/wdi-help/SKILL.md +98 -98
  41. package/kit/skills/wdi-init/SKILL.md +1 -1
  42. package/kit/skills/wdi-problem/SKILL.md +90 -90
  43. package/kit/skills/wdi-product/SKILL.md +127 -127
  44. package/kit/skills/wdi-reconcile/SKILL.md +2 -2
  45. package/kit/skills/wdi-report/SKILL.md +205 -205
  46. package/kit/skills/wdi-systematic-debugging/SKILL.md +193 -193
  47. package/kit/skills/wdi-ux/SKILL.md +145 -145
  48. package/kit-overlay/AGENTS.md +215 -212
  49. package/kit-overlay/README.md +24 -17
  50. package/kit-overlay/constitution.md +10 -56
  51. package/kit-overlay/portability.md +6 -6
  52. package/kit-overlay/repo-guide.md +120 -97
  53. package/package.json +4 -2
  54. package/scaffold/.control/questions/blocking.md +1 -1
  55. package/kit/.constitution/README.md +0 -66
  56. /package/kit/.constitution/{document → method/document}/bmad-guide.md +0 -0
  57. /package/kit/.constitution/{document → method/document}/bmad-skill-register.md +0 -0
  58. /package/kit/.constitution/{document → method/document}/brief-guide.md +0 -0
  59. /package/kit/.constitution/{document → method/document}/decision-guide.md +0 -0
  60. /package/kit/.constitution/{document → method/document}/prd-guide.md +0 -0
  61. /package/kit/.constitution/{document → method/document}/srs-guide.md +0 -0
  62. /package/kit/.constitution/{document → method/document}/templates/addendum.md +0 -0
  63. /package/kit/.constitution/{document → method/document}/templates/architecture-spine.md +0 -0
  64. /package/kit/.constitution/{document → method/document}/templates/brief.md +0 -0
  65. /package/kit/.constitution/{document → method/document}/templates/c4.md +0 -0
  66. /package/kit/.constitution/{document → method/document}/templates/contract.md +0 -0
  67. /package/kit/.constitution/{document → method/document}/templates/decision.md +0 -0
  68. /package/kit/.constitution/{document → method/document}/templates/flow.md +0 -0
  69. /package/kit/.constitution/{document → method/document}/templates/integration.md +0 -0
  70. /package/kit/.constitution/{document → method/document}/templates/lc.md +0 -0
  71. /package/kit/.constitution/{document → method/document}/templates/lifecycle.md +0 -0
  72. /package/kit/.constitution/{document → method/document}/templates/meeting.md +0 -0
  73. /package/kit/.constitution/{document → method/document}/templates/model.md +0 -0
  74. /package/kit/.constitution/{document → method/document}/templates/oq.md +0 -0
  75. /package/kit/.constitution/{document → method/document}/templates/prd.md +0 -0
  76. /package/kit/.constitution/{document → method/document}/templates/questions.md +0 -0
  77. /package/kit/.constitution/{document → method/document}/templates/rtr.md +0 -0
  78. /package/kit/.constitution/{document → method/document}/templates/rules.md +0 -0
  79. /package/kit/.constitution/{document → method/document}/templates/scn.md +0 -0
  80. /package/kit/.constitution/{document → method/document}/templates/srs.md +0 -0
  81. /package/kit/.constitution/{document → method/document}/templates/uc.md +0 -0
  82. /package/kit/.constitution/{document → method/document}/templates/ux.md +0 -0
  83. /package/kit/.constitution/{document → method/document}/ux-guide.md +0 -0
  84. /package/kit/.constitution/{scripts → method/scripts}/inventory.py +0 -0
  85. /package/kit/.constitution/{codebase/brownfield-guide.md → project/codebase-brownfield-guide.md} +0 -0
  86. /package/kit/.constitution/{codebase/conventions-guide.md → project/codebase-conventions-guide.md} +0 -0
  87. /package/kit/.constitution/{codebase/stack-guide.md → project/codebase-stack-guide.md} +0 -0
@@ -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
- | `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 |
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`, `method-glossary.md`, and the three files beside this one — carries without edit.
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/*-guide.md` | Written by the **project**, not the method. They ship as empty `Draft` stubs |
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 `constitution.md` Articles 2 and 5.
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
@@ -1,97 +1,120 @@
1
- ---
2
- status: Accepted
3
- ---
4
-
5
- # Repo Guide
6
-
7
- **Loaded when:** adding a file that is neither code nor corpus, or unsure whether something may be
8
- kept in this repo
9
-
10
- Every other guide answers *where in the corpus does this go*. This one answers the question that
11
- comes before it: **does it belong in this repository at all?**
12
-
13
- ## What this repository is
14
-
15
- One product, built for one owner. It holds what is needed to build and run that product, and
16
- nothing that merely relates to it commercially or organisationally.
17
-
18
- | MAY be here | MUST NOT be here |
19
- |---|---|
20
- | Application code, configuration, migrations, tests | Proposals, contracts, meeting notes with the client |
21
- | The corpus — `.constitution/` `.control/` `.what/` `.how/` | Contract values, pricing strategy, margins, rate cards |
22
- | Technical documentation, ADR, diagrams | Real customer data, production credentials, tokens |
23
- | Synthetic seed data | Anything whose leak would harm a bargaining position |
24
- | Built deliverables | An archive of commercial documents |
25
-
26
- The test is not "is it secret". It is **what changes when this file changes** — a commitment, or how
27
- the thing is built. Only the second belongs here.
28
-
29
- ## Two failure modes, and why the second is worse
30
-
31
- The obvious one is a credential in a commit. It is loud, it is caught, and it has a known remedy.
32
-
33
- The quiet one is a **commercial fact restated as a technical one** — a limit that exists because of
34
- what was negotiated, written into an ADR as though it were an engineering constraint. It survives
35
- every scan, it is never noticed as a leak, and it teaches the next reader that the boundary is
36
- soft.
37
-
38
- When a technical decision genuinely follows from a commercial one, the ADR MUST state the technical
39
- fact and MUST NOT state the commercial one. *"Retention is 90 days"* is a technical fact.
40
- *"Retention is 90 days because the client would not pay for more"* is a commercial one wearing a
41
- technical coat.
42
-
43
- ## `.work/` — scratch that is committed
44
-
45
- `.work/` holds work in progress that has no home yet: notes while reading an unfamiliar system,
46
- drafts, exploratory output, a working paper for a change spanning several sessions.
47
-
48
- It is **committed**, so that a session picked up on another machine finds it, and so a reviewer can
49
- see what a change was actually reasoning about.
50
-
51
- It is **ephemeral**, and the two together are what make its rules matter:
52
-
53
- - Any durable outcome MUST be moved out before the task closes — to the corpus if it is truth, to
54
- `_bmad-output/` if it is a run's byproduct.
55
- - Obsolete scratch MUST be deleted when its task closes. `.work/` that only grows stops being
56
- scratch and becomes a second, unindexed corpus that nobody trusts and nobody deletes.
57
- - Secrets and commercial figures MUST NOT be written here. Being scratch is not an exemption; it is
58
- the reason people assume it is one.
59
- - Nothing MUST be read from `.work/` as authority. If something there is right, it belongs
60
- somewhere with an owner.
61
-
62
- `.work/` MUST NOT be confused with `_bmad-output/`. That folder holds the output of skill runs, is
63
- never curated, and is cited by path. `.work/` holds what a human or agent wrote by hand while
64
- working, and is meant to empty out.
65
-
66
- ## Referring to things outside this repository
67
-
68
- Engagement context — who the client is, what was agreed, what is due — lives elsewhere. This repo
69
- MUST work without it. An agent MUST be able to act on the rules stated here without opening any
70
- other repository.
71
-
72
- When an artifact genuinely needs external context:
73
-
74
- - MUST state the technical fact locally, in full.
75
- - MAY name the external source by **repository and path**, as provenance.
76
- - MUST NOT paste the external content in, and MUST NOT replace a technical statement with a pointer
77
- to a commercial document.
78
-
79
- A pointer where a specification should be is the failure this rule exists to stop: the reader who
80
- cannot open that path is left with nothing, and the reader who can is reading the wrong kind of
81
- document.
82
-
83
- ## How the method arrives
84
-
85
- Method files in `.constitution/` (except this product's Articles 1, 2, and 5, `codebase/*-guide.md`
86
- once `Accepted`, and any extra file this repo added), the `wdi-*` skills, and `_bmad/custom/*.toml`
87
- arrive from the public WDI Method package via `npx wdi-method install` / `update`.
88
-
89
- At **read time** this repo is self-contained: every file the rules need is here, readable with the
90
- repo alone. At **change time** the method has one published writer — the WDI Method package. Two
91
- rules follow:
92
-
93
- - A method file MUST NOT be invented or patched here to improve the method. If a rule is wrong, it
94
- is fixed in the WDI Method package, then brought here with `update`.
95
- - A rule particular to this repo MUST be written out in full, and MUST NOT be replaced by a pointer
96
- into another repository.
97
-
1
+ ---
2
+ status: Accepted
3
+ ---
4
+
5
+ # Repo Guide
6
+
7
+ **Loaded when:** adding a file that is neither code nor corpus, or unsure whether something may be
8
+ kept in this repo
9
+
10
+ Every other guide answers *where in the corpus does this go*. This one answers the question that
11
+ comes before it: **does it belong in this repository at all?**
12
+
13
+ ## What this repository is
14
+
15
+ One product, built for one owner. It holds what is needed to build and run that product, and
16
+ nothing that merely relates to it commercially or organisationally.
17
+
18
+ | MAY be here | MUST NOT be here |
19
+ |---|---|
20
+ | Application code, configuration, migrations, tests | Proposals, contracts, meeting notes with the client |
21
+ | The corpus — `.constitution/` `.control/` `.what/` `.how/` | Contract values, pricing strategy, margins, rate cards |
22
+ | Technical documentation, ADR, diagrams | Real customer data, production credentials, tokens |
23
+ | Synthetic seed data | Anything whose leak would harm a bargaining position |
24
+ | Built deliverables | An archive of commercial documents |
25
+
26
+ The test is not "is it secret". It is **what changes when this file changes** — a commitment, or how
27
+ the thing is built. Only the second belongs here.
28
+
29
+ ## Two failure modes, and why the second is worse
30
+
31
+ The obvious one is a credential in a commit. It is loud, it is caught, and it has a known remedy.
32
+
33
+ The quiet one is a **commercial fact restated as a technical one** — a limit that exists because of
34
+ what was negotiated, written into an ADR as though it were an engineering constraint. It survives
35
+ every scan, it is never noticed as a leak, and it teaches the next reader that the boundary is
36
+ soft.
37
+
38
+ When a technical decision genuinely follows from a commercial one, the ADR MUST state the technical
39
+ fact and MUST NOT state the commercial one. *"Retention is 90 days"* is a technical fact.
40
+ *"Retention is 90 days because the client would not pay for more"* is a commercial one wearing a
41
+ technical coat.
42
+
43
+ ## `.work/` — scratch that is committed
44
+
45
+ `.work/` holds work in progress that has no home yet: notes while reading an unfamiliar system,
46
+ drafts, exploratory output, a working paper for a change spanning several sessions.
47
+
48
+ It is **committed**, so that a session picked up on another machine finds it, and so a reviewer can
49
+ see what a change was actually reasoning about.
50
+
51
+ It is **ephemeral**, and the two together are what make its rules matter:
52
+
53
+ - Any durable outcome MUST be moved out before the task closes — to the corpus if it is truth, to
54
+ `_bmad-output/` if it is a run's byproduct.
55
+ - Obsolete scratch MUST be deleted when its task closes. `.work/` that only grows stops being
56
+ scratch and becomes a second, unindexed corpus that nobody trusts and nobody deletes.
57
+ - Secrets and commercial figures MUST NOT be written here. Being scratch is not an exemption; it is
58
+ the reason people assume it is one.
59
+ - Nothing MUST be read from `.work/` as authority. If something there is right, it belongs
60
+ somewhere with an owner.
61
+
62
+ `.work/` MUST NOT be confused with `_bmad-output/`. That folder holds the output of skill runs, is
63
+ never curated, and is cited by path. `.work/` holds what a human or agent wrote by hand while
64
+ working, and is meant to empty out.
65
+
66
+ ## Referring to things outside this repository
67
+
68
+ Engagement context — who the client is, what was agreed, what is due — lives elsewhere. This repo
69
+ MUST work without it. An agent MUST be able to act on the rules stated here without opening any
70
+ other repository.
71
+
72
+ When an artifact genuinely needs external context:
73
+
74
+ - MUST state the technical fact locally, in full.
75
+ - MAY name the external source by **repository and path**, as provenance.
76
+ - MUST NOT paste the external content in, and MUST NOT replace a technical statement with a pointer
77
+ to a commercial document.
78
+
79
+ A pointer where a specification should be is the failure this rule exists to stop: the reader who
80
+ cannot open that path is left with nothing, and the reader who can is reading the wrong kind of
81
+ document.
82
+
83
+ ## How the method arrives
84
+
85
+ Method files in `.constitution/`, the `wdi-*` skills, and `_bmad/custom/*.toml` arrive from the
86
+ public WDI Method package via `npx wdi-method install` / `update`.
87
+
88
+ `.constitution/` holds **exactly two folders**, and which one a file is in decides who owns it:
89
+
90
+ | Folder | Owner | On `update` | On `promote` |
91
+ |---|---|---|---|
92
+ | `method/` | the method | **overwritten** in full | carried into the package |
93
+ | `project/` | this product | **never touched** seeded once when absent | **never carried**, so a product's rules cannot be published |
94
+
95
+ Everything in the room is yours: `project/constitution.md` (Articles 1, 2, 5),
96
+ `project/codebase-*-guide.md` (stack, conventions, brownfield — protected at **any** `status:`,
97
+ including `Draft`, which is when they are actually written), and any rule file you add.
98
+
99
+ **A file this product adds belongs in `project/`.** `.constitution/` holds two folders and nothing
100
+ else the method knows about, so a loose `.md` at its root is in a state no rule describes: `update`
101
+ leaves it (it is not the method's) and no guide names it. Migration deliberately does NOT move one —
102
+ it may already be pointed at by its current path from `AGENTS.md` or an editor rule the installer
103
+ cannot see — so it prints the filename and leaves the choice to you. Either move it into `project/`
104
+ and fix those pointers, or name it from Article 2 so the next reader knows why it is there. Leaving
105
+ it unnamed is the only wrong answer.
106
+
107
+ The seam is the **folder**, never a marked region inside a generic file. `AGENTS.md` uses a marked
108
+ block because it is one file with no alternative; `.constitution/` has fifty-odd, and blocks inside
109
+ them would make every update perform surgery in every file. Prose has no merge algebra — only a path
110
+ can say, unambiguously, whose a file is.
111
+
112
+ At **read time** this repo is self-contained: every file the rules need is here, readable with the
113
+ repo alone. At **change time** the method has one published writer — the WDI Method package. Two
114
+ rules follow:
115
+
116
+ - A method file MUST NOT be invented or patched here to improve the method. If a rule is wrong, it
117
+ is fixed in the WDI Method package, then brought here with `update`.
118
+ - A rule particular to this repo MUST be written out in full, and MUST NOT be replaced by a pointer
119
+ into another repository.
120
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wdi-method",
3
- "version": "0.4.6",
3
+ "version": "0.5.2",
4
4
  "description": "WDI Method — software delivery method that wraps BMad",
5
5
  "type": "module",
6
6
  "bin": {
@@ -20,7 +20,9 @@
20
20
  },
21
21
  "scripts": {
22
22
  "test": "node --test tests/*.test.mjs",
23
- "prepublishOnly": "node --test tests/*.test.mjs"
23
+ "prepublishOnly": "node --test tests/*.test.mjs",
24
+ "overlay": "node scripts/apply-overlay.mjs",
25
+ "pretest": "node scripts/apply-overlay.mjs"
24
26
  },
25
27
  "dependencies": {
26
28
  "@clack/prompts": "^0.11.0"
@@ -3,7 +3,7 @@
3
3
  **Loaded when:** every gate.
4
4
 
5
5
  Only this file holds a gate. Written through `wdi-question`, never by hand directly; the row shape
6
- lives in `.constitution/document/templates/questions.md`.
6
+ lives in `.constitution/method/document/templates/questions.md`.
7
7
 
8
8
  Target **<=3 rows per Product Component**. A question rises to here only through three tests, one is
9
9
  enough:
@@ -1,66 +0,0 @@
1
- ---
2
- status: Reference
3
- ---
4
-
5
- # `.constitution/` — index
6
-
7
- Method files arrive from the public WDI Method package via `npx wdi-method install`
8
- or `update`. Load [`constitution.md`](constitution.md) before acting. Guides are
9
- loaded **lazily** — only when the task matches, and every guide states when on its
10
- own **Loaded when:** line.
11
-
12
- Every file here carries a `status:` — Article 4 owns the five values. Only `Accepted` binds;
13
- `Reference` explains and MUST NOT be cited to reject a change. A template carries no status of its
14
- own, because its frontmatter belongs to the artifact it produces.
15
-
16
- A file this product added (one that is not in the snapshot) stays here across `update` and MUST be
17
- listed from `constitution.md` Article 2 or from `AGENTS.md` routing — this index is overwritten on
18
- every update.
19
-
20
- ## `method/` — the explanation, `status: Reference`
21
-
22
- Never a rule. When it disagrees with a guide, the guide wins and the disagreement is a defect.
23
-
24
- | File | Opened when |
25
- |---|---|
26
- | [`method/README.md`](method/README.md) | You want the whole shape in five minutes — five gates, two settings, fifteen skills, WDI ↔ BMad |
27
- | [`method/artifact-map.md`](method/artifact-map.md) | "Where does this file go", or "does this document exist at my `mode`" |
28
- | [`method/rationale.md`](method/rationale.md) | Before changing a rule, to know what you would break |
29
- | [`method/portability.md`](method/portability.md) | Which files are the method and which are the product; how promote and install move them |
30
-
31
- ## Cross-domain
32
-
33
- | File | Loaded when |
34
- |---|---|
35
- | [`repo-guide.md`](repo-guide.md) | Adding a file that is neither code nor corpus; the content boundary, `.work/`, cross-repo references |
36
- | [`language-guide.md`](language-guide.md) | Naming anything — a code identifier, a code file, a document file |
37
- | [`method-glossary.md`](method-glossary.md) | Unsure what a method term means — layer, wave, Product Component, ID code |
38
- | [`structure-guide.md`](structure-guide.md) | Writing or checking the two structure maps in `.control/` |
39
-
40
- ## `document/` — document rules
41
-
42
- | File | Governs |
43
- |---|---|
44
- | [`corpus-guide.md`](document/corpus-guide.md) | Where a file lives. Read before the other guides |
45
- | [`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 |
46
- | [`bmad-guide.md`](document/bmad-guide.md) | How BMad skills are used here; classes A–D, the read-write map, memlog |
47
- | [`bmad-skill-register.md`](document/bmad-skill-register.md) | The installed BMad skills with the documents each reads and writes |
48
- | [`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 |
49
- | [`srs-guide.md`](document/srs-guide.md) · [`sdd-guide.md`](document/sdd-guide.md) | The G3 and G4 artifacts, per Product Component |
50
- | [`architecture-guide.md`](document/architecture-guide.md) | The architecture spine, `AD-N`, C4, and the three inventories |
51
- | [`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
- | [`templates/`](document/templates/) | Templates, one per kind of document; they MUST be copied, and MUST NOT be reproduced from memory |
53
-
54
- ## `codebase/` — code rules
55
-
56
- All three are written by the **project**, not the kit. While `Draft`, their contents MAY be read as
57
- guidance but MUST NOT be used to reject a change.
58
-
59
- [`stack-guide.md`](codebase/stack-guide.md) · [`conventions-guide.md`](codebase/conventions-guide.md) · [`brownfield-guide.md`](codebase/brownfield-guide.md)
60
-
61
- ## `scripts/`
62
-
63
- `validate.py` — registry gates and the `.control/generated/` generator. `timeline.py` — the time
64
- dimension from git history. `inventory.py` — derives the three inventories from code and reports the
65
- difference against the plan; it MUST NOT patch either side into agreement. All three run through
66
- `uv run`.