@hegemonart/get-design-done 1.41.5 → 1.43.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 (434) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +1120 -1029
  4. package/README.md +158 -154
  5. package/SKILL.md +42 -42
  6. package/agents/README.md +53 -53
  7. package/agents/a11y-mapper.md +3 -3
  8. package/agents/component-benchmark-harvester.md +8 -8
  9. package/agents/component-benchmark-synthesizer.md +11 -11
  10. package/agents/component-taxonomy-mapper.md +5 -5
  11. package/agents/compose-executor.md +25 -25
  12. package/agents/conflict-resolver.md +8 -8
  13. package/agents/cost-forecaster.md +12 -12
  14. package/agents/decision-journal-exporter.md +5 -5
  15. package/agents/design-advisor.md +19 -19
  16. package/agents/design-assumptions-analyzer.md +16 -16
  17. package/agents/design-auditor.md +39 -39
  18. package/agents/design-authority-watcher.md +28 -28
  19. package/agents/design-component-generator.md +27 -27
  20. package/agents/design-context-builder.md +66 -66
  21. package/agents/design-context-checker-gate.md +5 -5
  22. package/agents/design-context-checker.md +20 -20
  23. package/agents/design-discussant.md +23 -23
  24. package/agents/design-doc-writer.md +12 -12
  25. package/agents/design-executor.md +38 -38
  26. package/agents/design-figma-writer.md +31 -31
  27. package/agents/design-fixer.md +27 -27
  28. package/agents/design-integration-checker-gate.md +5 -5
  29. package/agents/design-integration-checker.md +29 -29
  30. package/agents/design-paper-writer.md +14 -14
  31. package/agents/design-pattern-mapper.md +9 -9
  32. package/agents/design-pencil-writer.md +12 -12
  33. package/agents/design-phase-researcher.md +14 -14
  34. package/agents/design-plan-checker.md +13 -13
  35. package/agents/design-planner.md +24 -24
  36. package/agents/design-reflector.md +48 -48
  37. package/agents/design-research-synthesizer.md +21 -21
  38. package/agents/design-start-writer.md +7 -7
  39. package/agents/design-update-checker.md +8 -8
  40. package/agents/design-verifier-gate.md +5 -5
  41. package/agents/design-verifier.md +80 -80
  42. package/agents/ds-generator.md +14 -14
  43. package/agents/ds-migration-planner.md +12 -12
  44. package/agents/email-executor.md +26 -26
  45. package/agents/experiment-result-ingester.md +10 -10
  46. package/agents/flutter-executor.md +28 -28
  47. package/agents/gdd-graph-refresh.md +10 -10
  48. package/agents/gdd-intel-updater.md +11 -11
  49. package/agents/gdd-learnings-extractor.md +2 -2
  50. package/agents/motion-mapper.md +8 -8
  51. package/agents/motion-verifier.md +16 -16
  52. package/agents/pdf-executor.md +27 -27
  53. package/agents/perf-analyzer.md +20 -20
  54. package/agents/pr-commenter.md +24 -24
  55. package/agents/prototype-gate.md +29 -29
  56. package/agents/quality-gate-runner.md +21 -21
  57. package/agents/rollout-coordinator.md +8 -8
  58. package/agents/swift-executor.md +41 -41
  59. package/agents/ticket-sync-agent.md +19 -19
  60. package/agents/token-mapper.md +6 -6
  61. package/agents/user-research-synthesizer.md +13 -13
  62. package/agents/visual-hierarchy-mapper.md +2 -2
  63. package/dist/claude-code/.claude/skills/add-backlog/SKILL.md +48 -0
  64. package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +95 -0
  65. package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +92 -0
  66. package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +170 -0
  67. package/dist/claude-code/.claude/skills/audit/SKILL.md +79 -0
  68. package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +94 -0
  69. package/dist/claude-code/.claude/skills/benchmark/SKILL.md +65 -0
  70. package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +43 -0
  71. package/dist/claude-code/.claude/skills/brief/SKILL.md +128 -0
  72. package/dist/claude-code/.claude/skills/budget/SKILL.md +45 -0
  73. package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +66 -0
  74. package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +126 -0
  75. package/dist/claude-code/.claude/skills/check-update/SKILL.md +98 -0
  76. package/dist/claude-code/.claude/skills/compare/SKILL.md +82 -0
  77. package/dist/claude-code/.claude/skills/compare/compare-rubric.md +171 -0
  78. package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +81 -0
  79. package/dist/claude-code/.claude/skills/connections/SKILL.md +71 -0
  80. package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +608 -0
  81. package/dist/claude-code/.claude/skills/continue/SKILL.md +24 -0
  82. package/dist/claude-code/.claude/skills/darkmode/SKILL.md +76 -0
  83. package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +258 -0
  84. package/dist/claude-code/.claude/skills/debug/SKILL.md +41 -0
  85. package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +119 -0
  86. package/dist/claude-code/.claude/skills/design/SKILL.md +99 -0
  87. package/dist/claude-code/.claude/skills/design/design-procedure.md +304 -0
  88. package/dist/claude-code/.claude/skills/discover/SKILL.md +72 -0
  89. package/dist/claude-code/.claude/skills/discover/discover-procedure.md +222 -0
  90. package/dist/claude-code/.claude/skills/discuss/SKILL.md +96 -0
  91. package/dist/claude-code/.claude/skills/do/SKILL.md +45 -0
  92. package/dist/claude-code/.claude/skills/explore/SKILL.md +105 -0
  93. package/dist/claude-code/.claude/skills/explore/explore-procedure.md +267 -0
  94. package/dist/claude-code/.claude/skills/export/SKILL.md +30 -0
  95. package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +98 -0
  96. package/dist/claude-code/.claude/skills/fast/SKILL.md +91 -0
  97. package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +64 -0
  98. package/dist/claude-code/.claude/skills/figma-write/SKILL.md +39 -0
  99. package/dist/claude-code/.claude/skills/graphify/SKILL.md +49 -0
  100. package/dist/claude-code/.claude/skills/health/SKILL.md +99 -0
  101. package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +44 -0
  102. package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +69 -0
  103. package/dist/claude-code/.claude/skills/help/SKILL.md +87 -0
  104. package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +61 -0
  105. package/dist/claude-code/.claude/skills/locale/SKILL.md +51 -0
  106. package/dist/claude-code/.claude/skills/map/SKILL.md +89 -0
  107. package/dist/claude-code/.claude/skills/migrate/SKILL.md +70 -0
  108. package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +37 -0
  109. package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +87 -0
  110. package/dist/claude-code/.claude/skills/new-project/SKILL.md +53 -0
  111. package/dist/claude-code/.claude/skills/next/SKILL.md +68 -0
  112. package/dist/claude-code/.claude/skills/note/SKILL.md +48 -0
  113. package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +86 -0
  114. package/dist/claude-code/.claude/skills/optimize/SKILL.md +97 -0
  115. package/dist/claude-code/.claude/skills/pause/SKILL.md +77 -0
  116. package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +88 -0
  117. package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +161 -0
  118. package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +90 -0
  119. package/dist/claude-code/.claude/skills/peers/SKILL.md +96 -0
  120. package/dist/claude-code/.claude/skills/plan/SKILL.md +105 -0
  121. package/dist/claude-code/.claude/skills/plan/plan-procedure.md +278 -0
  122. package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +48 -0
  123. package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +32 -0
  124. package/dist/claude-code/.claude/skills/progress/SKILL.md +95 -0
  125. package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +90 -0
  126. package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +101 -0
  127. package/dist/claude-code/.claude/skills/quick/SKILL.md +44 -0
  128. package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +32 -0
  129. package/dist/claude-code/.claude/skills/recall/SKILL.md +75 -0
  130. package/dist/claude-code/.claude/skills/reflect/SKILL.md +85 -0
  131. package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +120 -0
  132. package/dist/claude-code/.claude/skills/report-issue/SKILL.md +53 -0
  133. package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +120 -0
  134. package/dist/claude-code/.claude/skills/resume/SKILL.md +93 -0
  135. package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +46 -0
  136. package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +42 -0
  137. package/dist/claude-code/.claude/skills/roi/SKILL.md +54 -0
  138. package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +35 -0
  139. package/dist/claude-code/.claude/skills/router/SKILL.md +89 -0
  140. package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +65 -0
  141. package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +78 -0
  142. package/dist/claude-code/.claude/skills/router/router-rules.md +84 -0
  143. package/dist/claude-code/.claude/skills/scan/SKILL.md +92 -0
  144. package/dist/claude-code/.claude/skills/scan/scan-procedure.md +732 -0
  145. package/dist/claude-code/.claude/skills/settings/SKILL.md +87 -0
  146. package/dist/claude-code/.claude/skills/ship/SKILL.md +48 -0
  147. package/dist/claude-code/.claude/skills/sketch/SKILL.md +78 -0
  148. package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +92 -0
  149. package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +79 -0
  150. package/dist/claude-code/.claude/skills/spike/SKILL.md +67 -0
  151. package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +86 -0
  152. package/dist/claude-code/.claude/skills/start/SKILL.md +67 -0
  153. package/dist/claude-code/.claude/skills/start/start-procedure.md +115 -0
  154. package/dist/claude-code/.claude/skills/stats/SKILL.md +51 -0
  155. package/dist/claude-code/.claude/skills/style/SKILL.md +71 -0
  156. package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +150 -0
  157. package/dist/claude-code/.claude/skills/synthesize/SKILL.md +94 -0
  158. package/dist/claude-code/.claude/skills/timeline/SKILL.md +66 -0
  159. package/dist/claude-code/.claude/skills/todo/SKILL.md +64 -0
  160. package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +95 -0
  161. package/dist/claude-code/.claude/skills/undo/SKILL.md +31 -0
  162. package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +54 -0
  163. package/dist/claude-code/.claude/skills/update/SKILL.md +56 -0
  164. package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +78 -0
  165. package/dist/claude-code/.claude/skills/verify/SKILL.md +113 -0
  166. package/dist/claude-code/.claude/skills/verify/verify-procedure.md +512 -0
  167. package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +81 -0
  168. package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +82 -0
  169. package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +26 -0
  170. package/package.json +8 -2
  171. package/reference/DEPRECATIONS.md +21 -7
  172. package/reference/STATE-TEMPLATE.md +26 -26
  173. package/reference/accessibility.md +13 -13
  174. package/reference/adr-format.md +13 -13
  175. package/reference/ai-native-tool-interface.md +5 -5
  176. package/reference/anti-patterns.md +9 -9
  177. package/reference/architecture-vocabulary.md +31 -31
  178. package/reference/audit-scoring.md +13 -13
  179. package/reference/authority-feeds.md +36 -36
  180. package/reference/bandit-integration.md +25 -25
  181. package/reference/brand-voice.md +36 -36
  182. package/reference/capability-gap-stage-gate.md +20 -20
  183. package/reference/checklists.md +26 -26
  184. package/reference/cli-localization.md +13 -13
  185. package/reference/codex-tools.md +2 -2
  186. package/reference/color-theory.md +28 -28
  187. package/reference/component-authoring.md +4 -4
  188. package/reference/components/README.md +13 -13
  189. package/reference/components/TEMPLATE.md +13 -13
  190. package/reference/components/accordion.md +15 -15
  191. package/reference/components/alert.md +25 -25
  192. package/reference/components/badge.md +18 -18
  193. package/reference/components/breadcrumbs.md +24 -24
  194. package/reference/components/button.md +21 -21
  195. package/reference/components/card.md +13 -13
  196. package/reference/components/checkbox.md +20 -20
  197. package/reference/components/chip.md +20 -20
  198. package/reference/components/command-palette.md +15 -15
  199. package/reference/components/date-picker.md +22 -22
  200. package/reference/components/drawer.md +13 -13
  201. package/reference/components/file-upload.md +22 -22
  202. package/reference/components/input.md +18 -18
  203. package/reference/components/label.md +25 -25
  204. package/reference/components/link.md +19 -19
  205. package/reference/components/list.md +17 -17
  206. package/reference/components/menu.md +19 -19
  207. package/reference/components/modal-dialog.md +16 -16
  208. package/reference/components/navbar.md +19 -19
  209. package/reference/components/pagination.md +18 -18
  210. package/reference/components/popover.md +12 -12
  211. package/reference/components/progress.md +18 -18
  212. package/reference/components/radio.md +17 -17
  213. package/reference/components/rich-text-editor.md +24 -24
  214. package/reference/components/select-combobox.md +16 -16
  215. package/reference/components/sidebar.md +15 -15
  216. package/reference/components/skeleton.md +20 -20
  217. package/reference/components/slider.md +20 -20
  218. package/reference/components/stepper.md +24 -24
  219. package/reference/components/switch.md +19 -19
  220. package/reference/components/table.md +21 -21
  221. package/reference/components/tabs.md +11 -11
  222. package/reference/components/toast.md +19 -19
  223. package/reference/components/tooltip.md +19 -19
  224. package/reference/components/tree.md +17 -17
  225. package/reference/composition.md +38 -38
  226. package/reference/config-schema.md +37 -37
  227. package/reference/context-md-format.md +9 -9
  228. package/reference/contrast-advanced.md +29 -29
  229. package/reference/conversational-ui.md +17 -17
  230. package/reference/cost-governance.md +14 -14
  231. package/reference/css-grid-layout.md +8 -8
  232. package/reference/cycle-handoff-preamble.md +3 -3
  233. package/reference/data-visualization.md +67 -67
  234. package/reference/debugger-philosophy.md +5 -5
  235. package/reference/design-system-guidance.md +21 -21
  236. package/reference/design-systems-catalog.md +20 -20
  237. package/reference/design-variants.md +11 -11
  238. package/reference/domains/civic-patterns.md +10 -10
  239. package/reference/domains/finance-patterns.md +9 -9
  240. package/reference/domains/gaming-patterns.md +9 -9
  241. package/reference/domains/healthcare-patterns.md +11 -11
  242. package/reference/ds-bootstrap-rubric.md +13 -13
  243. package/reference/email-design.md +22 -22
  244. package/reference/emotional-design.md +10 -10
  245. package/reference/error-recovery.md +11 -11
  246. package/reference/export-formats.md +7 -7
  247. package/reference/figma-sandbox.md +6 -6
  248. package/reference/first-principles.md +10 -10
  249. package/reference/form-patterns.md +26 -26
  250. package/reference/framer-motion-patterns.md +49 -49
  251. package/reference/gdd-runtime-audit.md +17 -17
  252. package/reference/gdd-threat-model.md +44 -44
  253. package/reference/gemini-tools.md +3 -3
  254. package/reference/gestalt.md +24 -24
  255. package/reference/heuristics.md +32 -32
  256. package/reference/i18n.md +44 -44
  257. package/reference/iconography.md +24 -24
  258. package/reference/image-optimization.md +14 -14
  259. package/reference/information-architecture.md +47 -47
  260. package/reference/intel-schema.md +1 -1
  261. package/reference/known-failure-modes.md +37 -37
  262. package/reference/meta-rules.md +5 -5
  263. package/reference/migrations/material-3-to-4.md +17 -17
  264. package/reference/migrations/mui-v6.md +16 -16
  265. package/reference/migrations/shadcn-v2.md +25 -25
  266. package/reference/migrations/tailwind-v4.md +21 -21
  267. package/reference/model-prices.md +3 -3
  268. package/reference/model-tiers.md +40 -40
  269. package/reference/motion-advanced.md +21 -21
  270. package/reference/motion-easings.md +29 -29
  271. package/reference/motion-interpolate.md +1 -1
  272. package/reference/motion-spring.md +13 -13
  273. package/reference/motion-transition-taxonomy.md +34 -34
  274. package/reference/motion.md +31 -31
  275. package/reference/multi-author-model.md +13 -13
  276. package/reference/native-platforms.md +28 -28
  277. package/reference/notification-routing.md +6 -6
  278. package/reference/onboarding-progressive-disclosure.md +32 -32
  279. package/reference/openrouter-tier-mapping.md +8 -8
  280. package/reference/palette-catalog.md +37 -37
  281. package/reference/parallelism-rules.md +20 -20
  282. package/reference/peer-cli-capabilities.md +14 -14
  283. package/reference/peer-protocols.md +21 -21
  284. package/reference/perf-budget.md +21 -21
  285. package/reference/performance.md +22 -22
  286. package/reference/platforms.md +51 -51
  287. package/reference/pr-review-integration.md +7 -7
  288. package/reference/prices/antigravity.md +3 -3
  289. package/reference/prices/augment.md +3 -3
  290. package/reference/prices/claude.md +2 -2
  291. package/reference/prices/cline.md +4 -4
  292. package/reference/prices/codebuddy.md +3 -3
  293. package/reference/prices/codex.md +2 -2
  294. package/reference/prices/copilot.md +3 -3
  295. package/reference/prices/cursor.md +3 -3
  296. package/reference/prices/gemini.md +2 -2
  297. package/reference/prices/kilo.md +3 -3
  298. package/reference/prices/opencode.md +4 -4
  299. package/reference/prices/qwen.md +2 -2
  300. package/reference/prices/trae.md +3 -3
  301. package/reference/prices/windsurf.md +3 -3
  302. package/reference/prices.openrouter.md +5 -5
  303. package/reference/print-design.md +36 -36
  304. package/reference/priority-matrix.md +2 -2
  305. package/reference/project-skills-guide.md +3 -3
  306. package/reference/proportion-systems.md +23 -23
  307. package/reference/pseudonymization-rules.md +30 -30
  308. package/reference/registry.json +7 -0
  309. package/reference/retrieval-contract.md +14 -14
  310. package/reference/review-format.md +7 -7
  311. package/reference/rollout-coordination.md +10 -10
  312. package/reference/rtl-cjk-cultural.md +39 -39
  313. package/reference/runtime-models.md +28 -28
  314. package/reference/shared-preamble.md +26 -26
  315. package/reference/skill-authoring-contract.md +16 -16
  316. package/reference/skill-placeholders.md +71 -0
  317. package/reference/start-interview.md +10 -10
  318. package/reference/style-vocabulary.md +25 -25
  319. package/reference/surfaces.md +4 -4
  320. package/reference/ticket-sync.md +9 -9
  321. package/reference/typography.md +64 -64
  322. package/reference/user-research.md +54 -54
  323. package/reference/variable-fonts-loading.md +15 -15
  324. package/reference/visual-hierarchy-layout.md +41 -41
  325. package/scripts/lib/build/factory.cjs +62 -0
  326. package/scripts/lib/build/harness-configs.cjs +64 -0
  327. package/scripts/lib/manifest/prose-denylist.json +1 -1
  328. package/sdk/cli/commands/build.ts +106 -0
  329. package/sdk/cli/index.js +84 -2
  330. package/sdk/cli/index.ts +7 -0
  331. package/skills/add-backlog/SKILL.md +3 -3
  332. package/skills/analyze-dependencies/SKILL.md +10 -10
  333. package/skills/apply-reflections/SKILL.md +13 -13
  334. package/skills/apply-reflections/apply-reflections-procedure.md +20 -20
  335. package/skills/audit/SKILL.md +7 -7
  336. package/skills/bandit-status/SKILL.md +7 -7
  337. package/skills/benchmark/SKILL.md +7 -7
  338. package/skills/bootstrap-ds/SKILL.md +10 -10
  339. package/skills/brief/SKILL.md +20 -20
  340. package/skills/budget/SKILL.md +4 -4
  341. package/skills/cache-manager/SKILL.md +6 -6
  342. package/skills/cache-manager/cache-policy.md +5 -5
  343. package/skills/check-update/SKILL.md +5 -5
  344. package/skills/compare/SKILL.md +15 -15
  345. package/skills/compare/compare-rubric.md +17 -17
  346. package/skills/complete-cycle/SKILL.md +5 -5
  347. package/skills/connections/SKILL.md +11 -11
  348. package/skills/connections/connections-onboarding.md +76 -76
  349. package/skills/continue/SKILL.md +2 -2
  350. package/skills/darkmode/SKILL.md +17 -17
  351. package/skills/darkmode/darkmode-audit-procedure.md +7 -7
  352. package/skills/debug/SKILL.md +3 -3
  353. package/skills/debug/debug-feedback-loops.md +12 -12
  354. package/skills/design/SKILL.md +12 -12
  355. package/skills/design/design-procedure.md +23 -23
  356. package/skills/discover/SKILL.md +7 -7
  357. package/skills/discover/discover-procedure.md +18 -18
  358. package/skills/discuss/SKILL.md +12 -12
  359. package/skills/do/SKILL.md +1 -1
  360. package/skills/explore/SKILL.md +21 -21
  361. package/skills/explore/explore-procedure.md +48 -48
  362. package/skills/export/SKILL.md +9 -9
  363. package/skills/extract-learnings/SKILL.md +5 -5
  364. package/skills/fast/SKILL.md +7 -7
  365. package/skills/figma-extract/SKILL.md +11 -11
  366. package/skills/figma-write/SKILL.md +6 -6
  367. package/skills/graphify/SKILL.md +4 -4
  368. package/skills/health/SKILL.md +16 -16
  369. package/skills/health/health-mcp-detection.md +3 -3
  370. package/skills/health/health-skill-length-report.md +6 -6
  371. package/skills/help/SKILL.md +1 -1
  372. package/skills/list-assumptions/SKILL.md +4 -4
  373. package/skills/map/SKILL.md +12 -12
  374. package/skills/migrate/SKILL.md +5 -5
  375. package/skills/new-cycle/SKILL.md +2 -2
  376. package/skills/new-cycle/milestone-completeness-rubric.md +16 -16
  377. package/skills/new-project/SKILL.md +1 -1
  378. package/skills/next/SKILL.md +5 -5
  379. package/skills/note/SKILL.md +1 -1
  380. package/skills/openrouter-status/SKILL.md +4 -4
  381. package/skills/optimize/SKILL.md +15 -15
  382. package/skills/pause/SKILL.md +5 -5
  383. package/skills/peer-cli-add/SKILL.md +11 -11
  384. package/skills/peer-cli-add/peer-cli-protocol.md +39 -39
  385. package/skills/peer-cli-customize/SKILL.md +14 -14
  386. package/skills/peers/SKILL.md +4 -4
  387. package/skills/plan/SKILL.md +13 -13
  388. package/skills/plan/plan-procedure.md +24 -24
  389. package/skills/plant-seed/SKILL.md +4 -4
  390. package/skills/pr-branch/SKILL.md +2 -2
  391. package/skills/progress/SKILL.md +15 -15
  392. package/skills/quality-gate/SKILL.md +22 -22
  393. package/skills/quality-gate/threat-modeling.md +19 -19
  394. package/skills/quick/SKILL.md +5 -5
  395. package/skills/reapply-patches/SKILL.md +7 -7
  396. package/skills/reflect/SKILL.md +3 -3
  397. package/skills/reflect/procedures/capability-gap-scan.md +11 -11
  398. package/skills/report-issue/SKILL.md +5 -5
  399. package/skills/report-issue/report-issue-procedure.md +27 -27
  400. package/skills/resume/SKILL.md +9 -9
  401. package/skills/review-backlog/SKILL.md +3 -3
  402. package/skills/review-decisions/SKILL.md +3 -3
  403. package/skills/roi/SKILL.md +5 -5
  404. package/skills/rollout-status/SKILL.md +4 -4
  405. package/skills/router/SKILL.md +11 -11
  406. package/skills/router/capability-gap-emitter.md +6 -6
  407. package/skills/router/router-pick-emitter.md +9 -9
  408. package/skills/router/router-rules.md +7 -7
  409. package/skills/scan/SKILL.md +16 -16
  410. package/skills/scan/scan-procedure.md +42 -42
  411. package/skills/settings/SKILL.md +2 -2
  412. package/skills/ship/SKILL.md +7 -7
  413. package/skills/sketch/SKILL.md +10 -10
  414. package/skills/sketch-wrap-up/SKILL.md +12 -12
  415. package/skills/skill-manifest/SKILL.md +5 -5
  416. package/skills/spike/SKILL.md +7 -7
  417. package/skills/spike-wrap-up/SKILL.md +13 -13
  418. package/skills/start/SKILL.md +8 -8
  419. package/skills/start/start-procedure.md +9 -9
  420. package/skills/stats/SKILL.md +5 -5
  421. package/skills/style/SKILL.md +12 -12
  422. package/skills/style/style-doc-procedure.md +12 -12
  423. package/skills/synthesize/SKILL.md +10 -10
  424. package/skills/timeline/SKILL.md +4 -4
  425. package/skills/todo/SKILL.md +3 -3
  426. package/skills/turn-closeout/SKILL.md +10 -10
  427. package/skills/unlock-decision/SKILL.md +3 -3
  428. package/skills/update/SKILL.md +9 -9
  429. package/skills/using-gdd/SKILL.md +17 -17
  430. package/skills/verify/SKILL.md +13 -13
  431. package/skills/verify/verify-procedure.md +34 -34
  432. package/skills/warm-cache/SKILL.md +8 -8
  433. package/skills/watch-authorities/SKILL.md +9 -9
  434. package/skills/zoom-out/SKILL.md +4 -4
