@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
@@ -1,24 +1,24 @@
1
1
  # Greenfield Design-System Bootstrap Rubric
2
2
 
3
- Emission rules for `/gdd:bootstrap-ds` + `agents/ds-generator.md` how to turn a brand input (a primary color + optional secondary + tone tags + target framework) into a coherent token system, **without inventing a brand**. The deterministic math lives in `scripts/lib/ds/token-scale.cjs`; the color-theory grounding lives in `reference/color-theory.md`. This file is the rulebook the generator obeys.
3
+ Emission rules for `/gdd:bootstrap-ds` + `agents/ds-generator.md` - how to turn a brand input (a primary color + optional secondary + tone tags + target framework) into a coherent token system, **without inventing a brand**. The deterministic math lives in `scripts/lib/ds/token-scale.cjs`; the color-theory grounding lives in `reference/color-theory.md`. This file is the rulebook the generator obeys.
4
4
 
5
- GDD does not author a brand identity (logomarks, voice) it emits a **starter token system + a few proof components** a greenfield project can build on.
5
+ GDD does not author a brand identity (logomarks, voice) - it emits a **starter token system + a few proof components** a greenfield project can build on.
6
6
 
7
7
  ---
8
8
 
9
9
  ## Color
10
10
 
11
- - **Primary → 9 tints/shades.** Convert the brand primary to OKLCH `{l, c, h}`, then call `oklchScale(primary)` → 9 stops (`100`…`900`) emitted as native CSS `oklch()`. Stop `500` is the primary exactly; lighter stops interpolate L toward white with damped chroma; darker stops toward black. Native `oklch()` **no hex conversion, no color library**.
11
+ - **Primary → 9 tints/shades.** Convert the brand primary to OKLCH `{l, c, h}`, then call `oklchScale(primary)` → 9 stops (`100`…`900`) emitted as native CSS `oklch()`. Stop `500` is the primary exactly; lighter stops interpolate L toward white with damped chroma; darker stops toward black. Native `oklch()` - **no hex conversion, no color library**.
12
12
  - **Never auto-generate more than 2 brand colors.** Primary is always emitted. A **secondary** scale is emitted **only if the user supplies one**. Never invent a third brand hue.
13
- - **Neutrals** a low-chroma gray ramp (chroma ≤ 0.02) sharing the primary's hue for a subtle tint, or pure neutral (`c = 0`). 9 stops via `oklchScale({ l, c: 0.012, h: primary.h })`.
14
- - **Semantic colors** success / warning / danger / info derived at fixed hues (≈145 / 85 / 25 / 255) at the brand's mid-lightness + chroma, so they sit in the same family. These are functional, not "brand" colors (they do not count against the ≤2 rule).
15
- - **Contrast** every text-on-surface pairing must clear WCAG AA (see `reference/color-theory.md`); the generator checks the chosen `500`/`700` against white/`50`.
13
+ - **Neutrals** - a low-chroma gray ramp (chroma ≤ 0.02) sharing the primary's hue for a subtle tint, or pure neutral (`c = 0`). 9 stops via `oklchScale({ l, c: 0.012, h: primary.h })`.
14
+ - **Semantic colors** - success / warning / danger / info derived at fixed hues (≈145 / 85 / 25 / 255) at the brand's mid-lightness + chroma, so they sit in the same family. These are functional, not "brand" colors (they do not count against the ≤2 rule).
15
+ - **Contrast** - every text-on-surface pairing must clear WCAG AA (see `reference/color-theory.md`); the generator checks the chosen `500`/`700` against white/`50`.
16
16
 
17
17
  ## Typography
18
18
 
19
- - **Modular scale** via `typeScale(baseRem, ratio, steps)`. Base `1rem` (16px). **Ratio ∈ {1.2 (minor third), 1.25 (major third), 1.333 (perfect fourth)}** pick by tone (calm → 1.2, default → 1.25, editorial/bold → 1.333).
19
+ - **Modular scale** via `typeScale(baseRem, ratio, steps)`. Base `1rem` (16px). **Ratio ∈ {1.2 (minor third), 1.25 (major third), 1.333 (perfect fourth)}** - pick by tone (calm → 1.2, default → 1.25, editorial/bold → 1.333).
20
20
  - Emit named steps (`xs`…`5xl`) from the scale; line-height pairs (tight 1.2 for headings, 1.5 for body).
21
- - Font family is a **slot**, not a choice emit a system-font stack placeholder + a `--font-sans` / `--font-mono` variable the user swaps. GDD does not pick a typeface (brand territory).
21
+ - Font family is a **slot**, not a choice - emit a system-font stack placeholder + a `--font-sans` / `--font-mono` variable the user swaps. GDD does not pick a typeface (brand territory).
22
22
 
23
23
  ## Spacing
24
24
 
@@ -27,9 +27,9 @@ GDD does not author a brand identity (logomarks, voice) — it emits a **starter
27
27
  ## Radius + Motion
28
28
 
29
29
  - **Radius** via `radiusScale(basePx)` → `sm/md/lg/xl/full` (`full = 9999` pill).
30
- - **Motion defaults** durations `fast 150ms / base 250ms / slow 400ms`; easing `ease-out` for enters, a standard curve for moves; **always** respect `prefers-reduced-motion` (emit the media-query guard).
30
+ - **Motion defaults** - durations `fast 150ms / base 250ms / slow 400ms`; easing `ease-out` for enters, a standard curve for moves; **always** respect `prefers-reduced-motion` (emit the media-query guard).
31
31
 
32
- ## The 3 variants (D-02 user picks one)
32
+ ## The 3 variants (D-02 - user picks one)
33
33
 
