@afokapu/atdd-bun 0.10.32 → 0.10.34

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.
@@ -0,0 +1,219 @@
1
+ schema_version: "1.0.0"
2
+ profile: "design"
3
+ implementations:
4
+ - "bun_design_system_detector"
5
+ - "bun_responsive_detector"
6
+ conventions:
7
+ - rule_id: "coder.bun.design-connected"
8
+ path: "conventions/coder.bun/coder.bun.design-connected.convention.yaml"
9
+ - rule_id: "coder.bun.design-dependency-flow"
10
+ path: "conventions/coder.bun/coder.bun.design-dependency-flow.convention.yaml"
11
+ - rule_id: "coder.bun.design-orphan-export"
12
+ path: "conventions/coder.bun/coder.bun.design-orphan-export.convention.yaml"
13
+ - rule_id: "coder.bun.design-primitives"
14
+ path: "conventions/coder.bun/coder.bun.design-primitives.convention.yaml"
15
+ - rule_id: "coder.bun.design-token-color"
16
+ path: "conventions/coder.bun/coder.bun.design-token-color.convention.yaml"
17
+ - rule_id: "coder.bun.design-token-hardcoded"
18
+ path: "conventions/coder.bun/coder.bun.design-token-hardcoded.convention.yaml"
19
+ - rule_id: "coder.bun.design-tokens-pure"
20
+ path: "conventions/coder.bun/coder.bun.design-tokens-pure.convention.yaml"
21
+ - rule_id: "coder.bun.design-wagons-import"
22
+ path: "conventions/coder.bun/coder.bun.design-wagons-import.convention.yaml"
23
+ - rule_id: "coder.bun.responsive-breakpoints-declared"
24
+ path: "conventions/coder.bun/coder.bun.responsive-breakpoints-declared.convention.yaml"
25
+ - rule_id: "coder.bun.responsive-no-fixed-width"
26
+ path: "conventions/coder.bun/coder.bun.responsive-no-fixed-width.convention.yaml"
27
+ - rule_id: "coder.bun.responsive-viewport-meta"
28
+ path: "conventions/coder.bun/coder.bun.responsive-viewport-meta.convention.yaml"
29
+ relationships:
30
+ - confidence: 1
31
+ constraint: "mandatory"
32
+ control: "internal"
33
+ foundation: "start_to_start"
34
+ origin: "@afokapu/atdd-bun"
35
+ reason: "a rendering component must use the design system, and render its controls through primitives"
36
+ source_ref: "coder.bun.design-connected"
37
+ strength: "important"
38
+ target_ref: "coder.bun.design-primitives"
39
+ type: "runs_alongside"
40
+ - confidence: 1
41
+ constraint: "mandatory"
42
+ control: "internal"
43
+ foundation: "finish_to_start"
44
+ origin: "@afokapu/atdd-bun"
45
+ reason: "Bun realization of the core obligation coder.design.orphan-ui, checked over .tsx, .jsx, .html and .css"
46
+ source_ref: "coder.bun.design-connected"
47
+ strength: "important"
48
+ target_ref: "coder.design.orphan-ui"
49
+ type: "requires"
50
+ - confidence: 1
51
+ constraint: "mandatory"
52
+ control: "internal"
53
+ foundation: "start_to_start"
54
+ origin: "@afokapu/atdd-bun"
55
+ reason: "code layering and design-system layering: both require dependencies to point in one direction"
56
+ source_ref: "coder.bun.design-dependency-flow"
57
+ strength: "important"
58
+ target_ref: "coder.bun.design-hierarchy-import"
59
+ type: "runs_alongside"
60
+ - confidence: 1
61
+ constraint: "mandatory"
62
+ control: "internal"
63
+ foundation: "start_to_start"
64
+ origin: "@afokapu/atdd-bun"
65
+ reason: "two halves of coder.design.hierarchy-import: imports flow down the layers, and never out into app code"
66
+ source_ref: "coder.bun.design-dependency-flow"
67
+ strength: "critical"
68
+ target_ref: "coder.bun.design-wagons-import"
69
+ type: "runs_alongside"
70
+ - confidence: 1
71
+ constraint: "mandatory"
72
+ control: "internal"
73
+ foundation: "finish_to_start"
74
+ origin: "@afokapu/atdd-bun"
75
+ reason: "Bun realization of the core obligation coder.design.hierarchy-import, checked over .tsx, .jsx, .html and .css"
76
+ source_ref: "coder.bun.design-dependency-flow"
77
+ strength: "important"
78
+ target_ref: "coder.design.hierarchy-import"
79
+ type: "requires"
80
+ - confidence: 1
81
+ constraint: "mandatory"
82
+ control: "internal"
83
+ foundation: "finish_to_start"
84
+ origin: "@afokapu/atdd-bun"
85
+ reason: "Bun realization of the core obligation coder.design.orphan-export, checked over .tsx, .jsx, .html and .css"
86
+ source_ref: "coder.bun.design-orphan-export"
87
+ strength: "important"
88
+ target_ref: "coder.design.orphan-export"
89
+ type: "requires"
90
+ - confidence: 1
91
+ constraint: "mandatory"
92
+ control: "internal"
93
+ foundation: "finish_to_start"
94
+ origin: "@afokapu/atdd-bun"
95
+ reason: "Bun realization of the core obligation coder.design.primitives, checked over .tsx, .jsx, .html and .css"
96
+ source_ref: "coder.bun.design-primitives"
97
+ strength: "important"
98
+ target_ref: "coder.design.primitives"
99
+ type: "requires"
100
+ - confidence: 1
101
+ constraint: "mandatory"
102
+ control: "internal"
103
+ foundation: "start_to_start"
104
+ origin: "@afokapu/atdd-bun"
105
+ reason: "colors, and spacing, radii and durations: together, every visual value outside the tokens layer comes from tokens"
106
+ source_ref: "coder.bun.design-token-color"
107
+ strength: "important"
108
+ target_ref: "coder.bun.design-token-hardcoded"
109
+ type: "runs_alongside"
110
+ - confidence: 1
111
+ constraint: "mandatory"
112
+ control: "internal"
113
+ foundation: "finish_to_start"
114
+ origin: "@afokapu/atdd-bun"
115
+ reason: "colors can only be referenced from tokens once the tokens layer holds pure values"
116
+ source_ref: "coder.bun.design-token-color"
117
+ strength: "important"
118
+ target_ref: "coder.bun.design-tokens-pure"
119
+ type: "requires"
120
+ - confidence: 1
121
+ constraint: "mandatory"
122
+ control: "internal"
123
+ foundation: "finish_to_start"
124
+ origin: "@afokapu/atdd-bun"
125
+ reason: "Bun realization of the core obligation coder.design.token-color, checked over .tsx, .jsx, .html and .css"
126
+ source_ref: "coder.bun.design-token-color"
127
+ strength: "important"
128
+ target_ref: "coder.design.token-color"
129
+ type: "requires"
130
+ - confidence: 1
131
+ constraint: "mandatory"
132
+ control: "internal"
133
+ foundation: "finish_to_start"
134
+ origin: "@afokapu/atdd-bun"
135
+ reason: "Bun realization of the core obligation coder.design.token-hardcoded, checked over .tsx, .jsx, .html and .css"
136
+ source_ref: "coder.bun.design-token-hardcoded"
137
+ strength: "important"
138
+ target_ref: "coder.design.token-hardcoded"
139
+ type: "requires"
140
+ - confidence: 1
141
+ constraint: "mandatory"
142
+ control: "internal"
143
+ foundation: "finish_to_start"
144
+ origin: "@afokapu/atdd-bun"
145
+ reason: "Bun realization of the core obligation coder.design.foundations, checked over .tsx, .jsx, .html and .css"
146
+ source_ref: "coder.bun.design-tokens-pure"
147
+ strength: "important"
148
+ target_ref: "coder.design.foundations"
149
+ type: "requires"
150
+ - confidence: 1
151
+ constraint: "mandatory"
152
+ control: "internal"
153
+ foundation: "finish_to_start"
154
+ origin: "@afokapu/atdd-bun"
155
+ reason: "Bun realization of the core obligation coder.design.hierarchy-import, checked over .tsx, .jsx, .html and .css"
156
+ source_ref: "coder.bun.design-wagons-import"
157
+ strength: "important"
158
+ target_ref: "coder.design.hierarchy-import"
159
+ type: "requires"
160
+ - confidence: 1
161
+ constraint: "mandatory"
162
+ control: "internal"
163
+ foundation: "start_to_start"
164
+ origin: "@afokapu/atdd-bun"
165
+ reason: "breakpoints are declared once like tokens, because media queries cannot read custom properties"
166
+ source_ref: "coder.bun.responsive-breakpoints-declared"
167
+ strength: "important"
168
+ target_ref: "coder.bun.design-token-hardcoded"
169
+ type: "runs_alongside"
170
+ - confidence: 1
171
+ constraint: "mandatory"
172
+ control: "internal"
173
+ foundation: "start_to_start"
174
+ origin: "@afokapu/atdd-bun"
175
+ reason: "what a layout may be wide, and where it may switch: together, a layout that adapts at the declared widths"
176
+ source_ref: "coder.bun.responsive-no-fixed-width"
177
+ strength: "important"
178
+ target_ref: "coder.bun.responsive-breakpoints-declared"
179
+ type: "runs_alongside"
180
+ - confidence: 1
181
+ constraint: "mandatory"
182
+ control: "internal"
183
+ foundation: "finish_to_start"
184
+ origin: "@afokapu/atdd-bun"
185
+ reason: "widths only mean device widths once the document declares a device-width viewport"
186
+ source_ref: "coder.bun.responsive-viewport-meta"
187
+ strength: "critical"
188
+ target_ref: "coder.bun.responsive-no-fixed-width"
189
+ type: "enables"
190
+ - confidence: 1
191
+ constraint: "mandatory"
192
+ control: "internal"
193
+ foundation: "start_to_start"
194
+ origin: "@afokapu/atdd-bun"
195
+ reason: "a viewport that blocks zoom is an accessibility failure as well as a responsive one"
196
+ source_ref: "coder.bun.responsive-viewport-meta"
197
+ strength: "important"
198
+ target_ref: "tester.htmx.a11y-harness"
199
+ type: "runs_alongside"
200
+ - confidence: 1
201
+ constraint: "mandatory"
202
+ control: "internal"
203
+ foundation: "start_to_start"
204
+ origin: "@afokapu/atdd-bun"
205
+ reason: "the static cause and the rendered proof of horizontal overflow"
206
+ source_ref: "tester.htmx.responsive-harness"
207
+ strength: "important"
208
+ target_ref: "coder.bun.responsive-no-fixed-width"
209
+ type: "runs_alongside"
210
+ - confidence: 1
211
+ constraint: "mandatory"
212
+ control: "internal"
213
+ foundation: "finish_to_start"
214
+ origin: "@afokapu/atdd-bun"
215
+ reason: "a browser can only prove a page fits a phone once the page declares a device-width viewport"
216
+ source_ref: "tester.htmx.responsive-harness"
217
+ strength: "critical"
218
+ target_ref: "coder.bun.responsive-viewport-meta"
219
+ type: "requires"
@@ -0,0 +1,136 @@
1
+ schema_version: "1.0.0"
2
+ profile: "docs"
3
+ implementations:
4
+ - "planner_docs_capability"
5
+ conventions:
6
+ - rule_id: "planner.docs.adr-registry-derived"
7
+ path: "conventions/planner.docs/planner.docs.adr-registry-derived.convention.yaml"
8
+ - rule_id: "planner.docs.area-index-required"
9
+ path: "conventions/planner.docs/planner.docs.area-index-required.convention.yaml"
10
+ - rule_id: "planner.docs.artifact-path-shape"
11
+ path: "conventions/planner.docs/planner.docs.artifact-path-shape.convention.yaml"
12
+ - rule_id: "planner.docs.asciidoc-only"
13
+ path: "conventions/planner.docs/planner.docs.asciidoc-only.convention.yaml"
14
+ - rule_id: "planner.docs.doc-id-unique"
15
+ path: "conventions/planner.docs/planner.docs.doc-id-unique.convention.yaml"
16
+ - rule_id: "planner.docs.graph-target-resolves"
17
+ path: "conventions/planner.docs/planner.docs.graph-target-resolves.convention.yaml"
18
+ - rule_id: "planner.docs.identity-required"
19
+ path: "conventions/planner.docs/planner.docs.identity-required.convention.yaml"
20
+ - rule_id: "planner.docs.journey-view-current"
21
+ path: "conventions/planner.docs/planner.docs.journey-view-current.convention.yaml"
22
+ - rule_id: "planner.docs.reference-integrity"
23
+ path: "conventions/planner.docs/planner.docs.reference-integrity.convention.yaml"
24
+ - rule_id: "planner.docs.undeclared-change"
25
+ path: "conventions/planner.docs/planner.docs.undeclared-change.convention.yaml"
26
+ relationships:
27
+ - confidence: 1
28
+ constraint: "mandatory"
29
+ control: "internal"
30
+ foundation: "finish_to_start"
31
+ origin: "atdd-extensions@3aa141e:official/atdd.extension.planner.docs/relationships.yaml"
32
+ reason: "The registry is a projection of :decides: edges, so it is only as trustworthy as edge resolution. An ADR deciding an undeclared node is reported by the resolver, never listed in the registry."
33
+ source_ref: "planner.docs.adr-registry-derived"
34
+ strength: "important"
35
+ target_ref: "planner.docs.graph-target-resolves"
36
+ type: "requires"
37
+ - confidence: 1
38
+ constraint: "discretionary"
39
+ control: "internal"
40
+ foundation: "start_to_start"
41
+ origin: "atdd-extensions@3aa141e:official/atdd.extension.planner.docs/relationships.yaml"
42
+ reason: "Both are canonical-tree shape rules read from the same scan of docs/: one governs what an area contains, the other what format its files are in."
43
+ source_ref: "planner.docs.area-index-required"
44
+ strength: "minor"
45
+ target_ref: "planner.docs.asciidoc-only"
46
+ type: "runs_alongside"
47
+ - confidence: 1
48
+ constraint: "mandatory"
49
+ control: "internal"
50
+ foundation: "finish_to_start"
51
+ origin: "atdd-extensions@3aa141e:official/atdd.extension.planner.docs/relationships.yaml"
52
+ reason: "Uniqueness compares ids that were actually declared; a document with no doc-id is reported by identity-required and never counted as a collision here."
53
+ source_ref: "planner.docs.doc-id-unique"
54
+ strength: "critical"
55
+ target_ref: "planner.docs.identity-required"
56
+ type: "requires"
57
+ - confidence: 1
58
+ constraint: "mandatory"
59
+ control: "internal"
60
+ foundation: "finish_to_start"
61
+ origin: "atdd-extensions@3aa141e:official/atdd.extension.planner.docs/relationships.yaml"
62
+ reason: "Resolution needs exactly one target per id. Under a duplicate, :supersedes: cannot say which document it means, so uniqueness must hold before an edge can be said to resolve."
63
+ source_ref: "planner.docs.graph-target-resolves"
64
+ strength: "critical"
65
+ target_ref: "planner.docs.doc-id-unique"
66
+ type: "requires"
67
+ - confidence: 1
68
+ constraint: "mandatory"
69
+ control: "internal"
70
+ foundation: "finish_to_start"
71
+ origin: "atdd-extensions@3aa141e:official/atdd.extension.planner.docs/relationships.yaml"
72
+ reason: "The declared-id set is built from :doc-id: attributes BEFORE any edge is resolved. This edge is the no-fabrication discipline expressed as an ordering: without the set first, the resolver would have to invent what it resolves against."
73
+ source_ref: "planner.docs.graph-target-resolves"
74
+ strength: "critical"
75
+ target_ref: "planner.docs.identity-required"
76
+ type: "requires"
77
+ - confidence: 1
78
+ constraint: "mandatory"
79
+ control: "internal"
80
+ foundation: "finish_to_start"
81
+ origin: "atdd-extensions@3aa141e:official/atdd.extension.planner.docs/relationships.yaml"
82
+ reason: "A doc-id lives in an AsciiDoc attribute. A markdown document has nowhere to declare one, so format uniformity is the precondition for identity."
83
+ source_ref: "planner.docs.identity-required"
84
+ strength: "critical"
85
+ target_ref: "planner.docs.asciidoc-only"
86
+ type: "requires"
87
+ - confidence: 1
88
+ constraint: "mandatory"
89
+ control: "internal"
90
+ foundation: "finish_to_start"
91
+ origin: "@afokapu/atdd-bun"
92
+ reason: "the generated page is a document like any other and must carry its doc-id and status"
93
+ source_ref: "planner.docs.journey-view-current"
94
+ strength: "important"
95
+ target_ref: "planner.docs.identity-required"
96
+ type: "requires"
97
+ - confidence: 1
98
+ constraint: "mandatory"
99
+ control: "internal"
100
+ foundation: "start_to_start"
101
+ origin: "@afokapu/atdd-bun"
102
+ reason: "both keep the rendered documentation truthful: one that references resolve, the other that the drawn journeys are the planned ones"
103
+ source_ref: "planner.docs.journey-view-current"
104
+ strength: "important"
105
+ target_ref: "planner.docs.reference-integrity"
106
+ type: "runs_alongside"
107
+ - confidence: 1
108
+ constraint: "mandatory"
109
+ control: "internal"
110
+ foundation: "finish_to_start"
111
+ origin: "@afokapu/atdd-bun"
112
+ reason: "the journey view is rendered from the journey topology the plan declares"
113
+ source_ref: "planner.docs.journey-view-current"
114
+ strength: "critical"
115
+ target_ref: "planner.journey.definition"
116
+ type: "requires"
117
+ - confidence: 1
118
+ constraint: "mandatory"
119
+ control: "internal"
120
+ foundation: "finish_to_start"
121
+ origin: "atdd-extensions@3aa141e:official/atdd.extension.planner.docs/relationships.yaml"
122
+ reason: "asciidoctor renders the authored corpus. A markdown file under docs/ is not an input the renderer can resolve references through, so the format rule bounds what reference-integrity can even see."
123
+ source_ref: "planner.docs.reference-integrity"
124
+ strength: "important"
125
+ target_ref: "planner.docs.asciidoc-only"
126
+ type: "requires"
127
+ - confidence: 1
128
+ constraint: "mandatory"
129
+ control: "internal"
130
+ foundation: "start_to_start"
131
+ origin: "atdd-extensions@3aa141e:official/atdd.extension.planner.docs/relationships.yaml"
132
+ reason: "The two halves of the declaration check: one asks whether a declared path is SHAPED like documentation, the other whether a documentation change was declared at all. Together they close the loop core opens; neither alone does."
133
+ source_ref: "planner.docs.undeclared-change"
134
+ strength: "critical"
135
+ target_ref: "planner.docs.artifact-path-shape"
136
+ type: "runs_alongside"