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.
Files changed (100) hide show
  1. package/README.md +58 -16
  2. package/bin/wdi-method.js +152 -60
  3. package/kit/.constitution/method/README.md +66 -169
  4. package/kit/.constitution/{constitution.md → method/constitution.md} +10 -56
  5. package/kit/.constitution/{document → method/document}/architecture-guide.md +1 -1
  6. package/kit/.constitution/{document → method/document}/corpus-guide.md +2 -2
  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 +5 -5
  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/model.md +2 -2
  13. package/kit/.constitution/{document → method/document}/templates/questions.md +10 -9
  14. package/kit/.constitution/{document → method/document}/templates/sdd.md +1 -1
  15. package/kit/.constitution/{document → method/document}/templates/srs.md +2 -2
  16. package/kit/.constitution/{document → method/document}/templates/structure-codebase.md +129 -129
  17. package/kit/.constitution/{document → method/document}/templates/structure-document.md +90 -90
  18. package/kit/.constitution/{language-guide.md → method/language-guide.md} +2 -2
  19. package/kit/.constitution/{repo-guide.md → method/repo-guide.md} +16 -3
  20. package/kit/.constitution/{scripts → method/scripts}/inventory.py +102 -100
  21. package/kit/.constitution/{scripts → method/scripts}/timeline.py +665 -665
  22. package/kit/.constitution/{scripts → method/scripts}/validate.py +1599 -1579
  23. package/kit/.constitution/{structure-guide.md → method/structure-guide.md} +3 -3
  24. package/kit/.constitution/method/why/README.md +169 -0
  25. package/kit/.constitution/method/{artifact-map.md → why/artifact-map.md} +5 -5
  26. package/kit/.constitution/method/{rationale.md → why/rationale.md} +5 -5
  27. package/kit/.constitution/project/constitution.md +63 -0
  28. package/kit/assets/bmad-custom/bmad-advanced-elicitation.toml +9 -9
  29. package/kit/assets/bmad-custom/bmad-architecture.toml +33 -31
  30. package/kit/assets/bmad-custom/bmad-build-auto.toml +5 -5
  31. package/kit/assets/bmad-custom/bmad-build.toml +52 -52
  32. package/kit/assets/bmad-custom/bmad-code-review.toml +13 -12
  33. package/kit/assets/bmad-custom/bmad-correct-course.toml +20 -19
  34. package/kit/assets/bmad-custom/bmad-deep-recon.toml +12 -11
  35. package/kit/assets/bmad-custom/bmad-prd.toml +42 -42
  36. package/kit/assets/bmad-custom/bmad-product-brief.toml +18 -18
  37. package/kit/assets/bmad-custom/bmad-retrospective.toml +4 -4
  38. package/kit/assets/bmad-custom/bmad-spec.toml +16 -15
  39. package/kit/assets/bmad-custom/bmad-ux.toml +19 -19
  40. package/kit/assets/bmad-custom/config.toml +3 -3
  41. package/kit/skills/wdi-blueprint/SKILL.md +3 -3
  42. package/kit/skills/wdi-build/SKILL.md +244 -244
  43. package/kit/skills/wdi-component/SKILL.md +1 -1
  44. package/kit/skills/wdi-help/SKILL.md +98 -98
  45. package/kit/skills/wdi-init/SKILL.md +1 -1
  46. package/kit/skills/wdi-problem/SKILL.md +90 -90
  47. package/kit/skills/wdi-product/SKILL.md +127 -127
  48. package/kit/skills/wdi-reconcile/SKILL.md +2 -2
  49. package/kit/skills/wdi-report/SKILL.md +205 -205
  50. package/kit/skills/wdi-systematic-debugging/SKILL.md +193 -193
  51. package/kit/skills/wdi-ux/SKILL.md +145 -145
  52. package/kit-overlay/AGENTS.md +20 -20
  53. package/kit-overlay/README.md +24 -17
  54. package/kit-overlay/constitution.md +10 -56
  55. package/kit-overlay/portability.md +6 -6
  56. package/kit-overlay/repo-guide.md +112 -97
  57. package/package.json +37 -37
  58. package/scaffold/.control/product-glossary.md +21 -21
  59. package/scaffold/.control/project-non-technical-log.md +23 -23
  60. package/scaffold/.control/questions/answered.md +11 -11
  61. package/scaffold/.control/questions/assumptions.md +15 -15
  62. package/scaffold/.control/questions/blocking.md +21 -21
  63. package/scaffold/.control/questions/external.md +11 -11
  64. package/scaffold/.control/registry/components.yaml +21 -21
  65. package/scaffold/.control/registry/defects.yaml +3 -3
  66. package/scaffold/.control/registry/index.yaml +46 -46
  67. package/scaffold/.control/registry/requirements.yaml +15 -15
  68. package/scaffold/.control/registry/risks.yaml +5 -5
  69. package/scaffold/.control/registry/usecases.yaml +6 -6
  70. package/kit/.constitution/README.md +0 -66
  71. /package/kit/.constitution/{document → method/document}/bmad-guide.md +0 -0
  72. /package/kit/.constitution/{document → method/document}/bmad-skill-register.md +0 -0
  73. /package/kit/.constitution/{document → method/document}/brief-guide.md +0 -0
  74. /package/kit/.constitution/{document → method/document}/decision-guide.md +0 -0
  75. /package/kit/.constitution/{document → method/document}/prd-guide.md +0 -0
  76. /package/kit/.constitution/{document → method/document}/srs-guide.md +0 -0
  77. /package/kit/.constitution/{document → method/document}/templates/addendum.md +0 -0
  78. /package/kit/.constitution/{document → method/document}/templates/architecture-spine.md +0 -0
  79. /package/kit/.constitution/{document → method/document}/templates/brief.md +0 -0
  80. /package/kit/.constitution/{document → method/document}/templates/c4.md +0 -0
  81. /package/kit/.constitution/{document → method/document}/templates/contract.md +0 -0
  82. /package/kit/.constitution/{document → method/document}/templates/decision.md +0 -0
  83. /package/kit/.constitution/{document → method/document}/templates/flow.md +0 -0
  84. /package/kit/.constitution/{document → method/document}/templates/integration.md +0 -0
  85. /package/kit/.constitution/{document → method/document}/templates/lc.md +0 -0
  86. /package/kit/.constitution/{document → method/document}/templates/lifecycle.md +0 -0
  87. /package/kit/.constitution/{document → method/document}/templates/meeting.md +0 -0
  88. /package/kit/.constitution/{document → method/document}/templates/oq.md +0 -0
  89. /package/kit/.constitution/{document → method/document}/templates/prd.md +0 -0
  90. /package/kit/.constitution/{document → method/document}/templates/rtr.md +0 -0
  91. /package/kit/.constitution/{document → method/document}/templates/rules.md +0 -0
  92. /package/kit/.constitution/{document → method/document}/templates/scn.md +0 -0
  93. /package/kit/.constitution/{document → method/document}/templates/uc.md +0 -0
  94. /package/kit/.constitution/{document → method/document}/templates/ux.md +0 -0
  95. /package/kit/.constitution/{document → method/document}/ux-guide.md +0 -0
  96. /package/kit/.constitution/{method-glossary.md → method/method-glossary.md} +0 -0
  97. /package/kit/.constitution/method/{portability.md → why/portability.md} +0 -0
  98. /package/kit/.constitution/{codebase/brownfield-guide.md → project/codebase-brownfield-guide.md} +0 -0
  99. /package/kit/.constitution/{codebase/conventions-guide.md → project/codebase-conventions-guide.md} +0 -0
  100. /package/kit/.constitution/{codebase/stack-guide.md → project/codebase-stack-guide.md} +0 -0
