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
@@ -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.