spec-to-ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/LICENSE +2 -0
  2. package/README.ko.md +129 -0
  3. package/README.md +96 -29
  4. package/RELEASE.md +26 -0
  5. package/THIRD-PARTY.md +14 -0
  6. package/bin/cli.mjs +70 -91
  7. package/bundle-manifest.json +140 -0
  8. package/package.json +40 -8
  9. package/plugin.json +16 -0
  10. package/skills/design-taste-frontend/LICENSE +21 -0
  11. package/skills/design-taste-frontend/README.md +81 -0
  12. package/skills/design-taste-frontend/SKILL.md +546 -0
  13. package/skills/design-taste-frontend/assets/app.css +216 -0
  14. package/skills/design-taste-frontend/assets/base.css +105 -0
  15. package/skills/design-taste-frontend/assets/base.js +37 -0
  16. package/skills/design-taste-frontend/assets/charts.js +619 -0
  17. package/skills/design-taste-frontend/assets/scenes/stage.css +28 -0
  18. package/skills/design-taste-frontend/assets/scenes/stage.js +134 -0
  19. package/skills/design-taste-frontend/evals/evals.json +76 -0
  20. package/skills/design-taste-frontend/library/app.json +1327 -0
  21. package/skills/design-taste-frontend/library/directions.json +1078 -0
  22. package/skills/design-taste-frontend/library/heroes.json +1086 -0
  23. package/skills/design-taste-frontend/library/motions.json +92 -0
  24. package/skills/design-taste-frontend/library/palettes.json +1485 -0
  25. package/skills/design-taste-frontend/library/photos.json +7240 -0
  26. package/skills/design-taste-frontend/library/sections.json +4429 -0
  27. package/skills/design-taste-frontend/library/sites.json +8350 -0
  28. package/skills/design-taste-frontend/library/type.json +2024 -0
  29. package/skills/design-taste-frontend/references/app-screens.md +1199 -0
  30. package/skills/design-taste-frontend/references/colour.md +141 -0
  31. package/skills/design-taste-frontend/references/copy.md +177 -0
  32. package/skills/design-taste-frontend/references/critique.md +182 -0
  33. package/skills/design-taste-frontend/references/imagery.md +791 -0
  34. package/skills/design-taste-frontend/references/layout.md +292 -0
  35. package/skills/design-taste-frontend/references/motion.md +980 -0
  36. package/skills/design-taste-frontend/references/research.md +356 -0
  37. package/skills/design-taste-frontend/references/scenes.md +174 -0
  38. package/skills/design-taste-frontend/references/tells.md +115 -0
  39. package/skills/design-taste-frontend/references/type.md +170 -0
  40. package/skills/design-taste-frontend/scripts/assets.mjs +865 -0
  41. package/skills/design-taste-frontend/scripts/draw.mjs +584 -0
  42. package/skills/design-taste-frontend/scripts/inspect.mjs +308 -0
  43. package/skills/design-taste-frontend/scripts/lib/app-draw.mjs +203 -0
  44. package/skills/design-taste-frontend/scripts/lib/cdp.mjs +248 -0
  45. package/skills/design-taste-frontend/scripts/lib/inspection-files.mjs +9 -0
  46. package/skills/design-taste-frontend/scripts/lib/probe.mjs +929 -0
  47. package/skills/design-taste-frontend/scripts/lib/rules.mjs +243 -0
  48. package/skills/design-taste-frontend/scripts/lint.mjs +119 -0
  49. package/skills/design-taste-frontend/scripts/scenes.mjs +124 -0
  50. package/skills/spec-to-ui/SKILL.md +61 -0
  51. package/{skill → skills/spec-to-ui}/references/composition-and-validation.md +6 -0
  52. package/{skill → skills/spec-to-ui}/references/drafts-and-feedback.md +10 -0
  53. package/skills/spec-to-ui/references/requirements-supplement.md +21 -0
  54. package/{skill → skills/spec-to-ui}/references/review-and-handoff.md +9 -0
  55. package/skills/spec-to-ui/references/skill-composition.md +21 -0
  56. package/{skill → skills/spec-to-ui}/references/structure-and-decisions.md +4 -0
  57. package/skills/specframe/NOTICE.md +7 -0
  58. package/skills/specframe/SKILL.md +58 -0
  59. package/skills/specframe/agents/openai.yaml +3 -0
  60. package/skills/specframe/references/operating-contract.md +137 -0
  61. package/skills/specframe/references/visual.md +3 -0
  62. package/skills/specframe/references/web.md +15 -0
  63. package/skills/specframe/scripts/state.py +182 -0
  64. package/skills/ui-ux-pro-max/LICENSE +21 -0
  65. package/skills/ui-ux-pro-max/SKILL.md +218 -0
  66. package/skills/ui-ux-pro-max/data/app-interface.csv +33 -0
  67. package/skills/ui-ux-pro-max/data/catalog-summary.json +78 -0
  68. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  69. package/skills/ui-ux-pro-max/data/colors.csv +193 -0
  70. package/skills/ui-ux-pro-max/data/data-provenance.json +1348 -0
  71. package/skills/ui-ux-pro-max/data/google-font-licenses.json +20185 -0
  72. package/skills/ui-ux-pro-max/data/google-fonts.csv +1935 -0
  73. package/skills/ui-ux-pro-max/data/icons.csv +106 -0
  74. package/skills/ui-ux-pro-max/data/landing.csv +35 -0
  75. package/skills/ui-ux-pro-max/data/motion.csv +18 -0
  76. package/skills/ui-ux-pro-max/data/phosphor-icons-upstream.json +32582 -0
  77. package/skills/ui-ux-pro-max/data/products.csv +193 -0
  78. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  79. package/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
  80. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  81. package/skills/ui-ux-pro-max/data/stacks/avalonia.csv +57 -0
  82. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  83. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +60 -0
  84. package/skills/ui-ux-pro-max/data/stacks/javafx.csv +76 -0
  85. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  86. package/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
  87. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +62 -0
  88. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +84 -0
  89. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +68 -0
  90. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  91. package/skills/ui-ux-pro-max/data/stacks/react.csv +67 -0
  92. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +69 -0
  93. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +56 -0
  94. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  95. package/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
  96. package/skills/ui-ux-pro-max/data/stacks/uno.csv +60 -0
  97. package/skills/ui-ux-pro-max/data/stacks/uwp.csv +56 -0
  98. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  99. package/skills/ui-ux-pro-max/data/stacks/winui.csv +60 -0
  100. package/skills/ui-ux-pro-max/data/stacks/wpf.csv +57 -0
  101. package/skills/ui-ux-pro-max/data/styles.csv +89 -0
  102. package/skills/ui-ux-pro-max/data/typography.csv +75 -0
  103. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +193 -0
  104. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +120 -0
  105. package/skills/ui-ux-pro-max/references/pro-rules.md +117 -0
  106. package/skills/ui-ux-pro-max/references/quick-reference.md +256 -0
  107. package/skills/ui-ux-pro-max/scripts/core.py +993 -0
  108. package/skills/ui-ux-pro-max/scripts/design_system.py +1668 -0
  109. package/skills/ui-ux-pro-max/scripts/reasoning_contract.py +123 -0
  110. package/skills/ui-ux-pro-max/scripts/search.py +184 -0
  111. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-api.json +36 -0
  112. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-catalog.json +33 -0
  113. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-existing.csv +3 -0
  114. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-metadata.json +17 -0
  115. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-overrides.json +7 -0
  116. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/icons-curated.csv +4 -0
  117. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-core.json +23 -0
  118. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-package.json +13 -0
  119. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-react-exports.json +4 -0
  120. package/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-react-package.json +5 -0
  121. package/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-baseline.json +3366 -0
  122. package/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-cases.json +111 -0
  123. package/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-thresholds.json +100 -0
  124. package/skills/ui-ux-pro-max/scripts/tests/test_catalog_refresh.py +354 -0
  125. package/skills/ui-ux-pro-max/scripts/tests/test_catalog_summary_line_endings.py +78 -0
  126. package/skills/ui-ux-pro-max/scripts/tests/test_core.py +343 -0
  127. package/skills/ui-ux-pro-max/scripts/tests/test_core_data_quality.py +198 -0
  128. package/skills/ui-ux-pro-max/scripts/tests/test_data_contracts.py +421 -0
  129. package/skills/ui-ux-pro-max/scripts/tests/test_design_system_mode.py +233 -0
  130. package/skills/ui-ux-pro-max/scripts/tests/test_design_system_stack.py +61 -0
  131. package/skills/ui-ux-pro-max/scripts/tests/test_native_desktop_stack_freshness.py +179 -0
  132. package/skills/ui-ux-pro-max/scripts/tests/test_relevance_evaluator.py +182 -0
  133. package/skills/ui-ux-pro-max/scripts/tests/test_skill_script_paths.py +82 -0
  134. package/skills/ui-ux-pro-max/scripts/tests/test_style_taxonomy.py +175 -0
  135. package/skills/ui-ux-pro-max/scripts/tests/test_text_layout_resilience.py +120 -0
  136. package/skills/ui-ux-pro-max/scripts/tests/test_web_stack_freshness.py +191 -0
  137. package/skills/ui-ux-pro-max/scripts/validate_data.py +1095 -0
  138. package/sources.json +58 -0
  139. package/skill/SKILL.md +0 -68
  140. package/skill-manifest.json +0 -10
  141. /package/{skill → skills/spec-to-ui}/LICENSE +0 -0
  142. /package/{skill → skills/spec-to-ui}/agents/openai.yaml +0 -0
  143. /package/{skill → skills/spec-to-ui}/references/reference-selection.md +0 -0