@@ -88,7 +88,7 @@ Flows **into and out of** each boundary MUST be stated, not just the boundary. A
88
88
  direction of call is a name, not a design.
89
89
 
90
90
  Flow diagrams in `06-flows/` are written only for a flow touching money, irreversible state, or a third
91
- party. The lane order is the project's to fix, once, in `codebase/conventions-guide.md`. **The `No-op` lane
91
+ party. The lane order is the project's to fix, once, in `../../project/codebase-conventions-guide.md`. **The `No-op` lane
92
92
  rule is repealed** — it was a heavy convention for a folder that had never carried a file, and it belongs to
93
93
  how a diagram is drawn rather than to what binds.
94
94
 
@@ -53,17 +53,17 @@ updated: '{YYYY-MM-DD}'
53
53
  one component depends on it. corpus-guide.md owns that test, and it refuses the one use people
54
54
  reach for: "the owner is hard to decide".
55
55
 
56
- `Jenis` is data · endpoint · job · screen, and the list is open. What is not open is the test.
56
+ `Kind` is data · endpoint · job · screen, and the list is open. What is not open is the test.
57
57
 
58
58
  `_platform` has no `FR`, so there is no owner-FR for another component to point at. What replaces
59
59
  "one writer" is ONE DOCUMENTED SHAPE — stated here, once. A component that wants it different is
