stylegallery 0.1.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 (346) hide show
  1. package/AGENTS.md +156 -0
  2. package/CATALOG.md +69 -0
  3. package/DOMAINS.md +65 -0
  4. package/GOVERNANCE.md +222 -0
  5. package/GUIDE.md +59 -0
  6. package/README.md +313 -0
  7. package/consumer-reference/adapters/style-dictionary.config.mjs +36 -0
  8. package/consumer-reference/agent-native/README.md +157 -0
  9. package/consumer-reference/agent-native/registry.json +640 -0
  10. package/consumer-reference/agent-native/schema/agent-native.schema.json +848 -0
  11. package/consumer-reference/agent-native/schema/epistemic.schema.json +14 -0
  12. package/consumer-reference/agent-native/schema/execution.schema.json +12 -0
  13. package/consumer-reference/agent-native/schema/identity.schema.json +10 -0
  14. package/consumer-reference/agent-native/schema/learning.schema.json +12 -0
  15. package/consumer-reference/agent-native/schema/manifest.schema.json +6 -0
  16. package/consumer-reference/agent-native/schema/operation.schema.json +12 -0
  17. package/consumer-reference/agent-native/schema/protocol-binding.schema.json +9 -0
  18. package/consumer-reference/agent-native/schema/retrieval.schema.json +10 -0
  19. package/consumer-reference/baselines/calibration.json +260 -0
  20. package/consumer-reference/baselines/manifest.json +21 -0
  21. package/consumer-reference/contract.md +83 -0
  22. package/consumer-reference/fixtures/consumer-conformance/e2e-fixture.mjs +282 -0
  23. package/consumer-reference/fixtures/consumer-conformance/manifest.json +102 -0
  24. package/consumer-reference/fixtures/consumer-conformance/runtime-proof.mjs +32 -0
  25. package/consumer-reference/fixtures/consumer-conformance/valid-migration-result.json +18 -0
  26. package/consumer-reference/fixtures/consumer-conformance/valid-migration.json +142 -0
  27. package/consumer-reference/fixtures/invalid-stable-ended-support.json +19 -0
  28. package/consumer-reference/fixtures/promotion/invalid-blocking-evidence.json +26 -0
  29. package/consumer-reference/fixtures/promotion/invalid-count-only.json +29 -0
  30. package/consumer-reference/fixtures/promotion/invalid-missing-owner-migration.json +25 -0
  31. package/consumer-reference/fixtures/promotion/invalid-normative-bypass-no-regression.json +25 -0
  32. package/consumer-reference/fixtures/promotion/invalid-related-counted-independent.json +45 -0
  33. package/consumer-reference/fixtures/promotion/invalid-stable-ended-support.json +26 -0
  34. package/consumer-reference/fixtures/promotion/manifest.json +15 -0
  35. package/consumer-reference/fixtures/promotion/valid-deferred-example.json +67 -0
  36. package/consumer-reference/fixtures/promotion/valid-normative-bypass.json +67 -0
  37. package/consumer-reference/fixtures/token-portability/invalid-cycle.json +7 -0
  38. package/consumer-reference/fixtures/token-portability/invalid-dangling-alias.json +6 -0
  39. package/consumer-reference/fixtures/token-portability/invalid-extends.json +4 -0
  40. package/consumer-reference/fixtures/token-portability/invalid-json-pointer.json +7 -0
  41. package/consumer-reference/fixtures/token-portability/invalid-resolver.json +9 -0
  42. package/consumer-reference/fixtures/token-portability/invalid-type-mismatch.json +10 -0
  43. package/consumer-reference/fixtures/token-portability/invalid-unknown-reserved.json +6 -0
  44. package/consumer-reference/fixtures/token-portability/invalid-untested-type.json +6 -0
  45. package/consumer-reference/fixtures/token-portability/valid-border.json +14 -0
  46. package/consumer-reference/fixtures/token-portability/valid-reference.json +32 -0
  47. package/consumer-reference/fixtures/token-portability/valid-whole-alias.json +7 -0
  48. package/consumer-reference/fixtures/valid-deprecated.json +21 -0
  49. package/consumer-reference/fixtures/valid-experimental.json +19 -0
  50. package/consumer-reference/generated/manifest.json +40 -0
  51. package/consumer-reference/generated/tokens.css +12 -0
  52. package/consumer-reference/index.md +32 -0
  53. package/consumer-reference/policies/shared-experimental.json +37 -0
  54. package/consumer-reference/schema/ax-evidence.schema.json +30 -0
  55. package/consumer-reference/schema/baseline-manifest.schema.json +55 -0
  56. package/consumer-reference/schema/calibration-record.schema.json +190 -0
  57. package/consumer-reference/schema/capture-session.schema.json +161 -0
  58. package/consumer-reference/schema/component-state.schema.json +150 -0
  59. package/consumer-reference/schema/consumer-conformance-record.schema.json +365 -0
  60. package/consumer-reference/schema/dom-evidence.schema.json +38 -0
  61. package/consumer-reference/schema/evidence-record.schema.json +81 -0
  62. package/consumer-reference/schema/fixture-manifest.schema.json +32 -0
  63. package/consumer-reference/schema/item.schema.json +188 -0
  64. package/consumer-reference/schema/page-evidence-manifest.schema.json +216 -0
  65. package/consumer-reference/schema/page-evidence-session.schema.json +119 -0
  66. package/consumer-reference/schema/portable-tokens.schema.json +104 -0
  67. package/consumer-reference/schema/promotion-rfc.schema.json +219 -0
  68. package/consumer-reference/schema/runtime-evidence-manifest.schema.json +33 -0
  69. package/consumer-reference/schema/visual-evidence.schema.json +31 -0
  70. package/design-engineering/consumer-migration-readiness.md +124 -0
  71. package/design-engineering/index.md +28 -0
  72. package/design-engineering/interface-craft.md +107 -0
  73. package/design-engineering/reference-profiles/external-adaptation/index.md +12 -0
  74. package/design-engineering/reference-profiles/governed-local/editorial/components/button.component.json +125 -0
  75. package/design-engineering/reference-profiles/governed-local/editorial/evidence/button.evidence.json +3504 -0
  76. package/design-engineering/reference-profiles/governed-local/editorial/fixtures/button.fixture.json +65 -0
  77. package/design-engineering/reference-profiles/governed-local/editorial/generated/evidence-coverage.md +23 -0
  78. package/design-engineering/reference-profiles/governed-local/editorial/generated/keyboard-matrix.md +19 -0
  79. package/design-engineering/reference-profiles/governed-local/editorial/generated/state-matrix.md +21 -0
  80. package/design-engineering/reference-profiles/governed-local/editorial/local-foundations.json +12 -0
  81. package/design-engineering/reference-profiles/governed-local/editorial/profile.json +43 -0
  82. package/design-engineering/reference-profiles/governed-local/editorial/states/button.states.json +195 -0
  83. package/design-engineering/reference-profiles/governed-local/editorial/tokens.dtcg.json +17 -0
  84. package/design-engineering/reference-profiles/governed-local/index.md +26 -0
  85. package/design-engineering/reference-profiles/governed-local/terminal/components/button.component.json +125 -0
  86. package/design-engineering/reference-profiles/governed-local/terminal/evidence/button.evidence.json +3504 -0
  87. package/design-engineering/reference-profiles/governed-local/terminal/fixtures/button.fixture.json +65 -0
  88. package/design-engineering/reference-profiles/governed-local/terminal/generated/evidence-coverage.md +23 -0
  89. package/design-engineering/reference-profiles/governed-local/terminal/generated/keyboard-matrix.md +19 -0
  90. package/design-engineering/reference-profiles/governed-local/terminal/generated/state-matrix.md +21 -0
  91. package/design-engineering/reference-profiles/governed-local/terminal/local-foundations.json +12 -0
  92. package/design-engineering/reference-profiles/governed-local/terminal/profile.json +43 -0
  93. package/design-engineering/reference-profiles/governed-local/terminal/states/button.states.json +195 -0
  94. package/design-engineering/reference-profiles/governed-local/terminal/tokens.dtcg.json +17 -0
  95. package/design-engineering/reference-profiles/index.md +19 -0
  96. package/game-ui/classification.md +82 -0
  97. package/game-ui/index.md +35 -0
  98. package/game-ui/reference-record.md +62 -0
  99. package/game-ui/screen-hierarchy.md +107 -0
  100. package/game-ui/unity/architecture.md +166 -0
  101. package/game-ui/unity/cli-loop.md +84 -0
  102. package/game-ui/unity/data/unity-technologies-public-repositories.json +26654 -0
  103. package/game-ui/unity/org-wiki.md +146 -0
  104. package/game-ui/unity/repository-map.md +102 -0
  105. package/game-ui/unity/ui-systems.md +85 -0
  106. package/guides/decision-tree.md +149 -0
  107. package/guides/documentation-mode-taxonomy.md +157 -0
  108. package/guides/layout-brief.md +220 -0
  109. package/guides/vocabulary.md +148 -0
  110. package/guides/webpage-generation-workflow.md +185 -0
  111. package/index.md +36 -0
  112. package/layout/index.md +26 -0
  113. package/motion/index.md +24 -0
  114. package/motion/practice-reference.md +145 -0
  115. package/motion/review-workflow.md +86 -0
  116. package/motion/vocabulary.md +82 -0
  117. package/package.json +78 -0
  118. package/patterns/centering/center.md +87 -0
  119. package/patterns/centering/index.md +6 -0
  120. package/patterns/centering/super-center.md +89 -0
  121. package/patterns/containment/box.md +87 -0
  122. package/patterns/containment/clamped-card.md +86 -0
  123. package/patterns/containment/content-limiter.md +87 -0
  124. package/patterns/containment/fluid-styles.md +86 -0
  125. package/patterns/containment/index.md +8 -0
  126. package/patterns/grid-repetition/card-grid.md +88 -0
  127. package/patterns/grid-repetition/columns.md +87 -0
  128. package/patterns/grid-repetition/dense-grid.md +88 -0
  129. package/patterns/grid-repetition/grid-wrapper.md +89 -0
  130. package/patterns/grid-repetition/index.md +12 -0
  131. package/patterns/grid-repetition/masonry-approx.md +87 -0
  132. package/patterns/grid-repetition/page-grid.md +90 -0
  133. package/patterns/grid-repetition/ram-grid.md +88 -0
  134. package/patterns/grid-repetition/twelve-span-grid.md +92 -0
  135. package/patterns/in-line-grouping/badge-list.md +94 -0
  136. package/patterns/in-line-grouping/breadcrumb.md +89 -0
  137. package/patterns/in-line-grouping/cluster.md +89 -0
  138. package/patterns/in-line-grouping/deconstructed-pancake.md +92 -0
  139. package/patterns/in-line-grouping/index.md +13 -0
  140. package/patterns/in-line-grouping/pagination.md +89 -0
  141. package/patterns/in-line-grouping/reel.md +90 -0
  142. package/patterns/in-line-grouping/split-nav.md +97 -0
  143. package/patterns/in-line-grouping/tab-strip.md +88 -0
  144. package/patterns/in-line-grouping/wrap-row.md +89 -0
  145. package/patterns/index.md +13 -0
  146. package/patterns/media-fit/frame.md +95 -0
  147. package/patterns/media-fit/icon-frame.md +87 -0
  148. package/patterns/media-fit/index.md +6 -0
  149. package/patterns/overlay-exception/imposter.md +95 -0
  150. package/patterns/overlay-exception/index.md +6 -0
  151. package/patterns/overlay-exception/overlay-stack.md +89 -0
  152. package/patterns/split-sidebar/index.md +12 -0
  153. package/patterns/split-sidebar/list-detail.md +95 -0
  154. package/patterns/split-sidebar/main-with-rail.md +95 -0
  155. package/patterns/split-sidebar/media-object.md +102 -0
  156. package/patterns/split-sidebar/sidebar.md +101 -0
  157. package/patterns/split-sidebar/split-screen.md +92 -0
  158. package/patterns/split-sidebar/sticky-aside.md +97 -0
  159. package/patterns/split-sidebar/supporting-pane.md +95 -0
  160. package/patterns/split-sidebar/switcher.md +93 -0
  161. package/patterns/stacking/feed.md +88 -0
  162. package/patterns/stacking/index.md +8 -0
  163. package/patterns/stacking/line-up.md +95 -0
  164. package/patterns/stacking/stack.md +87 -0
  165. package/patterns/stacking/step-nav.md +88 -0
  166. package/patterns/viewport-shell/cover.md +90 -0
  167. package/patterns/viewport-shell/fixed-sidenav-shell.md +97 -0
  168. package/patterns/viewport-shell/holy-grail.md +112 -0
  169. package/patterns/viewport-shell/index.md +11 -0
  170. package/patterns/viewport-shell/panel-layout.md +95 -0
  171. package/patterns/viewport-shell/scroll-body-shell.md +93 -0
  172. package/patterns/viewport-shell/sticky-footer.md +92 -0
  173. package/patterns/viewport-shell/sticky-header.md +86 -0
  174. package/platform-guides/apple-interaction.md +89 -0
  175. package/platform-guides/index.md +26 -0
  176. package/quality/claim-records/index.md +3 -0
  177. package/quality/claim-records/samples.md +92 -0
  178. package/quality/claim-records/stylegallery-multidomain-scope.md +42 -0
  179. package/quality/claims.md +77 -0
  180. package/quality/evidence/accessibility.md +58 -0
  181. package/quality/evidence/consumer-migration.md +42 -0
  182. package/quality/evidence/design-rationale.md +34 -0
  183. package/quality/evidence/executable-evidence.md +79 -0
  184. package/quality/evidence/families.md +56 -0
  185. package/quality/evidence/hci-evaluation.md +36 -0
  186. package/quality/evidence/index.md +16 -0
  187. package/quality/evidence/pattern-contract-audit.md +96 -0
  188. package/quality/evidence/search-metadata-polyhierarchy.md +86 -0
  189. package/quality/evidence/sources.md +43 -0
  190. package/quality/evidence/tokens.md +33 -0
  191. package/quality/evidence/visual-qa.md +41 -0
  192. package/quality/gates/accessibility-evidence.md +60 -0
  193. package/quality/gates/consumer-migration-evidence.md +53 -0
  194. package/quality/gates/design-claim.md +56 -0
  195. package/quality/gates/harmony-evaluation.md +78 -0
  196. package/quality/gates/index.md +13 -0
  197. package/quality/gates/layout.md +52 -0
  198. package/quality/gates/rationale.md +53 -0
  199. package/quality/gates/visual-evidence.md +47 -0
  200. package/quality/index.md +55 -0
  201. package/quality/principles.md +58 -0
  202. package/recipes/article-page.md +52 -0
  203. package/recipes/command-surface.md +55 -0
  204. package/recipes/dashboard.md +56 -0
  205. package/recipes/form-flow.md +55 -0
  206. package/recipes/homepage.md +89 -0
  207. package/recipes/index.md +13 -0
  208. package/recipes/list-detail.md +55 -0
  209. package/recipes/primitive-to-recipe-matrix.md +83 -0
  210. package/recipes/saas-settings.md +52 -0
  211. package/scripts/agent-native/a2a-projection.mjs +248 -0
  212. package/scripts/agent-native/agui-projection.mjs +178 -0
  213. package/scripts/agent-native/canonical-json.mjs +109 -0
  214. package/scripts/agent-native/cli-adapter.mjs +68 -0
  215. package/scripts/agent-native/events.mjs +113 -0
  216. package/scripts/agent-native/execution.mjs +227 -0
  217. package/scripts/agent-native/fixture.mjs +159 -0
  218. package/scripts/agent-native/identity.mjs +184 -0
  219. package/scripts/agent-native/immutable-store.mjs +102 -0
  220. package/scripts/agent-native/knowledge.mjs +168 -0
  221. package/scripts/agent-native/learning-records.mjs +244 -0
  222. package/scripts/agent-native/learning.mjs +247 -0
  223. package/scripts/agent-native/mcp-adapter.mjs +173 -0
  224. package/scripts/agent-native/queries.mjs +173 -0
  225. package/scripts/agent-native/registry.mjs +154 -0
  226. package/scripts/agent-native/retrieval.mjs +171 -0
  227. package/scripts/agent-native/self-description.mjs +160 -0
  228. package/scripts/artifact-metadata.mjs +20 -0
  229. package/scripts/audit-evidence-freshness.mjs +308 -0
  230. package/scripts/baseline-contract.mjs +189 -0
  231. package/scripts/baseline-schema-parity.mjs +40 -0
  232. package/scripts/build-reference-artifacts.mjs +127 -0
  233. package/scripts/calibration-raw-contract.mjs +172 -0
  234. package/scripts/capture-session-contract.mjs +187 -0
  235. package/scripts/component-state-artifact-fixture.mjs +44 -0
  236. package/scripts/component-state-contract.mjs +99 -0
  237. package/scripts/component-state-semantics.mjs +128 -0
  238. package/scripts/component-state-workflow-contract.mjs +67 -0
  239. package/scripts/component-state-workflow-negative-cases.mjs +64 -0
  240. package/scripts/consumer-conformance-contract.mjs +198 -0
  241. package/scripts/consumer-evidence-governance-contract.mjs +210 -0
  242. package/scripts/consumer-reference-case-runner.mjs +93 -0
  243. package/scripts/consumer-reference-schema.mjs +155 -0
  244. package/scripts/create-component-state-session.mjs +100 -0
  245. package/scripts/create-page-evidence-session.mjs +139 -0
  246. package/scripts/domain-document-boundaries.mjs +40 -0
  247. package/scripts/domain-validation-checks.mjs +141 -0
  248. package/scripts/evidence-artifact-contract.mjs +191 -0
  249. package/scripts/finalize-component-state-evidence.mjs +165 -0
  250. package/scripts/finalize-page-evidence.mjs +197 -0
  251. package/scripts/generate-consumer-reference-evidence.mjs +154 -0
  252. package/scripts/generate-patterns.mjs +218 -0
  253. package/scripts/governance-matrix-contract.mjs +73 -0
  254. package/scripts/governance-matrix-negative-cases.mjs +114 -0
  255. package/scripts/governance-policy-contract.mjs +49 -0
  256. package/scripts/governance-test-fixture.mjs +321 -0
  257. package/scripts/governance-workflow-negative-cases.mjs +241 -0
  258. package/scripts/governed-profile-registry.mjs +125 -0
  259. package/scripts/json-schema-formats.mjs +31 -0
  260. package/scripts/markdown-structure.mjs +45 -0
  261. package/scripts/page-artifact-metadata.mjs +124 -0
  262. package/scripts/page-evidence-contract.mjs +297 -0
  263. package/scripts/page-evidence-fixture.mjs +271 -0
  264. package/scripts/pattern-data.mjs +325 -0
  265. package/scripts/profile-record-contract.mjs +140 -0
  266. package/scripts/promotion-attestation-contract.mjs +91 -0
  267. package/scripts/promotion-boundary-test-contract.mjs +92 -0
  268. package/scripts/promotion-fixture-inventory.mjs +109 -0
  269. package/scripts/promotion-governance-contract.mjs +28 -0
  270. package/scripts/reference-artifact-path-contract.mjs +28 -0
  271. package/scripts/reference-profile-contract.mjs +114 -0
  272. package/scripts/reference-token-contract.mjs +156 -0
  273. package/scripts/run-consumer-page-evidence-ci.mjs +170 -0
  274. package/scripts/sg-mcp.mjs +16 -0
  275. package/scripts/sg.mjs +27 -0
  276. package/scripts/strict-json.mjs +72 -0
  277. package/scripts/summarize-sentinel-calibration.mjs +98 -0
  278. package/scripts/test-agent-adapter-conformance.mjs +250 -0
  279. package/scripts/test-agent-conformance-receipt.mjs +106 -0
  280. package/scripts/test-agent-events.mjs +81 -0
  281. package/scripts/test-agent-execution-effects.mjs +114 -0
  282. package/scripts/test-agent-execution-fixtures.mjs +140 -0
  283. package/scripts/test-agent-execution-kernel.mjs +39 -0
  284. package/scripts/test-agent-execution-learning.mjs +130 -0
  285. package/scripts/test-agent-execution-lifecycle.mjs +143 -0
  286. package/scripts/test-agent-execution-safety.mjs +158 -0
  287. package/scripts/test-agent-execution-views.mjs +117 -0
  288. package/scripts/test-agent-identity-integrity-cases.mjs +160 -0
  289. package/scripts/test-agent-knowledge-kernel.mjs +183 -0
  290. package/scripts/test-agent-learning.mjs +246 -0
  291. package/scripts/test-agent-mcp.mjs +246 -0
  292. package/scripts/test-agent-native-schemas.mjs +215 -0
  293. package/scripts/test-agent-projections.mjs +249 -0
  294. package/scripts/test-agent-registry-mcp-integrity.mjs +215 -0
  295. package/scripts/test-agent-registry-mutations.mjs +110 -0
  296. package/scripts/test-audit-evidence-freshness.mjs +177 -0
  297. package/scripts/test-component-state-sentinel.mjs +35 -0
  298. package/scripts/test-component-state-source-contract.mjs +83 -0
  299. package/scripts/test-consumer-conformance-sentinel.mjs +165 -0
  300. package/scripts/test-consumer-reference-sentinel.mjs +31 -0
  301. package/scripts/test-generate-consumer-reference-evidence.mjs +124 -0
  302. package/scripts/test-json-cli-output.mjs +151 -0
  303. package/scripts/test-json-schema-formats.mjs +40 -0
  304. package/scripts/test-reference-adapters.mjs +199 -0
  305. package/scripts/test-renderer-purity.mjs +34 -0
  306. package/scripts/test-sg-cli.mjs +129 -0
  307. package/scripts/test-summarize-sentinel-calibration.mjs +226 -0
  308. package/scripts/test-validate-baseline-manifest.mjs +234 -0
  309. package/scripts/test-validate-component-state-artifacts.mjs +243 -0
  310. package/scripts/test-validate-component-state.mjs +106 -0
  311. package/scripts/test-validate-consumer-conformance.mjs +427 -0
  312. package/scripts/test-validate-consumer-reference-cli.mjs +69 -0
  313. package/scripts/test-validate-consumer-reference.mjs +263 -0
  314. package/scripts/test-validate-domains.mjs +357 -0
  315. package/scripts/test-validate-governance.mjs +292 -0
  316. package/scripts/test-validate-ia.mjs +262 -0
  317. package/scripts/test-validate-okf.mjs +73 -0
  318. package/scripts/test-validate-page-evidence.mjs +302 -0
  319. package/scripts/test-validate-patterns.mjs +157 -0
  320. package/scripts/test-validate-promotion-rfc.mjs +250 -0
  321. package/scripts/test-validate-reference-profiles.mjs +170 -0
  322. package/scripts/test-validate-unity-org-wiki.mjs +57 -0
  323. package/scripts/test-validate-unity-source-contracts.mjs +67 -0
  324. package/scripts/test-validate-vocabulary.mjs +174 -0
  325. package/scripts/test-validate-webpage-workflow.mjs +293 -0
  326. package/scripts/validate-baseline-manifest.mjs +44 -0
  327. package/scripts/validate-catalog.mjs +65 -0
  328. package/scripts/validate-component-state.mjs +141 -0
  329. package/scripts/validate-consumer-conformance.mjs +477 -0
  330. package/scripts/validate-consumer-reference.mjs +288 -0
  331. package/scripts/validate-domains.mjs +237 -0
  332. package/scripts/validate-governance.mjs +248 -0
  333. package/scripts/validate-ia.mjs +136 -0
  334. package/scripts/validate-links.mjs +66 -0
  335. package/scripts/validate-okf.mjs +104 -0
  336. package/scripts/validate-page-evidence.mjs +191 -0
  337. package/scripts/validate-patterns.mjs +246 -0
  338. package/scripts/validate-promotion-rfc.mjs +224 -0
  339. package/scripts/validate-reference-artifacts.mjs +125 -0
  340. package/scripts/validate-renderer-purity.mjs +56 -0
  341. package/scripts/validate-unity-org-wiki.mjs +146 -0
  342. package/scripts/validate-unity-source-contracts.mjs +107 -0
  343. package/scripts/validate-vocabulary.mjs +115 -0
  344. package/scripts/validate-webpage-workflow.mjs +254 -0
  345. package/scripts/visual-expectation-contract.mjs +20 -0
  346. package/scripts/workflow-action-contract.mjs +163 -0