@@ -0,0 +1,1348 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "generatedAt": "2026-08-13T00:00:00Z",
4
+ "freshnessPolicy": {
5
+ "manual-verifiedDays": 365,
6
+ "needs-reviewDays": 90
7
+ },
8
+ "records": [
9
+ {
10
+ "entityKind": "reasoning",
11
+ "entityId": "academic-journal-scholarly-publishing",
12
+ "sourceFile": "ui-reasoning.csv",
13
+ "sourceKey": {
14
+ "UI_Category": "Academic Journal / Scholarly Publishing"
15
+ },
16
+ "status": "active",
17
+ "verifiedAt": "2026-08-12",
18
+ "sla": "needs-review",
19
+ "appliesTo": [
20
+ "design-system"
21
+ ],
22
+ "confidence": 0.88,
23
+ "sources": [
24
+ {
25
+ "type": "derived",
26
+ "ref": "products.csv#Product Type=Academic Journal / Scholarly Publishing"
27
+ },
28
+ {
29
+ "type": "derived",
30
+ "ref": "colors.csv#Product Type=Academic Journal / Scholarly Publishing"
31
+ }
32
+ ]
33
+ },
34
+ {
35
+ "entityKind": "reasoning",
36
+ "entityId": "api-developer-portal",
37
+ "sourceFile": "ui-reasoning.csv",
38
+ "sourceKey": {
39
+ "UI_Category": "API Developer Portal"
40
+ },
41
+ "status": "active",
42
+ "verifiedAt": "2026-08-12",
43
+ "sla": "needs-review",
44
+ "appliesTo": [
45
+ "design-system"
46
+ ],
47
+ "confidence": 0.92,
48
+ "sources": [
49
+ {
50
+ "type": "derived",
51
+ "ref": "products.csv#Product Type=API Developer Portal"
52
+ },
53
+ {
54
+ "type": "derived",
55
+ "ref": "colors.csv#Product Type=API Developer Portal"
56
+ }
57
+ ]
58
+ },
59
+ {
60
+ "entityKind": "reasoning",
61
+ "entityId": "forum-discussion-board",
62
+ "sourceFile": "ui-reasoning.csv",
63
+ "sourceKey": {
64
+ "UI_Category": "Forum / Discussion Board"
65
+ },
66
+ "status": "active",
67
+ "verifiedAt": "2026-08-12",
68
+ "sla": "needs-review",
69
+ "appliesTo": [
70
+ "design-system"
71
+ ],
72
+ "confidence": 0.93,
73
+ "sources": [
74
+ {
75
+ "type": "derived",
76
+ "ref": "products.csv#Product Type=Forum / Discussion Board"
77
+ },
78
+ {
79
+ "type": "derived",
80
+ "ref": "colors.csv#Product Type=Forum / Discussion Board"
81
+ }
82
+ ]
83
+ },
84
+ {
85
+ "entityKind": "reasoning",
86
+ "entityId": "directory-listing-site",
87
+ "sourceFile": "ui-reasoning.csv",
88
+ "sourceKey": {
89
+ "UI_Category": "Directory / Listing Site"
90
+ },
91
+ "status": "active",
92
+ "verifiedAt": "2026-08-12",
93
+ "sla": "needs-review",
94
+ "appliesTo": [
95
+ "design-system"
96
+ ],
97
+ "confidence": 0.93,
98
+ "sources": [
99
+ {
100
+ "type": "derived",
101
+ "ref": "products.csv#Product Type=Directory / Listing Site"
102
+ },
103
+ {
104
+ "type": "derived",
105
+ "ref": "colors.csv#Product Type=Directory / Listing Site"
106
+ }
107
+ ]
108
+ },
109
+ {
110
+ "entityKind": "reasoning",
111
+ "entityId": "status-page-incident-management",
112
+ "sourceFile": "ui-reasoning.csv",
113
+ "sourceKey": {
114
+ "UI_Category": "Status Page / Incident Management"
115
+ },
116
+ "status": "active",
117
+ "verifiedAt": "2026-08-12",
118
+ "sla": "needs-review",
119
+ "appliesTo": [
120
+ "design-system"
121
+ ],
122
+ "confidence": 0.94,
123
+ "sources": [
124
+ {
125
+ "type": "derived",
126
+ "ref": "products.csv#Product Type=Status Page / Incident Management"
127
+ },
128
+ {
129
+ "type": "derived",
130
+ "ref": "colors.csv#Product Type=Status Page / Incident Management"
131
+ }
132
+ ]
133
+ },
134
+ {
135
+ "entityKind": "reasoning",
136
+ "entityId": "wiki-encyclopedia",
137
+ "sourceFile": "ui-reasoning.csv",
138
+ "sourceKey": {
139
+ "UI_Category": "Wiki / Encyclopedia"
140
+ },
141
+ "status": "active",
142
+ "verifiedAt": "2026-08-12",
143
+ "sla": "needs-review",
144
+ "appliesTo": [
145
+ "design-system"
146
+ ],
147
+ "confidence": 0.91,
148
+ "sources": [
149
+ {
150
+ "type": "derived",
151
+ "ref": "products.csv#Product Type=Wiki / Encyclopedia"
152
+ },
153
+ {
154
+ "type": "derived",
155
+ "ref": "colors.csv#Product Type=Wiki / Encyclopedia"
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ "entityKind": "reasoning",
161
+ "entityId": "auction-platform",
162
+ "sourceFile": "ui-reasoning.csv",
163
+ "sourceKey": {
164
+ "UI_Category": "Auction Platform"
165
+ },
166
+ "status": "active",
167
+ "verifiedAt": "2026-08-12",
168
+ "sla": "needs-review",
169
+ "appliesTo": [
170
+ "design-system"
171
+ ],
172
+ "confidence": 0.93,
173
+ "sources": [
174
+ {
175
+ "type": "derived",
176
+ "ref": "products.csv#Product Type=Auction Platform"
177
+ },
178
+ {
179
+ "type": "derived",
180
+ "ref": "colors.csv#Product Type=Auction Platform"
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ "entityKind": "reasoning",
186
+ "entityId": "changelog-release-notes",
187
+ "sourceFile": "ui-reasoning.csv",
188
+ "sourceKey": {
189
+ "UI_Category": "Changelog / Release Notes"
190
+ },
191
+ "status": "active",
192
+ "verifiedAt": "2026-08-12",
193
+ "sla": "needs-review",
194
+ "appliesTo": [
195
+ "design-system"
196
+ ],
197
+ "confidence": 0.9,
198
+ "sources": [
199
+ {
200
+ "type": "derived",
201
+ "ref": "products.csv#Product Type=Changelog / Release Notes"
202
+ },
203
+ {
204
+ "type": "derived",
205
+ "ref": "colors.csv#Product Type=Changelog / Release Notes"
206
+ }
207
+ ]
208
+ },
209
+ {
210
+ "entityKind": "reasoning",
211
+ "entityId": "citizen-science-platform",
212
+ "sourceFile": "ui-reasoning.csv",
213
+ "sourceKey": {
214
+ "UI_Category": "Citizen Science Platform"
215
+ },
216
+ "status": "active",
217
+ "verifiedAt": "2026-08-12",
218
+ "sla": "needs-review",
219
+ "appliesTo": [
220
+ "design-system"
221
+ ],
222
+ "confidence": 0.89,
223
+ "sources": [
224
+ {
225
+ "type": "derived",
226
+ "ref": "products.csv#Product Type=Citizen Science Platform"
227
+ },
228
+ {
229
+ "type": "derived",
230
+ "ref": "colors.csv#Product Type=Citizen Science Platform"
231
+ }
232
+ ]
233
+ },
234
+ {
235
+ "entityKind": "reasoning",
236
+ "entityId": "classifieds-buy-sell",
237
+ "sourceFile": "ui-reasoning.csv",
238
+ "sourceKey": {
239
+ "UI_Category": "Classifieds / Buy-Sell"
240
+ },
241
+ "status": "active",
242
+ "verifiedAt": "2026-08-12",
243
+ "sla": "needs-review",
244
+ "appliesTo": [
245
+ "design-system"
246
+ ],
247
+ "confidence": 0.93,
248
+ "sources": [
249
+ {
250
+ "type": "derived",
251
+ "ref": "products.csv#Product Type=Classifieds / Buy-Sell"
252
+ },
253
+ {
254
+ "type": "derived",
255
+ "ref": "colors.csv#Product Type=Classifieds / Buy-Sell"
256
+ }
257
+ ]
258
+ },
259
+ {
260
+ "entityKind": "reasoning",
261
+ "entityId": "conference-symposium-landing-page",
262
+ "sourceFile": "ui-reasoning.csv",
263
+ "sourceKey": {
264
+ "UI_Category": "Conference / Symposium Landing Page"
265
+ },
266
+ "status": "active",
267
+ "verifiedAt": "2026-08-12",
268
+ "sla": "needs-review",
269
+ "appliesTo": [
270
+ "design-system"
271
+ ],
272
+ "confidence": 0.9,
273
+ "sources": [
274
+ {
275
+ "type": "derived",
276
+ "ref": "products.csv#Product Type=Conference / Symposium Landing Page"
277
+ },
278
+ {
279
+ "type": "derived",
280
+ "ref": "colors.csv#Product Type=Conference / Symposium Landing Page"
281
+ }
282
+ ]
283
+ },
284
+ {
285
+ "entityKind": "reasoning",
286
+ "entityId": "crowdfunding-platform",
287
+ "sourceFile": "ui-reasoning.csv",
288
+ "sourceKey": {
289
+ "UI_Category": "Crowdfunding Platform"
290
+ },
291
+ "status": "active",
292
+ "verifiedAt": "2026-08-12",
293
+ "sla": "needs-review",
294
+ "appliesTo": [
295
+ "design-system"
296
+ ],
297
+ "confidence": 0.92,
298
+ "sources": [
299
+ {
300
+ "type": "derived",
301
+ "ref": "products.csv#Product Type=Crowdfunding Platform"
302
+ },
303
+ {
304
+ "type": "derived",
305
+ "ref": "colors.csv#Product Type=Crowdfunding Platform"
306
+ }
307
+ ]
308
+ },
309
+ {
310
+ "entityKind": "reasoning",
311
+ "entityId": "digital-signage-kiosk",
312
+ "sourceFile": "ui-reasoning.csv",
313
+ "sourceKey": {
314
+ "UI_Category": "Digital Signage / Kiosk"
315
+ },
316
+ "status": "active",
317
+ "verifiedAt": "2026-08-12",
318
+ "sla": "needs-review",
319
+ "appliesTo": [
320
+ "design-system"
321
+ ],
322
+ "confidence": 0.88,
323
+ "sources": [
324
+ {
325
+ "type": "derived",
326
+ "ref": "products.csv#Product Type=Digital Signage / Kiosk"
327
+ },
328
+ {
329
+ "type": "derived",
330
+ "ref": "colors.csv#Product Type=Digital Signage / Kiosk"
331
+ }
332
+ ]
333
+ },
334
+ {
335
+ "entityKind": "reasoning",
336
+ "entityId": "e-signature-document-workflow",
337
+ "sourceFile": "ui-reasoning.csv",
338
+ "sourceKey": {
339
+ "UI_Category": "E-signature / Document Workflow"
340
+ },
341
+ "status": "active",
342
+ "verifiedAt": "2026-08-12",
343
+ "sla": "needs-review",
344
+ "appliesTo": [
345
+ "design-system"
346
+ ],
347
+ "confidence": 0.93,
348
+ "sources": [
349
+ {
350
+ "type": "derived",
351
+ "ref": "products.csv#Product Type=E-signature / Document Workflow"
352
+ },
353
+ {
354
+ "type": "derived",
355
+ "ref": "colors.csv#Product Type=E-signature / Document Workflow"
356
+ }
357
+ ]
358
+ },
359
+ {
360
+ "entityKind": "reasoning",
361
+ "entityId": "feature-flag-config-management",
362
+ "sourceFile": "ui-reasoning.csv",
363
+ "sourceKey": {
364
+ "UI_Category": "Feature Flag / Config Management"
365
+ },
366
+ "status": "active",
367
+ "verifiedAt": "2026-08-12",
368
+ "sla": "needs-review",
369
+ "appliesTo": [
370
+ "design-system"
371
+ ],
372
+ "confidence": 0.91,
373
+ "sources": [
374
+ {
375
+ "type": "derived",
376
+ "ref": "products.csv#Product Type=Feature Flag / Config Management"
377
+ },
378
+ {
379
+ "type": "derived",
380
+ "ref": "colors.csv#Product Type=Feature Flag / Config Management"
381
+ }
382
+ ]
383
+ },
384
+ {
385
+ "entityKind": "reasoning",
386
+ "entityId": "government-portal-civic-services",
387
+ "sourceFile": "ui-reasoning.csv",
388
+ "sourceKey": {
389
+ "UI_Category": "Government Portal / Civic Services"
390
+ },
391
+ "status": "active",
392
+ "verifiedAt": "2026-08-12",
393
+ "sla": "needs-review",
394
+ "appliesTo": [
395
+ "design-system"
396
+ ],
397
+ "confidence": 0.95,
398
+ "sources": [
399
+ {
400
+ "type": "derived",
401
+ "ref": "products.csv#Product Type=Government Portal / Civic Services"
402
+ },
403
+ {
404
+ "type": "derived",
405
+ "ref": "colors.csv#Product Type=Government Portal / Civic Services"
406
+ }
407
+ ]
408
+ },
409
+ {
410
+ "entityKind": "reasoning",
411
+ "entityId": "grant-funding-portal",
412
+ "sourceFile": "ui-reasoning.csv",
413
+ "sourceKey": {
414
+ "UI_Category": "Grant / Funding Portal"
415
+ },
416
+ "status": "active",
417
+ "verifiedAt": "2026-08-12",
418
+ "sla": "needs-review",
419
+ "appliesTo": [
420
+ "design-system"
421
+ ],
422
+ "confidence": 0.92,
423
+ "sources": [
424
+ {
425
+ "type": "derived",
426
+ "ref": "products.csv#Product Type=Grant / Funding Portal"
427
+ },
428
+ {
429
+ "type": "derived",
430
+ "ref": "colors.csv#Product Type=Grant / Funding Portal"
431
+ }
432
+ ]
433
+ },
434
+ {
435
+ "entityKind": "reasoning",
436
+ "entityId": "lms-learning-management-system",
437
+ "sourceFile": "ui-reasoning.csv",
438
+ "sourceKey": {
439
+ "UI_Category": "LMS (Learning Management System)"
440
+ },
441
+ "status": "active",
442
+ "verifiedAt": "2026-08-12",
443
+ "sla": "needs-review",
444
+ "appliesTo": [
445
+ "design-system"
446
+ ],
447
+ "confidence": 0.93,
448
+ "sources": [
449
+ {
450
+ "type": "derived",
451
+ "ref": "products.csv#Product Type=LMS (Learning Management System)"
452
+ },
453
+ {
454
+ "type": "derived",
455
+ "ref": "colors.csv#Product Type=LMS (Learning Management System)"
456
+ }
457
+ ]
458
+ },
459
+ {
460
+ "entityKind": "reasoning",
461
+ "entityId": "no-code-low-code-builder",
462
+ "sourceFile": "ui-reasoning.csv",
463
+ "sourceKey": {
464
+ "UI_Category": "No-code / Low-code Builder"
465
+ },
466
+ "status": "active",
467
+ "verifiedAt": "2026-08-12",
468
+ "sla": "needs-review",
469
+ "appliesTo": [
470
+ "design-system"
471
+ ],
472
+ "confidence": 0.89,
473
+ "sources": [
474
+ {
475
+ "type": "derived",
476
+ "ref": "products.csv#Product Type=No-code / Low-code Builder"
477
+ },
478
+ {
479
+ "type": "derived",
480
+ "ref": "colors.csv#Product Type=No-code / Low-code Builder"
481
+ }
482
+ ]
483
+ },
484
+ {
485
+ "entityKind": "reasoning",
486
+ "entityId": "open-source-project-landing",
487
+ "sourceFile": "ui-reasoning.csv",
488
+ "sourceKey": {
489
+ "UI_Category": "Open Source Project Landing"
490
+ },
491
+ "status": "active",
492
+ "verifiedAt": "2026-08-12",
493
+ "sla": "needs-review",
494
+ "appliesTo": [
495
+ "design-system"
496
+ ],
497
+ "confidence": 0.9,
498
+ "sources": [
499
+ {
500
+ "type": "derived",
501
+ "ref": "products.csv#Product Type=Open Source Project Landing"
502
+ },
503
+ {
504
+ "type": "derived",
505
+ "ref": "colors.csv#Product Type=Open Source Project Landing"
506
+ }
507
+ ]
508
+ },
509
+ {
510
+ "entityKind": "reasoning",
511
+ "entityId": "patient-portal-health-records",
512
+ "sourceFile": "ui-reasoning.csv",
513
+ "sourceKey": {
514
+ "UI_Category": "Patient Portal / Health Records"
515
+ },
516
+ "status": "active",
517
+ "verifiedAt": "2026-08-12",
518
+ "sla": "needs-review",
519
+ "appliesTo": [
520
+ "design-system"
521
+ ],
522
+ "confidence": 0.94,
523
+ "sources": [
524
+ {
525
+ "type": "derived",
526
+ "ref": "products.csv#Product Type=Patient Portal / Health Records"
527
+ },
528
+ {
529
+ "type": "derived",
530
+ "ref": "colors.csv#Product Type=Patient Portal / Health Records"
531
+ }
532
+ ]
533
+ },
534
+ {
535
+ "entityKind": "reasoning",
536
+ "entityId": "patent-ip-database",
537
+ "sourceFile": "ui-reasoning.csv",
538
+ "sourceKey": {
539
+ "UI_Category": "Patent / IP Database"
540
+ },
541
+ "status": "active",
542
+ "verifiedAt": "2026-08-12",
543
+ "sla": "needs-review",
544
+ "appliesTo": [
545
+ "design-system"
546
+ ],
547
+ "confidence": 0.89,
548
+ "sources": [
549
+ {
550
+ "type": "derived",
551
+ "ref": "products.csv#Product Type=Patent / IP Database"
552
+ },
553
+ {
554
+ "type": "derived",
555
+ "ref": "colors.csv#Product Type=Patent / IP Database"
556
+ }
557
+ ]
558
+ },
559
+ {
560
+ "entityKind": "reasoning",
561
+ "entityId": "q-and-a-community-platform",
562
+ "sourceFile": "ui-reasoning.csv",
563
+ "sourceKey": {
564
+ "UI_Category": "Q&A Community Platform"
565
+ },
566
+ "status": "active",
567
+ "verifiedAt": "2026-08-12",
568
+ "sla": "needs-review",
569
+ "appliesTo": [
570
+ "design-system"
571
+ ],
572
+ "confidence": 0.93,
573
+ "sources": [
574
+ {
575
+ "type": "derived",
576
+ "ref": "products.csv#Product Type=Q&A Community Platform"
577
+ },
578
+ {
579
+ "type": "derived",
580
+ "ref": "colors.csv#Product Type=Q&A Community Platform"
581
+ }
582
+ ]
583
+ },
584
+ {
585
+ "entityKind": "reasoning",
586
+ "entityId": "research-lab-university-department",
587
+ "sourceFile": "ui-reasoning.csv",
588
+ "sourceKey": {
589
+ "UI_Category": "Research Lab / University Department"
590
+ },
591
+ "status": "active",
592
+ "verifiedAt": "2026-08-12",
593
+ "sla": "needs-review",
594
+ "appliesTo": [
595
+ "design-system"
596
+ ],
597
+ "confidence": 0.91,
598
+ "sources": [
599
+ {
600
+ "type": "derived",
601
+ "ref": "products.csv#Product Type=Research Lab / University Department"
602
+ },
603
+ {
604
+ "type": "derived",
605
+ "ref": "colors.csv#Product Type=Research Lab / University Department"
606
+ }
607
+ ]
608
+ },
609
+ {
610
+ "entityKind": "reasoning",
611
+ "entityId": "resume-cv-builder",
612
+ "sourceFile": "ui-reasoning.csv",
613
+ "sourceKey": {
614
+ "UI_Category": "Resume / CV Builder"
615
+ },
616
+ "status": "active",
617
+ "verifiedAt": "2026-08-12",
618
+ "sla": "needs-review",
619
+ "appliesTo": [
620
+ "design-system"
621
+ ],
622
+ "confidence": 0.92,
623
+ "sources": [
624
+ {
625
+ "type": "derived",
626
+ "ref": "products.csv#Product Type=Resume / CV Builder"
627
+ },
628
+ {
629
+ "type": "derived",
630
+ "ref": "colors.csv#Product Type=Resume / CV Builder"
631
+ }
632
+ ]
633
+ },
634
+ {
635
+ "entityKind": "reasoning",
636
+ "entityId": "review-platform",
637
+ "sourceFile": "ui-reasoning.csv",
638
+ "sourceKey": {
639
+ "UI_Category": "Review Platform"
640
+ },
641
+ "status": "active",
642
+ "verifiedAt": "2026-08-12",
643
+ "sla": "needs-review",
644
+ "appliesTo": [
645
+ "design-system"
646
+ ],
647
+ "confidence": 0.94,
648
+ "sources": [
649
+ {
650
+ "type": "derived",
651
+ "ref": "products.csv#Product Type=Review Platform"
652
+ },
653
+ {
654
+ "type": "derived",
655
+ "ref": "colors.csv#Product Type=Review Platform"
656
+ }
657
+ ]
658
+ },
659
+ {
660
+ "entityKind": "reasoning",
661
+ "entityId": "rpa-automation-dashboard",
662
+ "sourceFile": "ui-reasoning.csv",
663
+ "sourceKey": {
664
+ "UI_Category": "RPA / Automation Dashboard"
665
+ },
666
+ "status": "active",
667
+ "verifiedAt": "2026-08-12",
668
+ "sla": "needs-review",
669
+ "appliesTo": [
670
+ "design-system"
671
+ ],
672
+ "confidence": 0.93,
673
+ "sources": [
674
+ {
675
+ "type": "derived",
676
+ "ref": "products.csv#Product Type=RPA / Automation Dashboard"
677
+ },
678
+ {
679
+ "type": "derived",
680
+ "ref": "colors.csv#Product Type=RPA / Automation Dashboard"
681
+ }
682
+ ]
683
+ },
684
+ {
685
+ "entityKind": "reasoning",
686
+ "entityId": "survey-form-builder",
687
+ "sourceFile": "ui-reasoning.csv",
688
+ "sourceKey": {
689
+ "UI_Category": "Survey / Form Builder"
690
+ },
691
+ "status": "active",
692
+ "verifiedAt": "2026-08-12",
693
+ "sla": "needs-review",
694
+ "appliesTo": [
695
+ "design-system"
696
+ ],
697
+ "confidence": 0.92,
698
+ "sources": [
699
+ {
700
+ "type": "derived",
701
+ "ref": "products.csv#Product Type=Survey / Form Builder"
702
+ },
703
+ {
704
+ "type": "derived",
705
+ "ref": "colors.csv#Product Type=Survey / Form Builder"
706
+ }
707
+ ]
708
+ },
709
+ {
710
+ "entityKind": "reasoning",
711
+ "entityId": "telemedicine-platform",
712
+ "sourceFile": "ui-reasoning.csv",
713
+ "sourceKey": {
714
+ "UI_Category": "Telemedicine Platform"
715
+ },
716
+ "status": "active",
717
+ "verifiedAt": "2026-08-12",
718
+ "sla": "needs-review",
719
+ "appliesTo": [
720
+ "design-system"
721
+ ],
722
+ "confidence": 0.88,
723
+ "sources": [
724
+ {
725
+ "type": "derived",
726
+ "ref": "products.csv#Product Type=Telemedicine Platform"
727
+ },
728
+ {
729
+ "type": "derived",
730
+ "ref": "colors.csv#Product Type=Telemedicine Platform"
731
+ }
732
+ ]
733
+ },
734
+ {
735
+ "entityKind": "reasoning",
736
+ "entityId": "testimonial-and-social-proof-widget",
737
+ "sourceFile": "ui-reasoning.csv",
738
+ "sourceKey": {
739
+ "UI_Category": "Testimonial & Social Proof Widget"
740
+ },
741
+ "status": "active",
742
+ "verifiedAt": "2026-08-12",
743
+ "sla": "needs-review",
744
+ "appliesTo": [
745
+ "design-system"
746
+ ],
747
+ "confidence": 0.91,
748
+ "sources": [
749
+ {
750
+ "type": "derived",
751
+ "ref": "products.csv#Product Type=Testimonial & Social Proof Widget"
752
+ },
753
+ {
754
+ "type": "derived",
755
+ "ref": "colors.csv#Product Type=Testimonial & Social Proof Widget"
756
+ }
757
+ ]
758
+ },
759
+ {
760
+ "entityKind": "reasoning",
761
+ "entityId": "ticketing-box-office",
762
+ "sourceFile": "ui-reasoning.csv",
763
+ "sourceKey": {
764
+ "UI_Category": "Ticketing / Box Office"
765
+ },
766
+ "status": "active",
767
+ "verifiedAt": "2026-08-12",
768
+ "sla": "needs-review",
769
+ "appliesTo": [
770
+ "design-system"
771
+ ],
772
+ "confidence": 0.93,
773
+ "sources": [
774
+ {
775
+ "type": "derived",
776
+ "ref": "products.csv#Product Type=Ticketing / Box Office"
777
+ },
778
+ {
779
+ "type": "derived",
780
+ "ref": "colors.csv#Product Type=Ticketing / Box Office"
781
+ }
782
+ ]
783
+ },
784
+ {
785
+ "entityKind": "style",
786
+ "entityId": "liquid-glass",
787
+ "sourceFile": "styles.csv",
788
+ "sourceKey": {
789
+ "Style ID": "liquid-glass"
790
+ },
791
+ "status": "active",
792
+ "verifiedAt": "2026-08-13",
793
+ "sla": "manual-verified",
794
+ "appliesTo": [
795
+ "style-search",
796
+ "gallery"
797
+ ],
798
+ "confidence": 0.94,
799
+ "sources": [
800
+ {
801
+ "type": "official",
802
+ "ref": "https://developer.apple.com/documentation/TechnologyOverviews/liquid-glass"
803
+ }
804
+ ]
805
+ },
806
+ {
807
+ "entityKind": "style",
808
+ "entityId": "material-you-md3-mobile",
809
+ "sourceFile": "styles.csv",
810
+ "sourceKey": {
811
+ "Style ID": "material-you-md3-mobile"
812
+ },
813
+ "status": "active",
814
+ "verifiedAt": "2026-08-13",
815
+ "sla": "manual-verified",
816
+ "appliesTo": [
817
+ "style-search",
818
+ "gallery"
819
+ ],
820
+ "confidence": 0.94,
821
+ "sources": [
822
+ {
823
+ "type": "official",
824
+ "ref": "https://m3.material.io/"
825
+ }
826
+ ]
827
+ },
828
+ {
829
+ "entityKind": "style",
830
+ "entityId": "fluent-2",
831
+ "sourceFile": "styles.csv",
832
+ "sourceKey": {
833
+ "Style ID": "fluent-2"
834
+ },
835
+ "status": "active",
836
+ "verifiedAt": "2026-08-13",
837
+ "sla": "manual-verified",
838
+ "appliesTo": [
839
+ "style-search",
840
+ "gallery"
841
+ ],
842
+ "confidence": 0.94,
843
+ "sources": [
844
+ {
845
+ "type": "official",
846
+ "ref": "https://fluent2.microsoft.design/"
847
+ }
848
+ ]
849
+ },
850
+ {
851
+ "entityKind": "style",
852
+ "entityId": "shopify-polaris",
853
+ "sourceFile": "styles.csv",
854
+ "sourceKey": {
855
+ "Style ID": "shopify-polaris"
856
+ },
857
+ "status": "active",
858
+ "verifiedAt": "2026-08-13",
859
+ "sla": "manual-verified",
860
+ "appliesTo": [
861
+ "style-search",
862
+ "gallery"
863
+ ],
864
+ "confidence": 0.94,
865
+ "sources": [
866
+ {
867
+ "type": "official",
868
+ "ref": "https://shopify.dev/docs/api/polaris/index"
869
+ }
870
+ ]
871
+ },
872
+ {
873
+ "entityKind": "style",
874
+ "entityId": "spectrum-design-system",
875
+ "sourceFile": "styles.csv",
876
+ "sourceKey": {
877
+ "Style ID": "spectrum-design-system"
878
+ },
879
+ "status": "active",
880
+ "verifiedAt": "2026-08-13",
881
+ "sla": "manual-verified",
882
+ "appliesTo": [
883
+ "style-search",
884
+ "gallery"
885
+ ],
886
+ "confidence": 0.94,
887
+ "sources": [
888
+ {
889
+ "type": "official",
890
+ "ref": "https://opensource.adobe.com/spectrum-design-data/"
891
+ }
892
+ ]
893
+ },
894
+ {
895
+ "entityKind": "style",
896
+ "entityId": "spectrum-2",
897
+ "sourceFile": "styles.csv",
898
+ "sourceKey": {
899
+ "Style ID": "spectrum-2"
900
+ },
901
+ "status": "supplemental",
902
+ "verifiedAt": "2026-08-13",
903
+ "sla": "manual-verified",
904
+ "appliesTo": [
905
+ "style-search",
906
+ "gallery"
907
+ ],
908
+ "confidence": 0.94,
909
+ "sources": [
910
+ {
911
+ "type": "official",
912
+ "ref": "https://s2.spectrum.adobe.com/index.html"
913
+ }
914
+ ]
915
+ },
916
+ {
917
+ "entityKind": "dataset-contract",
918
+ "entityId": "core-colors-accessibility",
919
+ "sourceFile": "colors.csv",
920
+ "sourceKey": {
921
+ "Scope": "No 1-192; contrast-threshold wording in Notes only",
922
+ "Boundary": "Does not attest that every palette pair was measured"
923
+ },
924
+ "status": "active",
925
+ "verifiedAt": "2026-08-13",
926
+ "sla": "manual-verified",
927
+ "appliesTo": [
928
+ "search",
929
+ "design-guidance"
930
+ ],
931
+ "sources": [
932
+ {
933
+ "type": "official",
934
+ "ref": "https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum"
935
+ },
936
+ {
937
+ "type": "official",
938
+ "ref": "https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast"
939
+ }
940
+ ]
941
+ },
942
+ {
943
+ "entityKind": "dataset-contract",
944
+ "entityId": "core-charts-accessibility",
945
+ "sourceFile": "charts.csv",
946
+ "sourceKey": {
947
+ "Scope": "No 1-25; Color Guidance, Accessibility Notes, and A11y Fallback fields",
948
+ "Boundary": "Does not claim that a named chart library enforces the guidance"
949
+ },
950
+ "status": "active",
951
+ "verifiedAt": "2026-08-13",
952
+ "sla": "manual-verified",
953
+ "appliesTo": [
954
+ "search",
955
+ "design-guidance"
956
+ ],
957
+ "sources": [
958
+ {
959
+ "type": "official",
960
+ "ref": "https://www.w3.org/WAI/WCAG22/Understanding/use-of-color"
961
+ },
962
+ {
963
+ "type": "official",
964
+ "ref": "https://carbondesignsystem.com/data-visualization/chart-anatomy/"
965
+ }
966
+ ]
967
+ },
968
+ {
969
+ "entityKind": "dataset-contract",
970
+ "entityId": "core-landing-accessibility",
971
+ "sourceFile": "landing.csv",
972
+ "sourceKey": {
973
+ "Scope": "No 1, 2, 9, 15, 21, 22, 24, 25, 29, and 33; Color Strategy and Conversion Optimization accessibility text"
974
+ },
975
+ "status": "active",
976
+ "verifiedAt": "2026-08-13",
977
+ "sla": "manual-verified",
978
+ "appliesTo": [
979
+ "search",
980
+ "design-guidance"
981
+ ],
982
+ "sources": [
983
+ {
984
+ "type": "official",
985
+ "ref": "https://www.w3.org/WAI/tutorials/carousels/"
986
+ },
987
+ {
988
+ "type": "official",
989
+ "ref": "https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements.html"
990
+ },
991
+ {
992
+ "type": "official",
993
+ "ref": "https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum"
994
+ }
995
+ ]
996
+ },
997
+ {
998
+ "entityKind": "dataset-contract",
999
+ "entityId": "core-wcag-22-guidance",
1000
+ "sourceFile": "ux-guidelines.csv",
1001
+ "sourceKey": {
1002
+ "Scope": "No 100-107; Issue, Description, Do, Don't, and code-example fields",
1003
+ "ConformanceBoundary": "Rows 100, 103, 104, and 107 are AA; rows 101-102 are AAA; rows 105-106 are A. Accessible Authentication (Enhanced) AAA is not represented."
1004
+ },
1005
+ "status": "active",
1006
+ "verifiedAt": "2026-08-13",
1007
+ "sla": "manual-verified",
1008
+ "appliesTo": [
1009
+ "search",
1010
+ "design-guidance"
1011
+ ],
1012
+ "sources": [
1013
+ {
1014
+ "type": "official",
1015
+ "ref": "https://www.w3.org/WAI/standards-guidelines/wcag/new-in-22/"
1016
+ },
1017
+ {
1018
+ "type": "official",
1019
+ "ref": "https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-minimum.html"
1020
+ }
1021
+ ]
1022
+ },
1023
+ {
1024
+ "entityKind": "dataset-contract",
1025
+ "entityId": "core-typography-imports",
1026
+ "sourceFile": "typography.csv",
1027
+ "sourceKey": {
1028
+ "Scope": "No 20, 39, 59, 63, 66-68, 70, and 71; named families, Google Fonts URL, CSS Import, Tailwind Config, and stated weight/style availability"
1029
+ },
1030
+ "status": "active",
1031
+ "verifiedAt": "2026-08-13",
1032
+ "sla": "manual-verified",
1033
+ "appliesTo": [
1034
+ "search",
1035
+ "design-guidance"
1036
+ ],
1037
+ "sources": [
1038
+ {
1039
+ "type": "official",
1040
+ "ref": "https://developers.google.com/fonts/docs/css2"
1041
+ }
1042
+ ]
1043
+ },
1044
+ {
1045
+ "entityKind": "dataset-contract",
1046
+ "entityId": "core-icon-semantics",
1047
+ "sourceFile": "icons.csv",
1048
+ "sourceKey": {
1049
+ "Scope": "No 1-105; Allowed Contexts and contextual accessibility guidance in Usage; No 105 library/import examples",
1050
+ "Compatibility": "Semantic Role remains a legacy recommended-default field, not an immutable semantic classification"
1051
+ },
1052
+ "status": "active",
1053
+ "verifiedAt": "2026-08-13",
1054
+ "sla": "manual-verified",
1055
+ "appliesTo": [
1056
+ "search",
1057
+ "design-guidance"
1058
+ ],
1059
+ "sources": [
1060
+ {
1061
+ "type": "official",
1062
+ "ref": "https://www.w3.org/WAI/tutorials/images/decorative/"
1063
+ },
1064
+ {
1065
+ "type": "official",
1066
+ "ref": "https://www.w3.org/WAI/ARIA/apg/practices/names-and-descriptions/"
1067
+ },
1068
+ {
1069
+ "type": "official",
1070
+ "ref": "https://www.w3.org/WAI/ARIA/apg/patterns/button/"
1071
+ },
1072
+ {
1073
+ "type": "official",
1074
+ "ref": "https://github.com/phosphor-icons/react"
1075
+ }
1076
+ ]
1077
+ },
1078
+ {
1079
+ "entityKind": "dataset-contract",
1080
+ "entityId": "core-motion-accessibility",
1081
+ "sourceFile": "motion.csv",
1082
+ "sourceKey": {
1083
+ "Scope": "No 1-17; GSAP API identifiers in GSAP Snippet/Framework Notes and reduced-motion handling in Framework Notes",
1084
+ "Boundary": "Does not verify product-specific duration, count, or performance recommendations"
1085
+ },
1086
+ "status": "active",
1087
+ "verifiedAt": "2026-08-13",
1088
+ "sla": "manual-verified",
1089
+ "appliesTo": [
1090
+ "search",
1091
+ "design-guidance"
1092
+ ],
1093
+ "sources": [
1094
+ {
1095
+ "type": "official",
1096
+ "ref": "https://gsap.com/docs/v3/GSAP/"
1097
+ },
1098
+ {
1099
+ "type": "official",
1100
+ "ref": "https://gsap.com/docs/v3/Plugins/ScrollTrigger/"
1101
+ },
1102
+ {
1103
+ "type": "official",
1104
+ "ref": "https://www.w3.org/WAI/WCAG22/Techniques/css/C39.html"
1105
+ },
1106
+ {
1107
+ "type": "official",
1108
+ "ref": "https://www.w3.org/WAI/tutorials/carousels/animations/"
1109
+ }
1110
+ ]
1111
+ },
1112
+ {
1113
+ "entityKind": "dataset-contract",
1114
+ "entityId": "core-native-input",
1115
+ "sourceFile": "app-interface.csv",
1116
+ "sourceKey": {
1117
+ "Scope": "No 6, 31, and 32; Description, Do, Don't, and code-example fields"
1118
+ },
1119
+ "status": "active",
1120
+ "verifiedAt": "2026-08-13",
1121
+ "sla": "manual-verified",
1122
+ "appliesTo": [
1123
+ "search",
1124
+ "design-guidance"
1125
+ ],
1126
+ "sources": [
1127
+ {
1128
+ "type": "official",
1129
+ "ref": "https://developer.apple.com/design/human-interface-guidelines/accessibility"
1130
+ },
1131
+ {
1132
+ "type": "official",
1133
+ "ref": "https://developer.android.com/guide/topics/ui/accessibility/apps"
1134
+ }
1135
+ ]
1136
+ },
1137
+ {
1138
+ "entityKind": "dataset-contract",
1139
+ "entityId": "core-react-effects",
1140
+ "sourceFile": "react-performance.csv",
1141
+ "sourceKey": {
1142
+ "Scope": "No 43-44; Description, Do, Don't, and code-example fields"
1143
+ },
1144
+ "status": "active",
1145
+ "verifiedAt": "2026-08-13",
1146
+ "sla": "manual-verified",
1147
+ "appliesTo": [
1148
+ "search",
1149
+ "design-guidance"
1150
+ ],
1151
+ "sources": [
1152
+ {
1153
+ "type": "official",
1154
+ "ref": "https://react.dev/reference/react/useEffectEvent"
1155
+ },
1156
+ {
1157
+ "type": "official",
1158
+ "ref": "https://react.dev/learn/referencing-values-with-refs"
1159
+ },
1160
+ {
1161
+ "type": "official",
1162
+ "ref": "https://react.dev/reference/react/useEffect"
1163
+ }
1164
+ ]
1165
+ },
1166
+ {
1167
+ "entityKind": "dataset-contract",
1168
+ "entityId": "core-form-validation-errors",
1169
+ "sourceFile": "ux-guidelines.csv",
1170
+ "sourceKey": {
1171
+ "Scope": "No 55 and 109; Description, Do, Don't, and code-example fields"
1172
+ },
1173
+ "status": "active",
1174
+ "verifiedAt": "2026-08-13",
1175
+ "sla": "manual-verified",
1176
+ "appliesTo": [
1177
+ "search",
1178
+ "design-guidance"
1179
+ ],
1180
+ "sources": [
1181
+ {
1182
+ "type": "official",
1183
+ "ref": "https://design-system.service.gov.uk/components/error-summary/"
1184
+ },
1185
+ {
1186
+ "type": "official",
1187
+ "ref": "https://design-system.service.gov.uk/components/error-message/"
1188
+ },
1189
+ {
1190
+ "type": "official",
1191
+ "ref": "https://www.w3.org/WAI/tutorials/forms/notifications/"
1192
+ }
1193
+ ]
1194
+ },
1195
+ {
1196
+ "entityKind": "dataset-contract",
1197
+ "entityId": "core-text-layout-resilience",
1198
+ "sourceFile": "ux-guidelines.csv",
1199
+ "sourceKey": {
1200
+ "Scope": "No 8, 14, 19, 78, and 110-119; Issue, Platform, Description, Do, Don't, code-example, and Severity fields",
1201
+ "Boundary": "Heading balance is a progressive browser-controlled heuristic and does not guarantee an orphan-free or exact line break; timing and loading choices remain platform- and component-specific; compact-label guidance does not authorize blanket nonbreaking spaces, hardcoded line breaks, inaccessible truncation, or status announced by color alone"
1202
+ },
1203
+ "status": "active",
1204
+ "verifiedAt": "2026-08-13",
1205
+ "sla": "manual-verified",
1206
+ "appliesTo": [
1207
+ "search",
1208
+ "design-guidance"
1209
+ ],
1210
+ "sources": [
1211
+ {
1212
+ "type": "official",
1213
+ "ref": "https://www.w3.org/TR/css-text-4/"
1214
+ },
1215
+ {
1216
+ "type": "official",
1217
+ "ref": "https://www.w3.org/WAI/WCAG22/Understanding/reflow.html"
1218
+ },
1219
+ {
1220
+ "type": "official",
1221
+ "ref": "https://www.w3.org/WAI/WCAG22/Understanding/text-spacing.html"
1222
+ },
1223
+ {
1224
+ "type": "official",
1225
+ "ref": "https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html"
1226
+ },
1227
+ {
1228
+ "type": "official",
1229
+ "ref": "https://fluent2.microsoft.design/components/web/react/core/tag/usage"
1230
+ },
1231
+ {
1232
+ "type": "official",
1233
+ "ref": "https://fluent2.microsoft.design/components/web/react/core/skeleton/usage"
1234
+ },
1235
+ {
1236
+ "type": "official",
1237
+ "ref": "https://fluent2.microsoft.design/motion"
1238
+ },
1239
+ {
1240
+ "type": "official",
1241
+ "ref": "https://fluent2.microsoft.design/wait-ux"
1242
+ },
1243
+ {
1244
+ "type": "official",
1245
+ "ref": "https://m3.material.io/foundations/interaction/states/overview"
1246
+ },
1247
+ {
1248
+ "type": "official",
1249
+ "ref": "https://www.w3.org/TR/web-animations-1/"
1250
+ },
1251
+ {
1252
+ "type": "official",
1253
+ "ref": "https://www.w3.org/TR/css-animations-1/"
1254
+ }
1255
+ ]
1256
+ },
1257
+ {
1258
+ "entityKind": "dataset-contract",
1259
+ "entityId": "html-tailwind-text-layout-resilience",
1260
+ "sourceFile": "stacks/html-tailwind.csv",
1261
+ "sourceKey": {
1262
+ "Scope": "No 57-59; Guideline, Description, Do, Don't, Code Good, Code Bad, Docs URL, Applies To, Status, and Verified At fields",
1263
+ "Boundary": "Balanced wrapping is progressive enhancement; wrap-anywhere is limited to unpredictable long tokens; compact-label truncation is a last resort after collection reflow and requires a bounded shrink path"
1264
+ },
1265
+ "status": "active",
1266
+ "verifiedAt": "2026-08-13",
1267
+ "sla": "manual-verified",
1268
+ "appliesTo": [
1269
+ "search",
1270
+ "design-guidance"
1271
+ ],
1272
+ "sources": [
1273
+ {
1274
+ "type": "official",
1275
+ "ref": "https://tailwindcss.com/docs/text-wrap"
1276
+ },
1277
+ {
1278
+ "type": "official",
1279
+ "ref": "https://tailwindcss.com/docs/overflow-wrap"
1280
+ },
1281
+ {
1282
+ "type": "official",
1283
+ "ref": "https://tailwindcss.com/docs/flex-wrap"
1284
+ },
1285
+ {
1286
+ "type": "official",
1287
+ "ref": "https://tailwindcss.com/docs/min-width"
1288
+ },
1289
+ {
1290
+ "type": "official",
1291
+ "ref": "https://tailwindcss.com/docs/white-space"
1292
+ }
1293
+ ]
1294
+ },
1295
+ {
1296
+ "entityKind": "catalog-snapshot",
1297
+ "entityId": "google-fonts-catalog-2026-08-13",
1298
+ "sourceFile": "google-fonts.csv",
1299
+ "sourceKey": {
1300
+ "Snapshot": "catalog-summary.json",
1301
+ "Count": 1934
1302
+ },
1303
+ "status": "active",
1304
+ "verifiedAt": "2026-08-13",
1305
+ "sla": "manual-verified",
1306
+ "appliesTo": [
1307
+ "search",
1308
+ "design-guidance"
1309
+ ],
1310
+ "sources": [
1311
+ {
1312
+ "type": "official",
1313
+ "ref": "https://developers.google.com/fonts/docs/developer_api"
1314
+ },
1315
+ {
1316
+ "type": "official",
1317
+ "ref": "https://github.com/google/fonts"
1318
+ }
1319
+ ]
1320
+ },
1321
+ {
1322
+ "entityKind": "catalog-snapshot",
1323
+ "entityId": "phosphor-icons-catalog-2.1.1",
1324
+ "sourceFile": "phosphor-icons-upstream.json",
1325
+ "sourceKey": {
1326
+ "Snapshot": "catalog-summary.json",
1327
+ "Count": 1512
1328
+ },
1329
+ "status": "active",
1330
+ "verifiedAt": "2026-08-13",
1331
+ "sla": "manual-verified",
1332
+ "appliesTo": [
1333
+ "search",
1334
+ "design-guidance"
1335
+ ],
1336
+ "sources": [
1337
+ {
1338
+ "type": "official",
1339
+ "ref": "https://github.com/phosphor-icons/core"
1340
+ },
1341
+ {
1342
+ "type": "official",
1343
+ "ref": "https://github.com/phosphor-icons/react"
1344
+ }
1345
+ ]
1346
+ }
1347
+ ]
1348
+ }