@@ -9,23 +9,23 @@ last_updated: 2026-05-18
9
9
 
10
10
  # Color Theory
11
11
 
12
- The existing [palette catalog](./palette-catalog.md) gives industry-vertical lookup read a row, adopt the baseline tokens, ship. This file gives the underlying model so an agent can reason about color *before* applying it: which color space to author in, how to construct a harmony that holds together under motion and across viewing conditions, how surrounding context shifts perception, which hue pairs collapse under common color-blindness, and why default sRGB interpolation produces muddy mid-transitions in animation. Where the catalog says "shift the primary hue ±15°", this file replaces that hand-wave with explicit OKLCH ΔL/ΔC/Δh guidance.
12
+ The existing [palette catalog](./palette-catalog.md) gives industry-vertical lookup - read a row, adopt the baseline tokens, ship. This file gives the underlying model so an agent can reason about color *before* applying it: which color space to author in, how to construct a harmony that holds together under motion and across viewing conditions, how surrounding context shifts perception, which hue pairs collapse under common color-blindness, and why default sRGB interpolation produces muddy mid-transitions in animation. Where the catalog says "shift the primary hue ±15°", this file replaces that hand-wave with explicit OKLCH ΔL/ΔC/Δh guidance.
13
13
 
14
- This is the file an agent should consult any time it is *constructing* color picking a new palette, generating a harmony, animating a color, or auditing a contrast pair under the color-blindness lens.
14
+ This is the file an agent should consult any time it is *constructing* color - picking a new palette, generating a harmony, animating a color, or auditing a contrast pair under the color-blindness lens.
15
15
 
