@afokapu/atdd-bun 0.4.0 → 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.
Files changed (209) hide show
  1. package/README.md +85 -3
  2. package/conventions/coder.bun/coder.bun.complexity-cyclomatic.convention.yaml +1 -3
  3. package/conventions/coder.bun/coder.bun.complexity-length.convention.yaml +1 -2
  4. package/conventions/coder.bun/coder.bun.complexity-nesting.convention.yaml +1 -2
  5. package/conventions/coder.bun/coder.bun.dead-code-reachability.convention.yaml +1 -2
  6. package/conventions/coder.bun/coder.bun.design-token-color.convention.yaml +1 -1
  7. package/conventions/coder.bun/coder.bun.design-token-hardcoded.convention.yaml +1 -1
  8. package/conventions/coder.bun/coder.bun.dto-mapper.convention.yaml +2 -1
  9. package/conventions/coder.bun/coder.bun.dto-placement.convention.yaml +2 -1
  10. package/conventions/coder.bun/coder.bun.dto-purity.convention.yaml +2 -1
  11. package/conventions/coder.bun/coder.bun.duplication-intra-layer.convention.yaml +1 -2
  12. package/conventions/coder.bun/coder.bun.green-header-order.convention.yaml +2 -11
  13. package/conventions/coder.bun/coder.bun.green-header-purpose.convention.yaml +2 -11
  14. package/conventions/coder.bun/coder.bun.green-header-runtime.convention.yaml +2 -11
  15. package/conventions/coder.bun/coder.bun.green-header-tested-by.convention.yaml +2 -11
  16. package/conventions/coder.bun/coder.bun.green-urn-layer.convention.yaml +2 -11
  17. package/conventions/coder.bun/coder.bun.green-urn-marker.convention.yaml +2 -12
  18. package/conventions/coder.bun/coder.bun.green-urn-name-matches.convention.yaml +3 -12
  19. package/conventions/coder.bun/coder.bun.green-urn-pattern.convention.yaml +2 -11
  20. package/conventions/coder.bun/coder.bun.green-urn-side.convention.yaml +2 -11
  21. package/conventions/coder.bun/coder.bun.green-urn-wagon-feature.convention.yaml +2 -11
  22. package/conventions/coder.bun/coder.bun.layer-naming.convention.yaml +2 -1
  23. package/conventions/coder.bun/coder.bun.logging-structured.convention.yaml +2 -4
  24. package/conventions/coder.bun/coder.bun.quality-comments.convention.yaml +1 -2
  25. package/conventions/coder.bun/coder.bun.quality-mi.convention.yaml +1 -2
  26. package/conventions/coder.bun/coder.bun.responsive-breakpoints-declared.convention.yaml +31 -0
  27. package/conventions/coder.bun/coder.bun.responsive-no-fixed-width.convention.yaml +30 -0
  28. package/conventions/coder.bun/coder.bun.responsive-viewport-meta.convention.yaml +31 -0
  29. package/conventions/coder.bun/coder.bun.runtime-executes-the-declaration.convention.yaml +2 -18
  30. package/conventions/coder.bun/coder.bun.runtime-typecheck-enforced.convention.yaml +2 -15
  31. package/conventions/coder.htmx/coder.htmx.swap-no-inline-handler.convention.yaml +3 -3
  32. package/conventions/coder.htmx/coder.htmx.verb-endpoint-is-routed.convention.yaml +2 -2
  33. package/conventions/coder.htmx/coder.htmx.verb-mutation-signals-progress.convention.yaml +3 -2
  34. package/conventions/planner.docs/planner.docs.adr-registry-derived.convention.yaml +2 -12
  35. package/conventions/planner.docs/planner.docs.area-index-required.convention.yaml +2 -12
  36. package/conventions/planner.docs/planner.docs.artifact-path-shape.convention.yaml +2 -12
  37. package/conventions/planner.docs/planner.docs.asciidoc-only.convention.yaml +2 -13
  38. package/conventions/planner.docs/planner.docs.doc-id-unique.convention.yaml +2 -12
  39. package/conventions/planner.docs/planner.docs.graph-target-resolves.convention.yaml +2 -12
  40. package/conventions/planner.docs/planner.docs.identity-required.convention.yaml +2 -12
  41. package/conventions/planner.docs/planner.docs.reference-integrity.convention.yaml +2 -12
  42. package/conventions/planner.docs/planner.docs.undeclared-change.convention.yaml +2 -12
  43. package/conventions/tester.bun/tester.bun.acceptance-binding-declared.convention.yaml +2 -6
  44. package/conventions/tester.bun/tester.bun.acceptance-covers-tag-well-formed.convention.yaml +1 -5
  45. package/conventions/tester.bun/tester.bun.interlocking-train-sequence-is-exercised.convention.yaml +2 -14
  46. package/conventions/tester.bun/tester.bun.red-behavioral-assertion.convention.yaml +1 -5
  47. package/conventions/tester.bun/tester.bun.routing-runtime-family.convention.yaml +2 -1
  48. package/conventions/tester.bun/tester.bun.smoke-no-collaborator-substitution.convention.yaml +2 -7
  49. package/conventions/tester.bun/tester.bun.smoke-observable-assertion.convention.yaml +2 -7
  50. package/conventions/tester.bun/tester.bun.telemetry-emit.convention.yaml +2 -1
  51. package/conventions/tester.bun/tester.bun.test-carries-urn-identity.convention.yaml +2 -6
  52. package/conventions/tester.bun/tester.bun.test-isolation-no-live-state.convention.yaml +1 -5
  53. package/conventions/tester.bun/tester.bun.test-no-self-skip.convention.yaml +1 -5
  54. package/conventions/tester.bun/tester.bun.test-phase-declared.convention.yaml +2 -6
  55. package/conventions/tester.htmx/tester.htmx.a11y-harness.convention.yaml +32 -0
  56. package/conventions/tester.htmx/tester.htmx.covered-train-is-routed.convention.yaml +30 -0
  57. package/conventions/tester.htmx/tester.htmx.e2e-binds-declared-subject.convention.yaml +31 -0
  58. package/conventions/tester.htmx/tester.htmx.e2e-spec-naming.convention.yaml +32 -0
  59. package/conventions/tester.htmx/tester.htmx.exposed-journey-e2e-coverage.convention.yaml +31 -0
  60. package/conventions/tester.htmx/tester.htmx.fragment-asserts-returned-markup.convention.yaml +2 -6
  61. package/conventions/tester.htmx/tester.htmx.journey-binding-header.convention.yaml +32 -0
  62. package/conventions/tester.htmx/tester.htmx.journey-layer-assembly.convention.yaml +29 -0
  63. package/conventions/tester.htmx/tester.htmx.journey-no-acceptance-marker.convention.yaml +29 -0
  64. package/conventions/tester.htmx/tester.htmx.journey-urn-format.convention.yaml +32 -0
  65. package/conventions/tester.htmx/tester.htmx.presentation-smoke-coverage.convention.yaml +31 -0
  66. package/conventions/tester.htmx/tester.htmx.responsive-harness.convention.yaml +33 -0
  67. package/conventions/tester.htmx/tester.htmx.responsive-journey-coverage.convention.yaml +30 -0
  68. package/conventions/tester.htmx/tester.htmx.swap-oob-asserts-destination-id.convention.yaml +2 -1
  69. package/conventions/tester.htmx/tester.htmx.train-e2e-coverage.convention.yaml +32 -0
  70. package/conventions/tester.htmx/tester.htmx.verb-endpoint-coverage.convention.yaml +2 -1
  71. package/conventions/tester.htmx/tester.htmx.visual-harness.convention.yaml +28 -0
  72. package/conventions/traceability/traceability.plan.executable-acceptance-has-test.convention.yaml +5 -0
  73. package/conventions/traceability/traceability.source.tested-by-present.convention.yaml +5 -0
  74. package/conventions/traceability/traceability.source.tested-by-resolves.convention.yaml +5 -0
  75. package/conventions/traceability/traceability.test.binding-resolves.convention.yaml +5 -0
  76. package/detectors/atdd_topology/atdd.implementation.yaml +13 -0
  77. package/detectors/atdd_topology/detect.mjs +171 -0
  78. package/detectors/atdd_topology/fixtures/clean/atdd-bun.yaml +2 -0
  79. package/detectors/atdd_topology/fixtures/clean/e2e/interlockings/checkout/nominal.routes.test.ts +4 -0
  80. package/detectors/atdd_topology/fixtures/clean/e2e/journeys/checkout.journey.test.ts +4 -0
  81. package/detectors/atdd_topology/fixtures/clean/implementation/orders/features/place-order/domain/order.ts +4 -0
  82. package/detectors/atdd_topology/fixtures/clean/plan/_journeys/checkout.yaml +4 -0
  83. package/detectors/atdd_topology/fixtures/clean/plan/_trains/_interlockings/checkout.yaml +4 -0
  84. package/detectors/atdd_topology/fixtures/clean/plan/_trains/checkout.yaml +1 -0
  85. package/detectors/atdd_topology/fixtures/clean/plan/orders/E001.yaml +6 -0
  86. package/detectors/atdd_topology/fixtures/clean/plan/orders/_orders.yaml +5 -0
  87. package/detectors/atdd_topology/fixtures/clean/plan/orders/place-order.yaml +3 -0
  88. package/detectors/atdd_topology/fixtures/clean/tests/wagons/orders/features/place-order/unit/order.test.ts +4 -0
  89. package/detectors/atdd_topology/fixtures/dirty/plan/_journeys/checkout.yaml +3 -0
  90. package/detectors/atdd_topology/fixtures/dirty/plan/orders/E001.yaml +4 -0
  91. package/detectors/atdd_topology/fixtures/dirty/plan/orders/_orders.yaml +4 -0
  92. package/detectors/atdd_topology/fixtures/dirty/plan/orders/features/place-order.yaml +3 -0
  93. package/detectors/atdd_topology/fixtures/dirty/src/wagons/orders/features/place-order/domain/forged.ts +2 -0
  94. package/detectors/atdd_topology/fixtures/dirty/src/wagons/orders/features/place-order/domain/order.ts +2 -0
  95. package/detectors/atdd_topology/fixtures/dirty/tests/wagons/orders/features/place-order/unit/order.test.ts +4 -0
  96. package/detectors/atdd_traceability_closure/detect.mjs +5 -2
  97. package/detectors/bun_green_traceability_detector/urn_header.mjs +2 -1
  98. package/detectors/bun_interlocking_binding/checks/interlocking_runtime_executes.mjs +3 -2
  99. package/detectors/bun_interlocking_binding/detect.mjs +6 -5
  100. package/detectors/bun_interlocking_coverage/_shared/interlocking.mjs +4 -3
  101. package/detectors/bun_interlocking_coverage/checks/interlocking_train_sequence.mjs +2 -2
  102. package/detectors/bun_interlocking_infrastructure/_shared/interlocking.mjs +2 -1
  103. package/detectors/bun_interlocking_infrastructure/checks/journey_runner_boundary.mjs +3 -2
  104. package/detectors/bun_interlocking_infrastructure/checks/journey_station_routing.mjs +2 -1
  105. package/detectors/bun_interlocking_infrastructure/checks/wagon_contract_honoured.mjs +3 -2
  106. package/detectors/bun_responsive_detector/atdd.implementation.yaml +18 -0
  107. package/detectors/bun_responsive_detector/checks/_map.json +5 -0
  108. package/detectors/bun_responsive_detector/checks/_responsive.mjs +20 -0
  109. package/detectors/bun_responsive_detector/checks/responsive_breakpoints_declared.mjs +21 -0
  110. package/detectors/bun_responsive_detector/checks/responsive_no_fixed_width.mjs +13 -0
  111. package/detectors/bun_responsive_detector/checks/responsive_viewport_meta.mjs +20 -0
  112. package/detectors/bun_responsive_detector/detect.mjs +46 -0
  113. package/detectors/bun_responsive_detector/fixtures/clean/public/index.html +9 -0
  114. package/detectors/bun_responsive_detector/fixtures/clean/src/app.css +13 -0
  115. package/detectors/bun_responsive_detector/fixtures/clean/src/document.ts +7 -0
  116. package/detectors/bun_responsive_detector/fixtures/clean/src/fragment.html +1 -0
  117. package/detectors/bun_responsive_detector/fixtures/clean/src/head.ts +1 -0
  118. package/detectors/bun_responsive_detector/fixtures/clean/src/layout.tsx +8 -0
  119. package/detectors/bun_responsive_detector/fixtures/clean/src/range.css +3 -0
  120. package/detectors/bun_responsive_detector/fixtures/clean/src/viewport-expression.tsx +5 -0
  121. package/detectors/bun_responsive_detector/fixtures/dirty/public/fixed-viewport.html +5 -0
  122. package/detectors/bun_responsive_detector/fixtures/dirty/public/no-meta.html +5 -0
  123. package/detectors/bun_responsive_detector/fixtures/dirty/public/no-zoom.html +5 -0
  124. package/detectors/bun_responsive_detector/fixtures/dirty/public/scale.html +5 -0
  125. package/detectors/bun_responsive_detector/fixtures/dirty/src/app.css +4 -0
  126. package/detectors/bun_responsive_detector/fixtures/dirty/src/render.ts +2 -0
  127. package/detectors/bun_responsive_detector/fixtures/dirty/src/units.css +3 -0
  128. package/detectors/bun_responsive_detector/fixtures/dirty/src/wide.tsx +3 -0
  129. package/detectors/bun_tester_discipline_detector/checks/t_acceptance_resolves.mjs +7 -6
  130. package/detectors/htmx_e2e_detector/atdd.implementation.yaml +40 -0
  131. package/detectors/htmx_e2e_detector/checks/_e2e.mjs +98 -0
  132. package/detectors/htmx_e2e_detector/checks/_map.json +16 -0
  133. package/detectors/htmx_e2e_detector/checks/a11y_harness.mjs +21 -0
  134. package/detectors/htmx_e2e_detector/checks/covered_train_is_routed.mjs +6 -0
  135. package/detectors/htmx_e2e_detector/checks/e2e_binds_declared_subject.mjs +11 -0
  136. package/detectors/htmx_e2e_detector/checks/e2e_spec_naming.mjs +6 -0
  137. package/detectors/htmx_e2e_detector/checks/exposed_journey_e2e_coverage.mjs +7 -0
  138. package/detectors/htmx_e2e_detector/checks/journey_binding_header.mjs +13 -0
  139. package/detectors/htmx_e2e_detector/checks/journey_layer_assembly.mjs +11 -0
  140. package/detectors/htmx_e2e_detector/checks/journey_no_acceptance_marker.mjs +6 -0
  141. package/detectors/htmx_e2e_detector/checks/journey_urn_format.mjs +18 -0
  142. package/detectors/htmx_e2e_detector/checks/presentation_smoke_coverage.mjs +15 -0
  143. package/detectors/htmx_e2e_detector/checks/responsive_harness.mjs +30 -0
  144. package/detectors/htmx_e2e_detector/checks/responsive_journey_coverage.mjs +7 -0
  145. package/detectors/htmx_e2e_detector/checks/train_e2e_coverage.mjs +7 -0
  146. package/detectors/htmx_e2e_detector/checks/visual_harness.mjs +7 -0
  147. package/detectors/htmx_e2e_detector/detect.mjs +46 -0
  148. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/buy-alias.a11y.e2e.ts +12 -0
  149. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/buy-inline.responsive.e2e.ts +11 -0
  150. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/buy.a11y.e2e.ts +12 -0
  151. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/buy.responsive.e2e.ts +14 -0
  152. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/buy.visual.e2e.ts +10 -0
  153. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/checkout-buy.smoke.e2e.ts +10 -0
  154. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/crlf.e2e.ts +10 -0
  155. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/place-order.e2e.ts +10 -0
  156. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/reject-empty-cart.e2e.ts +10 -0
  157. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/support/fixtures.ts +3 -0
  158. package/detectors/htmx_e2e_detector/fixtures/clean/e2e/take-payment.e2e.ts +10 -0
  159. package/detectors/htmx_e2e_detector/fixtures/clean/plan/_journeys/buy.yaml +19 -0
  160. package/detectors/htmx_e2e_detector/fixtures/clean/plan/_journeys/settle.yaml +14 -0
  161. package/detectors/htmx_e2e_detector/fixtures/clean/plan/_trains/_interlockings/checkout.yaml +21 -0
  162. package/detectors/htmx_e2e_detector/fixtures/clean/plan/_trains/_interlockings/payment.yaml +16 -0
  163. package/detectors/htmx_e2e_detector/fixtures/clean/plan/_trains/_interlockings/settlement.yaml +16 -0
  164. package/detectors/htmx_e2e_detector/fixtures/clean/plan/_trains/orders/place-order.yaml +11 -0
  165. package/detectors/htmx_e2e_detector/fixtures/clean/plan/_trains/orders/reject-empty-cart.yaml +11 -0
  166. package/detectors/htmx_e2e_detector/fixtures/clean/plan/_trains/orders/settle-ledger.yaml +11 -0
  167. package/detectors/htmx_e2e_detector/fixtures/clean/plan/_trains/orders/take-payment.yaml +11 -0
  168. package/detectors/htmx_e2e_detector/fixtures/clean/playwright.config.ts +3 -0
  169. package/detectors/htmx_e2e_detector/fixtures/clean/src/wagons/checkout/presentation/cart.tsx +3 -0
  170. package/detectors/htmx_e2e_detector/fixtures/clean/tests/urn-parser.test.ts +7 -0
  171. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/acceptance.e2e.ts +6 -0
  172. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/bad-id.e2e.ts +10 -0
  173. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/bad-urn.e2e.ts +10 -0
  174. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/both.e2e.ts +6 -0
  175. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/buy.a11y.e2e.ts +10 -0
  176. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/buy.responsive.e2e.ts +11 -0
  177. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/buy.visual.e2e.ts +10 -0
  178. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/covered.e2e.ts +10 -0
  179. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/first-only.responsive.e2e.ts +13 -0
  180. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/ghost.e2e.ts +10 -0
  181. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/misnamed.spec.ts +10 -0
  182. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/no-binding.e2e.ts +4 -0
  183. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/no-layer.e2e.ts +4 -0
  184. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/no-urn.e2e.ts +4 -0
  185. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/tautology.a11y.e2e.ts +11 -0
  186. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/two-trains.e2e.ts +6 -0
  187. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/unrouted.e2e.ts +10 -0
  188. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/wrong-layer.e2e.ts +5 -0
  189. package/detectors/htmx_e2e_detector/fixtures/dirty/e2e/wrong-urn.e2e.ts +10 -0
  190. package/detectors/htmx_e2e_detector/fixtures/dirty/plan/_journeys/browse.yaml +16 -0
  191. package/detectors/htmx_e2e_detector/fixtures/dirty/plan/_journeys/buy.yaml +16 -0
  192. package/detectors/htmx_e2e_detector/fixtures/dirty/plan/_trains/_interlockings/checkout.yaml +21 -0
  193. package/detectors/htmx_e2e_detector/fixtures/dirty/plan/_trains/orders/covered.yaml +11 -0
  194. package/detectors/htmx_e2e_detector/fixtures/dirty/plan/_trains/orders/uncovered.yaml +11 -0
  195. package/detectors/htmx_e2e_detector/fixtures/dirty/plan/_trains/orders/unrouted.yaml +11 -0
  196. package/detectors/htmx_e2e_detector/fixtures/dirty/src/wagons/billing/presentation/invoice.tsx +3 -0
  197. package/integrity.json +208 -79
  198. package/lib/frontend.mjs +17 -0
  199. package/lib/scan.mjs +6 -2
  200. package/package.json +5 -1
  201. package/planner-nodes/ENFORCEMENT_SCOPE.yaml +18 -1
  202. package/relationships.yaml +4782 -4506
  203. package/src/enforce.ts +10 -7
  204. package/src/hooks.ts +2 -1
  205. package/src/index.ts +2 -0
  206. package/src/planner-kernel.ts +2 -1
  207. package/src/planner-schema-validator.ts +12 -10
  208. package/src/planner-validators.ts +16 -15
  209. package/src/topology.ts +40 -0