60
60
  proposing a change to this file, not making a local choice. -->
61
61
 
62
- | Apa | Jenis | Kenapa tidak ada komponen yang menjelaskannya | Siapa yang menyentuhnya | Bentuk yang setiap penyentuh patuhi |
62
+ | What | Kind | Why no component explains it | Who touches it | The shape every toucher obeys |
63
63
  | --- | --- | --- | --- | --- |
64
64
 
65
- <!-- `Siapa yang menyentuhnya` menyebut komponen, dan menyebut lebih dari satu adalah keadaan NORMAL —
66
- itu separuh alasan barisnya ada di sini. Satu penyentuh adalah sinyal ia milik komponen itu. -->
65
+ <!-- `Who touches it` names components, and naming more than one is a NORMAL state that is half the
66
+ reason the row is here. A single toucher is a signal it belongs to that component instead. -->
67
67
 
68
68
  ## Other product-level agreements
69
69
 
@@ -72,7 +72,7 @@ updated: '{YYYY-MM-DD}'
72
72
  idempotency key convention · logging fields · rate-limit response shape.
73
73
 
74
74
  Each MUST state where it is enforced. An agreement nothing enforces is a preference, and
75
- preferences belong in codebase/conventions-guide.md where nothing has to justify itself. -->
75
+ preferences belong in ../../../project/codebase-conventions-guide.md where nothing has to justify itself. -->
76
76
 
77
77
  ### {agreement}
78
78
 