16
16
  ---
17
17
 
18
- ## Color Spaces sRGB / HSL / OKLCH / LCH
18
+ ## Color Spaces - sRGB / HSL / OKLCH / LCH
19
19
 
20
20
  Color is not one thing. Every "color" lives in some color space, and every color space makes a trade between three concerns: device gamut (what monitors can actually display), authoring ergonomics (what a human can predict from the numbers), and perceptual uniformity (whether equal numeric jumps produce equal perceived jumps). Choosing the wrong space costs hours of token tweaking and produces palettes that drift under interpolation.
21
21
 
22
22
  ### sRGB
23
23
 
24
- sRGB is the device-coordinate space three channels (`r`, `g`, `b`), each `0–255` or `0–1`, mapped onto the standard-monitor gamut defined by IEC 61966-2-1 (1996). It models *what the monitor emits*, not *what the eye perceives*. Equal numeric jumps are not equal perceptual jumps: stepping `rgb(50 50 50)` → `rgb(100 100 100)` looks like a much larger lightness change than `rgb(200 200 200)` → `rgb(250 250 250)`, even though both are a +50 step. Use sRGB only at the output layer (final compiled CSS), not as the authoring space for a palette.
24
+ sRGB is the device-coordinate space - three channels (`r`, `g`, `b`), each `0–255` or `0–1`, mapped onto the standard-monitor gamut defined by IEC 61966-2-1 (1996). It models *what the monitor emits*, not *what the eye perceives*. Equal numeric jumps are not equal perceptual jumps: stepping `rgb(50 50 50)` → `rgb(100 100 100)` looks like a much larger lightness change than `rgb(200 200 200)` → `rgb(250 250 250)`, even though both are a +50 step. Use sRGB only at the output layer (final compiled CSS), not as the authoring space for a palette.
25
25
 