34
34
  The generator emits three coherent variants; the user picks ONE before first-component scaffolding:
35
35
 
@@ -42,10 +42,10 @@ The generator emits three coherent variants; the user picks ONE before first-com
42
42
  ## Emission format
43
43
 
44
44
  - Emit **CSS custom properties** (`:root { --color-primary-500: oklch(...); --space-4: 16px; ... }`) as the canonical artifact, plus a target-framework mapping:
45
- - **web (default)** a Tailwind `theme.extend` block (or shadcn CSS variables) + the `:root` tokens.
46
- - **native** route the token set through `reference/native-platforms.md` (Phase 34) for SwiftUI / Compose / Flutter theme objects.
45
+ - **web (default)** - a Tailwind `theme.extend` block (or shadcn CSS variables) + the `:root` tokens.
46
+ - **native** - route the token set through `reference/native-platforms.md` (Phase 34) for SwiftUI / Compose / Flutter theme objects.
47
47
  - Tokens are **named by role, not value** (`--color-primary-500`, not `--blue-500`) so a rebrand is a one-line hue change.
48
48
 
49
49
  ## First-component scaffolding (proof artifact)
50
50
 
51
- After the user picks a variant, emit **button + input + card** in the detected target framework, consuming only the emitted tokens a proof the system is coherent, not a full component library (that is out of scope).
51
+ After the user picks a variant, emit **button + input + card** in the detected target framework, consuming only the emitted tokens - a proof the system is coherent, not a full component library (that is out of scope).
@@ -1,7 +1,7 @@
1
- # Email Design Constraint Catalogue
1
+ # Email Design - Constraint Catalogue
2
2
 
3
3
  This reference is the **email-constraint catalogue**: the hard email-client rules an
4
- email template MUST honor. Email is a *constrained* HTML/CSS surface the modern
4
+ email template MUST honor. Email is a *constrained* HTML/CSS surface - the modern
5
5
  HTML/CSS the web executor emits (flexbox, grid, `<style>` sheets, `position`) is
6
6
  dropped or mis-rendered by most email clients. This file is the **authority** that the
7
7
  email-executor (Phase 34.2-02) generates against and the design-verifier's email branch
@@ -14,8 +14,8 @@ distinct jobs and must not be confused:
14
14
 
15
15
  | File | Job |
16
16
  | --- | --- |
17
- | `reference/platforms.md` (Phase 19) | Interaction **conventions** navigation, safe areas, gestures, native typography, haptics. *Behavioral* knowledge for native/web screens. |
18
- | `reference/email-design.md` (Phase 34.2, this file) | The email **constraint catalogue** table-based layout, inline styles, MSO conditional comments, dark-mode `color-scheme`, ~600px max-width, image/alt rules, and top-20-client quirks. *Structural* knowledge an email template implements. |
17
+ | `reference/platforms.md` (Phase 19) | Interaction **conventions** - navigation, safe areas, gestures, native typography, haptics. *Behavioral* knowledge for native/web screens. |
18
+ | `reference/email-design.md` (Phase 34.2, this file) | The email **constraint catalogue** - table-based layout, inline styles, MSO conditional comments, dark-mode `color-scheme`, ~600px max-width, image/alt rules, and top-20-client quirks. *Structural* knowledge an email template implements. |
19
19
 
20
20
  Per **D-02** there is **no `mjml` runtime dependency**: MJML source is the agent's
21
21
  canonical artifact and the HTML is derived by the agent, not a build step. Per **D-03**
@@ -44,7 +44,7 @@ kept to 2–3 lines. The implementation is `validate-email-html.cjs`.
44
44
 
45
45
  ---
46
46
 
47
- ## 2. Layout tables, not flexbox/grid/position
47
+ ## 2. Layout - tables, not flexbox/grid/position
48
48
 
49
49
  Email layout uses nested `role="presentation"` **tables**, never the modern CSS box
50
50
  primitives. `display:flex`, `display:grid`, and `position:absolute|fixed|sticky` are
@@ -53,11 +53,11 @@ collapsing a layout to a single column or off-screen elements.
53
53
 
54
54
  | Rule-id | Constraint |
55
55
  | --- | --- |
56
- | **EM-LAYOUT-01** | Layout is built from `role="presentation"` tables. The forbidden modern primitives `display:flex`, `display:grid`, `position:absolute`, `position:fixed` (and `position:sticky`) MUST NOT appear in any `style`. *(Statically checkable: their presence is flagged.)* |
56
+ | **EM-LAYOUT-01** | Layout is built from `role="presentation"` tables. The forbidden modern primitives - `display:flex`, `display:grid`, `position:absolute`, `position:fixed` (and `position:sticky`) - MUST NOT appear in any `style`. *(Statically checkable: their presence is flagged.)* |
57
57
  | EM-LAYOUT-02 | Body content sits in a fixed-/max-width container of ~**600px** (the safe width across the desktop preview pane and most mobile clients). Wider tables clip in Outlook and force horizontal scroll on mobile. |
58
58
  | EM-LAYOUT-03 | Use `cellpadding="0" cellspacing="0" border="0"` on layout tables and prefer cell `padding` over margins (margins are inconsistently honored). |
59
59
  | EM-LAYOUT-04 | Single primary column on mobile; multi-column desktop layouts degrade to stacked rows. Do not rely on `float` for columns (use side-by-side `<td>`s or `align`). |
60
- | EM-LAYOUT-05 | Set explicit `width` on tables/cells; never assume an intrinsic content width. Outlook ignores CSS `max-width` on many elements pair it with a `<!--[if mso]>` ghost table (see §4). |
60
+ | EM-LAYOUT-05 | Set explicit `width` on tables/cells; never assume an intrinsic content width. Outlook ignores CSS `max-width` on many elements - pair it with a `<!--[if mso]>` ghost table (see §4). |
61
61
 