@@ -1,67 +1,67 @@
1
- ---
2
- type: design-system
3
- scope: _platform
4
- status: draft # draft · reviewed · locked · superseded
5
- created: '{YYYY-MM-DD}'
6
- updated: '{YYYY-MM-DD}'
7
- ---
8
-
9
- # Design System — {product}
10
-
11
- <!-- TEMPLATE GUIDE — act on these comments, then delete them.
12
-
13
- Home: .how/_platform/design-system.md. Written by wdi-ux, and it is the ONE file in _platform/
14
- that wdi-blueprint does not own. Optional, like the rest of UX: it exists when the interface is
15
- a substantial part of what the PRD promises.
16
-
17
- WHY IT IS NOT IN A COMPONENT: tokens and base elements cross Product Components by definition. A
18
- colour scale living in one component's 01-ux/ is a colour scale the other six will each redefine.
19
-
20
- WHY ux.md DOES NOT SERVE IT: ux.md is the shape of DESIGN.md and EXPERIENCE.md, which are per
21
- component. This is the third file, at product level, and it had no template at all.
22
-
23
- THE CODE IS THE SSOT FOR VALUES. Where this repo's web side states a token in tokens.css, this
24
- file MUST reference it rather than repeat the value. Two homes for one hex code is two hex codes
25
- within a month. Read web/README.md before writing anything here — it is the authority for the
26
- web side, and it MUST NOT be contradicted from this file.
27
-
28
- Token and element NAMES are English: they are machine-facing keys, per language-guide.md. -->
29
-
30
- ## Where the values actually live
31
-
32
- <!-- One line per source of truth — the stylesheet, the config, the generated file — with its path.
33
- This section is what stops the rest of the document becoming a stale copy. -->
34
-
35
- ## Tokens
36
-
37
- <!-- One table per scale. Name, what it is for, and where it resolves. NOT the raw value, unless this
38
- file is genuinely the only place it exists. -->
39
-
40
- | Token | For | Resolves in |
41
- | --- | --- | --- |
42
-
43
- ## Base elements
44
-
45
- <!-- The LC type `ui-element`, registered in components.yaml. One row each: what it is, its states,
46
- and where its implementation lives. A composite reused across screens is `ui-composite` and
47
- belongs in .how/<pc>/01-ux/, not here. -->
48
-
49
- | Element | States it MUST support | Implementation |
50
- | --- | --- | --- |
51
-
52
- <!-- Every element MUST state its empty, loading, error, and disabled states where they apply. The
53
- populated state is the one that always gets designed; the others are the ones that ship broken. -->
54
-
55
- ## Rules that bind every screen
56
-
57
- <!-- Only what a screen cannot legitimately override. Each MUST state what it prevents — a rule with
58
- no failure behind it is a preference, and preferences go to codebase/conventions-guide.md.
59
-
60
- A rule here that also holds for non-UI code is an AD-N and belongs in the spine instead. -->
61
-
62
- | Rule | Prevents |
63
- | --- | --- |
64
-
65
- ## What this system deliberately does not cover
66
-
67
- <!-- Where a component is free to choose for itself. Absent, every local choice reads as a violation. -->
1
+ ---
2
+ type: design-system
3
+ scope: _platform
4
+ status: draft # draft · reviewed · locked · superseded
5
+ created: '{YYYY-MM-DD}'
6
+ updated: '{YYYY-MM-DD}'
7
+ ---
8
+
9
+ # Design System — {product}
10
+
11
+ <!-- TEMPLATE GUIDE — act on these comments, then delete them.
12
+
13
+ Home: .how/_platform/design-system.md. Written by wdi-ux, and it is the ONE file in _platform/
14
+ that wdi-blueprint does not own. Optional, like the rest of UX: it exists when the interface is
15
+ a substantial part of what the PRD promises.
16
+
17
+ WHY IT IS NOT IN A COMPONENT: tokens and base elements cross Product Components by definition. A
18
+ colour scale living in one component's 01-ux/ is a colour scale the other six will each redefine.
19
+
20
+ WHY ux.md DOES NOT SERVE IT: ux.md is the shape of DESIGN.md and EXPERIENCE.md, which are per
21
+ component. This is the third file, at product level, and it had no template at all.
22
+
23
+ THE CODE IS THE SSOT FOR VALUES. Where this repo's web side states a token in tokens.css, this
24
+ file MUST reference it rather than repeat the value. Two homes for one hex code is two hex codes
25
+ within a month. Read web/README.md before writing anything here — it is the authority for the
26
+ web side, and it MUST NOT be contradicted from this file.
27
+
28
+ Token and element NAMES are English: they are machine-facing keys, per language-guide.md. -->
29
+
30
+ ## Where the values actually live
31
+
32
+ <!-- One line per source of truth — the stylesheet, the config, the generated file — with its path.
33
+ This section is what stops the rest of the document becoming a stale copy. -->
34
+
35
+ ## Tokens
36
+
37
+ <!-- One table per scale. Name, what it is for, and where it resolves. NOT the raw value, unless this
38
+ file is genuinely the only place it exists. -->
39
+
40
+ | Token | For | Resolves in |
41
+ | --- | --- | --- |
42
+
43
+ ## Base elements
44
+
45
+ <!-- The LC type `ui-element`, registered in components.yaml. One row each: what it is, its states,
46
+ and where its implementation lives. A composite reused across screens is `ui-composite` and
47
+ belongs in .how/<pc>/01-ux/, not here. -->
48
+
49
+ | Element | States it MUST support | Implementation |
50
+ | --- | --- | --- |
51
+
52
+ <!-- Every element MUST state its empty, loading, error, and disabled states where they apply. The
53
+ populated state is the one that always gets designed; the others are the ones that ship broken. -->
54
+
55
+ ## Rules that bind every screen
56
+
57
+ <!-- Only what a screen cannot legitimately override. Each MUST state what it prevents — a rule with
58
+ no failure behind it is a preference, and preferences go to ../../../project/codebase-conventions-guide.md.
59
+
60
+ A rule here that also holds for non-UI code is an AD-N and belongs in the spine instead. -->
61
+
62
+ | Rule | Prevents |
63
+ | --- | --- |
64
+
65
+ ## What this system deliberately does not cover
66
+
67
+ <!-- Where a component is free to choose for itself. Absent, every local choice reads as a violation. -->
@@ -1,69 +1,69 @@
1
- ---
2
- type: inventory
3
- kind: db # db · api · screen · endpoint — decides the row shape below
4
- scope: _platform # `_platform` for the three product-level inventories; `{pc}` for kind: endpoint
5
- status: draft # draft · reviewed · locked · superseded
6
- created: '{YYYY-MM-DD}'
7
- updated: '{YYYY-MM-DD}'
8
- derived_from: plan # plan · code — see the TEMPLATE GUIDE
9
- verified: '' # commit SHA the derivation was read at; required when derived_from: code
10
- ---
11
-
12
- # Inventory — {tables | endpoints | screens | endpoints of {pc}}
13
-
14
- <!-- TEMPLATE GUIDE — act on these comments, then delete them.
15
-
16
- ONE template, four kinds. Only the row shape differs; the rules are the same for all four.
17
-
18
- kind: db -> .how/_platform/inventory-db.md
19
- kind: api -> .how/_platform/inventory-api.md
20
- kind: screen -> .how/_platform/inventory-screen.md
21
- kind: endpoint-> .how/<pc>/02-contracts/00-inventory.md, at mode: deep only
22
-
23
- The first three are BLUEPRINT output, born at G3 by wdi-blueprint intent `platform`. They exist
24
- at every `mode`, including catalog, and they are what makes catalog usable at all: the use case
25
- list plus these three plus C4 is the whole record a builder gets there.
26
-
27
- THE NUMBER IS STABLE. A new row takes the next `No`, never a renumber. Renumbering renames every
28
- file after it and breaks every link pointing at them. A removed row keeps its number and its
29
- status becomes `removed`; the number MUST NOT be reused.
30
-
31
- TWO WAYS THIS FILE COMES TO EXIST, and derived_from says which:
32
- plan no code yet. Written as intent — the tables, endpoints, or screens planned. Nothing can
33
- be derived, because there is no source.
34
- code code exists. Derived by .constitution/scripts/inventory.py — migrations for tables,
35
- route registration for endpoints, pages for screens — and THEN compared with the plan.
36
- The difference is a FINDING, reported. It MUST NOT be patched into agreement by hand.
37
-
38
- MUST NOT be assembled from a README, from a route name that looks plausible, or from memory. -->
39
-
40
- ## Rows
41
-
42
- <!-- kind: db -->
43
-
44
- | No | Table | Owning component | What it holds | Key columns | Status |
45
- | --- | --- | --- | --- | --- | --- |
46
-
47
- <!-- kind: api — keep this block and delete the others
48
- | No | Method | Path | Owning component | Description | Status |
49
- | --- | --- | --- | --- | --- | --- |
50
- -->
51
-
52
- <!-- kind: screen
53
- | No | Screen | Route | Owning component | Actor | UC served |
54
- | --- | --- | --- | --- | --- | --- |
55
- -->
56
-
57
- <!-- kind: endpoint
58
- | No | Method | Path | Spec file | Status |
59
- | --- | --- | --- | --- | --- |
60
- -->
61
-
62
- <!-- Status values: draft · published · deprecated · removed. A row with no status reads as
63
- published, which is the one reading that is never safe. -->
64
-
65
- ## Findings
66
-
67
- <!-- Only when derived_from: code. Each difference between the plan and what the code actually does,
68
- one line each, with which side is being reported — not which side was changed. Nothing here is
69
- resolved by editing the other side; a finding routes to the skill that owns it. -->
1
+ ---
2
+ type: inventory
3
+ kind: db # db · api · screen · endpoint — decides the row shape below
4
+ scope: _platform # `_platform` for the three product-level inventories; `{pc}` for kind: endpoint
5
+ status: draft # draft · reviewed · locked · superseded
6
+ created: '{YYYY-MM-DD}'
7
+ updated: '{YYYY-MM-DD}'
8
+ derived_from: plan # plan · code — see the TEMPLATE GUIDE
9
+ verified: '' # commit SHA the derivation was read at; required when derived_from: code
10
+ ---
11
+
12
+ # Inventory — {tables | endpoints | screens | endpoints of {pc}}
13
+
14
+ <!-- TEMPLATE GUIDE — act on these comments, then delete them.
15
+
16
+ ONE template, four kinds. Only the row shape differs; the rules are the same for all four.
17
+
18
+ kind: db -> .how/_platform/inventory-db.md
19
+ kind: api -> .how/_platform/inventory-api.md
20
+ kind: screen -> .how/_platform/inventory-screen.md
21
+ kind: endpoint-> .how/<pc>/02-contracts/00-inventory.md, at mode: deep only
22
+
23
+ The first three are BLUEPRINT output, born at G3 by wdi-blueprint intent `platform`. They exist
24
+ at every `mode`, including catalog, and they are what makes catalog usable at all: the use case
25
+ list plus these three plus C4 is the whole record a builder gets there.
26
+
27
+ THE NUMBER IS STABLE. A new row takes the next `No`, never a renumber. Renumbering renames every
28
+ file after it and breaks every link pointing at them. A removed row keeps its number and its
29
+ status becomes `removed`; the number MUST NOT be reused.
30
+
31
+ TWO WAYS THIS FILE COMES TO EXIST, and derived_from says which:
32
+ plan no code yet. Written as intent — the tables, endpoints, or screens planned. Nothing can
33
+ be derived, because there is no source.
34
+ code code exists. Derived by .constitution/method/scripts/inventory.py — migrations for tables,
35
+ route registration for endpoints, pages for screens — and THEN compared with the plan.
36
+ The difference is a FINDING, reported. It MUST NOT be patched into agreement by hand.
37
+
38
+ MUST NOT be assembled from a README, from a route name that looks plausible, or from memory. -->
39
+
40
+ ## Rows
41
+
42
+ <!-- kind: db -->
43
+
44
+ | No | Table | Owning component | What it holds | Key columns | Status |
45
+ | --- | --- | --- | --- | --- | --- |
46
+
47
+ <!-- kind: api — keep this block and delete the others
48
+ | No | Method | Path | Owning component | Description | Status |
49
+ | --- | --- | --- | --- | --- | --- |
50
+ -->
51
+
52
+ <!-- kind: screen
53
+ | No | Screen | Route | Owning component | Actor | UC served |
54
+ | --- | --- | --- | --- | --- | --- |
55
+ -->
56
+
57
+ <!-- kind: endpoint
58
+ | No | Method | Path | Spec file | Status |
59
+ | --- | --- | --- | --- | --- |
60
+ -->
61
+
62
+ <!-- Status values: draft · published · deprecated · removed. A row with no status reads as
63
+ published, which is the one reading that is never safe. -->
64
+
65
+ ## Findings
66
+
67
+ <!-- Only when derived_from: code. Each difference between the plan and what the code actually does,
68
+ one line each, with which side is being reported — not which side was changed. Nothing here is
69
+ resolved by editing the other side; a finding routes to the skill that owns it. -->
@@ -32,8 +32,8 @@ updated: '{YYYY-MM-DD}'
32
32
 