26
26
  ### HSL
27
27
 
28
- HSL was the first authoring-friendly attempt: three channels (`h` 0–360°, `s` 0–100%, `l` 0–100%) that decompose color into hue, saturation, and lightness the dimensions a human reasons in. The catch: HSL's `l` is *not* perceptual lightness. `hsl(60 100% 50%)` (pure yellow) and `hsl(240 100% 50%)` (pure blue) both have `l: 50%`, but yellow looks vastly brighter than blue at identical `l`. This means a design instruction like "shift hue 30°, hold lightness constant" can produce wildly different perceived lightnesses across hue ranges. HSL is fine for quick mental math; it is wrong for token-system construction.
28
+ HSL was the first authoring-friendly attempt: three channels (`h` 0–360°, `s` 0–100%, `l` 0–100%) that decompose color into hue, saturation, and lightness - the dimensions a human reasons in. The catch: HSL's `l` is *not* perceptual lightness. `hsl(60 100% 50%)` (pure yellow) and `hsl(240 100% 50%)` (pure blue) both have `l: 50%`, but yellow looks vastly brighter than blue at identical `l`. This means a design instruction like "shift hue 30°, hold lightness constant" can produce wildly different perceived lightnesses across hue ranges. HSL is fine for quick mental math; it is wrong for token-system construction.
29
29
 
30
30
  ### OKLCH
31
31
 
