wdi-method 0.5.13 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +436 -271
- package/bin/wdi-method.js +198 -5
- package/kit/.constitution/method/README.md +76 -75
- package/kit/.constitution/method/constitution.md +2 -1
- package/kit/.constitution/method/document/architecture-guide.md +10 -10
- package/kit/.constitution/method/document/bmad-guide.md +50 -16
- package/kit/.constitution/method/document/bmad-skill-register.md +74 -71
- package/kit/.constitution/method/document/brief-guide.md +42 -11
- package/kit/.constitution/method/document/corpus-guide.md +146 -11
- package/kit/.constitution/method/document/decision-guide.md +199 -134
- package/kit/.constitution/method/document/delivery-flow-guide.md +154 -83
- package/kit/.constitution/method/document/prd-guide.md +63 -20
- package/kit/.constitution/method/document/sdd-guide.md +5 -4
- package/kit/.constitution/method/document/srs-guide.md +150 -147
- package/kit/.constitution/method/document/templates/addendum.md +70 -71
- package/kit/.constitution/method/document/templates/architecture-spine.md +6 -4
- package/kit/.constitution/method/document/templates/brief.md +132 -110
- package/kit/.constitution/method/document/templates/c4.md +11 -11
- package/kit/.constitution/method/document/templates/contract.md +51 -52
- package/kit/.constitution/method/document/templates/cross-cutting.md +1 -2
- package/kit/.constitution/method/document/templates/design-system.md +0 -1
- package/kit/.constitution/method/document/templates/integration.md +68 -69
- package/kit/.constitution/method/document/templates/inventory.md +0 -1
- package/kit/.constitution/method/document/templates/lc.md +49 -47
- package/kit/.constitution/method/document/templates/lifecycle.md +51 -52
- package/kit/.constitution/method/document/templates/model.md +68 -55
- package/kit/.constitution/method/document/templates/oq.md +45 -45
- package/kit/.constitution/method/document/templates/prd.md +244 -226
- package/kit/.constitution/method/document/templates/questions.md +100 -76
- package/kit/.constitution/method/document/templates/rules.md +46 -47
- package/kit/.constitution/method/document/templates/sdd.md +26 -11
- package/kit/.constitution/method/document/templates/srs.md +46 -25
- package/kit/.constitution/method/document/templates/uc.md +1 -1
- package/kit/.constitution/method/document/templates/ux.md +76 -77
- package/kit/.constitution/method/document/ux-guide.md +115 -99
- package/kit/.constitution/method/language-guide.md +1 -1
- package/kit/.constitution/method/method-glossary.md +29 -16
- package/kit/.constitution/method/scripts/timeline.py +663 -665
- package/kit/.constitution/method/scripts/validate.py +1143 -362
- package/kit/.constitution/method/structure-guide.md +3 -3
- package/kit/.constitution/method/why/README.md +184 -169
- package/kit/.constitution/method/why/artifact-map.md +15 -13
- package/kit/.constitution/method/why/mode-risk-map.md +140 -0
- package/kit/.constitution/method/why/portability.md +1 -1
- package/kit/.constitution/method/why/rationale.md +12 -5
- package/kit/.constitution/project/README.md +2 -2
- package/kit/.constitution/project/codebase-brownfield-guide.md +18 -18
- package/kit/.constitution/project/codebase-conventions-guide.md +18 -18
- package/kit/.constitution/project/codebase-stack-guide.md +18 -18
- package/kit/assets/bmad-custom/bmad-architecture.toml +1 -1
- package/kit/assets/bmad-custom/bmad-correct-course.toml +5 -5
- package/kit/assets/bmad-custom/bmad-prd.toml +9 -3
- package/kit/assets/bmad-custom/bmad-product-brief.toml +6 -2
- package/kit/skills/wdi-blueprint/SKILL.md +71 -10
- package/kit/skills/wdi-build/SKILL.md +233 -122
- package/kit/skills/wdi-component/SKILL.md +8 -6
- package/kit/skills/wdi-decision/SKILL.md +187 -183
- package/kit/skills/wdi-help/SKILL.md +8 -7
- package/kit/skills/wdi-init/SKILL.md +20 -6
- package/kit/skills/wdi-problem/SKILL.md +31 -13
- package/kit/skills/wdi-product/SKILL.md +30 -17
- package/kit/skills/wdi-question/SKILL.md +170 -88
- package/kit/skills/wdi-reconcile/SKILL.md +33 -10
- package/kit/skills/wdi-report/SKILL.md +77 -25
- package/kit/skills/wdi-review/SKILL.md +201 -118
- package/kit/skills/wdi-systematic-debugging/SKILL.md +7 -7
- package/kit/skills/wdi-upgrade/SKILL.md +179 -0
- package/kit/skills/wdi-ux/SKILL.md +35 -11
- package/kit-overlay/AGENTS.md +2 -2
- package/kit-overlay/README.md +76 -75
- package/kit-overlay/constitution.md +2 -1
- package/kit-overlay/portability.md +1 -1
- package/package.json +43 -43
- package/scaffold/.control/product-glossary.md +1 -1
- package/scaffold/.control/registry/goals.yaml +25 -0
- package/scaffold/.control/registry/index.yaml +5 -5
- package/scaffold/.control/registry/specs.yaml +5 -0
- package/scaffold/.control/structure-codebase.md +19 -19
- package/scaffold/.control/structure-document.md +25 -25
- package/kit/.constitution/method/document/templates/rtr.md +0 -61
- package/kit/assets/bmad-custom/bmad-build-auto.toml +0 -10
- package/kit/assets/bmad-custom/bmad-build.toml +0 -52
- package/kit/assets/bmad-custom/bmad-code-review.toml +0 -13
- package/kit/assets/bmad-custom/bmad-retrospective.toml +0 -9
- package/kit/assets/bmad-custom/bmad-spec.toml +0 -16
- package/scaffold/.control/registry/requirements.yaml +0 -15
- package/scaffold/.control/registry/waves.yaml +0 -5
|
@@ -1,47 +1,49 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: lc
|
|
3
|
-
id: LC-{NNN} # allocated from .control/registry/components.yaml
|
|
4
|
-
name: '{name}'
|
|
5
|
-
lc_type: service # ui-screen · ui-composite · ui-element · gateway · service · job · store
|
|
6
|
-
container: '{container}' # the runnable/deployable unit it lives in
|
|
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
|
-
|
|
1
|
+
---
|
|
2
|
+
type: lc
|
|
3
|
+
id: LC-{NNN} # allocated from .control/registry/components.yaml
|
|
4
|
+
name: '{name}'
|
|
5
|
+
lc_type: service # ui-screen · ui-composite · ui-element · gateway · service · job · store
|
|
6
|
+
container: '{container}' # the runnable/deployable unit it lives in. EMPTY is legal only for a
|
|
7
|
+
# screen born at G2 before containers exist; G3 fills it. `container-built` demands it as
|
|
8
|
+
# soon as this LC's Product Component lists containers
|
|
9
|
+
component: '{pc}' # the Product Component it belongs to
|
|
10
|
+
owner: '{team or person}'
|
|
11
|
+
area: '{area}'
|
|
12
|
+
created: '{YYYY-MM-DD}'
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# LC-{NNN} — {name}
|
|
16
|
+
|
|
17
|
+
<!-- TEMPLATE GUIDE — act on these comments, then delete them.
|
|
18
|
+
|
|
19
|
+
A Logical Component is ONE addressable unit of build. It is not a Product Component: a PC is a
|
|
20
|
+
domain slice and the box at C4 L3; an LC is something you can point at and change.
|
|
21
|
+
|
|
22
|
+
`lc_type` decides where this prose lives, and the mapping is not negotiable:
|
|
23
|
+
ui-screen · ui-composite → .how/<pc>/01-ux/
|
|
24
|
+
ui-element → .how/_platform/design-system.md
|
|
25
|
+
gateway → .how/<pc>/02-contracts/ or 03-integrations/
|
|
26
|
+
service · job → .how/<pc>/04-components/
|
|
27
|
+
store → .how/<pc>/05-model/
|
|
28
|
+
|
|
29
|
+
An LC MUST be registered by the time its spec CLOSES — `lc-registered` checks that
|
|
30
|
+
every `touches` entry resolves. -->
|
|
31
|
+
|
|
32
|
+
## Responsibility
|
|
33
|
+
|
|
34
|
+
<!-- One paragraph. What this unit is answerable for. If it needs "and" more than once, it is
|
|
35
|
+
probably two units. -->
|
|
36
|
+
|
|
37
|
+
## Depends on
|
|
38
|
+
|
|
39
|
+
<!-- Other LC ids, and the direction. Dependency direction is a rule carried by the spine, not a
|
|
40
|
+
preference — a dependency pointing the wrong way is a conflict to surface, not to document. -->
|
|
41
|
+
|
|
42
|
+
## Interface
|
|
43
|
+
|
|
44
|
+
<!-- What it exposes to the rest of the system. For a gateway this points at the contract in
|
|
45
|
+
02-contracts/ rather than restating it. -->
|
|
46
|
+
|
|
47
|
+
## Notes
|
|
48
|
+
|
|
49
|
+
<!-- Anything a builder cannot read off the code. Cut if there is nothing. -->
|
|
@@ -1,52 +1,51 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: lifecycle
|
|
3
|
-
component: '{pc}'
|
|
4
|
-
status: draft # draft · reviewed · locked · superseded
|
|
5
|
-
created: '{YYYY-MM-DD}'
|
|
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
|
-
until the schema is cleaned, it has no label, no transition, and no meaning. -->
|
|
1
|
+
---
|
|
2
|
+
type: lifecycle
|
|
3
|
+
component: '{pc}'
|
|
4
|
+
status: draft # draft · reviewed · locked · superseded
|
|
5
|
+
created: '{YYYY-MM-DD}'
|
|
6
|
+
entities: [] # the domain entities whose lifecycles this file carries
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# State Lifecycle — {Product Component}
|
|
10
|
+
|
|
11
|
+
<!-- TEMPLATE GUIDE — act on these comments, then delete them.
|
|
12
|
+
|
|
13
|
+
Home: .what/<pc>/03-domain/state-machines.md. Written at G4, at mode: deep ONLY. Below deep it
|
|
14
|
+
MUST NOT be written to fill a slot.
|
|
15
|
+
|
|
16
|
+
One section per entity that has more than one state. An entity with a single state has no
|
|
17
|
+
lifecycle and MUST NOT get a section.
|
|
18
|
+
|
|
19
|
+
WHY THIS HAS ITS OWN TEMPLATE: a transition table does not resemble an ERD, so it cannot be
|
|
20
|
+
lodged inside model.md. What it needs stated — who may move a thing, and what makes a state
|
|
21
|
+
terminal — has no column in an entity diagram.
|
|
22
|
+
|
|
23
|
+
THIS IS BEHAVIOUR, NOT SCHEMA. The state VALUES are English, because they are enum values and
|
|
24
|
+
language-guide.md governs that. Their LABELS — what a user reads — are not written here; they
|
|
25
|
+
belong to the screen. A value rendered straight to the screen is the known pitfall this repo
|
|
26
|
+
already records.
|
|
27
|
+
|
|
28
|
+
G3 asks whether there is a state that can be entered but not left. This file is where that is
|
|
29
|
+
answered, and an unreachable or inescapable state is a FINDING, not a documented fact. -->
|
|
30
|
+
|
|
31
|
+
## {Entity}
|
|
32
|
+
|
|
33
|
+
**States:** `{value}` · `{value}` · `{value}`
|
|
34
|
+
**Initial:** `{value}` — and what creates it
|
|
35
|
+
**Terminal:** `{value}` · `{value}` — and why nothing leaves them
|
|
36
|
+
|
|
37
|
+
| From | To | Trigger | Who may | Guard | Side effect |
|
|
38
|
+
| --- | --- | --- | --- | --- | --- |
|
|
39
|
+
|
|
40
|
+
<!-- `Who may` names an actor from the SRS Actor Register, or `System` for an automatic transition.
|
|
41
|
+
`Guard` is the business rule that has to hold — cite the BR- id rather than restating it.
|
|
42
|
+
`Side effect` is what else changes; a transition with an invisible side effect is the one that
|
|
43
|
+
surprises someone while the code is being written.
|
|
44
|
+
|
|
45
|
+
Every state in the list above MUST appear at least once as a `To`, except the initial one, and
|
|
46
|
+
at least once as a `From`, except a terminal one. That is the check, and it is mechanical. -->
|
|
47
|
+
|
|
48
|
+
### What is deliberately not modelled
|
|
49
|
+
|
|
50
|
+
<!-- A state someone will look for and not find, and why. A schema value nothing uses — say so:
|
|
51
|
+
until the schema is cleaned, it has no label, no transition, and no meaning. -->
|
|
@@ -1,55 +1,68 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: model
|
|
3
|
-
component: '{pc}'
|
|
4
|
-
layer: physical # conceptual (.what/<pc>/03-domain/) · physical (.how/<pc>/05-model/)
|
|
5
|
-
created: '{YYYY-MM-DD}'
|
|
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
|
-
for
|
|
1
|
+
---
|
|
2
|
+
type: model
|
|
3
|
+
component: '{pc}'
|
|
4
|
+
layer: physical # conceptual (.what/<pc>/03-domain/) · physical (.how/<pc>/05-model/)
|
|
5
|
+
created: '{YYYY-MM-DD}'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Model — {name}
|
|
9
|
+
|
|
10
|
+
<!-- TEMPLATE GUIDE — act on these comments, then delete them.
|
|
11
|
+
|
|
12
|
+
THE LAYER RULE, and it is the one most often broken:
|
|
13
|
+
|
|
14
|
+
conceptual — .what/<pc>/03-domain/ — things, their relationships, their cardinality, and the
|
|
15
|
+
states they move through. Column types MUST NOT appear. This is what the
|
|
16
|
+
Product Owner can read.
|
|
17
|
+
|
|
18
|
+
physical — .how/<pc>/05-model/ — tables, columns, types, indexes, constraints, migrations.
|
|
19
|
+
|
|
20
|
+
Set `layer` in the frontmatter and keep to it. A conceptual model with `VARCHAR(255)` in it has
|
|
21
|
+
already become a physical one, and the Product Owner has quietly lost the ability to review
|
|
22
|
+
the domain. -->
|
|
23
|
+
|
|
24
|
+
## Entities
|
|
25
|
+
|
|
26
|
+
<!-- One row per thing. For a conceptual model the description is what it IS to the business, not
|
|
27
|
+
how it is stored.
|
|
28
|
+
|
|
29
|
+
`Code name` closes the loop this table used to leave open. The conceptual model is written for
|
|
30
|
+
the Product Owner, so its Entity column carries the word the BUSINESS uses — which is not always
|
|
31
|
+
the identifier code must use. Naming both, in one row, is what stops an agent inventing a third
|
|
32
|
+
word. `../language-guide.md` owns which language the code name is written in, and the one
|
|
33
|
+
exception for an Indonesian administrative or legal noun.
|
|
34
|
+
|
|
35
|
+
`Never called` is the synonym that was rejected, kept on purpose. A term resolved silently comes
|
|
36
|
+
back: the losing word is still in somebody's head, in an old document, and in the client's
|
|
37
|
+
email. Naming it here is what makes reintroducing it a finding instead of a habit. Leave the
|
|
38
|
+
cell empty when no synonym ever competed — an invented one is noise.
|
|
39
|
+
|
|
40
|
+
Every row's definition MUST live in `.control/product-glossary.md`, not here. This table points;
|
|
41
|
+
the glossary defines. -->
|
|
42
|
+
|
|
43
|
+
| Entity | What it is | Identified by | Code name | Never called |
|
|
44
|
+
| --- | --- | --- | --- | --- |
|
|
45
|
+
|
|
46
|
+
## Relationships
|
|
47
|
+
|
|
48
|
+
<!-- Direction and cardinality. State them as sentences a person would say: "one member has zero
|
|
49
|
+
or one sponsor". -->
|
|
50
|
+
|
|
51
|
+
## State Lifecycle
|
|
52
|
+
|
|
53
|
+
<!-- For entities that change status: which states exist, what triggers each transition, and who is
|
|
54
|
+
allowed to trigger it. G3 asks whether any state can be entered but not left — that question is
|
|
55
|
+
answered here or not at all. Cut this section for entities that never change status. -->
|
|
56
|
+
|
|
57
|
+
| From | To | Trigger | Who may |
|
|
58
|
+
| --- | --- | --- | --- |
|
|
59
|
+
|
|
60
|
+
## Invariants
|
|
61
|
+
|
|
62
|
+
<!-- What MUST always be true regardless of path taken. These usually become BR- entries and
|
|
63
|
+
database constraints at the same time; state them once here and reference from both. -->
|
|
64
|
+
|
|
65
|
+
## Physical notes
|
|
66
|
+
|
|
67
|
+
<!-- ONLY when layer: physical. Indexes, partitioning, retention, migration ordering. Cut entirely
|
|
68
|
+
for a conceptual model. -->
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: oq
|
|
3
|
-
id: OQ-{n}
|
|
4
|
-
component: '{pc}' # or `_platform`
|
|
5
|
-
blocks: [] # gate, FR, UC, or
|
|
6
|
-
owner: '{who can answer}'
|
|
7
|
-
by_when: '{gate or date}'
|
|
8
|
-
status: open # open · answered
|
|
9
|
-
created: '{YYYY-MM-DD}'
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# OQ-{n} — {the question, as one answerable sentence}
|
|
13
|
-
|
|
14
|
-
<!-- TEMPLATE GUIDE — act on these comments, then delete them.
|
|
15
|
-
|
|
16
|
-
Most open questions need only a line in one of the four lists in .control/questions/. This file
|
|
17
|
-
exists for the
|
|
18
|
-
few whose discussion outgrows one line; the list then keeps a one-line pointer here.
|
|
19
|
-
|
|
20
|
-
The title MUST be answerable. "How should referrals work?" is a topic, not a question. -->
|
|
21
|
-
|
|
22
|
-
## Why it is open
|
|
23
|
-
|
|
24
|
-
<!-- What makes this undecidable right now — missing information, a stakeholder who has not
|
|
25
|
-
answered, a dependency that has not landed. -->
|
|
26
|
-
|
|
27
|
-
## What it blocks
|
|
28
|
-
|
|
29
|
-
<!-- Concretely. If it blocks nothing, say so — a question that blocks nothing MAY still be
|
|
30
|
-
registered, but mixing blockers with curiosities makes the list useless exactly when it
|
|
31
|
-
matters. -->
|
|
32
|
-
|
|
33
|
-
## Options considered
|
|
34
|
-
|
|
35
|
-
<!-- Only if any exist. A proposed answer for the owner to confirm is useful; recording it as
|
|
36
|
-
settled is not. -->
|
|
37
|
-
|
|
38
|
-
## Answer
|
|
39
|
-
|
|
40
|
-
<!-- Filled when it closes, WITH the date and who answered. The entry is closed in place and MUST
|
|
41
|
-
NOT be deleted — the record of what was once uncertain is what stops it being reopened in three
|
|
42
|
-
months.
|
|
43
|
-
|
|
44
|
-
If the answer amounts to a decision that is expensive to reverse, closing here is not enough:
|
|
45
|
-
route it to wdi-decision so a DEC- carries what was chosen and what it cost. -->
|
|
1
|
+
---
|
|
2
|
+
type: oq
|
|
3
|
+
id: OQ-{n}
|
|
4
|
+
component: '{pc}' # or `_platform`
|
|
5
|
+
blocks: [] # gate, FR, UC, or ticket ids — empty means it blocks nothing
|
|
6
|
+
owner: '{who can answer}'
|
|
7
|
+
by_when: '{gate or date}'
|
|
8
|
+
status: open # open · answered
|
|
9
|
+
created: '{YYYY-MM-DD}'
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# OQ-{n} — {the question, as one answerable sentence}
|
|
13
|
+
|
|
14
|
+
<!-- TEMPLATE GUIDE — act on these comments, then delete them.
|
|
15
|
+
|
|
16
|
+
Most open questions need only a line in one of the four lists in .control/questions/. This file
|
|
17
|
+
exists for the
|
|
18
|
+
few whose discussion outgrows one line; the list then keeps a one-line pointer here.
|
|
19
|
+
|
|
20
|
+
The title MUST be answerable. "How should referrals work?" is a topic, not a question. -->
|
|
21
|
+
|
|
22
|
+
## Why it is open
|
|
23
|
+
|
|
24
|
+
<!-- What makes this undecidable right now — missing information, a stakeholder who has not
|
|
25
|
+
answered, a dependency that has not landed. -->
|
|
26
|
+
|
|
27
|
+
## What it blocks
|
|
28
|
+
|
|
29
|
+
<!-- Concretely. If it blocks nothing, say so — a question that blocks nothing MAY still be
|
|
30
|
+
registered, but mixing blockers with curiosities makes the list useless exactly when it
|
|
31
|
+
matters. -->
|
|
32
|
+
|
|
33
|
+
## Options considered
|
|
34
|
+
|
|
35
|
+
<!-- Only if any exist. A proposed answer for the owner to confirm is useful; recording it as
|
|
36
|
+
settled is not. -->
|
|
37
|
+
|
|
38
|
+
## Answer
|
|
39
|
+
|
|
40
|
+
<!-- Filled when it closes, WITH the date and who answered. The entry is closed in place and MUST
|
|
41
|
+
NOT be deleted — the record of what was once uncertain is what stops it being reopened in three
|
|
42
|
+
months.
|
|
43
|
+
|
|
44
|
+
If the answer amounts to a decision that is expensive to reverse, closing here is not enough:
|
|
45
|
+
route it to wdi-decision so a DEC- carries what was chosen and what it cost. -->
|