@@ -0,0 +1,365 @@
1
+ {
2
+ "$defs": {
3
+ "adoptionMapping": {
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "consumer_target": { "$ref": "#/$defs/consumerTarget" },
7
+ "debt": {
8
+ "items": { "$ref": "#/$defs/debt" },
9
+ "type": "array"
10
+ },
11
+ "deviations": {
12
+ "items": { "$ref": "#/$defs/deviation" },
13
+ "type": "array"
14
+ },
15
+ "local_decision": { "$ref": "#/$defs/localDecision" },
16
+ "scenario_ids": { "$ref": "#/$defs/scenarioIds" },
17
+ "stylegallery": { "$ref": "#/$defs/stylegallerySource" }
18
+ },
19
+ "required": [
20
+ "consumer_target",
21
+ "debt",
22
+ "deviations",
23
+ "local_decision",
24
+ "scenario_ids",
25
+ "stylegallery"
26
+ ],
27
+ "type": "object"
28
+ },
29
+ "consumerTarget": {
30
+ "oneOf": [
31
+ {
32
+ "additionalProperties": false,
33
+ "properties": {
34
+ "identity": {
35
+ "pattern": "^[A-Z][A-Za-z0-9]*(?:[._/-][A-Za-z0-9_-]+)*$",
36
+ "type": "string"
37
+ },
38
+ "kind": { "const": "component" }
39
+ },
40
+ "required": ["identity", "kind"],
41
+ "type": "object"
42
+ },
43
+ {
44
+ "additionalProperties": false,
45
+ "properties": {
46
+ "identity": {
47
+ "pattern": "^(?:[.#][A-Za-z_][A-Za-z0-9_-]*|\\[[A-Za-z_:][-A-Za-z0-9_:.]*(?:=[^\\]\\r\\n]+)?\\])$",
48
+ "type": "string"
49
+ },
50
+ "kind": { "const": "selector" }
51
+ },
52
+ "required": ["identity", "kind"],
53
+ "type": "object"
54
+ },
55
+ {
56
+ "additionalProperties": false,
57
+ "properties": {
58
+ "identity": { "$ref": "#/$defs/repositoryPath" },
59
+ "kind": { "const": "module" }
60
+ },
61
+ "required": ["identity", "kind"],
62
+ "type": "object"
63
+ }
64
+ ]
65
+ },
66
+ "debt": {
67
+ "additionalProperties": false,
68
+ "properties": {
69
+ "owner": { "minLength": 1, "type": "string" },
70
+ "review_by": { "format": "date-time", "type": "string" },
71
+ "review_trigger": { "$ref": "#/$defs/sentence" },
72
+ "summary": { "$ref": "#/$defs/sentence" }
73
+ },
74
+ "required": ["owner", "review_by", "review_trigger", "summary"],
75
+ "type": "object"
76
+ },
77
+ "deviation": {
78
+ "additionalProperties": false,
79
+ "properties": {
80
+ "reason": { "$ref": "#/$defs/sentence" },
81
+ "summary": { "$ref": "#/$defs/sentence" }
82
+ },
83
+ "required": ["reason", "summary"],
84
+ "type": "object"
85
+ },
86
+ "dimension": {
87
+ "oneOf": [
88
+ {
89
+ "additionalProperties": false,
90
+ "properties": {
91
+ "scenario_ids": { "$ref": "#/$defs/scenarioIds" },
92
+ "status": { "const": "applicable" }
93
+ },
94
+ "required": ["scenario_ids", "status"],
95
+ "type": "object"
96
+ },
97
+ {
98
+ "additionalProperties": false,
99
+ "properties": {
100
+ "reason": { "$ref": "#/$defs/sentence" },
101
+ "status": { "const": "not_applicable" }
102
+ },
103
+ "required": ["reason", "status"],
104
+ "type": "object"
105
+ }
106
+ ]
107
+ },
108
+ "jsonPath": {
109
+ "pattern": "^(?!/)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?![A-Za-z][A-Za-z0-9+.-]*:)(?!.*\\/$)[^\\\\?#]+\\.json$",
110
+ "type": "string"
111
+ },
112
+ "localDecision": {
113
+ "additionalProperties": false,
114
+ "properties": {
115
+ "decision": { "$ref": "#/$defs/sentence" },
116
+ "identity": {
117
+ "minLength": 1,
118
+ "pattern": "^\\S(?:.*\\S)?$",
119
+ "type": "string"
120
+ },
121
+ "kind": { "enum": ["token", "unit"] }
122
+ },
123
+ "required": ["decision", "identity", "kind"],
124
+ "type": "object"
125
+ },
126
+ "pageEvidence": {
127
+ "oneOf": [
128
+ {
129
+ "additionalProperties": false,
130
+ "properties": {
131
+ "manifest": { "$ref": "#/$defs/jsonPath" },
132
+ "status": { "const": "applicable" }
133
+ },
134
+ "required": ["manifest", "status"],
135
+ "type": "object"
136
+ },
137
+ {
138
+ "additionalProperties": false,
139
+ "properties": {
140
+ "reason": { "$ref": "#/$defs/sentence" },
141
+ "status": { "const": "not_applicable" }
142
+ },
143
+ "required": ["reason", "status"],
144
+ "type": "object"
145
+ }
146
+ ]
147
+ },
148
+ "repositoryPath": {
149
+ "pattern": "^(?!/)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?![A-Za-z][A-Za-z0-9+.-]*:)(?!.*\\/$)[^\\\\?#]+$",
150
+ "type": "string"
151
+ },
152
+ "argv": {
153
+ "items": { "minLength": 1, "type": "string" },
154
+ "maxItems": 64,
155
+ "minItems": 1,
156
+ "type": "array"
157
+ },
158
+ "runtimeResult": {
159
+ "additionalProperties": false,
160
+ "properties": {
161
+ "argv": { "$ref": "#/$defs/argv" },
162
+ "evidence_method": { "enum": ["unit", "integration", "browser"] },
163
+ "exit_code": { "const": 0 },
164
+ "record_kind": { "const": "consumer_migration_scenario_result" },
165
+ "recorded_at": { "format": "date-time", "type": "string" },
166
+ "repository": { "minLength": 3, "pattern": "^\\S+/\\S+$", "type": "string" },
167
+ "revision": { "pattern": "^[a-f0-9]{40}$", "type": "string" },
168
+ "run_id": { "minLength": 1, "pattern": "^\\S+$", "type": "string" },
169
+ "scenario_id": { "$ref": "#/$defs/slug" },
170
+ "schema_version": { "const": "1.0" },
171
+ "session_id": { "minLength": 1, "pattern": "^\\S+$", "type": "string" },
172
+ "source_digest": { "$ref": "#/$defs/sha256" },
173
+ "status": { "const": "passed" }
174
+ },
175
+ "required": [
176
+ "argv",
177
+ "evidence_method",
178
+ "exit_code",
179
+ "record_kind",
180
+ "recorded_at",
181
+ "repository",
182
+ "revision",
183
+ "run_id",
184
+ "scenario_id",
185
+ "schema_version",
186
+ "session_id",
187
+ "source_digest",
188
+ "status"
189
+ ],
190
+ "type": "object"
191
+ },
192
+ "scenario": {
193
+ "additionalProperties": false,
194
+ "properties": {
195
+ "assertions": {
196
+ "items": { "minLength": 1, "type": "string" },
197
+ "minItems": 1,
198
+ "type": "array"
199
+ },
200
+ "argv": { "$ref": "#/$defs/argv" },
201
+ "evidence_method": { "enum": ["unit", "integration", "browser"] },
202
+ "exit_code": { "const": 0 },
203
+ "id": { "$ref": "#/$defs/slug" },
204
+ "observable_actions": {
205
+ "items": { "minLength": 1, "type": "string" },
206
+ "minItems": 1,
207
+ "type": "array"
208
+ },
209
+ "result_artifact": { "$ref": "#/$defs/jsonPath" },
210
+ "run_id": { "minLength": 1, "pattern": "^\\S+$", "type": "string" },
211
+ "session_id": { "minLength": 1, "pattern": "^\\S+$", "type": "string" },
212
+ "source_digest": { "$ref": "#/$defs/sha256" }
213
+ },
214
+ "required": [
215
+ "assertions",
216
+ "argv",
217
+ "evidence_method",
218
+ "exit_code",
219
+ "id",
220
+ "observable_actions",
221
+ "result_artifact",
222
+ "run_id",
223
+ "session_id",
224
+ "source_digest"
225
+ ],
226
+ "type": "object"
227
+ },
228
+ "scenarioIds": {
229
+ "items": { "$ref": "#/$defs/slug" },
230
+ "minItems": 1,
231
+ "type": "array",
232
+ "uniqueItems": true
233
+ },
234
+ "sentence": {
235
+ "minLength": 10,
236
+ "pattern": "^\\S+(?:\\s+\\S+){2,}\\s*[.!?]$",
237
+ "type": "string"
238
+ },
239
+ "sha256": {
240
+ "pattern": "^[a-f0-9]{64}$",
241
+ "type": "string"
242
+ },
243
+ "slug": {
244
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
245
+ "type": "string"
246
+ },
247
+ "stylegallerySource": {
248
+ "additionalProperties": false,
249
+ "properties": {
250
+ "anchor": {
251
+ "pattern": "^#[a-z0-9]+(?:-[a-z0-9]+)*$",
252
+ "type": "string"
253
+ },
254
+ "path": { "$ref": "#/$defs/repositoryPath" },
255
+ "revision": {
256
+ "pattern": "^[a-f0-9]{40}$",
257
+ "type": "string"
258
+ }
259
+ },
260
+ "required": ["anchor", "path", "revision"],
261
+ "type": "object"
262
+ }
263
+ },
264
+ "$id": "https://stylegallery.example/consumer-reference/schema/consumer-conformance-record.schema.json",
265
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
266
+ "additionalProperties": false,
267
+ "properties": {
268
+ "adoption_mappings": {
269
+ "items": { "$ref": "#/$defs/adoptionMapping" },
270
+ "maxItems": 256,
271
+ "minItems": 1,
272
+ "type": "array"
273
+ },
274
+ "claim_boundary": {
275
+ "additionalProperties": false,
276
+ "properties": {
277
+ "certifies_accessibility": { "const": false },
278
+ "certifies_product_correctness": { "const": false },
279
+ "scope": { "$ref": "#/$defs/sentence" }
280
+ },
281
+ "required": ["certifies_accessibility", "certifies_product_correctness", "scope"],
282
+ "type": "object"
283
+ },
284
+ "consumer": {
285
+ "additionalProperties": false,
286
+ "properties": {
287
+ "relevant_sources": {
288
+ "items": { "$ref": "#/$defs/repositoryPath" },
289
+ "maxItems": 1024,
290
+ "minItems": 1,
291
+ "type": "array",
292
+ "uniqueItems": true
293
+ },
294
+ "repository": {
295
+ "minLength": 3,
296
+ "pattern": "^\\S+/\\S+$",
297
+ "type": "string"
298
+ },
299
+ "revision": {
300
+ "pattern": "^[a-f0-9]{40}$",
301
+ "type": "string"
302
+ }
303
+ },
304
+ "required": ["relevant_sources", "repository", "revision"],
305
+ "type": "object"
306
+ },
307
+ "id": { "$ref": "#/$defs/slug" },
308
+ "migration_dimensions": {
309
+ "additionalProperties": false,
310
+ "properties": {
311
+ "action_parity": { "$ref": "#/$defs/dimension" },
312
+ "atomic_batch_behavior": { "$ref": "#/$defs/dimension" },
313
+ "behavior_inventory": { "$ref": "#/$defs/dimension" },
314
+ "contract_precedence": { "$ref": "#/$defs/dimension" },
315
+ "defaults_tri_state_mapping": { "$ref": "#/$defs/dimension" },
316
+ "direct_mutation": { "$ref": "#/$defs/dimension" },
317
+ "exact_time_boundary": { "$ref": "#/$defs/dimension" },
318
+ "field_parity": { "$ref": "#/$defs/dimension" },
319
+ "indirect_mutation": { "$ref": "#/$defs/dimension" },
320
+ "persistence_round_trip": { "$ref": "#/$defs/dimension" },
321
+ "reset_boundary": { "$ref": "#/$defs/dimension" },
322
+ "route_parity": { "$ref": "#/$defs/dimension" },
323
+ "state_transitions": { "$ref": "#/$defs/dimension" }
324
+ },
325
+ "required": [
326
+ "action_parity",
327
+ "atomic_batch_behavior",
328
+ "behavior_inventory",
329
+ "contract_precedence",
330
+ "defaults_tri_state_mapping",
331
+ "direct_mutation",
332
+ "exact_time_boundary",
333
+ "field_parity",
334
+ "indirect_mutation",
335
+ "persistence_round_trip",
336
+ "reset_boundary",
337
+ "route_parity",
338
+ "state_transitions"
339
+ ],
340
+ "type": "object"
341
+ },
342
+ "page_evidence": { "$ref": "#/$defs/pageEvidence" },
343
+ "record_kind": { "const": "consumer_migration_conformance" },
344
+ "scenarios": {
345
+ "items": { "$ref": "#/$defs/scenario" },
346
+ "maxItems": 256,
347
+ "minItems": 1,
348
+ "type": "array"
349
+ },
350
+ "schema_version": { "const": "1.0" }
351
+ },
352
+ "required": [
353
+ "adoption_mappings",
354
+ "claim_boundary",
355
+ "consumer",
356
+ "id",
357
+ "migration_dimensions",
358
+ "page_evidence",
359
+ "record_kind",
360
+ "scenarios",
361
+ "schema_version"
362
+ ],
363
+ "title": "Consumer migration conformance record",
364
+ "type": "object"
365
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://stylegallery.local/consumer-reference/schema/dom-evidence.schema.json",
4
+ "title": "Closed DOM capture artifact",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "channel", "capture_session", "captured_at", "profile_id", "scenario_id", "semantic_mode", "role", "active", "activation_key", "activation_count", "attributes", "visual_states"],
8
+ "properties": {
9
+ "schema_version": { "const": "1.0" },
10
+ "channel": { "const": "dom" },
11
+ "capture_session": { "$ref": "https://stylegallery.local/consumer-reference/schema/capture-session.schema.json#/$defs/session_link" },
12
+ "captured_at": { "type": "string", "format": "date-time" },
13
+ "profile_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
14
+ "scenario_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
15
+ "semantic_mode": { "enum": ["action", "toggle", "disclosure", "switch"] },
16
+ "role": { "enum": ["button", "link", "switch"] },
17
+ "active": { "type": "boolean" },
18
+ "activation_key": { "enum": ["Enter", "Space"] },
19
+ "activation_count": { "type": "integer", "minimum": 0 },
20
+ "attributes": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "properties": {
24
+ "aria-busy": { "enum": ["true", "false"] },
25
+ "aria-disabled": { "enum": ["true", "false"] },
26
+ "aria-expanded": { "enum": ["true", "false"] },
27
+ "aria-pressed": { "enum": ["true", "false"] },
28
+ "disabled": { "enum": ["true", "false"] }
29
+ }
30
+ },
31
+ "visual_states": {
32
+ "type": "array",
33
+ "minItems": 1,
34
+ "uniqueItems": true,
35
+ "items": { "enum": ["ready", "focus", "pressed", "expanded", "loading", "busy", "disabled"] }
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://stylegallery.local/consumer-reference/schema/evidence-record.schema.json",
4
+ "title": "Claim-scoped consumer component evidence",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "component_id", "profile_id", "claim_boundary", "passes"],
8
+ "properties": {
9
+ "schema_version": { "const": "1.0" },
10
+ "component_id": { "const": "button" },
11
+ "profile_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
12
+ "claim_boundary": { "const": "Scenario artifacts are evidence, not visual regression baselines or accessibility certification." },
13
+ "passes": {
14
+ "type": "array",
15
+ "minItems": 1,
16
+ "items": {
17
+ "type": "object",
18
+ "additionalProperties": false,
19
+ "required": ["id", "scenario_id", "artifact", "recorded_at", "environment", "run", "session", "scope", "channel", "result"],
20
+ "properties": {
21
+ "id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
22
+ "scenario_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
23
+ "artifact": {
24
+ "type": "object",
25
+ "additionalProperties": false,
26
+ "required": ["path", "sha256", "byte_length", "media_type"],
27
+ "properties": {
28
+ "path": { "type": "string", "minLength": 1 },
29
+ "sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
30
+ "byte_length": { "type": "integer", "minimum": 1 },
31
+ "media_type": { "enum": ["image/png", "application/json"] },
32
+ "width": { "type": "integer", "minimum": 1 },
33
+ "height": { "type": "integer", "minimum": 1 }
34
+ },
35
+ "allOf": [
36
+ {
37
+ "if": { "properties": { "media_type": { "const": "image/png" } }, "required": ["media_type"] },
38
+ "then": { "required": ["width", "height"] }
39
+ }
40
+ ]
41
+ },
42
+ "recorded_at": { "type": "string", "format": "date-time" },
43
+ "environment": { "$ref": "https://stylegallery.local/consumer-reference/schema/capture-session.schema.json#/$defs/environment" },
44
+ "run": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "required": ["id", "source", "repository", "revision", "attempt"],
48
+ "properties": {
49
+ "id": { "type": "string", "minLength": 1 },
50
+ "source": { "enum": ["local", "github_actions"] },
51
+ "repository": { "type": "string", "minLength": 1 },
52
+ "revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
53
+ "attempt": { "type": "integer", "minimum": 1 }
54
+ }
55
+ },
56
+ "session": { "$ref": "https://stylegallery.local/consumer-reference/schema/capture-session.schema.json#/$defs/session_link" },
57
+ "scope": {
58
+ "type": "object",
59
+ "additionalProperties": false,
60
+ "required": ["component", "semantic_mode", "state_set"],
61
+ "properties": {
62
+ "component": { "const": "button" },
63
+ "semantic_mode": { "enum": ["action", "toggle", "disclosure", "switch"] },
64
+ "state_set": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }
65
+ }
66
+ },
67
+ "channel": { "enum": ["static", "browser", "visual", "dom", "ax", "human"] },
68
+ "result": {
69
+ "type": "object",
70
+ "additionalProperties": false,
71
+ "required": ["status", "observed"],
72
+ "properties": {
73
+ "status": { "const": "passed" },
74
+ "observed": { "type": "string", "minLength": 1 }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://stylegallery.local/consumer-reference/schema/fixture-manifest.schema.json",
4
+ "title": "Consumer component runtime fixture manifest",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "fixture_id", "component_id", "profile_id", "component_record", "state_record", "scenarios"],
8
+ "properties": {
9
+ "schema_version": { "const": "1.0" },
10
+ "fixture_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
11
+ "component_id": { "const": "button" },
12
+ "profile_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
13
+ "component_record": { "const": "../components/button.component.json" },
14
+ "state_record": { "const": "../states/button.states.json" },
15
+ "scenarios": {
16
+ "type": "array",
17
+ "minItems": 1,
18
+ "items": {
19
+ "type": "object",
20
+ "additionalProperties": false,
21
+ "required": ["id", "semantic_mode", "label", "activation_key", "required_channels"],
22
+ "properties": {
23
+ "id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
24
+ "semantic_mode": { "enum": ["action", "toggle", "disclosure", "switch"] },
25
+ "label": { "type": "string", "minLength": 1 },
26
+ "activation_key": { "enum": ["Enter", "Space"] },
27
+ "required_channels": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "enum": ["static", "browser", "visual", "dom", "ax", "human"] } }
28
+ }
29
+ }
30
+ }
31
+ }
32
+ }