@@ -35,13 +35,13 @@ OKLCH is the modern authoring default: three channels (`L` 0–1 perceptual ligh
35
35
  2. **Independent C and h axes.** Adjusting chroma does not drift lightness; rotating hue does not drift either. Token systems become predictable.
36
36
  3. **Wide-gamut aware.** OKLCH expresses Display-P3 and Rec.2020 colors that sRGB cannot represent, while remaining a single authoring space.
37
37
 
38
- Browser support: CSS Color Module 4 `oklch(L C H)` shipped in Safari 15.4, Chrome 111, Firefox 113 already production-safe for token authoring with sRGB fallback.
38
+ Browser support: CSS Color Module 4 `oklch(L C H)` shipped in Safari 15.4, Chrome 111, Firefox 113 - already production-safe for token authoring with sRGB fallback.
39
39
 
40
40
  ### LCH
41
41
 
42
- LCH (CIE Lab-based) is OKLCH's older sibling: same three-axis structure (`L`, `C`, `h`), built on the 1976 CIE L*a*b* color space. It is perceptually uniform but has well-documented hue-rotation kinks in the blue range straight-line hue interpolation through LCH visibly bends toward purple. OKLCH was specifically designed to fix this. Use LCH only when matching an existing print or video pipeline; otherwise prefer OKLCH.
42
+ LCH (CIE Lab-based) is OKLCH's older sibling: same three-axis structure (`L`, `C`, `h`), built on the 1976 CIE L*a*b* color space. It is perceptually uniform but has well-documented hue-rotation kinks in the blue range - straight-line hue interpolation through LCH visibly bends toward purple. OKLCH was specifically designed to fix this. Use LCH only when matching an existing print or video pipeline; otherwise prefer OKLCH.
43
43
 
44
- ### Concrete CSS the same color in four spaces
44
+ ### Concrete CSS - the same color in four spaces
45
45
 
46
46
  Using `#1A56DB` from the FinTech/Banking row of [./palette-catalog.md](./palette-catalog.md) as the authoritative primary:
47
47
 
@@ -65,7 +65,7 @@ Using `#1A56DB` from the FinTech/Banking row of [./palette-catalog.md](./palette
65
65
 
66
66
  ## Color Harmonies
67
67
 
68
- All six harmonies expressed in OKLCH adjust hue offset while holding `L` and `C` constant for perceptual stability. The hue offset is what defines the harmony; the lightness and chroma stay anchored so the relationship reads as a *family*, not a collision.
68
+ All six harmonies expressed in OKLCH - adjust hue offset while holding `L` and `C` constant for perceptual stability. The hue offset is what defines the harmony; the lightness and chroma stay anchored so the relationship reads as a *family*, not a collision.
69
69
 
70
70
  ### Complementary
71
71
 
@@ -83,7 +83,7 @@ Formula: `h + 180°`, hold `L` and `C` constant.
83
83
 
84
84
  ### Analogous
85
85
 
86
- Three hues at small offsets typically 30°. Reads as a single mood with internal modulation; ideal for backgrounds, illustrations, and gentle gradients.
86
+ Three hues at small offsets - typically 30°. Reads as a single mood with internal modulation; ideal for backgrounds, illustrations, and gentle gradients.
87
87
 
88
88
  Formula: `[h - 30°, h, h + 30°]`, hold `L` and `C` constant.
89
89
 
@@ -98,7 +98,7 @@ Formula: `[h - 30°, h, h + 30°]`, hold `L` and `C` constant.
98
98
 
99
99
  ### Triadic
100
100
 
101
- Three hues evenly spaced 120° apart. High visual energy, balanced used for playful brand systems and category color coding.
101
+ Three hues evenly spaced 120° apart. High visual energy, balanced - used for playful brand systems and category color coding.
102
102
 
103
103
  Formula: `[h, h + 120°, h + 240°]`, hold `L` and `C` constant.
104
104
 
@@ -128,7 +128,7 @@ Formula: `[h, h + 150°, h + 210°]`, hold `L` and `C` constant.
128
128
 
129
129
  ### Tetradic
130
130
 
131
- Four hues forming a rectangle on the hue wheel two complementary pairs offset from each other. Very rich; demands one dominant hue and three accents at lower chroma to avoid noise.
131
+ Four hues forming a rectangle on the hue wheel - two complementary pairs offset from each other. Very rich; demands one dominant hue and three accents at lower chroma to avoid noise.
132
132
 
133
133
  Formula: `[h, h + 60°, h + 180°, h + 240°]`, hold `L` and `C` constant.
134
134
 
@@ -166,14 +166,14 @@ Formula: hold `h` constant; vary `L` across `0.95 → 0.15` for a 9-step scale;
166
166
  - **Two clear actions (primary vs. destructive):** complementary.
167
167
  - **Three-category coding (status: ok / warn / error):** triadic.
168
168
  - **Dashboard with one hero accent + supporting hues:** split-complement.
169
- - **Editorial / illustrative / rich brand:** tetradic but reduce chroma on three of the four hues.
169
+ - **Editorial / illustrative / rich brand:** tetradic - but reduce chroma on three of the four hues.
170
170
  - **Token system primarily expressing depth, not category:** monochromatic, scaled across `L`.
171
171
 
172
172
  ---
173
173
 
174
174
  ## Simultaneous Contrast and Warm-Cool Effects
175
175
 
176
- Color is never seen in isolation. The eye continuously normalizes color relative to its surround a phenomenon Josef Albers documented exhaustively in *Interaction of Color* (1963) and which the perceptual literature calls *simultaneous contrast*. The same OKLCH value placed against a darker surround reads *lighter and more saturated* than placed against a lighter surround; against a complementary surround, hue itself shifts. Token-level lesson: a contrast ratio measured against pure white at design time is not the contrast a user perceives at runtime in a card-on-card-on-background layout.
176
+ Color is never seen in isolation. The eye continuously normalizes color relative to its surround - a phenomenon Josef Albers documented exhaustively in *Interaction of Color* (1963) and which the perceptual literature calls *simultaneous contrast*. The same OKLCH value placed against a darker surround reads *lighter and more saturated* than placed against a lighter surround; against a complementary surround, hue itself shifts. Token-level lesson: a contrast ratio measured against pure white at design time is not the contrast a user perceives at runtime in a card-on-card-on-background layout.
177
177
 
178
178
  ```css
179
179
  /* Same foreground token, two surrounds. The same token reads as a different color. */
@@ -187,15 +187,15 @@ Color is never seen in isolation. The eye continuously normalizes color relative
187
187
  }
188
188
  ```
189
189
 
190
- Warm-cool effects are simultaneous contrast's spatial cousin. Warm hues (red through yellow, OKLCH `h` roughly 0–90°) read as *advancing* they appear closer to the viewer; cool hues (green through blue, OKLCH `h` roughly 140–270°) read as *receding*. Place a warm accent against a cool field and the accent leaps forward; reverse the relationship and the same hue retreats. Use this deliberately: warm accents pull the eye to primary actions and selected states; cool accents recede appropriately for ambient information, hover states, and large background fields where you do not want the surface competing for attention.
190
+ Warm-cool effects are simultaneous contrast's spatial cousin. Warm hues (red through yellow, OKLCH `h` roughly 0–90°) read as *advancing* - they appear closer to the viewer; cool hues (green through blue, OKLCH `h` roughly 140–270°) read as *receding*. Place a warm accent against a cool field and the accent leaps forward; reverse the relationship and the same hue retreats. Use this deliberately: warm accents pull the eye to primary actions and selected states; cool accents recede appropriately for ambient information, hover states, and large background fields where you do not want the surface competing for attention.
191
191
 
192
192
  ---
193
193
 
194
- ## Color-Blindness Deutan / Protan / Tritan
194
+ ## Color-Blindness - Deutan / Protan / Tritan
195
195
 
196
- Color-vision deficiency is common roughly 8% of males and 0.5% of females of Northern European descent have some form. The three clinical types collapse different hue pairs:
196
+ Color-vision deficiency is common - roughly 8% of males and 0.5% of females of Northern European descent have some form. The three clinical types collapse different hue pairs:
197
197
 
198
- - **Deutan** (deuteranomaly / deuteranopia, ~6% of males the most common): reduced green sensitivity. Confuses red-green pairs at similar lightness, and green-brown at similar saturation.
198
+ - **Deutan** (deuteranomaly / deuteranopia, ~6% of males - the most common): reduced green sensitivity. Confuses red-green pairs at similar lightness, and green-brown at similar saturation.
199
199
  - **Protan** (protanomaly / protanopia, ~1% of males): reduced red sensitivity. Confuses red-green pairs; reds appear darker than to typical vision.
200
200
  - **Tritan** (tritanomaly / tritanopia, very rare, <0.01%): reduced blue sensitivity. Confuses blue-yellow pairs and blue-green pairs.
201
201
 
@@ -204,9 +204,9 @@ Token-level guidance:
204
204
  1. **Never encode status with red/green alone at similar `L`.** A red-green status pair where both tokens sit at `oklch(0.6 …)` is invisible to a deutan viewer. Either separate `L` by at least 0.15, or distinguish with an icon/shape.
205
205
  2. **Prefer hue pairs separated by ≥ 120° in OKLCH `h` for category coding.** Red (`h ≈ 30°`) vs. blue (`h ≈ 260°`) is ~230° apart and reads reliably across all three types. Red (`h ≈ 30°`) vs. green (`h ≈ 140°`) is only ~110° apart and collapses under deutan.
206
206
  3. **Test the destructive / success pair under deutan simulation.** If a deutan filter renders them indistinguishable, raise their lightness contrast.
207
- 4. **Add a non-color carrier.** Icons, underlines, bold weight, position color must never be the *only* differentiator (WCAG 1.4.1, Use of Color).
207
+ 4. **Add a non-color carrier.** Icons, underlines, bold weight, position - color must never be the *only* differentiator (WCAG 1.4.1, Use of Color).
208
208
 
209
- A good starting palette is the **Wong 8-color CB-safe palette** (Bang Wong, *Nature Methods* 2011) designed for scientific visualization to remain distinguishable under all three CVD types. Concrete OKLCH approximations of three of its colors for direct use in a token system:
209
+ A good starting palette is the **Wong 8-color CB-safe palette** (Bang Wong, *Nature Methods* 2011) - designed for scientific visualization to remain distinguishable under all three CVD types. Concrete OKLCH approximations of three of its colors for direct use in a token system:
210
210
 
211
211
  ```css
212
212
  /* Three of the 8 Wong CB-safe palette colors, approximated in OKLCH. */
@@ -217,13 +217,13 @@ A good starting palette is the **Wong 8-color CB-safe palette** (Bang Wong, *Nat
217
217
  }
218
218
  ```
219
219
 
220
- See [./accessibility.md](./accessibility.md) for the WCAG intersection color must not be the only differentiator (WCAG 1.4.1), and the chosen pair must still satisfy 4.5:1 body-text and 3:1 UI-element contrast thresholds at any combination used.
220
+ See [./accessibility.md](./accessibility.md) for the WCAG intersection - color must not be the only differentiator (WCAG 1.4.1), and the chosen pair must still satisfy 4.5:1 body-text and 3:1 UI-element contrast thresholds at any combination used.
221
221
 
222
222
  ---
223
223
 
224
224
  ## Color Interpolation in Animation
225
225
 
226
- Animating from one color to another is interpolation across a color space, and the choice of space changes what the user sees mid-transition. When CSS animates `background-color` from red to green in default sRGB, the midpoint becomes muddy gray sRGB's interpolation path crosses the desaturated valley between hues, dragging chroma toward 0 at the midpoint. The same animation in OKLCH walks a perceptually-clean arc along the hue wheel, preserving chroma and lightness across the transition. The user never sees gray.
226
+ Animating from one color to another is interpolation across a color space, and the choice of space changes what the user sees mid-transition. When CSS animates `background-color` from red to green in default sRGB, the midpoint becomes muddy gray - sRGB's interpolation path crosses the desaturated valley between hues, dragging chroma toward 0 at the midpoint. The same animation in OKLCH walks a perceptually-clean arc along the hue wheel, preserving chroma and lightness across the transition. The user never sees gray.
227
227
 
228
228
  ```css
229
229
  /* BAD — default interpolation space is sRGB. Red → green midpoint is muddy gray. */
@@ -258,13 +258,13 @@ Animating from one color to another is interpolation across a color space, and t
258
258
  }
259
259
  ```
260
260
 
261
- Lab-based interpolation (`in lab` or `in oklab`) is also chromatically clean and is the right choice when matching a print pipeline; OKLCH is the right choice for everything else because hue stays on the perceptual wheel and lightness stays steady. Avoid `in hsl` for cross-hue interpolation it inherits HSL's non-perceptual lightness and produces lightness drift across hue families.
261
+ Lab-based interpolation (`in lab` or `in oklab`) is also chromatically clean and is the right choice when matching a print pipeline; OKLCH is the right choice for everything else because hue stays on the perceptual wheel and lightness stays steady. Avoid `in hsl` for cross-hue interpolation - it inherits HSL's non-perceptual lightness and produces lightness drift across hue families.
262
262
 
263
263
  Practical defaults:
264
264
 
265
265
  - **Same-hue intensity changes** (e.g., disabled → enabled, hover): any space is acceptable; OKLCH is still preferred for predictability.
266
266
  - **Cross-hue transitions** (status changes, theme swaps, brand-moment flourishes): mandate `in oklch` or `color-mix(in oklch, …)`. Default sRGB is the muddy-mid bug.
267
- - **Dark-mode swap animations**: mandate `in oklch` for the same reason sRGB midpoints across the L extremes are visibly grayed.
267
+ - **Dark-mode swap animations**: mandate `in oklch` for the same reason - sRGB midpoints across the L extremes are visibly grayed.
268
268
 
269
269
  See [./motion-interpolate.md](./motion-interpolate.md) for the cross-system motion-interpolation discipline that owns interpolation rules across spaces (timing, easing, value mapping). That file owns the interpolation rules; this section owns the color-specific reasoning.
270
270
 
@@ -272,8 +272,8 @@ See [./motion-interpolate.md](./motion-interpolate.md) for the cross-system moti
272
272
 
273
273
  ## Cross-References
274
274
 
275
- - [./palette-catalog.md](./palette-catalog.md) industry-vertical lookup table; this file replaces its Step 4 "shift hue ±15°" instruction with explicit OKLCH ΔL/ΔC/Δh guidance and supplies the underlying color-space model.
276
- - [./motion-interpolate.md](./motion-interpolate.md) cross-system motion-interpolation discipline; this file's §Color Interpolation in Animation links out to it for the broader interpolation rules.
277
- - [./accessibility.md](./accessibility.md) WCAG 2.1 thresholds; this file's §Color-Blindness section intersects with WCAG 1.4.1 (Use of Color) and 1.4.3 (Contrast Minimum).
275
+ - [./palette-catalog.md](./palette-catalog.md) - industry-vertical lookup table; this file replaces its Step 4 "shift hue ±15°" instruction with explicit OKLCH ΔL/ΔC/Δh guidance and supplies the underlying color-space model.
276
+ - [./motion-interpolate.md](./motion-interpolate.md) - cross-system motion-interpolation discipline; this file's §Color Interpolation in Animation links out to it for the broader interpolation rules.
277
+ - [./accessibility.md](./accessibility.md) - WCAG 2.1 thresholds; this file's §Color-Blindness section intersects with WCAG 1.4.1 (Use of Color) and 1.4.3 (Contrast Minimum).
278
278
 
279
- Reciprocal inbound cross-links land in Phase 28-06 (additive-only, D-06) the other files will gain pointers back to this one without altering their existing content.
279
+ Reciprocal inbound cross-links land in Phase 28-06 (additive-only, D-06) - the other files will gain pointers back to this one without altering their existing content.
@@ -1,6 +1,6 @@
1
1
  # Component Authoring Principles
2
2
 
3
- Source: Emil Kowalski's work on Sonner, Vaul, and cmdk synthesised from his published writing and talks. See also: `reference/framer-motion-patterns.md`, `reference/motion-advanced.md`.
3
+ Source: Emil Kowalski's work on Sonner, Vaul, and cmdk - synthesised from his published writing and talks. See also: `reference/framer-motion-patterns.md`, `reference/motion-advanced.md`.
4
4
 
5
5
  Use this file when authoring, reviewing, or auditing UI components. The 6 principles apply as a lens during code review and design verification. Each principle has a grep-able audit signal.
6
6
 
@@ -25,7 +25,7 @@ grep -E "^\s+\w+: " src/components/Button.tsx | grep -v "?" | wc -l
25
25
  - 6–9 props total: acceptable if logically grouped
26
26
  - ≥10 props: flag for decomposition
27
27
 
28
- **Pattern variant over prop explosion:**
28
+ **Pattern - variant over prop explosion:**
29
29
  ```tsx
30
30
  // BAD — prop explosion
31
31
  <Button color="blue" size="md" rounded={true} shadow={true} uppercase={false} />
@@ -48,7 +48,7 @@ The right abstraction lets consumers build what they need by combining small pie
48
48
  grep -rE "(backgroundColor|textColor|borderRadius|fontSize)=" src/components/ --include="*.tsx"
49
49
  ```
50
50
 
51
- **Pattern slot composition:**
51
+ **Pattern - slot composition:**
52
52
  ```tsx
53
53
  // BAD — too much configuration
54
54
  <Card title="Hello" subtitle="World" icon="user" rightContent={<Badge />} />
@@ -78,7 +78,7 @@ A component with sensible defaults doesn't require the consumer to know its inte
78
78
  grep -E "^\s+\w+: " src/components/Toast.tsx | grep -v "?" | wc -l
79
79
  ```
80
80
 
81
- **The Sonner model:** `<Toaster />` with zero props renders a toast system that follows the OS color scheme, positions correctly on all viewports, stacks properly, and auto-dismisses at a sensible duration. All options exist but the zero-prop case works.
81
+ **The Sonner model:** `<Toaster />` with zero props renders a toast system that follows the OS color scheme, positions correctly on all viewports, stacks properly, and auto-dismisses at a sensible duration. All options exist - but the zero-prop case works.
82
82
 
83
83
  **Anti-pattern:** Required props for things with a logical default (e.g., `position` on a modal that should always default to `center`).
84
84
 
@@ -3,16 +3,16 @@
3
3
  Per-component design specifications harvested from 18 major design systems.
4
4
  Each spec is ≤350 lines, greppable, diff-friendly, and agent-consumable.
5
5
 
6
- **Spec shape**: `TEMPLATE.md` Purpose · Anatomy · Variants · States · Sizing ·
6
+ **Spec shape**: `TEMPLATE.md` - Purpose · Anatomy · Variants · States · Sizing ·
7
7
  Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations · Grep signatures
8
8
 
9
9
  **Harvest source list**: `connections/design-corpora.md` (18 systems)
10
10
  **Tooling**: `agents/component-benchmark-harvester.md` → `agents/component-benchmark-synthesizer.md`
11
- **CLI**: `/gdd:benchmark <component>` see `skills/benchmark/SKILL.md`
11
+ **CLI**: `/gdd:benchmark <component>` - see `skills/benchmark/SKILL.md`
12
12
 
13
13
  ---
14
14
 
15
- ## Wave 1 Inputs (foundational)
15
+ ## Wave 1 - Inputs (foundational)
16
16
 
17
17
  | Component | Spec | Purpose |
18
18
  |-----------|------|---------|
@@ -27,7 +27,7 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
27
27
 
28
28
  ---
29
29
 
30
- ## Wave 2 Containers
30
+ ## Wave 2 - Containers
31
31
 
32
32
  | Component | Spec | Purpose |
33
33
  |-----------|------|---------|
@@ -41,7 +41,7 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
41
41
 
42
42
  ---
43
43
 
44
- ## Wave 3 Feedback
44
+ ## Wave 3 - Feedback
45
45
 
46
46
  | Component | Spec | Purpose |
47
47
  |-----------|------|---------|
@@ -54,7 +54,7 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
54
54
 
55
55
  ---
56
56
 
57
- ## Wave 4 Navigation & Data *(v1.17.0 · plan 17-02)*
57
+ ## Wave 4 - Navigation & Data *(v1.17.0 · plan 17-02)*
58
58
 
59
59
  | Component | Spec | Purpose |
60
60
  |-----------|------|---------|
@@ -70,7 +70,7 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
70
70
 
71
71
  ---
72
72
 
73
- ## Wave 5 Data & Advanced
73
+ ## Wave 5 - Data & Advanced
74
74
 
75
75
  | Component | Spec | Purpose |
76
76
  |-----------|------|---------|
@@ -86,9 +86,9 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
86
86
 
87
87
  | Wave | Specs | Status |
88
88
  |------|-------|--------|
89
- | Wave 1 Inputs | 8 | v1.16.0 |
90
- | Wave 2 Containers | 7 | v1.16.0 |
91
- | Wave 3 Feedback | 6 | v1.17.0 |
92
- | Wave 4 Navigation & Data | 9 | v1.17.0 |
93
- | Wave 5 Data & Advanced | 5 | v1.17.0 |
94
- | **Total** | **35** | |
89
+ | Wave 1 - Inputs | 8 | v1.16.0 |
90
+ | Wave 2 - Containers | 7 | v1.16.0 |
91
+ | Wave 3 - Feedback | 6 | v1.17.0 |
92
+ | Wave 4 - Navigation & Data | 9 | v1.17.0 |
93
+ | Wave 5 - Data & Advanced | 5 | v1.17.0 |
94
+ | **Total** | **35** | - |
@@ -1,4 +1,4 @@
1
- # [Component Name] Benchmark Spec
1
+ # [Component Name] - Benchmark Spec
2
2
 
3
3
  > **Template version**: 1.0 (Phase 16)
4
4
  > Replace every placeholder in `[brackets]`. Delete this block before committing.
@@ -55,10 +55,10 @@ distinguishes it visually/behaviorally.]
55
55
 
56
56
  | State | Trigger | Visual | ARIA |
57
57
  |-------|---------|--------|------|
58
- | default | | [description] | |
59
- | hover | pointer over | [description] | |
60
- | focus | keyboard focus | focus-visible ring | |
61
- | active / pressed | mousedown / Space/Enter | [description] | |
58
+ | default | - | [description] | - |
59
+ | hover | pointer over | [description] | - |
60
+ | focus | keyboard focus | focus-visible ring | - |
61
+ | active / pressed | mousedown / Space/Enter | [description] | - |
62
62
  | disabled | `disabled` attr | [description] | `aria-disabled="true"` |
63
63
  | loading | [if applicable] | [description] | `aria-busy="true"` |
64
64
  | error | [if applicable] | [description] | `aria-invalid="true"` |
@@ -84,7 +84,7 @@ for typographic and radius rules.]
84
84
 