@@ -7,22 +7,27 @@ node_corpus:
7
7
  Every node is shipped as canonical planner reference material. A node is not
8
8
  represented as enforced merely because it is present in this corpus.
9
9
 
10
- # A provider implementation must name every canonical rule it realizes. `coverage`
10
+ # A provider implementation must name every canonical rule it realizes. `disposition` is
11
+ # this package's enforcement, always strict: atdd-bun fails on every finding, whatever the
12
+ # canonical node's own metadata says (the nodes are shipped verbatim). `coverage`
11
13
  # describes the Bun predicate actually exercised, not an assertion that the entire
12
14
  # prose convention has been ported.
13
15
  canonical_bun_enforcement:
14
16
  - rule_id: planner.train.naming
17
+ disposition: strict
15
18
  origin: schema-validator
16
19
  coverage: complete
17
20
  predicates:
18
21
  - train definitions and interlocking route targets use train:<subject>:<slug>
19
22
  - rule_id: planner.train.registry-coherence
23
+ disposition: strict
20
24
  origin: core-validator-port
21
25
  coverage: complete
22
26
  predicates:
23
27
  - every registry path resolves to a train document
24
28
  - every non-sidecar train document is registered
25
29
  - rule_id: planner.journey.continuation-closure
30
+ disposition: strict
26
31
  origin: bun-custom-validator