62
62
  ```html
63
63
  <table role="presentation" width="600" cellpadding="0" cellspacing="0" border="0"
@@ -114,7 +114,7 @@ overrides.
114
114
 
115
115
  | Rule-id | Constraint |
116
116
  | --- | --- |
117
- | **EM-DARK-01** | Declare a `color-scheme` signal: a `<meta name="color-scheme" content="light dark">` and/or a `color-scheme: light dark;` CSS declaration and/or a `@media (prefers-color-scheme: dark)` block. At least one MUST be present. *(Statically checkable: total absence of any color-scheme signal is flagged. A `<meta name="color-scheme">` alone satisfies it decoupled from any `<style>` block.)* |
117
+ | **EM-DARK-01** | Declare a `color-scheme` signal: a `<meta name="color-scheme" content="light dark">` and/or a `color-scheme: light dark;` CSS declaration and/or a `@media (prefers-color-scheme: dark)` block. At least one MUST be present. *(Statically checkable: total absence of any color-scheme signal is flagged. A `<meta name="color-scheme">` alone satisfies it - decoupled from any `<style>` block.)* |
118
118
  | EM-DARK-02 | Pair `color-scheme` with `supported-color-schemes` (meta) for Apple Mail / Outlook. |
119
119
  | EM-DARK-03 | Beware forced color inversion: set explicit `background-color` AND `color` on text containers so an inverting client cannot produce unreadable low-contrast pairs. |
120
120
  | EM-DARK-04 | Provide dark-mode-friendly logos (transparent PNG or a `prefers-color-scheme` image swap) so a dark background does not hide a dark logo. |
@@ -124,7 +124,7 @@ overrides.
124
124
  ## 6. Images & accessibility
125
125
 
126
126
  Images are often blocked by default and must degrade gracefully; accessibility rules
127
- prevent broken layouts and unreadable content. *(Guidance not all statically
127
+ prevent broken layouts and unreadable content. *(Guidance - not all statically
128
128
  asserted; see §8.)*
129
129
 
130
130
  | Rule-id | Constraint |
@@ -139,19 +139,19 @@ asserted; see §8.)*
139
139
 
140
140
  ## 7. Top-20 client quirks
141
141
 
142
- The top-20-by-market-share email clients and their headline quirks. *(Catalogue
142
+ The top-20-by-market-share email clients and their headline quirks. *(Catalogue -
143
143
  most are render-tested via the optional Litmus / Email-on-Acid connection (34.2-02),
144
144
  NOT statically checkable; see §8.)*
145
145
 
146
146
  | Rule-id | Client | Headline quirk |
147
147
  | --- | --- | --- |
148
- | EM-CLIENT-01 | Apple Mail (iOS) | Most standards-compliant; honors `<style>` + media queries; auto-scales text set `meta viewport`. |
149
- | EM-CLIENT-02 | Apple Mail (macOS) | WebKit-based, robust; respects `prefers-color-scheme`; watch auto-link of dates/addresses. |
148
+ | EM-CLIENT-01 | Apple Mail (iOS) | Most standards-compliant; honors `<style>` + media queries; auto-scales text - set `meta viewport`. |
149
+ | EM-CLIENT-02 | Apple Mail (macOS) | WebKit-based, solid; respects `prefers-color-scheme`; watch auto-link of dates/addresses. |
150
150
  | EM-CLIENT-03 | Gmail (web) | **Strips `<head>` styles** beyond a limited `<style>`; clips messages over ~102KB ("[Message clipped]"); requires inline styles. |
151
151
  | EM-CLIENT-04 | Gmail (mobile app, default account) | Supports a `<style>` block + media queries; same ~102KB clip; no `:hover` reliability. |
152
- | EM-CLIENT-05 | Gmail (mobile, non-default / IMAP "GANGA") | **Strips `<style>` entirely** only inline styles survive; the strictest Gmail mode. |
152
+ | EM-CLIENT-05 | Gmail (mobile, non-default / IMAP "GANGA") | **Strips `<style>` entirely** - only inline styles survive; the strictest Gmail mode. |
153
153
  | EM-CLIENT-06 | Outlook 2016–2021 (Windows) | **Word engine**: no flexbox/grid/`position`, ignores `max-width`/`border-radius`/CSS `background-image`; needs ghost tables + VML + `mso-line-height-rule:exactly`. |
154
- | EM-CLIENT-07 | Outlook (Microsoft 365, Windows) | Word engine like 2016/2019; DPI scaling bugs set explicit image `width`/`height`. |
154
+ | EM-CLIENT-07 | Outlook (Microsoft 365, Windows) | Word engine like 2016/2019; DPI scaling bugs - set explicit image `width`/`height`. |
155
155
  | EM-CLIENT-08 | Outlook.com (web) | Different (better) engine than desktop; **aggressive dark-mode color inversion**; rewrites some colors. |
156
156
  | EM-CLIENT-09 | Outlook (macOS) | WebKit-based (unlike Windows); far more capable; still test buttons/spacing. |
157
157
  | EM-CLIENT-10 | Outlook (mobile, iOS/Android) | Largely fine; respects media queries; watch link color overrides. |
@@ -173,15 +173,15 @@ NOT statically checkable; see §8.)*
173
173
  This table is the **contract** the validator's `rule` ids map to. The four rule-ids
174
174
  below are the deterministic subset that `scripts/lib/email/validate-email-html.cjs`
175
175
  asserts via regex/string analysis of the supplied HTML string. Every other rule-id in
176
- this catalogue is **render-tested guidance** verified by the optional Litmus /
176
+ this catalogue is **render-tested guidance** - verified by the optional Litmus /
177
177
  Email-on-Acid render-test connection (34.2-02), never asserted by the static validator.
178
178
 
179
179
  | Rule-id | Check | Statically checked by the validator? | How verified otherwise |
180
180
  | --- | --- | --- | --- |
181
- | **EM-LAYOUT-01** | No `display:flex` / `display:grid` / `position:absolute\|fixed` in any `style` | **YES** presence flagged | |
182
- | **EM-STYLE-01** | No `<style>` block as the PRIMARY styling mechanism (non-`@media` rules / large sheet); inline styling expected | **YES** a non-trivial `<style>` block flagged; a small `@media`-only block tolerated | |
183
- | **EM-MSO-01** | An MSO conditional comment (`<!--[if mso]>` / `<!--[if !mso]>`) is present in a full-email document | **YES** absence flagged | |
184
- | **EM-DARK-01** | A `color-scheme` signal is present (meta `color-scheme` and/or CSS `color-scheme` and/or `prefers-color-scheme`) | **YES** total absence flagged (a `<meta name="color-scheme">` alone satisfies it) | |
181
+ | **EM-LAYOUT-01** | No `display:flex` / `display:grid` / `position:absolute\|fixed` in any `style` | **YES** - presence flagged | - |
182
+ | **EM-STYLE-01** | No `<style>` block as the PRIMARY styling mechanism (non-`@media` rules / large sheet); inline styling expected | **YES** - a non-trivial `<style>` block flagged; a small `@media`-only block tolerated | - |
183
+ | **EM-MSO-01** | An MSO conditional comment (`<!--[if mso]>` / `<!--[if !mso]>`) is present in a full-email document | **YES** - absence flagged | - |
184
+ | **EM-DARK-01** | A `color-scheme` signal is present (meta `color-scheme` and/or CSS `color-scheme` and/or `prefers-color-scheme`) | **YES** - total absence flagged (a `<meta name="color-scheme">` alone satisfies it) | - |
185
185
  | EM-LAYOUT-02..05 | ~600px width, cellpadding, single-column, explicit widths | No | Render test (Litmus) |
186
186
  | EM-STYLE-02..04 | Longhand props, no external CSS, tolerated `@media` | No | Render test |
187
187
  | EM-MSO-02..04 | Ghost tables, VML, DPI/namespace head | No | Render test (Outlook) |
@@ -207,13 +207,13 @@ Notes on the four statically-checked rules:
207
207
 
208
208
  ## 9. Cross-references
209
209
 
210
- - [`reference/platforms.md`](./platforms.md) the interaction-conventions sibling
210
+ - [`reference/platforms.md`](./platforms.md) - the interaction-conventions sibling
211
211
  (navigation, safe areas, gestures). The email-executor reads **this** file for the
212
212
  email constraints, that file for general platform behavior.
213
213
  - [`scripts/lib/email/validate-email-html.cjs`](../scripts/lib/email/validate-email-html.cjs)
214
- the deterministic static validator that asserts the §8 subset; its `rule` ids are
214
+ - the deterministic static validator that asserts the §8 subset; its `rule` ids are
215
215
  the constraint-ids defined here.
216
- - [`reference/registry.json`](./registry.json) this catalogue is registered as the
216
+ - [`reference/registry.json`](./registry.json) - this catalogue is registered as the
217
217
  `email-design` entry (type `heuristic`, phase `34.2`) so the registry round-trip test
218
218
  (`test/suite/reference-registry.test.cjs`) stays green (D-05, the 33.5-01 / 34.1-01
219
219
  lesson).
@@ -1,8 +1,8 @@
1
- # Emotional Design Norman's Three Levels
1
+ # Emotional Design - Norman's Three Levels
2
2
 
3
3
  Source: Don Norman, *Emotional Design: Why We Love (or Hate) Everyday Things* (2004). See also: `jnd.org`.
4
4
 
5
- Use this file as a **cross-cutting scoring lens** in design audits and reflections. The three levels apply simultaneously to every design decision they are not sequential stages.
5
+ Use this file as a **cross-cutting scoring lens** in design audits and reflections. The three levels apply simultaneously to every design decision - they are not sequential stages.
6
6
 
7
7
  ---
8
8
 
@@ -12,7 +12,7 @@ Use this file as a **cross-cutting scoring lens** in design audits and reflectio
12
12
 
13
13
  > The immediate, pre-cognitive, automatic reaction to sensory input.
14
14
 
15
- The visceral level operates before the user thinks. It is driven by appearance, proportion, colour, texture the aesthetic surface. A user who says "I don't know why, but this feels cheap" is responding at the visceral level.
15
+ The visceral level operates before the user thinks. It is driven by appearance, proportion, colour, texture - the aesthetic surface. A user who says "I don't know why, but this feels cheap" is responding at the visceral level.
16
16
 
17
17
  **What it governs:**
18
18
  - First impression within 50ms of page load (aesthetic-usability effect)
@@ -39,14 +39,14 @@ The visceral level operates before the user thinks. It is driven by appearance,
39
39
 
40
40
  ### Behavioral Level
41
41
 
42
- > The experience of use whether actions feel controllable, predictable, and rewarding.
42
+ > The experience of use - whether actions feel controllable, predictable, and rewarding.
43
43
 
44
44
  The behavioral level is what UX heuristics primarily address. It covers usability, feedback, error recovery, and responsiveness. A user who says "This is frustrating to use" is responding at the behavioral level.
45
45
 
46
46
  **What it governs:**
47
47
  - Interaction feedback (loading states, error messages, success confirmations)
48
48
  - Control and reversibility (undo, cancel, back navigation)
49
- - Response latency the Doherty Threshold: feedback within 400ms
49
+ - Response latency - the Doherty Threshold: feedback within 400ms
50
50
  - Error prevention and recovery
51
51
  - Learnability and consistency across screens
52
52
 
@@ -69,14 +69,14 @@ The behavioral level is what UX heuristics primarily address. It covers usabilit
69
69
 
70
70
  ### Reflective Level
71
71
 
72
- > The conscious, post-use evaluation meaning, narrative, and self-image.
72
+ > The conscious, post-use evaluation - meaning, narrative, and self-image.
73
73
 
74
74
  The reflective level is where brand identity, storytelling, and pride of ownership live. A user who says "I love showing this tool to colleagues" is responding at the reflective level. This level takes the longest to build and the longest to repair when damaged.
75
75
 
76
76
  **What it governs:**
77
77
  - Whether the product aligns with the user's self-image
78
78
  - Brand narrative consistency across all touchpoints
79
- - Delight and surprise moments not gimmicks; earned moments
79
+ - Delight and surprise moments - not gimmicks; earned moments
80
80
  - The **Peak** moment in the Peak-End Rule: the highest positive moment in the flow
81
81
  - Long-term loyalty and word-of-mouth referral
82
82
 
@@ -103,14 +103,14 @@ Apply this lens as a **secondary overlay** after scoring the primary audit pilla
103
103
 
104
104
  1. Identify 1–2 evidence items from the primary audit (e.g., Pillar 3 Color → Visceral Level)
105
105
  2. Note conflicts between levels (e.g., Behavioral score 4 but Visceral score 1 = technically functional but aesthetically repellent)
106
- 3. Flag the weakest level as the highest-leverage improvement opportunity
106
+ 3. Flag the weakest level as the highest-impact improvement opportunity
107
107
 
108
108
  **Common cross-level conflict patterns:**
109
109
 
110
110
  | Conflict pattern | Diagnosis | Remedy |
111
111
  |---|---|---|
112
112
  | High behavioral, low visceral | Technically usable but aesthetically generic | Audit against `style-vocabulary.md`; commit to a stronger aesthetic type |
113
- | High visceral, low behavioral | Beautiful but broken | Fix H-01, H-09 violations first UX before aesthetics |
113
+ | High visceral, low behavioral | Beautiful but broken | Fix H-01, H-09 violations first - UX before aesthetics |
114
114
  | High visceral + behavioral, low reflective | Polished but forgettable | Design a peak moment; review `brand-voice.md` emotional arc |
115
115
 
116
116
  ---
@@ -119,6 +119,6 @@ Apply this lens as a **secondary overlay** after scoring the primary audit pilla
119
119
 
120
120
  **design-auditor:** After pillar scoring, apply emotional-design lens as a cross-cutting overlay. Add `## Emotional Design Overlay` section to `DESIGN-AUDIT.md` with scores for all three levels and any cross-level conflict notes.