85
85
  [Any typographic constraints: weight, size relative to body, line-height cap, truncation rules.]
86
86
 
87
- Cross-link: `reference/typography.md` [relevant section]
87
+ Cross-link: `reference/typography.md` - [relevant section]
88
88
 
89
89
  ---
90
90
 
@@ -95,7 +95,7 @@ Cross-link: `reference/typography.md` — [relevant section]
95
95
 
96
96
  ### Keyboard Contract
97
97
 
98
- *Quoted verbatim from WAI-ARIA APG [pattern URL] W3C [access date]*
98
+ *Quoted verbatim from WAI-ARIA APG - [pattern URL] - W3C - [access date]*
99
99
 
100
100
  | Key | Action |
101
101
  |-----|--------|
@@ -103,11 +103,11 @@ Cross-link: `reference/typography.md` — [relevant section]
103
103
 
104
104
  ### Accessibility Rules
105
105
 
106
- - [Rule 1 e.g., must have visible label or `aria-label`]
107
- - [Rule 2 e.g., focus-visible ring must not be suppressed]
108
- - [Rule 3 e.g., disabled state uses `aria-disabled`, not `disabled` attr, if interactive]
106
+ - [Rule 1 - e.g., must have visible label or `aria-label`]
107
+ - [Rule 2 - e.g., focus-visible ring must not be suppressed]
108
+ - [Rule 3 - e.g., disabled state uses `aria-disabled`, not `disabled` attr, if interactive]
109
109
 