27
32
  coverage: complete
28
33
  predicates:
@@ -32,12 +37,14 @@ canonical_bun_enforcement:
32
37
  - continuation destinations resolve to interlockings
33
38
  - disconnected continuation or terminal sources are rejected
34
39
  - rule_id: planner.journey.interlocking-composed
40
+ disposition: strict
35
41
  origin: bun-custom-validator
36
42
  coverage: complete
37
43
  predicates:
38
44
  - a plan that declares interlockings declares at least one journey
39
45
  - every interlocking is a journey entrypoint or the destination of a continuation reachable from one
40
46
  - rule_id: planner.wagon.no-consume-cycle
47
+ disposition: strict
41
48
  origin: core-validator-port
42
49
  coverage: partial
43
50
  predicates:
@@ -45,6 +52,7 @@ canonical_bun_enforcement:
45
52
  unported:
46
53
  - multi-wagon strongly-connected-component detection
47
54
  - rule_id: planner.contract.registry-coherence
55
+ disposition: strict
48
56
  origin: core-validator-port
49
57
  coverage: complete
50
58
  predicates:
@@ -55,27 +63,32 @@ canonical_bun_enforcement:
55
63
  - registry identity theme matches its identity namespace
56
64
  - registry paths resolve to contract documents
57
65
  - rule_id: planner.theme.must-be-canonical