33
33
  ## Relationships
34
34
 
35
- <!-- Direction and cardinality. State them as sentences a person would say: "satu member punya nol
36
- atau satu sponsor". -->
35
+ <!-- Direction and cardinality. State them as sentences a person would say: "one member has zero
36
+ or one sponsor". -->
37
37
 
38
38
  ## State Lifecycle
39
39
 
@@ -6,7 +6,7 @@ created: '{YYYY-MM-DD}'
6
6
  updated: '{YYYY-MM-DD}'
7
7
  ---
8
8
 
9
- # {Pertanyaan yang Memblokir | Asumsi | Menunggu Pihak Luar | Terjawab}
9
+ # {Blocking Questions | Assumptions | Waiting on an Outside Party | Answered}
10
10
 
11
11
  <!-- TEMPLATE GUIDE — act on these comments, then delete them.
12
12
 
@@ -30,8 +30,9 @@ updated: '{YYYY-MM-DD}'
30
30
  A ROW MOVES BETWEEN FILES WHEN ITS CLASS CHANGES, and it MUST NOT be copied into a second one.
31
31
 
32
32
  Ids stay OQ-, allocated from the highest ever used including closed ones. An id MUST NOT be
33
- reused. The literal values inside the tables stay Bahasa Indonesia [BELUM DITETAPKAN] and the
34
- rest wherever they appear, including inside an English template. -->
33
+ reused. The prose inside the tables follows the product's `doc_language`; a machine-facing
34
+ marker such as `[NEEDS CONFIRMATION]` stays English wherever it appears — `language-guide.md`
35
+ owns that split. -->
35
36
 