110
- Cross-link: `reference/accessibility.md` [relevant section]
110
+ Cross-link: `reference/accessibility.md` - [relevant section]
111
111
 
112
112
  ---
113
113
 
@@ -121,7 +121,7 @@ Cross-link: `reference/accessibility.md` — [relevant section]
121
121
 
122
122
  **BAN**: [any motion anti-patterns specific to this component]
123
123
 
124
- Cross-link: `reference/motion.md` [relevant section]
124
+ Cross-link: `reference/motion.md` - [relevant section]
125
125
 
126
126
  ---
127
127
 
@@ -143,7 +143,7 @@ Cross-link: `reference/motion.md` — [relevant section]
143
143
 
144
144
  | Anti-pattern | Entry |
145
145
  |--------------|-------|
146
- | [BAN-XX] | [brief name] `reference/anti-patterns.md#ban-xx` |
146
+ | [BAN-XX] | [brief name] - `reference/anti-patterns.md#ban-xx` |
147
147
 
148
148
  ---
149
149
 
@@ -1,4 +1,4 @@
1
- # Accordion Benchmark Spec
1
+ # Accordion - Benchmark Spec
2
2
 
3
3
  **Harvested from**: WAI-ARIA APG, Radix UI, Carbon, Chakra UI, Material 3, Mantine, shadcn/ui, Atlassian
4
4
  **Wave**: 2 · **Category**: Containers
@@ -7,7 +7,7 @@
7
7
 
8
8
  ## Purpose
9
9
 
10
- An accordion is a vertically stacked set of headers that each reveal or conceal an associated section of content when activated. It reduces visual clutter by hiding content that is not immediately relevant. The header MUST be a button (or have `role="button"`) users must be able to activate sections by keyboard. *(WAI-ARIA APG, Radix, Carbon all agree)*
10
+ An accordion is a vertically stacked set of headers that each reveal or conceal an associated section of content when activated. It reduces visual clutter by hiding content that is not immediately relevant. The header MUST be a button (or have `role="button"`) - users must be able to activate sections by keyboard. *(WAI-ARIA APG, Radix, Carbon all agree)*
11
11
 
12
12
  ---
13
13
 
@@ -47,7 +47,7 @@ An accordion is a vertically stacked set of headers that each reveal or conceal
47
47
  | With icon | Leading icon per header | Carbon, Atlassian |
48
48
 
49
49
  **Norm** (≥5/18): chevron icon rotates on open (180°); panel animates height.
50
- **Diverge**: single-open vs. multi-open Radix defaults to multi-open (more flexible); Material 3 defaults to single-open (simpler UX). Multi-open is safer for long FAQ pages where users may want to compare sections.
50
+ **Diverge**: single-open vs. multi-open - Radix defaults to multi-open (more flexible); Material 3 defaults to single-open (simpler UX). Multi-open is safer for long FAQ pages where users may want to compare sections.
51
51
 
52
52
  ---
53
53
 
@@ -57,8 +57,8 @@ An accordion is a vertically stacked set of headers that each reveal or conceal
57
57
  |-------|---------|--------|------|
58
58
  | collapsed | default | Panel hidden | `aria-expanded="false"` on button |
59
59
  | expanded | button activated | Panel visible | `aria-expanded="true"` on button |
60
- | hover | pointer over header | Header background tint | |
61
- | focus | keyboard | 2px focus ring on button | |
60
+ | hover | pointer over header | Header background tint | - |
61
+ | focus | keyboard | 2px focus ring on button | - |
62
62
  | disabled | programmatic | 38% opacity; non-interactive | `aria-disabled="true"` on button |
63
63
 
64
64
  ---
@@ -77,7 +77,7 @@ An accordion is a vertically stacked set of headers that each reveal or conceal
77
77
 
78
78
  ## Typography
79
79
 
80
- - Header: 14–16px/500 slightly heavier than panel body
80
+ - Header: 14–16px/500 - slightly heavier than panel body
81
81
  - Panel body: 14px/400
82
82
  - Disabled header: same size, 38% opacity
83
83
 
@@ -91,7 +91,7 @@ An accordion is a vertically stacked set of headers that each reveal or conceal
91
91
 
92
92
  ### Keyboard Contract
93
93
 
94
- *Quoted verbatim from WAI-ARIA APG https://www.w3.org/WAI/ARIA/apg/patterns/accordion/ W3C 2024*
94
+ *Quoted verbatim from WAI-ARIA APG - https://www.w3.org/WAI/ARIA/apg/patterns/accordion/ - W3C - 2024*
95
95
 
96
96
  | Key | Action |
97
97
  |-----|--------|
@@ -107,12 +107,12 @@ Arrow/Home/End navigation is optional; Tab navigation between headers is always
107
107
 
108
108
  ### Accessibility Rules
109
109
 
110
- - Header MUST be wrapped in an `<h2>`–`<h6>` tag to maintain document outline the heading level should match the surrounding page hierarchy
111
- - The trigger MUST be a `<button>` (or `role="button"`) `<div>` headers are inaccessible by keyboard
110
+ - Header MUST be wrapped in an `<h2>`–`<h6>` tag to maintain document outline - the heading level should match the surrounding page hierarchy
111
+ - The trigger MUST be a `<button>` (or `role="button"`) - `<div>` headers are inaccessible by keyboard
112
112
  - `aria-expanded` MUST be on the trigger button, not the panel
113
- - Panel SHOULD have `role="region"` + `aria-labelledby` referencing the trigger button id this creates a named region for landmark navigation
113
+ - Panel SHOULD have `role="region"` + `aria-labelledby` referencing the trigger button id - this creates a named region for landmark navigation
114
114
  - `role="region"` should be omitted if there are more than 6 accordions (too many regions = noisy landmark nav)
115
- - Avoid `display:none` for the panel in open state use `hidden` or height animation
115
+ - Avoid `display:none` for the panel in open state - use `hidden` or height animation
116
116
 
117
117
  ---
118
118
 
@@ -131,7 +131,7 @@ Arrow/Home/End navigation is optional; Tab navigation between headers is always
131
131
  .panel > div { overflow: hidden; }