121
121
 
122
- **design-reflector:** In Section 1 (What Surprised Us), flag if visceral vs behavioral scores diverge by ≥2 points this is a leading indicator of the "beautiful but broken" pattern.
122
+ **design-reflector:** In Section 1 (What Surprised Us), flag if visceral vs behavioral scores diverge by ≥2 points - this is a leading indicator of the "beautiful but broken" pattern.
123
123
 
124
124
  **design-discussant:** In `--spec` mode, include one reflective-level confidence-scored question: "What story does this product help the user tell about themselves?"
@@ -10,7 +10,7 @@ On `status=429`, consult `scripts/lib/rate-guard.cjs` → `blockUntilReady(provi
10
10
 
11
11
  On network-transient (5xx, ECONNRESET), use jittered backoff (`scripts/lib/jittered-backoff.cjs`); max 3 retries.
12
12
 
13
- On auth-error, surface to user do not retry.
13
+ On auth-error, surface to user - do not retry.
14
14
 
15
15
  ## Recovery-action table
16
16
 
@@ -18,14 +18,14 @@ The `FailoverReason` enum in `scripts/lib/error-classifier.cjs` has eight values
18
18
 
19
19
  | FailoverReason | Retryable | Action |
20
20
  | ------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
21
- | `rate_limited` | yes | Call `rate-guard.ingestHeaders(provider, response.headers)` to record the rate-limit signal, then `rate-guard.blockUntilReady(provider)` before retrying. The blocker waits until `resetAt` on disk synchronized siblings (watch-authorities + update-check) therefore share the backoff boundary. After the block returns, retry with jittered backoff at attempt 0. |
22
- | `context_overflow` | yes | Compress context drop the oldest non-system turns (or the oldest attachments) targeting roughly 50 % token reduction. Retry **once** with the compressed payload. If the retry also raises `context_overflow`, escalate to the user as an unrecoverable block further compression destroys information. |
23
- | `auth_error` | no | Surface the error to the user with actionable text: which credential, which provider, and the renewal path (OAuth re-auth URL, API-key environment variable, etc.). Do not retry automatically a loop would just multiply the failure. |
24
- | `network_transient` | yes | Retry with `scripts/lib/jittered-backoff.cjs` `await sleep(attempt)` inside a bounded loop. Cap at 3 attempts before giving up. When retries exhaust, reclassify as `network_permanent` and surface to the user. |
21
+ | `rate_limited` | yes | Call `rate-guard.ingestHeaders(provider, response.headers)` to record the rate-limit signal, then `rate-guard.blockUntilReady(provider)` before retrying. The blocker waits until `resetAt` on disk - synchronized siblings (watch-authorities + update-check) therefore share the backoff boundary. After the block returns, retry with jittered backoff at attempt 0. |
22
+ | `context_overflow` | yes | Compress context - drop the oldest non-system turns (or the oldest attachments) targeting roughly 50 % token reduction. Retry **once** with the compressed payload. If the retry also raises `context_overflow`, escalate to the user as an unrecoverable block - further compression destroys information. |
23
+ | `auth_error` | no | Surface the error to the user with actionable text: which credential, which provider, and the renewal path (OAuth re-auth URL, API-key environment variable, etc.). Do not retry automatically - a loop would just multiply the failure. |
24
+ | `network_transient` | yes | Retry with `scripts/lib/jittered-backoff.cjs` - `await sleep(attempt)` inside a bounded loop. Cap at 3 attempts before giving up. When retries exhaust, reclassify as `network_permanent` and surface to the user. |
25
25
  | `network_permanent` | no | Surface to user. The endpoint is wrong, DNS is broken, or the resource was removed. A retry without operator action will just re-fail. |
26
26
  | `tool_not_found` | no | Surface to user. Either the tool name drifted (common for MCP servers whose prefixes change across sessions) or the MCP is not registered. Reprobe via the connection's probe sequence before retrying anything. |
27
- | `validation` | no | Surface the validation detail to the caller. Do not retry the same input 4xx is the server saying "your payload is wrong". Fixing the payload is caller work. |
28
- | `unknown` | no | Surface the raw error to the user. Do not retry we can't tell whether it's safe. Add a telemetry row so we can tighten the classifier over time. |
27
+ | `validation` | no | Surface the validation detail to the caller. Do not retry the same input - 4xx is the server saying "your payload is wrong". Fixing the payload is caller work. |
28
+ | `unknown` | no | Surface the raw error to the user. Do not retry - we can't tell whether it's safe. Add a telemetry row so we can tighten the classifier over time. |
29
29
 
30
30
  ## Integration points
31
31
 
@@ -34,7 +34,7 @@ The `FailoverReason` enum in `scripts/lib/error-classifier.cjs` has eight values
34
34
  | `hooks/budget-enforcer.ts` | pre-spawn rate-guard check (Plan 20-14) | If upstream state already shows `rate_limited`, emit `decision: 'rate-limited'` and short-circuit before any spawn. |
35
35
  | Figma MCP probe | live `get_metadata` call errors | `network_transient` → jittered-backoff retry. `auth_error` → STOP with a reauth note. `rate_limited` → block then retry. |
36
36
  | Watch-authorities fetcher | per-feed HTTP fetch | Same policy as Figma probe; `validation` also possible on ETag stalemate (304). |
37
- | Update-check HTTP curl | GitHub `releases/latest` fetch | Silent failure by D-04 of Plan 13.3 classify but don't surface; log and exit 0. |
37
+ | Update-check HTTP curl | GitHub `releases/latest` fetch | Silent failure by D-04 of Plan 13.3 - classify but don't surface; log and exit 0. |
38
38
  | MCP transport | tool-call errors (gdd-state, figma, 21st-dev)| Map `tool_not_found` to a probe-reissue; map `auth_error` to STOP; retry transient classes via the caller's own loop. |
39
39
 
40
40
  ## Fix-loop iteration interaction
@@ -43,9 +43,9 @@ Retries consume iteration budget when paired with the Layer-B cache:
43
43
 
44
44
  1. On cache hit, `iteration-budget.refund(1)` preserves the iteration that would otherwise have been spent.
45
45
  2. On each actual retry that does real work (no cache hit), the caller `iteration-budget.consume(1)` before the spawn.
46
- 3. When the budget's `remaining === 0`, further retries throw `IterationBudgetExhaustedError` and the caller must surface to user a retry cycle has become pathological.
46
+ 3. When the budget's `remaining === 0`, further retries throw `IterationBudgetExhaustedError` and the caller must surface to user - a retry cycle has become pathological.
47
47
 
48
- This protects the "infinite fix loop" case a blocker that regenerates after every fix from burning unbounded context.
48
+ This protects the "infinite fix loop" case - a blocker that regenerates after every fix - from burning unbounded context.
49
49
 
50
50
  ## Telemetry
51
51
 
@@ -55,4 +55,4 @@ Every classification result that leads to a retry or a surfaced error should app
55
55
  { "type": "error.classified", "timestamp": "…", "sessionId": "…", "payload": { "reason": "rate_limited", "retryable": true, "caller": "figma-probe" } }
56
56
  ```