36
37
  ## The class test
37
38
 
@@ -47,26 +48,26 @@ updated: '{YYYY-MM-DD}'
47
48
 
48
49
  A question MUST NOT be filed as blocking "to be safe". That habit is what produced 146 ids. -->
49
50
 
50
- ## Terbuka
51
+ ## Open
51
52
 
52
53
  <!-- list: blocking · external -->
53
54
 
54
- | id | Pertanyaan | Memblokir | Owner | Sebelum |
55
+ | id | Question | Blocks | Owner | Before |
55
56
  |---|---|---|---|---|
56
57
 
57
58
  <!-- list: assumptions — keep this shape instead
58
- | id | Asumsi | Akibat kalau salah | Diambil | Oleh |
59
- |---|---|---|---|---|
59
+ | id | Assumption | Cost if wrong | Taken | By |
60
+ |---|---|---|---|---|---|
60
61
  -->
61
62
 
62
63
  <!-- An empty list is a legitimate state and MUST be written as one, with the date and one line
63
64
  saying why. An empty table with no sentence reads as an unfinished file. -->
64
65
 
65
- ## Terjawab
66
+ ## Answered
66
67
 
67
68
  <!-- list: answered only.
68
69
 
69
- | id | Pertanyaan | Jawaban | Tanggal | Oleh |
70
+ | id | Question | Answer | Date | By |
70
71
 
