stylegallery 0.1.0 → 0.1.1

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 +23 -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 +51 -0
  14. package/package.json +181 -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,219 +0,0 @@
1
- {
2
- "$defs": {
3
- "attestation": {
4
- "additionalProperties": false,
5
- "properties": {
6
- "attested_by": { "minLength": 1, "type": "string" },
7
- "context_id": { "$ref": "#/$defs/slug" },
8
- "consumer_id": { "$ref": "#/$defs/slug" },
9
- "count_toward_gate": { "type": "boolean" },
10
- "organization_id": { "$ref": "#/$defs/slug" },
11
- "profile_record": {
12
- "pattern": "^(?!/)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?![A-Za-z][A-Za-z0-9+.-]*:)[^\\\\?#]+\\.json$",
13
- "type": "string"
14
- },
15
- "relationship": { "enum": ["independent", "related"] }
16
- },
17
- "required": ["attested_by", "context_id", "consumer_id", "count_toward_gate", "organization_id", "relationship"],
18
- "type": "object"
19
- },
20
- "evidence": {
21
- "additionalProperties": false,
22
- "properties": {
23
- "id": { "$ref": "#/$defs/slug" },
24
- "kind": { "enum": ["blocking", "claim_scoped", "regression"] },
25
- "reference": { "minLength": 1, "type": "string" },
26
- "status": { "enum": ["failed", "passed"] }
27
- },
28
- "required": ["id", "kind", "reference", "status"],
29
- "type": "object"
30
- },
31
- "slug": {
32
- "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
33
- "type": "string"
34
- }
35
- },
36
- "$id": "https://stylegallery.example/consumer-reference/schema/promotion-rfc.schema.json",
37
- "$schema": "https://json-schema.org/draft/2020-12/schema",
38
- "additionalProperties": false,
39
- "allOf": [
40
- {
41
- "if": {
42
- "properties": { "transition": { "properties": { "to": { "const": "stable" } }, "required": ["to"], "type": "object" } },
43
- "required": ["transition"]
44
- },
45
- "then": {
46
- "properties": {
47
- "provenance": { "properties": { "debt_resolved": { "const": true } }, "required": ["debt_resolved"], "type": "object" },
48
- "stable_scope_decision": { "const": true },
49
- "support": { "properties": { "status": { "const": "active" } }, "required": ["status"], "type": "object" },
50
- "evidence": {
51
- "allOf": [
52
- { "contains": { "properties": { "kind": { "const": "claim_scoped" }, "status": { "const": "passed" } }, "required": ["kind", "status"], "type": "object" } },
53
- { "contains": { "properties": { "kind": { "const": "regression" }, "status": { "const": "passed" } }, "required": ["kind", "status"], "type": "object" } }
54
- ],
55
- "type": "array"
56
- }
57
- }
58
- }
59
- },
60
- {
61
- "if": { "properties": { "normative_bypass": { "const": "normative_correctness" } }, "required": ["normative_bypass"] },
62
- "then": { "properties": { "scope": { "properties": { "kind": { "const": "normative_correctness" } }, "required": ["kind"], "type": "object" } } }
63
- },
64
- {
65
- "if": { "properties": { "compatibility": { "properties": { "breaking": { "const": true } }, "required": ["breaking"], "type": "object" } }, "required": ["compatibility"] },
66
- "then": { "properties": { "migration": { "properties": { "required": { "const": true } }, "required": ["required"], "type": "object" } } }
67
- }
68
- ],
69
- "properties": {
70
- "attestations": {
71
- "items": { "$ref": "#/$defs/attestation" },
72
- "type": "array"
73
- },
74
- "compatibility": {
75
- "additionalProperties": false,
76
- "properties": {
77
- "breaking": { "type": "boolean" },
78
- "surface": { "minLength": 1, "type": "string" }
79
- },
80
- "required": ["breaking", "surface"],
81
- "type": "object"
82
- },
83
- "decision": { "enum": ["deferred", "rejected"] },
84
- "deprecation": {
85
- "additionalProperties": false,
86
- "properties": {
87
- "plan": { "minLength": 1, "type": "string" },
88
- "required": { "type": "boolean" }
89
- },
90
- "required": ["plan", "required"],
91
- "type": "object"
92
- },
93
- "eligibility_basis": { "const": "full_contract" },
94
- "evidence": {
95
- "items": { "$ref": "#/$defs/evidence" },
96
- "minItems": 1,
97
- "type": "array"
98
- },
99
- "example_only": { "const": true },
100
- "exceptions": {
101
- "items": { "minLength": 1, "type": "string" },
102
- "type": "array"
103
- },
104
- "id": { "$ref": "#/$defs/slug" },
105
- "known_issues": {
106
- "items": { "minLength": 1, "type": "string" },
107
- "type": "array"
108
- },
109
- "migration": {
110
- "additionalProperties": false,
111
- "properties": {
112
- "plan": { "minLength": 1, "type": "string" },
113
- "required": { "type": "boolean" }
114
- },
115
- "required": ["plan", "required"],
116
- "type": "object"
117
- },
118
- "normative_bypass": { "enum": ["none", "normative_correctness"] },
119
- "owner": {
120
- "additionalProperties": false,
121
- "properties": {
122
- "enforcement": { "const": "placeholder" },
123
- "migration": { "minLength": 1, "type": "string" },
124
- "rollback": { "minLength": 1, "type": "string" },
125
- "scope": { "minLength": 1, "type": "string" },
126
- "support": { "minLength": 1, "type": "string" }
127
- },
128
- "required": ["enforcement", "migration", "rollback", "scope", "support"],
129
- "type": "object"
130
- },
131
- "provenance": {
132
- "additionalProperties": false,
133
- "properties": {
134
- "debt_resolved": { "type": "boolean" },
135
- "source": { "minLength": 1, "type": "string" }
136
- },
137
- "required": ["debt_resolved", "source"],
138
- "type": "object"
139
- },
140
- "review_independence": { "const": "single_account" },
141
- "rollback": {
142
- "additionalProperties": false,
143
- "properties": {
144
- "action": { "minLength": 1, "type": "string" },
145
- "triggers": {
146
- "items": { "minLength": 1, "type": "string" },
147
- "minItems": 1,
148
- "type": "array"
149
- }
150
- },
151
- "required": ["action", "triggers"],
152
- "type": "object"
153
- },
154
- "schema_version": { "const": "1.0" },
155
- "scope": {
156
- "additionalProperties": false,
157
- "properties": {
158
- "aesthetic": { "const": false },
159
- "kind": { "enum": ["invariant", "normative_correctness"] },
160
- "summary": { "minLength": 1, "type": "string" }
161
- },
162
- "required": ["aesthetic", "kind", "summary"],
163
- "type": "object"
164
- },
165
- "stable_scope_decision": { "type": "boolean" },
166
- "support": {
167
- "additionalProperties": false,
168
- "properties": {
169
- "capacity": { "const": "committed" },
170
- "status": { "const": "active" }
171
- },
172
- "required": ["capacity", "status"],
173
- "type": "object"
174
- },
175
- "transition": {
176
- "additionalProperties": false,
177
- "oneOf": [
178
- {
179
- "properties": { "from": { "const": "consumer_local" }, "to": { "const": "shared_experimental" } },
180
- "required": ["from", "to"]
181
- },
182
- {
183
- "properties": { "from": { "const": "shared_experimental" }, "to": { "const": "stable" } },
184
- "required": ["from", "to"]
185
- }
186
- ],
187
- "properties": {
188
- "from": { "enum": ["consumer_local", "shared_experimental", "stable"] },
189
- "to": { "enum": ["shared_experimental", "stable"] }
190
- },
191
- "required": ["from", "to"],
192
- "type": "object"
193
- }
194
- },
195
- "required": [
196
- "attestations",
197
- "compatibility",
198
- "decision",
199
- "deprecation",
200
- "eligibility_basis",
201
- "evidence",
202
- "example_only",
203
- "exceptions",
204
- "id",
205
- "known_issues",
206
- "migration",
207
- "normative_bypass",
208
- "owner",
209
- "provenance",
210
- "review_independence",
211
- "rollback",
212
- "schema_version",
213
- "scope",
214
- "stable_scope_decision",
215
- "support",
216
- "transition"
217
- ],
218
- "type": "object"
219
- }
@@ -1,33 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://stylegallery.local/consumer-reference/schema/runtime-evidence-manifest.schema.json",
4
- "title": "Closed component-state runtime evidence manifest",
5
- "type": "object",
6
- "additionalProperties": false,
7
- "required": ["schema_version", "record_kind", "claim_boundary", "recorded_at", "environment", "run", "session", "records"],
8
- "properties": {
9
- "schema_version": { "const": "1.0" },
10
- "record_kind": { "const": "component_state_runtime_manifest" },
11
- "claim_boundary": { "const": "Scenario artifacts are evidence, not visual regression baselines or accessibility certification." },
12
- "recorded_at": { "type": "string", "format": "date-time" },
13
- "environment": { "$ref": "https://stylegallery.local/consumer-reference/schema/capture-session.schema.json#/$defs/environment" },
14
- "run": {
15
- "type": "object",
16
- "additionalProperties": false,
17
- "required": ["id", "source", "repository", "revision", "attempt"],
18
- "properties": {
19
- "id": { "type": "string", "minLength": 1 },
20
- "source": { "enum": ["local", "github_actions"] },
21
- "repository": { "type": "string", "minLength": 1 },
22
- "revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
23
- "attempt": { "type": "integer", "minimum": 1 }
24
- }
25
- },
26
- "session": { "$ref": "https://stylegallery.local/consumer-reference/schema/capture-session.schema.json#/$defs/completed_session" },
27
- "records": {
28
- "type": "array",
29
- "minItems": 1,
30
- "items": { "$ref": "https://stylegallery.local/consumer-reference/schema/evidence-record.schema.json" }
31
- }
32
- }
33
- }
@@ -1,31 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://stylegallery.local/consumer-reference/schema/visual-evidence.schema.json",
4
- "title": "Browser-authored visual capture metadata",
5
- "type": "object",
6
- "additionalProperties": false,
7
- "required": ["schema_version", "channel", "capture_session", "captured_at", "profile_id", "scenario_id", "semantic_mode", "source_sha256", "image"],
8
- "properties": {
9
- "schema_version": { "const": "1.0" },
10
- "channel": { "const": "visual" },
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
- "source_sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
17
- "image": {
18
- "type": "object",
19
- "additionalProperties": false,
20
- "required": ["path", "sha256", "byte_length", "media_type", "width", "height"],
21
- "properties": {
22
- "path": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*\\.png$" },
23
- "sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
24
- "byte_length": { "type": "integer", "minimum": 1 },
25
- "media_type": { "const": "image/png" },
26
- "width": { "type": "integer", "minimum": 44 },
27
- "height": { "type": "integer", "minimum": 44 }
28
- }
29
- }
30
- }
31
- }
@@ -1,124 +0,0 @@
1
- ---
2
- type: Domain Guide
3
- title: Consumer Migration Readiness
4
- description: Evidence-bound method for deciding whether a consumer migration preserves its declared behavior.
5
- domain: design-engineering
6
- lifecycle: experimental
7
- provenance_kind: local
8
- ---
9
-
10
- # Consumer Migration Readiness
11
-
12
- Use this method only when an existing consumer is being migrated and its behavior must remain demonstrably equivalent. It turns migration intent into a consumer-owned conformance record and executable page evidence without making StyleGallery the owner of product code or visual values.
13
-
14
- ## Repository Boundary
15
-
16
- The consuming repository owns its conformance record, source paths, runtime scenarios, evidence artifacts, adoption mappings, deviations, debt, and approval decision. StyleGallery supplies an experimental method, closed schemas, and validators. It does not certify the consumer, define product defaults, or turn a local adoption into a shared standard.
17
-
18
- Ordinary implementation handoffs remain unchanged and may use `Consumer reference: not_applicable` with a sentence reason. Only a migration handoff that elects this method adds `Consumer migration conformance: declared` and one normalized repository-relative JSON record path.
19
-
20
- ## Reusable Method
21
-
22
- 1. Inventory the old and new consumer behavior before changing implementation.
23
- 2. Create one consumer-local record using the [consumer conformance schema](../consumer-reference/schema/consumer-conformance-record.schema.json).
24
- 3. Explicitly classify every migration dimension as `applicable` with runtime scenario IDs or `not_applicable` with a sentence reason.
25
- 4. Map each adopted StyleGallery source anchor to a concrete local component, selector, or module plus its local decision, deviations, debt, and scenario IDs.
26
- 5. Execute the named unit, integration, or browser command. A prose checklist, screenshot, or generated fixture alone is not runtime proof.
27
- 6. For page work, create one source-bound evidence session, execute the browser matrix, finalize the manifest, and validate the completed session against the conformance record.
28
- 7. Review the [consumer migration evidence gate](../quality/gates/consumer-migration-evidence.md). Block migration when required evidence is missing, stale, cross-session, source-drifted, or failed.
29
-
30
- ## Migration Dimension Contract
31
-
32
- The record must classify exactly these thirteen dimensions:
33
-
34
- | Dimension | What the consumer must preserve or explicitly exclude |
35
- | --- | --- |
36
- | `behavior_inventory` | The complete named behavior surface being migrated. |
37
- | `route_parity` | Routes, entry points, and navigation outcomes. |
38
- | `field_parity` | Accepted fields, output fields, validation, and serialization. |
39
- | `action_parity` | User and programmatic actions plus observable outcomes. |
40
- | `state_transitions` | Allowed state changes, guards, and terminal states. |
41
- | `contract_precedence` | Which rule wins when old, new, and local contracts conflict. |
42
- | `direct_mutation` | Effects of direct state or model mutation. |
43
- | `indirect_mutation` | Effects reached through events, adapters, or dependent modules. |
44
- | `persistence_round_trip` | Save, reload, serialization, and restoration behavior. |
45
- | `reset_boundary` | What reset clears, preserves, and returns to defaults. |
46
- | `exact_time_boundary` | Inclusive or exclusive timing behavior at exact boundaries. |
47
- | `defaults_tri_state_mapping` | Mapping among absent, explicit default, and explicit non-default values. |
48
- | `atomic_batch_behavior` | All-or-nothing behavior, ordering, and rollback for grouped changes. |
49
-
50
- An `applicable` dimension references at least one declared runtime scenario. A `not_applicable` dimension includes a concrete sentence reason. Silence is never a classification.
51
-
52
- ## Opinionated Guidance
53
-
54
- - Prefer the smallest scenario that proves an observable outcome over broad internal coverage.
55
- - Pin both the consumer revision and each adopted StyleGallery revision; a branch name or moving tag is insufficient.
56
- - Record local deviations honestly. Conformance means the declared boundary is internally consistent, not that every StyleGallery suggestion was copied.
57
- - Treat expired debt as a decision trigger. Do not rewrite evidence timestamps to make a stale review appear current.
58
- - Keep page evidence tied to the exact source inventory and browser run that produced it.
59
-
60
- ## Platform-Specific Guidance
61
-
62
- Browser page evidence uses the required viewport set `320`, `375`, `768`, `1024`, and `1440` pixels plus the declared container, content, state, overlay, and page-scale cases. Platform-specific raster identity may supplement computed assertions, but it cannot replace semantic, focus, overflow, or contrast checks and cannot imply cross-platform pixel equivalence.
63
-
64
- ## Unsupported Absolutes
65
-
66
- Passing this method does not prove complete accessibility, product correctness, usability, visual quality, independent adoption, cross-browser equivalence, or owner approval. Synthetic fixtures prove validator behavior only. A pinned revision proves source identity, not source authority or consumer suitability.
67
-
68
- ## Verification Contract
69
-
70
- The minimum verification chain is:
71
-
72
- ```txt
73
- consumer source inventory
74
- -> conformance record with 13 explicit classifications
75
- -> executable scenarios with zero exit and result artifacts
76
- -> adoption mappings with pinned StyleGallery anchors
77
- -> optional source-bound page-evidence manifest
78
- -> consumer migration evidence gate decision
79
- ```
80
-
81
- Validate a record without applicable page evidence directly:
82
-
83
- ```sh
84
- node <stylegallery-root>/scripts/validate-consumer-conformance.mjs \
85
- --root <consumer-root> \
86
- --record <record.json> \
87
- --json
88
- ```
89
-
90
- Unit and integration scenarios declare a shell-free Node `argv` array beginning with `node`. The validator checks out the exact consumer revision in an isolated worktree, enables Node's permission model without child-process, worker, native-addon, or WASI grants, supplies only `PATH`, `CI=1`, deterministic locale flags, `STYLEGALLERY_RESULT_ARTIFACT`, and `STYLEGALLERY_RUNTIME_CONTEXT`, and requires the command to create that result artifact during the run. Commands may read and write only inside the isolated checkout, must be self-contained at the pinned revision, and cannot override the governed permission flags. The validator does not reuse the caller's `node_modules` or forward caller secrets.
91
-
92
- When `page_evidence.status` is `applicable`, use one artifact root for the complete lifecycle. Start the source-bound session before the browser run, write each runner result beneath that artifact root, finalize the session, and then validate the record against the completed artifacts:
93
-
94
- ```sh
95
- node <stylegallery-root>/scripts/create-page-evidence-session.mjs \
96
- --root <consumer-root> \
97
- --record <record.json> \
98
- --artifact-root <artifact-root> \
99
- --json
100
-
101
- node <stylegallery-root>/scripts/finalize-page-evidence.mjs \
102
- --root <consumer-root> \
103
- --artifact-root <artifact-root> \
104
- --runner-result <runner-result.json> \
105
- --review-by <RFC3339-date-time> \
106
- --json
107
-
108
- node <stylegallery-root>/scripts/validate-consumer-conformance.mjs \
109
- --root <consumer-root> \
110
- --record <record.json> \
111
- --artifact-root <artifact-root> \
112
- --json
113
- ```
114
-
115
- `<record.json>` resolves from `<consumer-root>`, and each `<runner-result.json>` resolves from `<artifact-root>`. The completed manifest must match the consumer repository, revision, relevant source set, browser scenario set, run/session identities, and source digests. The StyleGallery checkout used for validation must contain every pinned StyleGallery revision; a shallow checkout that omits a historical pin fails closed. See [Consumer Migration Evidence](../quality/evidence/consumer-migration.md) for what each channel can and cannot support.
116
-
117
- ## Source, License, And Attribution
118
-
119
- This is a StyleGallery-local method. It has no external source snapshot and intentionally declares `provenance_kind: local` rather than upstream repository metadata.
120
-
121
- ## IA Navigation
122
-
123
- Parent: [Design Engineering](index.md).
124
- Next: [Consumer Migration Evidence Gate](../quality/gates/consumer-migration-evidence.md).
@@ -1,107 +0,0 @@
1
- ---
2
- type: Domain Guide
3
- title: Interface Craft Decisions
4
- description: Repository-bounded method for purpose, implementation, review, and evidence decisions at the product layer.
5
- domain: design-engineering
6
- lifecycle: experimental
7
- source_repository: https://github.com/emilkowalski/skills
8
- source_path: skills/emil-design-eng/SKILL.md
9
- source_revision: 220e8607c90b17337d210125777b7b695f26c221
10
- ---
11
-
12
- # Interface Craft Decisions
13
-
14
- Primary role: design-engineering decision guide.
15
-
16
- ## Repository Boundary
17
-
18
- This page helps connect product intent, implementation detail, and verification. It does not create a second StyleGallery principle set, rank visual taste as objective quality, or override Layout, accessibility, source-order, and shared evidence contracts.
19
-
20
- ## Reusable Method
21
-
22
- ### Establish The Job
23
-
24
- Before tuning the interface, name:
25
-
26
- - the user task and state change;
27
- - why the behavior or treatment is necessary;
28
- - how frequently it appears;
29
- - which constraints and inputs it must survive;
30
- - the observable that will decide whether it works.
31
-
32
- If those answers are absent, implementation detail is premature.
33
-
34
- ### Build A Verifiable Representation
35
-
36
- Use semantic structure and the owning domain's smallest robust contract first. Prototype the uncertain interaction or visual relationship at the lowest fidelity that exposes its failure modes. A prototype is evidence of one implementation state, not proof of general usability.
37
-
38
- ### Review Observable Failures
39
-
40
- Inspect real content, empty states, long labels, constrained containers, repeated interaction, focus order, alternative input, relevant preferences, and target browsers/devices. When timing or continuity matters, review recordings slowly or frame by frame.
41
-
42
- ### Record The Decision
43
-
44
- Use the shared high-impact claim shape:
45
-
46
- ```text
47
- Principle:
48
- Claim:
49
- Context:
50
- Use case:
51
- Warrant:
52
- Evidence family:
53
- Verification protocol:
54
- Implementation handoff:
55
- Consumer reference: not_applicable
56
- Consumer reference reason: This blank craft-decision template declares no consumer-specific reference record.
57
- Boundary or limitation:
58
- Debt or escalation:
59
- Decision:
60
- ```
61
-
62
- This makes the result reviewable without turning the practitioner's preference into authority.
63
-
64
- ## Decision Questions
65
-
66
- | Question | Evidence that can help | What it cannot prove alone |
67
- | --- | --- | --- |
68
- | Does the detail serve the primary task? | Task model, prototype, user evidence | Universal preference |
69
- | Is the default understandable without instruction? | Task completion, terminology test, comparative prototype | Long-term adoption |
70
- | Does repetition make the behavior costly? | Frequency estimate, interaction timing, user evidence | One universal threshold |
71
- | Does the interface preserve continuity? | Rendered sequence, source/focus inspection | Human orientation for every user |
72
- | Does the implementation survive real constraints? | Content/container/input/browser matrix | Brand or aesthetic quality |
73
- | Is the final polish coherent with declared intent? | Named comparative criteria and representative review | Objective beauty |
74
-
75
- ## Opinionated Guidance
76
-
77
- Small details can compound, strong defaults can lower adoption effort, and fresh-eye review can expose defects familiarity hides. These are practitioner heuristics. “Beautiful,” “delightful,” “premium,” “obvious,” and “feels right” require an operational definition and suitable human evidence when used as claims.
78
-
79
- ## Platform-Specific Guidance
80
-
81
- CSS entry features, clipping techniques, Motion/Framer Motion, React effects, component-library variables, pointer capture, and browser-specific performance behavior belong in bounded implementation notes. Verify current official documentation and the actual product surface before recommending them.
82
-
83
- ## Unsupported Absolutes
84
-
85
- - Beauty is not repository leverage or a sufficient acceptance criterion.
86
- - A fixed duration, easing, scale, velocity, or frequency threshold is not universal.
87
- - CSS does not categorically outperform JavaScript.
88
- - A property or API name does not prove hardware acceleration.
89
- - Product popularity does not prove a reusable implementation pattern.
90
- - A promotional or enthusiastic posture is not part of the review contract.
91
-
92
- ## Verification Contract
93
-
94
- Every high-impact recommendation maps `principle -> claim -> context -> warrant -> evidence -> protocol -> boundary/debt`. Visual and interaction claims require rendered evidence; accessibility claims use the accessibility gate; human-quality claims need corresponding user or HCI evidence. A passing implementation keeps the owning domain's constraints visible in the handoff.
95
-
96
- ## Source, License, And Attribution
97
-
98
- - Upstream inspiration: [emil-design-eng/SKILL.md](https://github.com/emilkowalski/skills/blob/220e8607c90b17337d210125777b7b695f26c221/skills/emil-design-eng/SKILL.md)
99
- - Snapshot: `220e8607c90b17337d210125777b7b695f26c221`
100
- - Upstream license: MIT, Copyright (c) 2026 Emil Kowalski.
101
- - Reuse form: independent method rewrite; upstream prose, tables, code, examples, distinctive ordering, and the quotation attributed to Paul Graham were not retained.
102
- - Evidence boundary: this practitioner source suggests review questions; it does not establish local quality, accessibility, performance, or adoption outcomes.
103
-
104
- ## IA Navigation
105
-
106
- Parent: [Design Engineering](index.md).
107
- Next: [Platform Guides](../platform-guides/index.md).
@@ -1,12 +0,0 @@
1
- # External Consumer Adaptation
2
-
3
- Synthetic validator coverage only; no durable adopter record exists in this route.
4
-
5
- An external consumer keeps its canonical JSON record in its own repository, selects it explicitly there, and points only toward the pinned Layout source. StyleGallery documents that route without storing an adopter, attestation, production, independence, or promotion claim.
6
-
7
- The validator exercises a synthetic local-as-external mutation and rejects any JSON record placed below this documentation directory.
8
-
9
- ## IA Navigation
10
-
11
- Parent: [Reference Profiles](../index.md).
12
- Next: [Platform Guides](../../../platform-guides/index.md).
@@ -1,125 +0,0 @@
1
- {
2
- "schema_version": "1.0",
3
- "record_kind": "component",
4
- "component_id": "button",
5
- "profile_id": "editorial-reference-profile",
6
- "anatomy": [
7
- "control",
8
- "label",
9
- "status"
10
- ],
11
- "semantic_modes": [
12
- {
13
- "id": "action",
14
- "element": "button",
15
- "role": "button",
16
- "keys": [
17
- "Enter",
18
- "Space"
19
- ],
20
- "aria_states": [
21
- {
22
- "name": "pressed",
23
- "status": "prohibited",
24
- "reason": "Action buttons do not expose toggle state."
25
- },
26
- {
27
- "name": "expanded",
28
- "status": "not_applicable",
29
- "reason": "Action buttons do not control disclosed content."
30
- },
31
- {
32
- "name": "busy",
33
- "status": "conditional",
34
- "condition": "An invoked action is still processing.",
35
- "resolution": "required"
36
- },
37
- {
38
- "name": "disabled",
39
- "status": "conditional",
40
- "condition": "The action is unavailable to the current user.",
41
- "resolution": "required"
42
- }
43
- ],
44
- "activation": "invoke"
45
- },
46
- {
47
- "id": "toggle",
48
- "element": "button",
49
- "role": "button",
50
- "keys": [
51
- "Enter",
52
- "Space"
53
- ],
54
- "aria_states": [
55
- {
56
- "name": "pressed",
57
- "status": "required",
58
- "values": [
59
- "false",
60
- "true"
61
- ]
62
- },
63
- {
64
- "name": "expanded",
65
- "status": "prohibited",
66
- "reason": "Toggle buttons expose pressed rather than disclosure state."
67
- },
68
- {
69
- "name": "busy",
70
- "status": "not_applicable",
71
- "reason": "The governed toggle fixture has no asynchronous operation."
72
- },
73
- {
74
- "name": "disabled",
75
- "status": "not_applicable",
76
- "reason": "The governed toggle fixture remains available for activation."
77
- }
78
- ],
79
- "activation": "toggle"
80
- },
81
- {
82
- "id": "disclosure",
83
- "element": "button",
84
- "role": "button",
85
- "keys": [
86
- "Enter",
87
- "Space"
88
- ],
89
- "aria_states": [
90
- {
91
- "name": "expanded",
92
- "status": "required",
93
- "values": [
94
- "false",
95
- "true"
96
- ]
97
- },
98
- {
99
- "name": "pressed",
100
- "status": "prohibited",
101
- "reason": "Disclosure buttons expose expanded rather than toggle state."
102
- },
103
- {
104
- "name": "busy",
105
- "status": "conditional",
106
- "condition": "Expanded controlled content is still loading.",
107
- "resolution": "required"
108
- },
109
- {
110
- "name": "disabled",
111
- "status": "not_applicable",
112
- "reason": "The governed disclosure fixture remains available for activation."
113
- }
114
- ],
115
- "activation": "control"
116
- }
117
- ],
118
- "versions": {
119
- "design_revision": "2026.07.14",
120
- "package_version": "0.1.0-preview.1",
121
- "api_version": "1.0",
122
- "delivery_channel": "preview",
123
- "lifecycle": "experimental"
124
- }
125
- }