57
57
 
58
- The event subtype is defined in `scripts/lib/event-stream/types.ts`. Consumers (`gdd-reflector`, dashboard) aggregate by `reason` to detect classifier drift if `unknown` spikes, the classifier needs tightening.
58
+ The event subtype is defined in `scripts/lib/event-stream/types.ts`. Consumers (`gdd-reflector`, dashboard) aggregate by `reason` to detect classifier drift - if `unknown` spikes, the classifier needs tightening.
@@ -1,4 +1,4 @@
1
- # Export Formats the `/gdd:export` contract
1
+ # Export Formats - the `/gdd:export` contract
2
2
 
3
3
  How `/gdd:export <cycle> --format html|pdf|notion [--pseudonymize] [--pr]` turns a completed cycle's in-repo design output into a stakeholder-shareable artifact. Dep-free: the HTML/PDF assembler is pure (`scripts/lib/export/build-html.cjs`); Notion is MCP-based; no `paged`/`puppeteer`/`pdfkit`/markdown-lib runtime.
4
4
 
@@ -10,21 +10,21 @@ In cycle order: `EXPERIENCE.md` (Phase 19.5 cross-cycle memory) · `.design/DESI
10
10
 
11
11
  ## Formats
12
12
 
13
- - **`html`** (default) `buildHtml({ title, subtitle, sections, images })` → a **single self-contained HTML** file: inline `<style>`, base64-embedded images, **zero external references** (safe to email / drop in Drive). Written to `.design/export/<cycle>.html`.
14
- - **`pdf`** the same `buildHtml({ ..., print: true })` (adds a Paged.js-compatible `@page` print stylesheet). Written to `.design/export/<cycle>.print.html`; **the user renders it** via Paged.js / headless-Chrome. GDD ships **no** PDF runtime (the print-executor precedent, D-02).
15
- - **`notion`** a Notion page via the Notion MCP (`connections/notion.md`): headings → section/toggle blocks, screenshots → image-upload blocks. Degrades to the `html` file when the Notion MCP is `not_configured`/disabled.
13
+ - **`html`** (default) - `buildHtml({ title, subtitle, sections, images })` → a **single self-contained HTML** file: inline `<style>`, base64-embedded images, **zero external references** (safe to email / drop in Drive). Written to `.design/export/<cycle>.html`.
14
+ - **`pdf`** - the same `buildHtml({ ..., print: true })` (adds a Paged.js-compatible `@page` print stylesheet). Written to `.design/export/<cycle>.print.html`; **the user renders it** via Paged.js / headless-Chrome. GDD ships **no** PDF runtime (the print-executor precedent, D-02).
15
+ - **`notion`** - a Notion page via the Notion MCP (`connections/notion.md`): headings → section/toggle blocks, screenshots → image-upload blocks. Degrades to the `html` file when the Notion MCP is `not_configured`/disabled.
16
16
 
17
17
  ## Privacy (redact always; pseudonymize opt-in)
18
18
 
19
- Every section is passed through `scripts/lib/redact.cjs` (secrets the floor). `--pseudonymize` additionally applies `scripts/lib/pseudonymize.cjs` (git identity / paths / hostname / repo origin) use it when sharing externally. Default (no flag) = redact only.
19
+ Every section is passed through `scripts/lib/redact.cjs` (secrets - the floor). `--pseudonymize` additionally applies `scripts/lib/pseudonymize.cjs` (git identity / paths / hostname / repo origin) - use it when sharing externally. Default (no flag) = redact only.
20
20
 
21
21
  ## PR integration (`--pr`)
22
22
 
23
- `--pr` hands the generated self-contained HTML preview to `agents/pr-commenter.md` (Phase 35.1) to post as a PR comment degrade-to-noop when there's no PR or pr-commenter is unavailable (never blocks the export).
23
+ `--pr` hands the generated self-contained HTML preview to `agents/pr-commenter.md` (Phase 35.1) to post as a PR comment - degrade-to-noop when there's no PR or pr-commenter is unavailable (never blocks the export).
24
24
 
25
25
  ## Self-contained guarantee (html/pdf)
26
26
 
27
- `build-html.cjs` emits no external `src=`/`<link>`/`<script>` CSS is inline, images are base64 `data:` URIs. Content links (`<a href="https://…">`) are preserved (they're references, not load-bearing resources). Deterministic: same input → byte-identical output (the regression baseline freezes a fixture render).
27
+ `build-html.cjs` emits no external `src=`/`<link>`/`<script>` - CSS is inline, images are base64 `data:` URIs. Content links (`<a href="https://…">`) are preserved (they're references, not essential resources). Deterministic: same input → byte-identical output (the regression baseline freezes a fixture render).
28
28
 
29
29
  ## Out of scope
30
30
 
@@ -1,19 +1,19 @@
1
- # Figma Plugin Sandbox Hard Rules
1
+ # Figma Plugin Sandbox - Hard Rules
2
2
 
3
3
  The `use_figma` MCP runs every script inside the Figma plugin sandbox with a **~5–10s per-call budget**. Four pitfalls repeatedly burn quota in docs-authoring loops. Treat these as hard rules.
4
4
 
5
- **Rule 1 `loadFontAsync` does NOT cache across `use_figma` calls.** Every new call re-fetches font metadata. Preload every style ONCE at the top of a script; clone existing text nodes via `node.clone()` or `figma.createText().fontName = ...` rather than calling `loadFontAsync` again.
5
+ **Rule 1 - `loadFontAsync` does NOT cache across `use_figma` calls.** Every new call re-fetches font metadata. Preload every style ONCE at the top of a script; clone existing text nodes via `node.clone()` or `figma.createText().fontName = ...` rather than calling `loadFontAsync` again.
6
6
 
7
- **Rule 2 `figma.root.findOne()` is O(tree-size) per call.** On a real file with thousands of frames this alone eats the budget. When you already know the node you want to act on, pass the node ID directly and call `figma.getNodeById(id)`. Never call `findOne` in a loop.
7
+ **Rule 2 - `figma.root.findOne()` is O(tree-size) per call.** On a real file with thousands of frames this alone eats the budget. When you already know the node you want to act on, pass the node ID directly and call `figma.getNodeById(id)`. Never call `findOne` in a loop.
8
8
 
9
- **Rule 3 `appendChild` on a large attached tree triggers full AutoLayout recomputation.** Build subtrees off-tree (on a detached parent) and attach the completed subtree once at the end. This avoids N + N-1 + ... + 1 full layout passes.
9
+ **Rule 3 - `appendChild` on a large attached tree triggers full AutoLayout recomputation.** Build subtrees off-tree (on a detached parent) and attach the completed subtree once at the end. This avoids N + N-1 + ... + 1 full layout passes.
10
10
 
11
- **Rule 4 per-call timeout is ~5–10s.** For docs-authoring (multi-row layouts populating from a library), budget **≤2 row-equivalents per `use_figma` call**. Exceeding this puts the script in the hill-climb-against-timeout failure mode: you retry with less content per call, each retry wastes another 5–10s, and MCP quota vanishes.
11
+ **Rule 4 - per-call timeout is ~5–10s.** For docs-authoring (multi-row layouts populating from a library), budget **≤2 row-equivalents per `use_figma` call**. Exceeding this puts the script in the hill-climb-against-timeout failure mode: you retry with less content per call, each retry wastes another 5–10s, and MCP quota vanishes.
12
12
 
13
13
  ---
14
14
 
15
15
  ## When to skip `use_figma` entirely
16
16
 
17
- For **authoring new content** creating pages, populating with library components, building documentation layouts from scratch prefer `figma:figma-generate-design` from the Figma plugin. It runs outside the sandbox and has no per-call timeout.
17
+ For **authoring new content** - creating pages, populating with library components, building documentation layouts from scratch - prefer `figma:figma-generate-design` from the Figma plugin. It runs outside the sandbox and has no per-call timeout.
18
18
 
19
19
  `use_figma` (and `/gdd:figma-write`) remain the right tools for **decision-writing**: attaching annotations, binding local-style tokens, registering Code Connect mappings, writing back implementation-status. Small, bounded, read-then-write operations where the four pitfalls don't apply.
@@ -1,4 +1,4 @@
1
- # First Principles Invariant Design Constraints
1
+ # First Principles - Invariant Design Constraints
2
2
 
3
3
  > These are the three invariants that no design decision can override. They are facts about human biology and cognition, not preferences or conventions. Every design choice is downstream of these three constraints.
4
4
 
@@ -53,7 +53,7 @@ Working memory holds approximately 7 items and degrades rapidly within seconds.
53
53
  | Recognition over recall (H-06) | Visible navigation labels, not icon-only; breadcrumbs on deep paths |
54
54
  | Context must be preserved | Multi-step forms: prior-step summary visible; form state not cleared on back-navigate |
55
55
  | Error memory fades fast | Inline validation: errors adjacent to the field that caused them |
56
- | Completion status reduces anxiety | Progress indicators: `Step 2 of 4`; Zeigarnik Effect show percentage done |
56
+ | Completion status reduces anxiety | Progress indicators: `Step 2 of 4`; Zeigarnik Effect - show percentage done |
57
57
  | Last action should be reversible | Undo available for destructive/irreversible actions within 5 seconds |
58
58
 
59
59
  **Reducibility check:** Does this screen require the user to remember something from a previous screen? If yes, surface that context inline.
@@ -64,11 +64,11 @@ Working memory holds approximately 7 items and degrades rapidly within seconds.
64
64
 
65
65
  For any proposed design element, apply in order:
66
66
 
67
- 1. **Body test** Is this element reachable by a person with limited motor precision on a small screen?
68
- 2. **Attention test** Does this element earn its place by directly supporting the primary task?
69
- 3. **Memory test** Does this element surface context the user would otherwise need to remember?
67
+ 1. **Body test** - Is this element reachable by a person with limited motor precision on a small screen?
68
+ 2. **Attention test** - Does this element earn its place by directly supporting the primary task?
69
+ 3. **Memory test** - Does this element surface context the user would otherwise need to remember?
70
70
 
71
- If an element fails all three tests, it is purely decorative. Decorative elements are not forbidden but they are not invariant-justified, and they are the first candidates for removal when performance or clarity is at risk.
71
+ If an element fails all three tests, it is purely decorative. Decorative elements are not forbidden - but they are not invariant-justified, and they are the first candidates for removal when performance or clarity is at risk.
72
72
 
73
73
  ---
74
74
 
@@ -76,7 +76,7 @@ If an element fails all three tests, it is purely decorative. Decorative element
76
76
 
77
77
  When `design-discussant` runs the brief stage, it prepends this invariants question before the main interview:
78
78
 
79
- > "Before we discuss the design direction, let me confirm three constraints: (1) Are there any accessibility requirements for motor-impaired users? (2) Is the primary use case on mobile or desktop or both? (3) Are there any multi-step flows where the user must carry context between screens?"
79
+ > "Before we discuss the design direction, let me confirm three constraints: (1) Are there any accessibility requirements for motor-impaired users? (2) Is the primary use case on mobile or desktop - or both? (3) Are there any multi-step flows where the user must carry context between screens?"
80
80
 
81
81
  Answers are recorded as D-XX decisions prefixed `[Invariant]` in STATE.md.
82
82
 
@@ -84,6 +84,6 @@ Answers are recorded as D-XX decisions prefixed `[Invariant]` in STATE.md.
84
84
 
85
85
  ## Relationship to Other References
86
86
 
87
- - `reference/heuristics.md` H-01 through H-10 are the behavioral-level expression of Invariants 2 and 3
88
- - `reference/emotional-design.md` Invariant 1 (Body) maps to the Visceral level; Invariants 2–3 map to the Behavioral level
89
- - `reference/component-authoring.md` P-01 through P-06 are the component-level expression of all three invariants
87
+ - `reference/heuristics.md` - H-01 through H-10 are the behavioral-level expression of Invariants 2 and 3
88
+ - `reference/emotional-design.md` - Invariant 1 (Body) maps to the Visceral level; Invariants 2–3 map to the Behavioral level
89
+ - `reference/component-authoring.md` - P-01 through P-06 are the component-level expression of all three invariants