71
72
  The answer is written beside the question, not in place of it. The record of what was once
72
73
  uncertain is what stops the same question being asked again in three months.
@@ -137,7 +137,7 @@ reviewed: # V13. Diisi hanya setelah bmad-review benar-benar dija
137
137
  alone does not say what a column means. LC type store
138
138
  06-flows/ [deep]. Sequence diagrams ONLY for flows involving money, irreversible state, or
139
139
  a third party. Lane order is fixed once for the project in
140
- codebase/conventions-guide.md; the No-op lane rule is REPEALED
140
+ ../../../project/codebase-conventions-guide.md; the No-op lane rule is REPEALED
141
141
 
142
142
  supplements/ is REPEALED along with the ANX- concept it existed for. -->
143
143
 
@@ -66,7 +66,7 @@ reviewed: # V13. Diisi hanya setelah bmad-review benar-benar dija
66
66
 
67
67
  | id | Use case | Actor | Satisfies | critical |
68
68
  | --- | --- | --- | --- | --- |
69
- | UC-{n} | {a sentence a user would say} | {from the Actor Register} | {FR-n} | tidak |
69
+ | UC-{n} | {a sentence a user would say} | {from the Actor Register} | {FR-n} | no |
70
70
 
71
71
  ## Constraints · [G3]
72
72
 
@@ -106,7 +106,7 @@ reviewed: # V13. Diisi hanya setelah bmad-review benar-benar dija
106
106
 
107
107
  ## Gate Checklist · [G3]
108
108
 
109
- <!-- The gate questions as they apply to THIS component, answered ya / tidak / ubah. The full list
109
+ <!-- The gate questions as they apply to THIS component, answered yes / no / change. The full list
110
110
  lives in delivery-flow-guide.md and MUST NOT be copied here. At mode: catalog only the starred
111
111
  questions are asked. -->
112
112