132
132
  ```
133
133
 
134
- Cross-link: `reference/motion.md` `prefers-reduced-motion`: skip height animation, instant toggle
134
+ Cross-link: `reference/motion.md` - `prefers-reduced-motion`: skip height animation, instant toggle
135
135
 
136
136
  ---
137
137
 
@@ -140,13 +140,13 @@ Cross-link: `reference/motion.md` — `prefers-reduced-motion`: skip height anim
140
140
  ### Do
141
141
  - Wrap header triggers in proper heading tags (`<h2>`–`<h6>`) *(WAI-ARIA APG, Carbon)*
142
142
  - Use `aria-expanded` on the trigger button, not on the panel *(WAI-ARIA APG)*
143
- - Animate height with `grid-template-rows` trick no JS height measurement needed *(CSS-only pattern)*
143
+ - Animate height with `grid-template-rows` trick - no JS height measurement needed *(CSS-only pattern)*
144
144
  - Support Tab navigation between accordion headers at minimum *(WAI-ARIA APG)*
145
145
 
146
146
  ### Don't
147
147
  - Don't use `<div>` as the accordion header without `role="button"` *(WAI-ARIA APG)*
148
- - Don't use `display:none` to hide the panel in collapsed state if you want animation use CSS grid trick *(CSS pattern)*
149
- - Don't use `role="region"` for more than 6 accordions excessive landmarks harm screen reader navigation *(WAI-ARIA APG note)*
148
+ - Don't use `display:none` to hide the panel in collapsed state if you want animation - use CSS grid trick *(CSS pattern)*
149
+ - Don't use `role="region"` for more than 6 accordions - excessive landmarks harm screen reader navigation *(WAI-ARIA APG note)*
150
150
  - Don't auto-close other panels in a "single-open" accordion without announcing the change *(Atlassian)*
151
151
 
152
152
  ---
@@ -1,4 +1,4 @@
1
- # Alert / Banner Benchmark Spec
1
+ # Alert / Banner - Benchmark Spec
2
2
 
3
3
  **Harvested from**: Material 3 (Banner), Carbon (InlineNotification), Polaris (Banner), Atlassian (SectionMessage)
4
4
  **Wave**: 3 · **Category**: Feedback
@@ -7,7 +7,7 @@
7
7
 
8
8
  ## Purpose
9
9
 
10
- An alert (inline notification or banner) is a persistent in-page message that communicates status, warnings, or errors relevant to the current context. Unlike Toast, it does not auto-dismiss it remains visible until the user dismisses it or the underlying condition resolves. Use alert for messages that require acknowledgement or that must remain visible for reference. *(Material 3, Carbon, Polaris, Atlassian agree: alert = persistent inline feedback)*
10
+ An alert (inline notification or banner) is a persistent in-page message that communicates status, warnings, or errors relevant to the current context. Unlike Toast, it does not auto-dismiss - it remains visible until the user dismisses it or the underlying condition resolves. Use alert for messages that require acknowledgement or that must remain visible for reference. *(Material 3, Carbon, Polaris, Atlassian agree: alert = persistent inline feedback)*
11
11
 
12
12
  ---
13
13
 
@@ -43,7 +43,7 @@ An alert (inline notification or banner) is a persistent in-page message that co
43
43
  | Warning | Amber; potentially harmful condition; `role="alert"` assertive | All |
44
44
  | Error | Red; failure or blocking condition; `role="alert"` assertive | All |
45
45
 
46
- **Norm** (≥4/18 systems agree): four-variant semantic model (info/success/warning/error) with matching color, icon, and role. Icon is REQUIRED color alone violates WCAG 1.4.1.
46
+ **Norm** (≥4/18 systems agree): four-variant semantic model (info/success/warning/error) with matching color, icon, and role. Icon is REQUIRED - color alone violates WCAG 1.4.1.
47
47
  **Diverge**: Atlassian names this "SectionMessage" and omits dismiss; Carbon always includes an X; Polaris supports titled and untitled variants; Material 3 "Banner" supports one CTA only.
48
48
 
49
49
  ---
@@ -53,8 +53,8 @@ An alert (inline notification or banner) is a persistent in-page message that co
53
53
  | State | Trigger | Visual | ARIA |
54
54
  |-------|---------|--------|------|
55
55
  | visible | render | Full opacity, inline position | `role="alert"` or `role="status"` |
56
- | hover | pointer over action | Action underline / background change | |
57
- | focus | keyboard on action/dismiss | focus-visible ring on button | |
56
+ | hover | pointer over action | Action underline / background change | - |
57
+ | focus | keyboard on action/dismiss | focus-visible ring on button | - |
58
58
  | dismissed | click dismiss button | Collapsed / removed | Removed from DOM |
59
59
 
60
60
  ---
@@ -78,11 +78,11 @@ An alert (inline notification or banner) is a persistent in-page message that co
78
78
 
79
79
  ## Typography
80
80
 
81
- - Title: label-md (14px/600) gives quick scannable context for complex errors
82
- - Message: body-sm (14px/400) readable at inline scale
83
- - Action: label-sm (13px/500) matches action button label weight
81
+ - Title: label-md (14px/600) - gives quick scannable context for complex errors
82
+ - Message: body-sm (14px/400) - readable at inline scale
83
+ - Action: label-sm (13px/500) - matches action button label weight
84
84
 
85
- Cross-link: `reference/typography.md` body-sm, label-md definitions
85
+ Cross-link: `reference/typography.md` - body-sm, label-md definitions
86
86
 
87
87
  ---
88
88
 
@@ -93,7 +93,7 @@ Cross-link: `reference/typography.md` — body-sm, label-md definitions
93
93
 
94
94
  ### Keyboard Contract
95
95
 
96
- *Quoted verbatim from WAI-ARIA APG https://www.w3.org/WAI/ARIA/apg/patterns/alert/ W3C 2024*
96
+ *Quoted verbatim from WAI-ARIA APG - https://www.w3.org/WAI/ARIA/apg/patterns/alert/ - W3C - 2024*
97
97
 
98
98
  | Key | Action |
99
99
  |-----|--------|
@@ -105,14 +105,14 @@ The alert container itself is not focusable. Child buttons follow standard butto
105
105
 
106
106
  ### Accessibility Rules
107
107
 
108
- - Icon MUST be `aria-hidden="true"` the icon is decorative reinforcement; the `role` and text carry the semantic meaning *(WCAG 1.4.1)*
109
- - Color MUST NOT be the sole differentiator between variants icon shape and text label must also differ *(WCAG 1.4.1)*
110
- - `role="alert"` causes immediate assertion by screen readers only use for error and warning severity
111
- - `role="status"` uses a polite live region appropriate for info and success
108
+ - Icon MUST be `aria-hidden="true"` - the icon is decorative reinforcement; the `role` and text carry the semantic meaning *(WCAG 1.4.1)*
109
+ - Color MUST NOT be the sole differentiator between variants - icon shape and text label must also differ *(WCAG 1.4.1)*
110
+ - `role="alert"` causes immediate assertion by screen readers - only use for error and warning severity
111
+ - `role="status"` uses a polite live region - appropriate for info and success
112
112
  - Dismiss button MUST have `aria-label` (e.g. `aria-label="Dismiss warning"`) *(WAI-ARIA APG)*
113
- - Do NOT auto-dismiss alerts that is Toast's job; alert stays until explicitly dismissed *(Carbon, Polaris)*
113
+ - Do NOT auto-dismiss alerts - that is Toast's job; alert stays until explicitly dismissed *(Carbon, Polaris)*
114
114
 
115
- Cross-link: `reference/accessibility.md` live-regions, color-contrast sections
115
+ Cross-link: `reference/accessibility.md` - live-regions, color-contrast sections
116
116
 
117
117
  ---
118
118
 
@@ -122,27 +122,27 @@ Cross-link: `reference/accessibility.md` — live-regions, color-contrast sectio
122
122
  |------------|----------|--------|-------|
123
123
  | Enter (height expand + fade) | 200ms | ease-out | Pushes content down; avoids position:fixed |
124
124
  | Exit (height collapse + fade) | 150ms | ease-in | Content reflows up as alert closes |
125
- | Icon entrance | 0ms | | No animation on icon; immediate |
125
+ | Icon entrance | 0ms | - | No animation on icon; immediate |
126
126
 
127
- **BAN**: Slide-in from edge (reserve for Toast). Alert is inline it should feel like content appearing, not a notification arriving.
127
+ **BAN**: Slide-in from edge (reserve for Toast). Alert is inline - it should feel like content appearing, not a notification arriving.
128
128
 
129
- Cross-link: `reference/motion.md` `prefers-reduced-motion`: skip height animation, instant show/hide
129
+ Cross-link: `reference/motion.md` - `prefers-reduced-motion`: skip height animation, instant show/hide
130
130
 
131
131
  ---
132
132
 
133
133
  ## Do / Don't
134
134
 
135
135
  ### Do
136
- - Always include an icon matching the semantic variant *(WCAG 1.4.1 color not sole differentiator)*
136
+ - Always include an icon matching the semantic variant *(WCAG 1.4.1 - color not sole differentiator)*
137
137
  - Use `role="alert"` for warning/error (assertive) and `role="status"` for info/success (polite) *(WAI-ARIA APG)*
138
138
  - Keep alert visible until the condition is resolved or user dismisses *(Carbon, Polaris)*
139
139
  - Use full-width for page-level alerts; rounded inline for component-level *(Material 3, Carbon)*
140
140
 
141
141
  ### Don't
142
- - Don't auto-dismiss alerts use Toast for transient messages *(Material 3, Carbon)*
143
- - Don't use color alone to distinguish severity always include an icon and text label *(WCAG 1.4.1)*
144
- - Don't stack more than 2 alerts in the same section consolidate into a single summary *(Polaris)*
145
- - Don't use `role="alert"` for info/success overly assertive announcements desensitize users *(WAI-ARIA APG)*
142
+ - Don't auto-dismiss alerts - use Toast for transient messages *(Material 3, Carbon)*
143
+ - Don't use color alone to distinguish severity - always include an icon and text label *(WCAG 1.4.1)*
144
+ - Don't stack more than 2 alerts in the same section - consolidate into a single summary *(Polaris)*
145
+ - Don't use `role="alert"` for info/success - overly assertive announcements desensitize users *(WAI-ARIA APG)*
146
146
 
147
147
  ---
148
148
 
@@ -193,6 +193,6 @@ grep -rn 'alert--error\|alert--warning\|alert-error\|alert-warning' src/ | grep
193
193
  </div>
194
194
  ```
195
195
 
196
- **Why it fails**: No `role="alert"` so screen readers do not announce the error message. Color class alone distinguishes severity users with color blindness or high-contrast themes cannot distinguish this from a neutral message. No icon provides a shape-based cue.
196
+ **Why it fails**: No `role="alert"` so screen readers do not announce the error message. Color class alone distinguishes severity - users with color blindness or high-contrast themes cannot distinguish this from a neutral message. No icon provides a shape-based cue.
197
197
  **Grep detection**: `grep -rn 'class.*alert--error\|class.*alert-error' src/ | grep -v 'role='`
198
198
  **Fix**: Add `role="alert"`, include an error icon with `aria-hidden="true"`, and ensure the variant is communicated through text or visually-hidden label in addition to color.