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,32 +0,0 @@
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
- }
@@ -1,188 +0,0 @@
1
- {
2
- "$id": "https://stylegallery.example/consumer-reference/schema/item.schema.json",
3
- "$schema": "https://json-schema.org/draft/2020-12/schema",
4
- "additionalProperties": false,
5
- "allOf": [
6
- {
7
- "if": {
8
- "properties": {
9
- "maturity": { "const": "stable" },
10
- "support": {
11
- "properties": { "status": { "const": "ended" } },
12
- "required": ["status"]
13
- }
14
- },
15
- "required": ["maturity", "support"]
16
- },
17
- "then": false
18
- },
19
- {
20
- "if": {
21
- "properties": { "maturity": { "const": "deprecated" } },
22
- "required": ["maturity"]
23
- },
24
- "then": { "required": ["removal_trigger", "replacement"] }
25
- },
26
- {
27
- "if": { "required": ["profile_kind"] },
28
- "then": {
29
- "properties": {
30
- "artifact_mode": { "const": "governed_local" },
31
- "default": { "const": false },
32
- "example_only": { "const": true },
33
- "maturity": { "const": "experimental" },
34
- "profile_kind": { "const": "governed_local" }
35
- },
36
- "required": [
37
- "default",
38
- "environment_assumptions",
39
- "example_only",
40
- "component_records",
41
- "evidence_records",
42
- "fixture_records",
43
- "generated_records",
44
- "layout_source_sha",
45
- "local_foundations",
46
- "profile_kind",
47
- "related_fixture_set_id",
48
- "selection",
49
- "state_records",
50
- "tokens"
51
- ]
52
- }
53
- }
54
- ],
55
- "properties": {
56
- "artifact_mode": {
57
- "enum": ["consumer_local", "external_consumer", "governed_local", "schema_only"]
58
- },
59
- "component_records": {
60
- "type": "array",
61
- "minItems": 1,
62
- "uniqueItems": true,
63
- "items": { "const": "components/button.component.json" }
64
- },
65
- "default": { "const": false },
66
- "environment_assumptions": {
67
- "additionalProperties": false,
68
- "properties": {
69
- "reset": {
70
- "additionalProperties": false,
71
- "properties": {
72
- "body_margin": { "minLength": 1, "type": "string" },
73
- "box_sizing": { "minLength": 1, "type": "string" },
74
- "figure_margin": { "minLength": 1, "type": "string" }
75
- },
76
- "required": ["body_margin", "box_sizing", "figure_margin"],
77
- "type": "object"
78
- },
79
- "user_agent_styles": { "minLength": 1, "type": "string" }
80
- },
81
- "required": ["reset", "user_agent_styles"],
82
- "type": "object"
83
- },
84
- "example_only": { "const": true },
85
- "evidence_records": {
86
- "type": "array",
87
- "minItems": 1,
88
- "uniqueItems": true,
89
- "items": { "const": "evidence/button.evidence.json" }
90
- },
91
- "fixture_independence": { "const": "related" },
92
- "fixture_records": {
93
- "type": "array",
94
- "minItems": 1,
95
- "uniqueItems": true,
96
- "items": { "const": "fixtures/button.fixture.json" }
97
- },
98
- "generated_records": {
99
- "type": "array",
100
- "minItems": 3,
101
- "uniqueItems": true,
102
- "items": { "enum": ["generated/state-matrix.md", "generated/keyboard-matrix.md", "generated/evidence-coverage.md"] }
103
- },
104
- "handoff": {
105
- "oneOf": [
106
- {
107
- "additionalProperties": false,
108
- "properties": {
109
- "record": {
110
- "pattern": "^(?!/)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?![A-Za-z][A-Za-z0-9+.-]*:)[^\\\\?#]+\\.json$",
111
- "type": "string"
112
- },
113
- "status": { "const": "declared" }
114
- },
115
- "required": ["record", "status"],
116
- "type": "object"
117
- },
118
- {
119
- "additionalProperties": false,
120
- "properties": {
121
- "reason": {
122
- "minLength": 10,
123
- "pattern": "^\\S+(?:\\s+\\S+){2,}\\s*[.!?]$",
124
- "type": "string"
125
- },
126
- "status": { "const": "not_applicable" }
127
- },
128
- "required": ["reason", "status"],
129
- "type": "object"
130
- }
131
- ]
132
- },
133
- "id": { "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "type": "string" },
134
- "layout_source_sha": { "const": "775430bbaf4ee208a642220f440f6926d79c90a3" },
135
- "local_foundations": { "const": "local-foundations.json" },
136
- "maturity": { "enum": ["deprecated", "experimental", "stable"] },
137
- "owner": {
138
- "additionalProperties": false,
139
- "properties": {
140
- "enforcement": { "const": "placeholder" },
141
- "name": { "minLength": 1, "type": "string" }
142
- },
143
- "required": ["enforcement", "name"],
144
- "type": "object"
145
- },
146
- "removal_trigger": { "minLength": 1, "type": "string" },
147
- "profile_kind": { "const": "governed_local" },
148
- "related_fixture_set_id": { "minLength": 1, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "type": "string" },
149
- "replacement": { "minLength": 1, "type": "string" },
150
- "review_independence": { "const": "single_account" },
151
- "schema_version": { "const": "1.0" },
152
- "selection": {
153
- "additionalProperties": false,
154
- "properties": {
155
- "method": { "const": "profile_path" },
156
- "required": { "const": true }
157
- },
158
- "required": ["method", "required"],
159
- "type": "object"
160
- },
161
- "support": {
162
- "additionalProperties": false,
163
- "properties": { "status": { "enum": ["active", "ended"] } },
164
- "required": ["status"],
165
- "type": "object"
166
- },
167
- "state_records": {
168
- "type": "array",
169
- "minItems": 1,
170
- "uniqueItems": true,
171
- "items": { "const": "states/button.states.json" }
172
- },
173
- "tokens": { "const": "tokens.dtcg.json" }
174
- },
175
- "required": [
176
- "artifact_mode",
177
- "fixture_independence",
178
- "handoff",
179
- "id",
180
- "maturity",
181
- "owner",
182
- "review_independence",
183
- "schema_version",
184
- "support"
185
- ],
186
- "title": "Consumer reference item",
187
- "type": "object"
188
- }
@@ -1,216 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://stylegallery.local/consumer-reference/schema/page-evidence-manifest.schema.json",
4
- "title": "Closed consumer-local page evidence manifest",
5
- "type": "object",
6
- "additionalProperties": false,
7
- "required": ["schema_version", "record_kind", "claim_boundary", "completed_at", "review_by", "repository", "revision", "run", "session", "scenarios"],
8
- "properties": {
9
- "schema_version": { "const": "1.0" },
10
- "record_kind": { "const": "page_evidence_manifest" },
11
- "claim_boundary": { "const": "Page evidence is claim-scoped runtime evidence, not visual-regression approval or accessibility certification." },
12
- "completed_at": { "type": "string", "format": "date-time" },
13
- "review_by": { "type": "string", "format": "date-time" },
14
- "repository": { "type": "string", "minLength": 1 },
15
- "revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
16
- "run": { "$ref": "#/$defs/run" },
17
- "session": { "$ref": "https://stylegallery.local/consumer-reference/schema/page-evidence-session.schema.json#/$defs/completed_session" },
18
- "scenarios": {
19
- "type": "array",
20
- "maxItems": 256,
21
- "minItems": 1,
22
- "items": { "$ref": "#/$defs/manifest_scenario" }
23
- }
24
- },
25
- "$defs": {
26
- "hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
27
- "identity": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" },
28
- "scenario_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
29
- "normalized_path": { "type": "string", "minLength": 1, "pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*[?#]).+$" },
30
- "run": {
31
- "type": "object",
32
- "additionalProperties": false,
33
- "required": ["id", "source", "repository", "revision", "attempt", "status"],
34
- "properties": {
35
- "id": { "$ref": "#/$defs/identity" },
36
- "source": { "enum": ["local", "github_actions"] },
37
- "repository": { "type": "string", "minLength": 1 },
38
- "revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
39
- "attempt": { "type": "integer", "minimum": 1 },
40
- "status": { "const": "passed" }
41
- }
42
- },
43
- "semantic_environment": {
44
- "type": "object",
45
- "additionalProperties": false,
46
- "required": ["browser", "browser_revision", "platform", "viewport", "page_scale_factor", "locale", "color_scheme", "reduced_motion"],
47
- "properties": {
48
- "browser": { "type": "string", "minLength": 1 },
49
- "browser_revision": { "type": "string", "minLength": 1 },
50
- "platform": { "type": "string", "minLength": 1 },
51
- "viewport": {
52
- "type": "object",
53
- "additionalProperties": false,
54
- "required": ["width", "height"],
55
- "properties": {
56
- "width": { "type": "integer", "minimum": 1 },
57
- "height": { "type": "integer", "minimum": 1 }
58
- }
59
- },
60
- "page_scale_factor": { "type": "number", "exclusiveMinimum": 0, "maximum": 10 },
61
- "locale": { "type": "string", "minLength": 1 },
62
- "color_scheme": { "enum": ["light", "dark", "no-preference"] },
63
- "reduced_motion": { "enum": ["reduce", "no-preference"] }
64
- }
65
- },
66
- "artifact_declaration": {
67
- "type": "object",
68
- "additionalProperties": false,
69
- "required": ["path", "media_type"],
70
- "properties": {
71
- "path": { "$ref": "#/$defs/normalized_path" },
72
- "media_type": { "enum": ["application/json", "image/png", "text/plain"] }
73
- }
74
- },
75
- "artifact": {
76
- "type": "object",
77
- "additionalProperties": false,
78
- "required": ["path", "sha256", "byte_length", "media_type"],
79
- "properties": {
80
- "path": { "$ref": "#/$defs/normalized_path" },
81
- "sha256": { "$ref": "#/$defs/hash" },
82
- "byte_length": { "type": "integer", "minimum": 1 },
83
- "media_type": { "enum": ["application/json", "image/png", "text/plain"] },
84
- "width": { "type": "integer", "minimum": 1 },
85
- "height": { "type": "integer", "minimum": 1 }
86
- },
87
- "allOf": [
88
- {
89
- "if": { "properties": { "media_type": { "const": "image/png" } }, "required": ["media_type"] },
90
- "then": {
91
- "required": ["width", "height"],
92
- "properties": {
93
- "width": { "type": "integer", "minimum": 1 },
94
- "height": { "type": "integer", "minimum": 1 }
95
- }
96
- }
97
- }
98
- ]
99
- },
100
- "reuse": {
101
- "type": "object",
102
- "additionalProperties": false,
103
- "required": ["kind", "prior_manifest_sha256", "prior_session_id", "prior_run_id", "prior_scenario_id"],
104
- "properties": {
105
- "kind": { "const": "reused" },
106
- "prior_manifest_sha256": { "$ref": "#/$defs/hash" },
107
- "prior_session_id": { "$ref": "#/$defs/identity" },
108
- "prior_run_id": { "$ref": "#/$defs/identity" },
109
- "prior_scenario_id": { "$ref": "#/$defs/scenario_id" }
110
- }
111
- },
112
- "runner_result": {
113
- "type": "object",
114
- "additionalProperties": false,
115
- "required": ["schema_version", "record_kind", "session_id", "nonce", "receipt_sha256", "repository", "revision", "source_sha256", "run", "scenario_id", "recorded_at", "semantic_environment", "status", "evidence"],
116
- "properties": {
117
- "schema_version": { "const": "1.0" },
118
- "record_kind": { "const": "page_evidence_runner_result" },
119
- "session_id": { "$ref": "#/$defs/identity" },
120
- "nonce": { "$ref": "#/$defs/hash" },
121
- "receipt_sha256": { "$ref": "#/$defs/hash" },
122
- "repository": { "type": "string", "minLength": 1 },
123
- "revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
124
- "source_sha256": { "$ref": "#/$defs/hash" },
125
- "run": {
126
- "type": "object",
127
- "additionalProperties": false,
128
- "required": ["id", "source", "repository", "revision", "attempt"],
129
- "properties": {
130
- "id": { "$ref": "#/$defs/identity" },
131
- "source": { "enum": ["local", "github_actions"] },
132
- "repository": { "type": "string", "minLength": 1 },
133
- "revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
134
- "attempt": { "type": "integer", "minimum": 1 }
135
- }
136
- },
137
- "scenario_id": { "$ref": "#/$defs/scenario_id" },
138
- "recorded_at": { "type": "string", "format": "date-time" },
139
- "semantic_environment": { "$ref": "#/$defs/semantic_environment" },
140
- "status": { "enum": ["passed", "failed"] },
141
- "evidence": {
142
- "oneOf": [
143
- {
144
- "type": "object",
145
- "additionalProperties": false,
146
- "required": ["kind", "artifacts"],
147
- "properties": {
148
- "kind": { "const": "captured" },
149
- "artifacts": { "type": "array", "minItems": 1, "maxItems": 128, "items": { "$ref": "#/$defs/artifact_declaration" } }
150
- }
151
- },
152
- { "$ref": "#/$defs/reuse" },
153
- {
154
- "type": "object",
155
- "additionalProperties": false,
156
- "required": ["kind", "reason"],
157
- "properties": {
158
- "kind": { "const": "failed" },
159
- "reason": { "type": "string", "minLength": 1 }
160
- }
161
- }
162
- ]
163
- }
164
- },
165
- "allOf": [
166
- {
167
- "if": { "properties": { "status": { "const": "passed" } }, "required": ["status"] },
168
- "then": {
169
- "properties": {
170
- "evidence": {
171
- "type": "object",
172
- "oneOf": [
173
- { "$ref": "#/$defs/reuse" },
174
- { "type": "object", "properties": { "kind": { "const": "captured" } }, "required": ["kind"] }
175
- ]
176
- }
177
- }
178
- }
179
- },
180
- {
181
- "if": { "properties": { "status": { "const": "failed" } }, "required": ["status"] },
182
- "then": {
183
- "properties": {
184
- "evidence": { "type": "object", "properties": { "kind": { "const": "failed" } }, "required": ["kind"] }
185
- }
186
- }
187
- }
188
- ]
189
- },
190
- "manifest_scenario": {
191
- "type": "object",
192
- "additionalProperties": false,
193
- "required": ["id", "recorded_at", "semantic_environment", "runner_result", "evidence"],
194
- "properties": {
195
- "id": { "$ref": "#/$defs/scenario_id" },
196
- "recorded_at": { "type": "string", "format": "date-time" },
197
- "semantic_environment": { "$ref": "#/$defs/semantic_environment" },
198
- "runner_result": { "$ref": "#/$defs/artifact" },
199
- "evidence": {
200
- "oneOf": [
201
- {
202
- "type": "object",
203
- "additionalProperties": false,
204
- "required": ["kind", "artifacts"],
205
- "properties": {
206
- "kind": { "const": "captured" },
207
- "artifacts": { "type": "array", "minItems": 1, "maxItems": 128, "items": { "$ref": "#/$defs/artifact" } }
208
- }
209
- },
210
- { "$ref": "#/$defs/reuse" }
211
- ]
212
- }
213
- }
214
- }
215
- }
216
- }
@@ -1,119 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://stylegallery.local/consumer-reference/schema/page-evidence-session.schema.json",
4
- "title": "Consumer-local page evidence start receipt",
5
- "type": "object",
6
- "additionalProperties": false,
7
- "required": ["schema_version", "record_kind", "session_id", "run_id", "nonce", "started_at", "repository", "revision", "branch", "attempt", "environment", "conformance_record", "source", "intended_scenario_ids"],
8
- "properties": {
9
- "schema_version": { "const": "1.0" },
10
- "record_kind": { "const": "page_evidence_session" },
11
- "session_id": { "$ref": "#/$defs/identity" },
12
- "run_id": { "$ref": "#/$defs/identity" },
13
- "nonce": { "$ref": "#/$defs/hash" },
14
- "started_at": { "type": "string", "format": "date-time" },
15
- "repository": { "type": "string", "minLength": 1 },
16
- "revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
17
- "branch": { "type": "string", "minLength": 1 },
18
- "attempt": { "type": "integer", "minimum": 1 },
19
- "environment": { "$ref": "#/$defs/producer_environment" },
20
- "conformance_record": { "$ref": "#/$defs/json_artifact" },
21
- "source": { "$ref": "#/$defs/source_manifest" },
22
- "intended_scenario_ids": {
23
- "type": "array",
24
- "minItems": 1,
25
- "uniqueItems": true,
26
- "items": { "$ref": "#/$defs/scenario_id" }
27
- }
28
- },
29
- "$defs": {
30
- "hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
31
- "identity": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" },
32
- "scenario_id": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
33
- "normalized_path": { "type": "string", "minLength": 1, "pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*[?#]).+$" },
34
- "producer_environment": {
35
- "type": "object",
36
- "additionalProperties": false,
37
- "required": ["kind", "node", "platform", "producer"],
38
- "properties": {
39
- "kind": { "const": "browser_evidence" },
40
- "node": { "type": "string", "pattern": "^v\\d+\\.\\d+\\.\\d+$" },
41
- "platform": { "type": "string", "minLength": 1 },
42
- "producer": { "const": "stylegallery_page_evidence" }
43
- }
44
- },
45
- "file_artifact": {
46
- "type": "object",
47
- "additionalProperties": false,
48
- "required": ["path", "sha256", "byte_length"],
49
- "properties": {
50
- "path": { "$ref": "#/$defs/normalized_path" },
51
- "sha256": { "$ref": "#/$defs/hash" },
52
- "byte_length": { "type": "integer", "minimum": 1 }
53
- }
54
- },
55
- "json_artifact": {
56
- "type": "object",
57
- "additionalProperties": false,
58
- "required": ["path", "sha256", "byte_length", "media_type"],
59
- "properties": {
60
- "path": { "$ref": "#/$defs/normalized_path" },
61
- "sha256": { "$ref": "#/$defs/hash" },
62
- "byte_length": { "type": "integer", "minimum": 1 },
63
- "media_type": { "const": "application/json" }
64
- }
65
- },
66
- "source_manifest": {
67
- "type": "object",
68
- "additionalProperties": false,
69
- "required": ["sha256", "files"],
70
- "properties": {
71
- "sha256": { "$ref": "#/$defs/hash" },
72
- "files": {
73
- "type": "array",
74
- "maxItems": 1024,
75
- "minItems": 1,
76
- "items": { "$ref": "#/$defs/file_artifact" }
77
- }
78
- }
79
- },
80
- "receipt_artifact": {
81
- "type": "object",
82
- "additionalProperties": false,
83
- "required": ["path", "sha256", "byte_length", "media_type"],
84
- "properties": {
85
- "path": { "const": "page-evidence-session.json" },
86
- "sha256": { "$ref": "#/$defs/hash" },
87
- "byte_length": { "type": "integer", "minimum": 1 },
88
- "media_type": { "const": "application/json" }
89
- }
90
- },
91
- "completed_session": {
92
- "type": "object",
93
- "additionalProperties": false,
94
- "required": ["session_id", "run_id", "nonce", "receipt_sha256", "receipt", "started_at", "completed_at", "repository", "revision", "branch", "attempt", "environment", "conformance_record", "source", "intended_scenario_ids"],
95
- "properties": {
96
- "session_id": { "$ref": "#/$defs/identity" },
97
- "run_id": { "$ref": "#/$defs/identity" },
98
- "nonce": { "$ref": "#/$defs/hash" },
99
- "receipt_sha256": { "$ref": "#/$defs/hash" },
100
- "receipt": { "$ref": "#/$defs/receipt_artifact" },
101
- "started_at": { "type": "string", "format": "date-time" },
102
- "completed_at": { "type": "string", "format": "date-time" },
103
- "repository": { "type": "string", "minLength": 1 },
104
- "revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
105
- "branch": { "type": "string", "minLength": 1 },
106
- "attempt": { "type": "integer", "minimum": 1 },
107
- "environment": { "$ref": "#/$defs/producer_environment" },
108
- "conformance_record": { "$ref": "#/$defs/json_artifact" },
109
- "source": { "$ref": "#/$defs/source_manifest" },
110
- "intended_scenario_ids": {
111
- "type": "array",
112
- "minItems": 1,
113
- "uniqueItems": true,
114
- "items": { "$ref": "#/$defs/scenario_id" }
115
- }
116
- }
117
- }
118
- }
119
- }
@@ -1,104 +0,0 @@
1
- {
2
- "$id": "https://stylegallery.example/consumer-reference/schema/portable-tokens.schema.json",
3
- "$schema": "https://json-schema.org/draft/2020-12/schema",
4
- "$defs": {
5
- "alias": {
6
- "pattern": "^\\{[a-z0-9]+(?:[.-][a-z0-9]+)*\\}$",
7
- "type": "string"
8
- },
9
- "border": {
10
- "additionalProperties": false,
11
- "properties": {
12
- "color": {
13
- "oneOf": [
14
- { "$ref": "#/$defs/alias" },
15
- { "$ref": "#/$defs/color" }
16
- ]
17
- },
18
- "style": { "const": "solid" },
19
- "width": {
20
- "oneOf": [
21
- { "$ref": "#/$defs/alias" },
22
- { "$ref": "#/$defs/dimension" }
23
- ]
24
- }
25
- },
26
- "required": ["color", "style", "width"],
27
- "type": "object"
28
- },
29
- "color": {
30
- "additionalProperties": false,
31
- "properties": {
32
- "alpha": { "maximum": 1, "minimum": 0, "type": "number" },
33
- "colorSpace": { "const": "srgb" },
34
- "components": {
35
- "items": { "maximum": 1, "minimum": 0, "type": "number" },
36
- "maxItems": 3,
37
- "minItems": 3,
38
- "type": "array"
39
- }
40
- },
41
- "required": ["colorSpace", "components"],
42
- "type": "object"
43
- },
44
- "dimension": {
45
- "additionalProperties": false,
46
- "properties": {
47
- "unit": { "enum": ["px", "rem"] },
48
- "value": { "type": "number" }
49
- },
50
- "required": ["unit", "value"],
51
- "type": "object"
52
- },
53
- "duration": {
54
- "additionalProperties": false,
55
- "properties": {
56
- "unit": { "enum": ["ms", "s"] },
57
- "value": { "minimum": 0, "type": "number" }
58
- },
59
- "required": ["unit", "value"],
60
- "type": "object"
61
- },
62
- "group": {
63
- "additionalProperties": false,
64
- "patternProperties": {
65
- "^(?!\\$)(?!(?:__proto__|prototype|constructor)$)[a-z0-9]+(?:-[a-z0-9]+)*$": { "$ref": "#/$defs/node" }
66
- },
67
- "properties": {
68
- "$description": { "type": "string" },
69
- "$type": { "enum": ["border", "color", "dimension", "duration"] }
70
- },
71
- "type": "object"
72
- },
73
- "node": {
74
- "oneOf": [
75
- { "$ref": "#/$defs/token" },
76
- { "$ref": "#/$defs/group" }
77
- ]
78
- },
79
- "token": {
80
- "additionalProperties": false,
81
- "properties": {
82
- "$description": { "type": "string" },
83
- "$type": { "enum": ["border", "color", "dimension", "duration"] },
84
- "$value": {
85
- "oneOf": [
86
- { "$ref": "#/$defs/alias" },
87
- { "$ref": "#/$defs/border" },
88
- { "$ref": "#/$defs/color" },
89
- { "$ref": "#/$defs/dimension" },
90
- { "$ref": "#/$defs/duration" }
91
- ]
92
- }
93
- },
94
- "required": ["$value"],
95
- "type": "object"
96
- }
97
- },
98
- "additionalProperties": false,
99
- "patternProperties": {
100
- "^(?!\\$)(?!(?:__proto__|prototype|constructor)$)[a-z0-9]+(?:-[a-z0-9]+)*$": { "$ref": "#/$defs/node" }
101
- },
102
- "title": "StyleGallery portable design tokens",
103
- "type": "object"
104
- }