stylegallery 0.1.0 → 0.1.2

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 (230) hide show
  1. package/AGENTS.md +4 -1
  2. package/DOMAINS.md +2 -6
  3. package/GOVERNANCE.md +10 -9
  4. package/README.md +29 -127
  5. package/consumer-reference/agent-native/v2/admission-policy.json +646 -0
  6. package/consumer-reference/agent-native/v2/material-registry.json +1 -0
  7. package/consumer-reference/agent-native/v2/schema/admission-policy.schema.json +50 -0
  8. package/consumer-reference/agent-native/v2/schema/material-manifest.schema.json +17 -0
  9. package/consumer-reference/agent-native/v2/schema/material-record.schema.json +20 -0
  10. package/consumer-reference/contract.md +1 -1
  11. package/consumer-reference/index.md +5 -3
  12. package/layout/index.md +124 -0
  13. package/log.md +57 -0
  14. package/package.json +183 -22
  15. package/scripts/agent-native/v2/experimental-extension-registry.mjs +143 -0
  16. package/scripts/agent-native/v2/extensions/a2a-projection.mjs +264 -0
  17. package/scripts/agent-native/v2/extensions/agui-projection.mjs +191 -0
  18. package/scripts/agent-native/v2/material-admission.mjs +295 -0
  19. package/scripts/agent-native/v2/material-cli-adapter.mjs +134 -0
  20. package/scripts/agent-native/v2/material-context.mjs +251 -0
  21. package/scripts/agent-native/v2/material-identity.mjs +71 -0
  22. package/scripts/agent-native/v2/material-mcp-adapter.mjs +253 -0
  23. package/scripts/agent-native/v2/material-operation-registry.mjs +123 -0
  24. package/scripts/agent-native/v2/material-queries.mjs +398 -0
  25. package/scripts/agent-native/v2/material-registry.mjs +319 -0
  26. package/scripts/sg-material-mcp.mjs +98 -0
  27. package/scripts/sg-material.mjs +27 -0
  28. package/consumer-reference/adapters/style-dictionary.config.mjs +0 -36
  29. package/consumer-reference/baselines/calibration.json +0 -260
  30. package/consumer-reference/baselines/manifest.json +0 -21
  31. package/consumer-reference/fixtures/consumer-conformance/e2e-fixture.mjs +0 -282
  32. package/consumer-reference/fixtures/consumer-conformance/manifest.json +0 -102
  33. package/consumer-reference/fixtures/consumer-conformance/runtime-proof.mjs +0 -32
  34. package/consumer-reference/fixtures/consumer-conformance/valid-migration-result.json +0 -18
  35. package/consumer-reference/fixtures/consumer-conformance/valid-migration.json +0 -142
  36. package/consumer-reference/fixtures/invalid-stable-ended-support.json +0 -19
  37. package/consumer-reference/fixtures/promotion/invalid-blocking-evidence.json +0 -26
  38. package/consumer-reference/fixtures/promotion/invalid-count-only.json +0 -29
  39. package/consumer-reference/fixtures/promotion/invalid-missing-owner-migration.json +0 -25
  40. package/consumer-reference/fixtures/promotion/invalid-normative-bypass-no-regression.json +0 -25
  41. package/consumer-reference/fixtures/promotion/invalid-related-counted-independent.json +0 -45
  42. package/consumer-reference/fixtures/promotion/invalid-stable-ended-support.json +0 -26
  43. package/consumer-reference/fixtures/promotion/manifest.json +0 -15
  44. package/consumer-reference/fixtures/promotion/valid-deferred-example.json +0 -67
  45. package/consumer-reference/fixtures/promotion/valid-normative-bypass.json +0 -67
  46. package/consumer-reference/fixtures/token-portability/invalid-cycle.json +0 -7
  47. package/consumer-reference/fixtures/token-portability/invalid-dangling-alias.json +0 -6
  48. package/consumer-reference/fixtures/token-portability/invalid-extends.json +0 -4
  49. package/consumer-reference/fixtures/token-portability/invalid-json-pointer.json +0 -7
  50. package/consumer-reference/fixtures/token-portability/invalid-resolver.json +0 -9
  51. package/consumer-reference/fixtures/token-portability/invalid-type-mismatch.json +0 -10
  52. package/consumer-reference/fixtures/token-portability/invalid-unknown-reserved.json +0 -6
  53. package/consumer-reference/fixtures/token-portability/invalid-untested-type.json +0 -6
  54. package/consumer-reference/fixtures/token-portability/valid-border.json +0 -14
  55. package/consumer-reference/fixtures/token-portability/valid-reference.json +0 -32
  56. package/consumer-reference/fixtures/token-portability/valid-whole-alias.json +0 -7
  57. package/consumer-reference/fixtures/valid-deprecated.json +0 -21
  58. package/consumer-reference/fixtures/valid-experimental.json +0 -19
  59. package/consumer-reference/generated/manifest.json +0 -40
  60. package/consumer-reference/generated/tokens.css +0 -12
  61. package/consumer-reference/policies/shared-experimental.json +0 -37
  62. package/consumer-reference/schema/ax-evidence.schema.json +0 -30
  63. package/consumer-reference/schema/baseline-manifest.schema.json +0 -55
  64. package/consumer-reference/schema/calibration-record.schema.json +0 -190
  65. package/consumer-reference/schema/capture-session.schema.json +0 -161
  66. package/consumer-reference/schema/component-state.schema.json +0 -150
  67. package/consumer-reference/schema/consumer-conformance-record.schema.json +0 -365
  68. package/consumer-reference/schema/dom-evidence.schema.json +0 -38
  69. package/consumer-reference/schema/evidence-record.schema.json +0 -81
  70. package/consumer-reference/schema/fixture-manifest.schema.json +0 -32
  71. package/consumer-reference/schema/item.schema.json +0 -188
  72. package/consumer-reference/schema/page-evidence-manifest.schema.json +0 -216
  73. package/consumer-reference/schema/page-evidence-session.schema.json +0 -119
  74. package/consumer-reference/schema/portable-tokens.schema.json +0 -104
  75. package/consumer-reference/schema/promotion-rfc.schema.json +0 -219
  76. package/consumer-reference/schema/runtime-evidence-manifest.schema.json +0 -33
  77. package/consumer-reference/schema/visual-evidence.schema.json +0 -31
  78. package/design-engineering/consumer-migration-readiness.md +0 -124
  79. package/design-engineering/interface-craft.md +0 -107
  80. package/design-engineering/reference-profiles/external-adaptation/index.md +0 -12
  81. package/design-engineering/reference-profiles/governed-local/editorial/components/button.component.json +0 -125
  82. package/design-engineering/reference-profiles/governed-local/editorial/evidence/button.evidence.json +0 -3504
  83. package/design-engineering/reference-profiles/governed-local/editorial/fixtures/button.fixture.json +0 -65
  84. package/design-engineering/reference-profiles/governed-local/editorial/generated/evidence-coverage.md +0 -23
  85. package/design-engineering/reference-profiles/governed-local/editorial/generated/keyboard-matrix.md +0 -19
  86. package/design-engineering/reference-profiles/governed-local/editorial/generated/state-matrix.md +0 -21
  87. package/design-engineering/reference-profiles/governed-local/editorial/local-foundations.json +0 -12
  88. package/design-engineering/reference-profiles/governed-local/editorial/states/button.states.json +0 -195
  89. package/design-engineering/reference-profiles/governed-local/editorial/tokens.dtcg.json +0 -17
  90. package/design-engineering/reference-profiles/governed-local/terminal/components/button.component.json +0 -125
  91. package/design-engineering/reference-profiles/governed-local/terminal/evidence/button.evidence.json +0 -3504
  92. package/design-engineering/reference-profiles/governed-local/terminal/fixtures/button.fixture.json +0 -65
  93. package/design-engineering/reference-profiles/governed-local/terminal/generated/evidence-coverage.md +0 -23
  94. package/design-engineering/reference-profiles/governed-local/terminal/generated/keyboard-matrix.md +0 -19
  95. package/design-engineering/reference-profiles/governed-local/terminal/generated/state-matrix.md +0 -21
  96. package/design-engineering/reference-profiles/governed-local/terminal/local-foundations.json +0 -12
  97. package/design-engineering/reference-profiles/governed-local/terminal/profile.json +0 -43
  98. package/design-engineering/reference-profiles/governed-local/terminal/states/button.states.json +0 -195
  99. package/design-engineering/reference-profiles/governed-local/terminal/tokens.dtcg.json +0 -17
  100. package/game-ui/classification.md +0 -82
  101. package/game-ui/reference-record.md +0 -62
  102. package/game-ui/screen-hierarchy.md +0 -107
  103. package/game-ui/unity/architecture.md +0 -166
  104. package/game-ui/unity/cli-loop.md +0 -84
  105. package/game-ui/unity/data/unity-technologies-public-repositories.json +0 -26654
  106. package/game-ui/unity/org-wiki.md +0 -146
  107. package/game-ui/unity/repository-map.md +0 -102
  108. package/game-ui/unity/ui-systems.md +0 -85
  109. package/motion/practice-reference.md +0 -145
  110. package/motion/review-workflow.md +0 -86
  111. package/motion/vocabulary.md +0 -82
  112. package/platform-guides/apple-interaction.md +0 -89
  113. package/scripts/agent-native/events.mjs +0 -113
  114. package/scripts/agent-native/immutable-store.mjs +0 -102
  115. package/scripts/artifact-metadata.mjs +0 -20
  116. package/scripts/audit-evidence-freshness.mjs +0 -308
  117. package/scripts/baseline-contract.mjs +0 -189
  118. package/scripts/baseline-schema-parity.mjs +0 -40
  119. package/scripts/build-reference-artifacts.mjs +0 -127
  120. package/scripts/calibration-raw-contract.mjs +0 -172
  121. package/scripts/capture-session-contract.mjs +0 -187
  122. package/scripts/component-state-artifact-fixture.mjs +0 -44
  123. package/scripts/component-state-contract.mjs +0 -99
  124. package/scripts/component-state-semantics.mjs +0 -128
  125. package/scripts/component-state-workflow-contract.mjs +0 -67
  126. package/scripts/component-state-workflow-negative-cases.mjs +0 -64
  127. package/scripts/consumer-conformance-contract.mjs +0 -198
  128. package/scripts/consumer-evidence-governance-contract.mjs +0 -210
  129. package/scripts/consumer-reference-case-runner.mjs +0 -93
  130. package/scripts/consumer-reference-schema.mjs +0 -155
  131. package/scripts/create-component-state-session.mjs +0 -100
  132. package/scripts/create-page-evidence-session.mjs +0 -139
  133. package/scripts/domain-document-boundaries.mjs +0 -40
  134. package/scripts/domain-validation-checks.mjs +0 -141
  135. package/scripts/evidence-artifact-contract.mjs +0 -191
  136. package/scripts/finalize-component-state-evidence.mjs +0 -165
  137. package/scripts/finalize-page-evidence.mjs +0 -197
  138. package/scripts/generate-consumer-reference-evidence.mjs +0 -154
  139. package/scripts/generate-patterns.mjs +0 -218
  140. package/scripts/governance-matrix-contract.mjs +0 -73
  141. package/scripts/governance-matrix-negative-cases.mjs +0 -114
  142. package/scripts/governance-policy-contract.mjs +0 -49
  143. package/scripts/governance-test-fixture.mjs +0 -321
  144. package/scripts/governance-workflow-negative-cases.mjs +0 -241
  145. package/scripts/governed-profile-registry.mjs +0 -125
  146. package/scripts/json-schema-formats.mjs +0 -31
  147. package/scripts/markdown-structure.mjs +0 -45
  148. package/scripts/page-artifact-metadata.mjs +0 -124
  149. package/scripts/page-evidence-contract.mjs +0 -297
  150. package/scripts/page-evidence-fixture.mjs +0 -271
  151. package/scripts/pattern-data.mjs +0 -325
  152. package/scripts/profile-record-contract.mjs +0 -140
  153. package/scripts/promotion-attestation-contract.mjs +0 -91
  154. package/scripts/promotion-boundary-test-contract.mjs +0 -92
  155. package/scripts/promotion-fixture-inventory.mjs +0 -109
  156. package/scripts/promotion-governance-contract.mjs +0 -28
  157. package/scripts/reference-artifact-path-contract.mjs +0 -28
  158. package/scripts/reference-profile-contract.mjs +0 -114
  159. package/scripts/reference-token-contract.mjs +0 -156
  160. package/scripts/run-consumer-page-evidence-ci.mjs +0 -170
  161. package/scripts/summarize-sentinel-calibration.mjs +0 -98
  162. package/scripts/test-agent-adapter-conformance.mjs +0 -250
  163. package/scripts/test-agent-conformance-receipt.mjs +0 -106
  164. package/scripts/test-agent-events.mjs +0 -81
  165. package/scripts/test-agent-execution-effects.mjs +0 -114
  166. package/scripts/test-agent-execution-fixtures.mjs +0 -140
  167. package/scripts/test-agent-execution-kernel.mjs +0 -39
  168. package/scripts/test-agent-execution-learning.mjs +0 -130
  169. package/scripts/test-agent-execution-lifecycle.mjs +0 -143
  170. package/scripts/test-agent-execution-safety.mjs +0 -158
  171. package/scripts/test-agent-execution-views.mjs +0 -117
  172. package/scripts/test-agent-identity-integrity-cases.mjs +0 -160
  173. package/scripts/test-agent-knowledge-kernel.mjs +0 -183
  174. package/scripts/test-agent-learning.mjs +0 -246
  175. package/scripts/test-agent-mcp.mjs +0 -246
  176. package/scripts/test-agent-native-schemas.mjs +0 -215
  177. package/scripts/test-agent-projections.mjs +0 -249
  178. package/scripts/test-agent-registry-mcp-integrity.mjs +0 -215
  179. package/scripts/test-agent-registry-mutations.mjs +0 -110
  180. package/scripts/test-audit-evidence-freshness.mjs +0 -177
  181. package/scripts/test-component-state-sentinel.mjs +0 -35
  182. package/scripts/test-component-state-source-contract.mjs +0 -83
  183. package/scripts/test-consumer-conformance-sentinel.mjs +0 -165
  184. package/scripts/test-consumer-reference-sentinel.mjs +0 -31
  185. package/scripts/test-generate-consumer-reference-evidence.mjs +0 -124
  186. package/scripts/test-json-cli-output.mjs +0 -151
  187. package/scripts/test-json-schema-formats.mjs +0 -40
  188. package/scripts/test-reference-adapters.mjs +0 -199
  189. package/scripts/test-renderer-purity.mjs +0 -34
  190. package/scripts/test-sg-cli.mjs +0 -129
  191. package/scripts/test-summarize-sentinel-calibration.mjs +0 -226
  192. package/scripts/test-validate-baseline-manifest.mjs +0 -234
  193. package/scripts/test-validate-component-state-artifacts.mjs +0 -243
  194. package/scripts/test-validate-component-state.mjs +0 -106
  195. package/scripts/test-validate-consumer-conformance.mjs +0 -427
  196. package/scripts/test-validate-consumer-reference-cli.mjs +0 -69
  197. package/scripts/test-validate-consumer-reference.mjs +0 -263
  198. package/scripts/test-validate-domains.mjs +0 -357
  199. package/scripts/test-validate-governance.mjs +0 -292
  200. package/scripts/test-validate-ia.mjs +0 -262
  201. package/scripts/test-validate-okf.mjs +0 -73
  202. package/scripts/test-validate-page-evidence.mjs +0 -302
  203. package/scripts/test-validate-patterns.mjs +0 -157
  204. package/scripts/test-validate-promotion-rfc.mjs +0 -250
  205. package/scripts/test-validate-reference-profiles.mjs +0 -170
  206. package/scripts/test-validate-unity-org-wiki.mjs +0 -57
  207. package/scripts/test-validate-unity-source-contracts.mjs +0 -67
  208. package/scripts/test-validate-vocabulary.mjs +0 -174
  209. package/scripts/test-validate-webpage-workflow.mjs +0 -293
  210. package/scripts/validate-baseline-manifest.mjs +0 -44
  211. package/scripts/validate-catalog.mjs +0 -65
  212. package/scripts/validate-component-state.mjs +0 -141
  213. package/scripts/validate-consumer-conformance.mjs +0 -477
  214. package/scripts/validate-consumer-reference.mjs +0 -288
  215. package/scripts/validate-domains.mjs +0 -237
  216. package/scripts/validate-governance.mjs +0 -248
  217. package/scripts/validate-ia.mjs +0 -136
  218. package/scripts/validate-links.mjs +0 -66
  219. package/scripts/validate-okf.mjs +0 -104
  220. package/scripts/validate-page-evidence.mjs +0 -191
  221. package/scripts/validate-patterns.mjs +0 -246
  222. package/scripts/validate-promotion-rfc.mjs +0 -224
  223. package/scripts/validate-reference-artifacts.mjs +0 -125
  224. package/scripts/validate-renderer-purity.mjs +0 -56
  225. package/scripts/validate-unity-org-wiki.mjs +0 -146
  226. package/scripts/validate-unity-source-contracts.mjs +0 -107
  227. package/scripts/validate-vocabulary.mjs +0 -115
  228. package/scripts/validate-webpage-workflow.mjs +0 -254
  229. package/scripts/visual-expectation-contract.mjs +0 -20
  230. package/scripts/workflow-action-contract.mjs +0 -163
@@ -1,150 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://stylegallery.local/consumer-reference/schema/component-state.schema.json",
4
- "title": "Consumer component and compound-state records",
5
- "oneOf": [
6
- { "$ref": "#/$defs/component" },
7
- { "$ref": "#/$defs/stateSet" }
8
- ],
9
- "$defs": {
10
- "applicability": {
11
- "type": "object",
12
- "additionalProperties": false,
13
- "required": ["name", "status"],
14
- "properties": {
15
- "name": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
16
- "status": { "enum": ["required", "conditional", "not_applicable", "prohibited"] },
17
- "condition": { "type": "string", "minLength": 1 },
18
- "resolution": { "enum": ["required", "not_applicable", "prohibited"] },
19
- "reason": { "type": "string", "minLength": 10, "pattern": "^\\S+(?:\\s+\\S+){2,}\\s*[.!?]$" },
20
- "values": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": ["string", "boolean"] } }
21
- }
22
- },
23
- "component": {
24
- "type": "object",
25
- "additionalProperties": false,
26
- "required": ["schema_version", "record_kind", "component_id", "profile_id", "anatomy", "semantic_modes", "versions"],
27
- "properties": {
28
- "schema_version": { "const": "1.0" },
29
- "record_kind": { "const": "component" },
30
- "component_id": { "const": "button" },
31
- "profile_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
32
- "anatomy": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" } },
33
- "semantic_modes": {
34
- "type": "array",
35
- "minItems": 1,
36
- "items": {
37
- "type": "object",
38
- "additionalProperties": false,
39
- "required": ["id", "element", "role", "keys", "aria_states", "activation"],
40
- "properties": {
41
- "id": { "enum": ["action", "toggle", "disclosure", "switch"] },
42
- "element": { "const": "button" },
43
- "role": { "enum": ["button", "switch"] },
44
- "keys": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "enum": ["Enter", "Space"] } },
45
- "aria_states": { "type": "array", "items": { "$ref": "#/$defs/applicability" } },
46
- "activation": { "enum": ["invoke", "toggle", "control"] }
47
- }
48
- }
49
- },
50
- "versions": {
51
- "type": "object",
52
- "additionalProperties": false,
53
- "required": ["design_revision", "package_version", "api_version", "delivery_channel", "lifecycle"],
54
- "properties": {
55
- "design_revision": { "type": "string", "pattern": "^\\d{4}\\.\\d{2}\\.\\d{2}$" },
56
- "package_version": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+(?:-[a-z0-9.-]+)?$" },
57
- "api_version": { "type": "string", "pattern": "^\\d+\\.\\d+$" },
58
- "delivery_channel": { "enum": ["preview", "stable"] },
59
- "lifecycle": { "enum": ["experimental", "stable", "deprecated"] }
60
- }
61
- }
62
- }
63
- },
64
- "stateSet": {
65
- "type": "object",
66
- "additionalProperties": false,
67
- "required": ["schema_version", "record_kind", "component_id", "profile_id", "visual_environments", "scenarios"],
68
- "properties": {
69
- "schema_version": { "const": "1.0" },
70
- "record_kind": { "const": "state_set" },
71
- "component_id": { "const": "button" },
72
- "profile_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
73
- "visual_environments": {
74
- "type": "array",
75
- "minItems": 1,
76
- "items": {
77
- "type": "object",
78
- "additionalProperties": false,
79
- "required": ["id", "browser", "browser_revision", "container_image", "platform", "playwright", "viewport"],
80
- "properties": {
81
- "id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
82
- "browser": { "type": "string", "minLength": 1 },
83
- "browser_revision": { "type": "string", "minLength": 1 },
84
- "container_image": { "type": "string", "minLength": 1 },
85
- "platform": { "enum": ["darwin/arm64", "linux/amd64"] },
86
- "playwright": { "const": "1.61.0" },
87
- "viewport": { "const": "1024x768" }
88
- }
89
- }
90
- },
91
- "scenarios": {
92
- "type": "array",
93
- "minItems": 1,
94
- "items": {
95
- "type": "object",
96
- "additionalProperties": false,
97
- "required": ["id", "semantic_mode", "states", "aria", "expected"],
98
- "properties": {
99
- "id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
100
- "semantic_mode": { "enum": ["action", "toggle", "disclosure", "switch"] },
101
- "states": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "enum": ["focus", "pressed", "expanded", "loading", "busy", "disabled", "invalid", "selected", "current", "reduced_motion"] } },
102
- "aria": {
103
- "type": "object",
104
- "additionalProperties": false,
105
- "properties": {
106
- "pressed": { "enum": ["true", "false"] },
107
- "expanded": { "enum": ["true", "false"] },
108
- "busy": { "enum": ["true", "false"] },
109
- "disabled": { "enum": ["true", "false"] },
110
- "checked": { "enum": ["true", "false"] }
111
- }
112
- },
113
- "expected": {
114
- "type": "object",
115
- "additionalProperties": false,
116
- "required": ["visual", "visual_image", "dom", "ax", "activation"],
117
- "properties": {
118
- "visual": {
119
- "type": "array",
120
- "minItems": 1,
121
- "uniqueItems": true,
122
- "items": { "enum": ["ready", "focus", "pressed", "expanded", "loading", "busy", "disabled"] }
123
- },
124
- "visual_image": {
125
- "type": "array",
126
- "minItems": 1,
127
- "items": {
128
- "type": "object",
129
- "additionalProperties": false,
130
- "required": ["environment_id", "sha256", "width", "height"],
131
- "properties": {
132
- "environment_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
133
- "sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
134
- "width": { "type": "integer", "minimum": 44 },
135
- "height": { "type": "integer", "minimum": 44 }
136
- }
137
- }
138
- },
139
- "dom": { "type": "object", "additionalProperties": { "type": "string" } },
140
- "ax": { "type": "object", "additionalProperties": { "type": ["string", "boolean"] } },
141
- "activation": { "enum": ["allowed", "suppressed"] }
142
- }
143
- }
144
- }
145
- }
146
- }
147
- }
148
- }
149
- }
150
- }
@@ -1,365 +0,0 @@
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
- }
@@ -1,38 +0,0 @@
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
- }
@@ -1,81 +0,0 @@
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
- }