66
+ disposition: strict
58
67
  origin: bun-custom-validator
59
68
  coverage: complete
60
69
  predicates:
61
70
  - every declared theme belongs to plan/_themes.yaml
62
71
  - the package supplies no taxonomy besides reserved index 0
63
72
  - rule_id: planner.theme.theme-zero-mandatory
73
+ disposition: strict
64
74
  origin: bun-custom-validator
65
75
  coverage: complete
66
76
  predicates:
67
77
  - plan/_themes.yaml index 0 is commons
68
78
  - rule_id: planner.theme.urn-namespace-matches
79
+ disposition: strict
69
80
  origin: bun-custom-validator
70
81
  coverage: complete
71
82
  predicates:
72
83
  - a themed wagon's produced identities begin with that theme
73
84
  - rule_id: planner.artifact-naming.theme-first-identity
85
+ disposition: strict
74
86
  origin: bun-custom-validator
75
87
  coverage: complete
76
88
  predicates:
77
89
  - artifact identity themes are declared in plan/_themes.yaml
78
90
  - rule_id: planner.wagon.urn
91
+ disposition: strict
79
92
  origin: bun-custom-validator
80
93
  coverage: partial
81
94
  predicates:
@@ -83,6 +96,7 @@ canonical_bun_enforcement:
83
96
  unported:
84
97
  - documented directory and file layout
85
98
  - rule_id: planner.wagon.urn-naming
99
+ disposition: strict
86
100
  origin: bun-custom-validator
87
101
  coverage: partial
88
102
  predicates:
@@ -90,6 +104,7 @@ canonical_bun_enforcement:
90
104
  unported:
91
105
  - verb-object preference
92
106
  - rule_id: planner.wagon.produce-consume-artifacts
107
+ disposition: strict
93
108
  origin: bun-custom-validator
94
109
  coverage: partial
95
110
  predicates:
@@ -97,6 +112,7 @@ canonical_bun_enforcement:
97
112
  unported:
98
113
  - complete required-field and URN-shape validation
99
114
  - rule_id: planner.wagon.features
115
+ disposition: strict
100
116
  origin: bun-custom-validator
101
117
  coverage: partial
102
118
  predicates:
@@ -104,6 +120,7 @@ canonical_bun_enforcement:
104
120
  unported:
105
121
  - complete feature-manifest coverage
106
122
  - rule_id: planner.wagon.telemetry-filesystem
123
+ disposition: strict
107
124
  origin: bun-custom-validator
108
125
  coverage: partial
109
126
  predicates: