@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
package/README.md CHANGED
@@ -58,7 +58,7 @@ So I built Get Design Done: a design pipeline that gives AI coding agents the sa
58
58
 
59
59
  Behind the scenes: 37 specialized agents, a queryable intel store, tier-aware model routing, 12 optional tool connections, atomic commits, and a no-regret adaptive layer that learns from solidify-with-rollback outcomes. What you use day to day: a few `/gdd:*` commands that keep design work coherent.
60
60
 
61
- **Hegemon**
61
+ - **Hegemon**
62
62
 
63
63
  ---
64
64
 
@@ -70,12 +70,12 @@ Get Design Done is the context engineering layer for design work. It turns "make
70
70
 
71
71
  ## What You Get
72
72
 
73
- - **Brief-grounded design work** every cycle starts with the problem, audience, constraints, success metrics, and must-haves.
74
- - **Design-system extraction** GDD inventories tokens, typography, spacing, components, motion, accessibility, dark mode, and design debt before planning changes.
75
- - **Reference-backed decisions** agents use embedded design references plus optional Figma, Refero, Pinterest, Storybook, Chromatic, Preview, Claude Design, paper.design, pencil.dev, Graphify, 21st.dev Magic, and Magic Patterns connections.
76
- - **Atomic execution** design tasks are decomposed by dependency, run in safe waves, and committed independently.
77
- - **Verification before shipping** audits check brief fit, token integration, WCAG contrast, component conformance, motion consistency, dark-mode architecture, and design anti-patterns.
78
- - **Rollback on failed validation** solidify-with-rollback validates each task before it sticks; failed work is automatically reverted.
73
+ - **Brief-grounded design work** - every cycle starts with the problem, audience, constraints, success metrics, and must-haves.
74
+ - **Design-system extraction** - GDD inventories tokens, typography, spacing, components, motion, accessibility, dark mode, and design debt before planning changes.
75
+ - **Reference-backed decisions** - agents use embedded design references plus optional Figma, Refero, Pinterest, Storybook, Chromatic, Preview, Claude Design, paper.design, pencil.dev, Graphify, 21st.dev Magic, and Magic Patterns connections.
76
+ - **Atomic execution** - design tasks are decomposed by dependency, run in safe waves, and committed independently.
77
+ - **Verification before shipping** - audits check brief fit, token integration, WCAG contrast, component conformance, motion consistency, dark-mode architecture, and design anti-patterns.
78
+ - **Rollback on failed validation** - solidify-with-rollback validates each task before it sticks; failed work is automatically reverted.
79
79
 
80
80
  ---
81
81
 
@@ -87,84 +87,84 @@ Use it when you care that tokens match, contrast passes WCAG, motion feels cohes
87
87
 
88
88
  You do not need to be a designer to benefit from it. The pipeline carries the design discipline into the agent workflow: it extracts context, asks only for missing decisions, grounds the work in references, and catches the issues people usually find too late.
89
89
 
90
- ### v1.27.0 Highlights Peer-CLI Delegation Layer
90
+ ### v1.27.0 Highlights - Peer-CLI Delegation Layer
91
91
 
92
- Closes the **outbound** half of multi-runtime: gdd agents now OPTIONALLY delegate to local peer CLIs (Codex via App Server Protocol; Gemini/Cursor/Copilot/Qwen via Agent Client Protocol) when measurably cheaper or higher-quality for the role. Falls back to in-process Anthropic SDK when peer is unavailable. Honors v1.26.0's tier maps + v1.22.0's event chain + v1.23.5's bandit posterior `delegate?` becomes another arm in `(agent_type × tier × delegate)` Thompson sampling.
92
+ Closes the **outbound** half of multi-runtime: gdd agents now OPTIONALLY delegate to local peer CLIs (Codex via App Server Protocol; Gemini/Cursor/Copilot/Qwen via Agent Client Protocol) when measurably cheaper or higher-quality for the role. Falls back to in-process Anthropic SDK when peer is unavailable. Honors v1.26.0's tier maps + v1.22.0's event chain + v1.23.5's bandit posterior - `delegate?` becomes another arm in `(agent_type × tier × delegate)` Thompson sampling.
93
93
 
94
- - **ACP + ASP protocol clients** `scripts/lib/peer-cli/{acp-client,asp-client}.cjs` ship line-delimited JSON-RPC over stdio with 16 MiB line-buffer overflow guards. ACP serves Gemini/Cursor/Copilot/Qwen; ASP serves Codex (thread-oriented, multi-turn). Protocol shapes adapted from `greenpolo/cc-multi-cli` (Apache 2.0, see `NOTICE`). Long-lived broker per `(peer, workspace)` over Unix socket / named pipe cold-spawn cost amortized across delegated calls in a cycle.
95
- - **5 per-peer adapters + central registry** `scripts/lib/peer-cli/adapters/{codex,gemini,cursor,copilot,qwen}.cjs` thin-wrap the protocol clients with role→prompt-prefix maps and slash-command translation. Central dispatch via `registry.cjs#findPeerFor(role, tier)` consults the locked capability matrix (codex→execute; gemini→research/exploration; cursor→debug/plan; copilot→review/research; qwen→write).
96
- - **`delegate_to:` agent frontmatter** additive optional field; values are `<peer>-<role>` per matrix or `none` for explicit opt-out. Session-runner tries delegate first; transparent fallback on peer-absent OR peer-error. `peer_call_failed` event logs to `events.jsonl` for reflector telemetry. v1.27.0 ships the field but no agent in the fleet uses it yet opt-in per agent via `/gdd:run-skill peer-cli-customize`.
97
- - **Bandit posterior `delegate?` dimension** Phase 23.5's `(agent_type, touches_size_bin)` arm space expands to `(agent_type, touches_size_bin, delegate)` where `delegate ∈ {none, gemini, codex, cursor, copilot, qwen}`. Existing priors carry forward as the `none` arm (no behavior change for unconfigured agents); 5 delegation arms start neutral. Reward signal unchanged (two-stage lexicographic). The bandit measures and learns which delegations actually pay off over cycles.
98
- - **Event chain `runtime_role` + `peer_id` tags** additive Phase 22 extension. `events.jsonl` rows optionally tag `runtime_role: "host" | "peer"` (defaults `"host"` for back-compat) and `peer_id`. 3 new event types: `peer_call_started`, `peer_call_complete`, `peer_call_failed`. costs.jsonl threads the same fields so v1.26's cross-runtime cost-arbitrage reflector extends to host-vs-peer arbitrage naturally.
99
- - **`/gdd:peers` discoverability + skills for setup** `/gdd:peers` shows a single-command capability matrix (peer × installed? × allowlisted? × claimed roles × posterior delta vs local). `peer-cli-customize` rewires per-agent `delegate_to:` mappings; `peer-cli-add` walks the verification ladder for adding a brand-new peer (model-ID `-preview`-suffix trap, Windows `.cmd` quirks, 3-file footprint). Install-time peer-detection helpers (`detectInstalledPeers()`) ship in `runtimes.cjs` ready for the interactive nudge (deferred to a 1.27.x patch).
94
+ - **ACP + ASP protocol clients** - `scripts/lib/peer-cli/{acp-client,asp-client}.cjs` ship line-delimited JSON-RPC over stdio with 16 MiB line-buffer overflow guards. ACP serves Gemini/Cursor/Copilot/Qwen; ASP serves Codex (thread-oriented, multi-turn). Protocol shapes adapted from `greenpolo/cc-multi-cli` (Apache 2.0, see `NOTICE`). Long-lived broker per `(peer, workspace)` over Unix socket / named pipe - cold-spawn cost amortized across delegated calls in a cycle.
95
+ - **5 per-peer adapters + central registry** - `scripts/lib/peer-cli/adapters/{codex,gemini,cursor,copilot,qwen}.cjs` thin-wrap the protocol clients with role→prompt-prefix maps and slash-command translation. Central dispatch via `registry.cjs#findPeerFor(role, tier)` consults the locked capability matrix (codex→execute; gemini→research/exploration; cursor→debug/plan; copilot→review/research; qwen→write).
96
+ - **`delegate_to:` agent frontmatter** - additive optional field; values are `<peer>-<role>` per matrix or `none` for explicit opt-out. Session-runner tries delegate first; transparent fallback on peer-absent OR peer-error. `peer_call_failed` event logs to `events.jsonl` for reflector telemetry. v1.27.0 ships the field but no agent in the fleet uses it yet - opt-in per agent via `/gdd:run-skill peer-cli-customize`.
97
+ - **Bandit posterior `delegate?` dimension** - Phase 23.5's `(agent_type, touches_size_bin)` arm space expands to `(agent_type, touches_size_bin, delegate)` where `delegate ∈ {none, gemini, codex, cursor, copilot, qwen}`. Existing priors carry forward as the `none` arm (no behavior change for unconfigured agents); 5 delegation arms start neutral. Reward signal unchanged (two-stage lexicographic). The bandit measures and learns which delegations actually pay off over cycles.
98
+ - **Event chain `runtime_role` + `peer_id` tags** - additive Phase 22 extension. `events.jsonl` rows optionally tag `runtime_role: "host" | "peer"` (defaults `"host"` for back-compat) and `peer_id`. 3 new event types: `peer_call_started`, `peer_call_complete`, `peer_call_failed`. costs.jsonl threads the same fields so v1.26's cross-runtime cost-arbitrage reflector extends to host-vs-peer arbitrage naturally.
99
+ - **`/gdd:peers` discoverability + skills for setup** - `/gdd:peers` shows a single-command capability matrix (peer × installed? × allowlisted? × claimed roles × posterior delta vs local). `peer-cli-customize` rewires per-agent `delegate_to:` mappings; `peer-cli-add` walks the verification ladder for adding a brand-new peer (model-ID `-preview`-suffix trap, Windows `.cmd` quirks, 3-file footprint). Install-time peer-detection helpers (`detectInstalledPeers()`) ship in `runtimes.cjs` ready for the interactive nudge (deferred to a 1.27.x patch).
100
100
 
101
101
  See [docs/PEER-DELEGATION.md](docs/PEER-DELEGATION.md) for the ops guide (when delegation fires, fallback diagnostics, broker lifecycle, Windows quirks) and [reference/peer-protocols.md](reference/peer-protocols.md) for the ACP + ASP protocol cheat sheet.
102
102
 
103
103
  ### OpenRouter provider (v1.33.6, opt-in)
104
104
 
105
- You can route any agent's tier (`opus`/`sonnet`/`haiku`) through **OpenRouter** an aggregator that fronts Claude, GPT, Llama, Gemini, DeepSeek and more behind a single API key *alongside* your native provider auth, never instead of it. Set `OPENROUTER_API_KEY` and GDD's tier-resolver adapter dynamically fetches the OpenRouter catalog (24h TTL cache) and maps each tier onto a concrete model via a closed-vs-open + pricing heuristic, with a `.design/config.json#openrouter_tier_overrides` escape hatch for pinning exact ids. When the key is absent or the catalog is unreachable, resolution gracefully falls back to your native provider OpenRouter is purely additive. See [`connections/openrouter.md`](connections/openrouter.md) for setup, the probe pattern, and fallback behavior, and run `/gdd:openrouter-status` to inspect catalog freshness and the resolved tier→model mapping.
105
+ You can route any agent's tier (`opus`/`sonnet`/`haiku`) through **OpenRouter** - an aggregator that fronts Claude, GPT, Llama, Gemini, DeepSeek and more behind a single API key - *alongside* your native provider auth, never instead of it. Set `OPENROUTER_API_KEY` and GDD's tier-resolver adapter dynamically fetches the OpenRouter catalog (24h TTL cache) and maps each tier onto a concrete model via a closed-vs-open + pricing heuristic, with a `.design/config.json#openrouter_tier_overrides` escape hatch for pinning exact ids. When the key is absent or the catalog is unreachable, resolution gracefully falls back to your native provider - OpenRouter is purely additive. See [`connections/openrouter.md`](connections/openrouter.md) for setup, the probe pattern, and fallback behavior, and run `/gdd:openrouter-status` to inspect catalog freshness and the resolved tier→model mapping.
106
106
 
107
107
  ### Native mobile output (v1.34.1)
108
108
 
109
- GDD now generates **native mobile** UI, not just web. A project-type detector routes the brief to the matching executor web stays the default; `native-ios` / `native-android` / `flutter` opt in via the brief plus `package.json` / `pubspec.yaml` / `*.xcodeproj` presence:
109
+ GDD now generates **native mobile** UI, not just web. A project-type detector routes the brief to the matching executor - web stays the default; `native-ios` / `native-android` / `flutter` opt in via the brief plus `package.json` / `pubspec.yaml` / `*.xcodeproj` presence:
110
110
 
111
- - **[`swift-executor`](agents/swift-executor.md)** compilable **SwiftUI** views per iOS conventions (navigation, safe areas, SF Pro Dynamic Type).
112
- - **[`compose-executor`](agents/compose-executor.md)** **Jetpack Compose** Material 3 composables (Kotlin), edge-to-edge with the Material 3 `sp` type scale.
113
- - **[`flutter-executor`](agents/flutter-executor.md)** one Dart codebase that adapts the theme **per target**: Material 3 for web/Android, Cupertino for iOS.
111
+ - **[`swift-executor`](agents/swift-executor.md)** - compilable **SwiftUI** views per iOS conventions (navigation, safe areas, SF Pro Dynamic Type).
112
+ - **[`compose-executor`](agents/compose-executor.md)** - **Jetpack Compose** Material 3 composables (Kotlin), edge-to-edge with the Material 3 `sp` type scale.
113
+ - **[`flutter-executor`](agents/flutter-executor.md)** - one Dart codebase that adapts the theme **per target**: Material 3 for web/Android, Cupertino for iOS.
114
114
 
115
- All three are fed by a shared **token-bridge** ([`reference/native-platforms.md`](reference/native-platforms.md)) that extends the Phase-23 token engine with `swift`/`compose`/`flutter` emitters mapping your canonical tokens (`#3B82F6`, `16px`, `Inter`) deterministically onto each platform's theme primitives (`Color`/`Font`, `MaterialTheme`, `ThemeData`) with a documented, round-trippable precision contract, so the executors never hand-author colour or dimension math. Rendered verification via the iOS Simulator / Android emulator is **optional** when no simulator is present the verify stage degrades to a code-only structural audit (the simulator only *adds* rendered confirmation).
115
+ All three are fed by a shared **token-bridge** ([`reference/native-platforms.md`](reference/native-platforms.md)) that extends the Phase-23 token engine with `swift`/`compose`/`flutter` emitters - mapping your canonical tokens (`#3B82F6`, `16px`, `Inter`) deterministically onto each platform's theme primitives (`Color`/`Font`, `MaterialTheme`, `ThemeData`) with a documented, round-trippable precision contract, so the executors never hand-author colour or dimension math. Rendered verification via the iOS Simulator / Android emulator is **optional** - when no simulator is present the verify stage degrades to a code-only structural audit (the simulator only *adds* rendered confirmation).
116
116
 
117
117
  ### Email output (v1.34.2)
118
118
 
119
- GDD also generates **email templates** the project-type detector routes an `email` brief to a dedicated executor that honors the real client constraints web HTML/CSS breaks on:
119
+ GDD also generates **email templates** - the project-type detector routes an `email` brief to a dedicated executor that honors the real client constraints web HTML/CSS breaks on:
120
120
 
121
- - **[`email-executor`](agents/email-executor.md)** generates one email per task as **MJML source (canonical) + the derived HTML**, against the constraint catalogue, with the static validator as its own self-check. It is an agent-prompt, not a compiler **no `mjml` runtime, no Litmus account, no network** is needed to produce the email.
121
+ - **[`email-executor`](agents/email-executor.md)** - generates one email per task as **MJML source (canonical) + the derived HTML**, against the constraint catalogue, with the static validator as its own self-check. It is an agent-prompt, not a compiler - **no `mjml` runtime, no Litmus account, no network** is needed to produce the email.
122
122
 
123
- The constraints live in [`reference/email-design.md`](reference/email-design.md) table-based layout (no flexbox/grid/`position`), inline styles (no `<style>` sheet in Gmail), MSO conditional comments for Outlook's Word engine, dark-mode `color-scheme` handling, ~600px width, and the top-20-client quirks. A deterministic static checker ([`scripts/lib/email/validate-email-html.cjs`](scripts/lib/email/validate-email-html.cjs)) flags the statically-verifiable subset (`EM-LAYOUT`/`EM-STYLE`/`EM-MSO`/`EM-DARK`). Cross-client rendered verification via [`Litmus`](connections/litmus.md) (or Email-on-Acid) is **optional** when absent the verify stage degrades to the static validator. Email generation is opt-in; **web stays the default**.
123
+ The constraints live in [`reference/email-design.md`](reference/email-design.md) - table-based layout (no flexbox/grid/`position`), inline styles (no `<style>` sheet in Gmail), MSO conditional comments for Outlook's Word engine, dark-mode `color-scheme` handling, ~600px width, and the top-20-client quirks. A deterministic static checker ([`scripts/lib/email/validate-email-html.cjs`](scripts/lib/email/validate-email-html.cjs)) flags the statically-verifiable subset (`EM-LAYOUT`/`EM-STYLE`/`EM-MSO`/`EM-DARK`). Cross-client rendered verification via [`Litmus`](connections/litmus.md) (or Email-on-Acid) is **optional** - when absent the verify stage degrades to the static validator. Email generation is opt-in; **web stays the default**.
124
124
 
125
125
  ### Print/PDF output (v1.34.3)
126
126
 
127
- GDD also generates **print/PDF** output the project-type detector routes a `print` brief to a dedicated executor that honors the production constraints screen-RGB web HTML ignores. This **completes the Non-Web Output Layer** (native + email + print all shipped):
127
+ GDD also generates **print/PDF** output - the project-type detector routes a `print` brief to a dedicated executor that honors the production constraints screen-RGB web HTML ignores. This **completes the Non-Web Output Layer** (native + email + print all shipped):
128
128
 
129
- - **[`pdf-executor`](agents/pdf-executor.md)** generates **Paged.js-compatible print HTML/CSS** (with PDFKit-fallback notes for Chrome-less runtimes) against the constraint catalogue, with the static validator as its own self-check. It is an agent-prompt, not a compiler **no headless Chrome, no PDFKit, no network** is needed to produce the print HTML/CSS.
129
+ - **[`pdf-executor`](agents/pdf-executor.md)** - generates **Paged.js-compatible print HTML/CSS** (with PDFKit-fallback notes for Chrome-less runtimes) against the constraint catalogue, with the static validator as its own self-check. It is an agent-prompt, not a compiler - **no headless Chrome, no PDFKit, no network** is needed to produce the print HTML/CSS.
130
130
 
131
- The constraints live in [`reference/print-design.md`](reference/print-design.md) the `@page` box model (size/margin/marks), bleed box + crop/registration marks, CMYK color-space awareness (print is subtractive CMYK, not screen RGB), font embedding/outlining (print RIPs have no web fonts), and a 300dpi raster fallback. A deterministic static checker ([`scripts/lib/print/validate-print-css.cjs`](scripts/lib/print/validate-print-css.cjs)) flags the statically-verifiable subset (`PR-PAGE`/`PR-BLEED`/`PR-CMYK`/`PR-FONT`/`PR-DPI`). Rendered PDF/page verification via the optional [`print-renderer`](connections/print-renderer.md) connection (Paged.js/headless-Chrome or PDFKit) is **optional** when absent the verify stage degrades to the static validator. Print generation is opt-in; **web stays the default**.
131
+ The constraints live in [`reference/print-design.md`](reference/print-design.md) - the `@page` box model (size/margin/marks), bleed box + crop/registration marks, CMYK color-space awareness (print is subtractive CMYK, not screen RGB), font embedding/outlining (print RIPs have no web fonts), and a 300dpi raster fallback. A deterministic static checker ([`scripts/lib/print/validate-print-css.cjs`](scripts/lib/print/validate-print-css.cjs)) flags the statically-verifiable subset (`PR-PAGE`/`PR-BLEED`/`PR-CMYK`/`PR-FONT`/`PR-DPI`). Rendered PDF/page verification via the optional [`print-renderer`](connections/print-renderer.md) connection (Paged.js/headless-Chrome or PDFKit) is **optional** - when absent the verify stage degrades to the static validator. Print generation is opt-in; **web stays the default**.
132
132
 
133
- ### Research connections Lazyweb + Mobbin (v1.34.4)
133
+ ### Research connections - Lazyweb + Mobbin (v1.34.4)
134
134
 
135
- The **discover** stage grounds design in real product references, resolving sources **cost-aware the free source is tried before any paid one**. [`Lazyweb`](connections/lazyweb.md) (free MCP, 250k+ app screens pricing pages, onboarding, redesign comparisons) is **Tier 1, always first**; [`Mobbin`](connections/mobbin.md) (paid MCP, 600k+ screens / 130k+ flows mobile + flow-level) and [`Refero`](connections/refero.md) are **Tier 2** (use whichever you subscribe to), then Pinterest → local archetypes → WebFetch. Both are optional user-installed MCPs (**no new runtime dependency**), onboardable via `/gdd:connections`.
135
+ The **discover** stage grounds design in real product references, resolving sources **cost-aware - the free source is tried before any paid one**. [`Lazyweb`](connections/lazyweb.md) (free MCP, 250k+ app screens - pricing pages, onboarding, redesign comparisons) is **Tier 1, always first**; [`Mobbin`](connections/mobbin.md) (paid MCP, 600k+ screens / 130k+ flows - mobile + flow-level) and [`Refero`](connections/refero.md) are **Tier 2** (use whichever you subscribe to), then Pinterest → local archetypes → WebFetch. Both are optional user-installed MCPs (**no new runtime dependency**), onboardable via `/gdd:connections`.
136
136
 
137
- ### Team surfaces PR inline review (v1.35.1)
137
+ ### Team surfaces - PR inline review (v1.35.1)
138
138
 
139
- After `/gdd:ship` opens the PR, the [`pr-commenter`](agents/pr-commenter.md) agent posts GDD's verify/audit output **inline** on it: selector-specific findings as inline review comments on changed lines, Preview/Chromatic before-after screenshot pairs, and a `gdd/design-review` status check (audit pillar scores + verify pass/fail + a11y) that a teammate's branch protection can require. Outbound bodies are redacted; `GDD_DISABLE_PR_COMMENTER` (or `.design/config.json`) is the kill-switch; it degrades to a noop (prints bodies for manual paste) and **never fails the ship**. Uses `gh` only **no new runtime dependency**. First sub-phase of the Team Surfaces layer (Slack/Discord notifications + Linear/Jira ticket-sync follow). Contract: [`reference/pr-review-integration.md`](reference/pr-review-integration.md).
139
+ After `/gdd:ship` opens the PR, the [`pr-commenter`](agents/pr-commenter.md) agent posts GDD's verify/audit output **inline** on it: selector-specific findings as inline review comments on changed lines, Preview/Chromatic before-after screenshot pairs, and a `gdd/design-review` status check (audit pillar scores + verify pass/fail + a11y) that a teammate's branch protection can require. Outbound bodies are redacted; `GDD_DISABLE_PR_COMMENTER` (or `.design/config.json`) is the kill-switch; it degrades to a noop (prints bodies for manual paste) and **never fails the ship**. Uses `gh` only - **no new runtime dependency**. First sub-phase of the Team Surfaces layer (Slack/Discord notifications + Linear/Jira ticket-sync follow). Contract: [`reference/pr-review-integration.md`](reference/pr-review-integration.md).
140
140
 
141
- ### Team surfaces Notification backplane (v1.35.2)
141
+ ### Team surfaces - Notification backplane (v1.35.2)
142
142
 
143
- Routes pipeline events (verify-fail / audit-pass / ship) to **Slack** + **Discord** via incoming webhooks ([`connections/slack.md`](connections/slack.md) / [`connections/discord.md`](connections/discord.md)). The dispatcher ([`scripts/lib/notify/dispatch.cjs`](scripts/lib/notify/dispatch.cjs)) redacts every body at a single chokepoint, honors per-channel kill-switches (`GDD_DISABLE_SLACK` / `GDD_DISABLE_DISCORD`), and degrades to a noop when a webhook URL is unset notification never blocks the pipeline. **No new runtime dependency** (injectable `fetch`, no Slack/Discord SDK). Routing: [`reference/notification-routing.md`](reference/notification-routing.md).
143
+ Routes pipeline events (verify-fail / audit-pass / ship) to **Slack** + **Discord** via incoming webhooks ([`connections/slack.md`](connections/slack.md) / [`connections/discord.md`](connections/discord.md)). The dispatcher ([`scripts/lib/notify/dispatch.cjs`](scripts/lib/notify/dispatch.cjs)) redacts every body at a single chokepoint, honors per-channel kill-switches (`GDD_DISABLE_SLACK` / `GDD_DISABLE_DISCORD`), and degrades to a noop when a webhook URL is unset - notification never blocks the pipeline. **No new runtime dependency** (injectable `fetch`, no Slack/Discord SDK). Routing: [`reference/notification-routing.md`](reference/notification-routing.md).
144
144
 
145
- ### Team surfaces Ticket sync (v1.35.3)
145
+ ### Team surfaces - Ticket sync (v1.35.3)
146
146
 
147
147
  Links a design cycle to a **Linear** or **Jira** ticket and keeps them in sync ([`connections/linear.md`](connections/linear.md) / [`connections/jira.md`](connections/jira.md), MCP-based). [`agents/ticket-sync-agent.md`](agents/ticket-sync-agent.md) surfaces the linked ticket's comments as context when a design file opens (via the decision-injector) and, on `/gdd:complete-cycle`, transitions the ticket + posts a **redacted** summary. Per-system kill-switches (`GDD_DISABLE_LINEAR` / `GDD_DISABLE_JIRA`); degrade-to-noop (never gates the cycle). **No new runtime dependency, no new egress** (MCP tools only). Contract: [`reference/ticket-sync.md`](reference/ticket-sync.md). **Completes the Team Surfaces layer** (PR inline + notifications + ticket sync).
148
148
 
149
149
  ### Design-artifact export (v1.35.5)
150
150
 
151
- `/gdd:export <cycle> --format html|pdf|notion` packages a finished cycle's design output (`EXPERIENCE.md`, `DESIGN.md`, `DESIGN-VERIFICATION.md`, the decision log, screenshots) into a stakeholder-shareable artifact for PMs/execs/brand who aren't in the repo. The [`build-html`](scripts/lib/export/build-html.cjs) assembler emits a **self-contained** HTML (inline CSS, base64-embedded screenshots, **zero external references**); `pdf` is the same HTML plus Paged.js-compatible `@page` print CSS you render yourself; `notion` writes a page via the Notion MCP ([`connections/notion.md`](connections/notion.md), degrade-to-HTML). Every artifact is **redacted**; `--pseudonymize` masks identity/paths/hostname for external sharing; `--pr` posts the HTML preview as a PR comment via `pr-commenter`. **No new runtime dependency** (D-02: pure assembler, no PDF/markdown library). Contract: [`reference/export-formats.md`](reference/export-formats.md).
151
+ `/gdd:export <cycle> --format html|pdf|notion` packages a finished cycle's design output (`EXPERIENCE.md`, `DESIGN.md`, `DESIGN-VERIFICATION.md`, the decision log, screenshots) into a stakeholder-shareable artifact - for PMs/execs/brand who aren't in the repo. The [`build-html`](scripts/lib/export/build-html.cjs) assembler emits a **self-contained** HTML (inline CSS, base64-embedded screenshots, **zero external references**); `pdf` is the same HTML plus Paged.js-compatible `@page` print CSS you render yourself; `notion` writes a page via the Notion MCP ([`connections/notion.md`](connections/notion.md), degrade-to-HTML). Every artifact is **redacted**; `--pseudonymize` masks identity/paths/hostname for external sharing; `--pr` posts the HTML preview as a PR comment via `pr-commenter`. **No new runtime dependency** (D-02: pure assembler, no PDF/markdown library). Contract: [`reference/export-formats.md`](reference/export-formats.md).
152
152
 
153
- ### Domain packs Knowledge Tier 3 (v1.36.1)
153
+ ### Domain packs - Knowledge Tier 3 (v1.36.1)
154
154
 
155
- Four industry-specific design-pattern packs at [`reference/domains/`](reference/domains/) **finance** (data-table density, trading-UI color semantics, Reg-T/MiFID II disclosure, PCI-DSS masking, number-formatting precision), **healthcare** (HIPAA PHI isolation, audit-trail-as-UI, WCAG 2.1 AAA, medical-data viz), **gaming** (HUD/diegetic taxonomy, vestibular + photosensitive safety, ESRB/PEGI age-gates, controller/touch input adaptation), and **civic** (Section 508 + WCAG 2.1 AA floor, multi-language gov forms, Plain Writing Act, USWDS). The [`design-context-builder`](agents/design-context-builder.md) auto-detects the domain from brief keywords + `package.json` dependencies (`@stripe/`, `fhir`, `@react-three/fiber`, `@uswds/uswds`, …) and loads the matching pack into downstream context; [`design-auditor`](agents/design-auditor.md) folds each pack's audit checklist into the relevant pillar. Additive knowledge no new pillar, no new runtime dependency. First sub-phase of Phase 36 (Motion-tool verification + Conversational UI follow).
155
+ Four industry-specific design-pattern packs at [`reference/domains/`](reference/domains/) - **finance** (data-table density, trading-UI color semantics, Reg-T/MiFID II disclosure, PCI-DSS masking, number-formatting precision), **healthcare** (HIPAA PHI isolation, audit-trail-as-UI, WCAG 2.1 AAA, medical-data viz), **gaming** (HUD/diegetic taxonomy, vestibular + photosensitive safety, ESRB/PEGI age-gates, controller/touch input adaptation), and **civic** (Section 508 + WCAG 2.1 AA floor, multi-language gov forms, Plain Writing Act, USWDS). The [`design-context-builder`](agents/design-context-builder.md) auto-detects the domain from brief keywords + `package.json` dependencies (`@stripe/`, `fhir`, `@react-three/fiber`, `@uswds/uswds`, …) and loads the matching pack into downstream context; [`design-auditor`](agents/design-auditor.md) folds each pack's audit checklist into the relevant pillar. Additive knowledge - no new pillar, no new runtime dependency. First sub-phase of Phase 36 (Motion-tool verification + Conversational UI follow).
156
156
 
157
157
  ### Motion-tool verification (v1.36.2)
158
158
 
159
- GDD now opens the motion **exports** a project ships. The pure, dependency-free [`validate-motion`](scripts/lib/motion/validate-motion.cjs) checks a **Lottie** JSON for frame-rate sanity, non-positive duration, embedded-asset bloat, and a perf budget (`MO-*` rules); for **Rive** `.riv` (binary) it does size + a `RIVE`-header sanity, and surfaces the state-machine graph (unreachable states, no-exit loops) when the opt-in Rive runtime is present. The [`motion-verifier`](agents/motion-verifier.md) agent runs at verify time ([`connections/lottie.md`](connections/lottie.md) / [`connections/rive.md`](connections/rive.md)) and **WARNs never blocks** (motion is creative). **No new runtime dependency** the Lottie player and Rive runtime are opt-in. Second sub-phase of Phase 36.
159
+ GDD now opens the motion **exports** a project ships. The pure, dependency-free [`validate-motion`](scripts/lib/motion/validate-motion.cjs) checks a **Lottie** JSON for frame-rate sanity, non-positive duration, embedded-asset bloat, and a perf budget (`MO-*` rules); for **Rive** `.riv` (binary) it does size + a `RIVE`-header sanity, and surfaces the state-machine graph (unreachable states, no-exit loops) when the opt-in Rive runtime is present. The [`motion-verifier`](agents/motion-verifier.md) agent runs at verify time ([`connections/lottie.md`](connections/lottie.md) / [`connections/rive.md`](connections/rive.md)) and **WARNs - never blocks** (motion is creative). **No new runtime dependency** - the Lottie player and Rive runtime are opt-in. Second sub-phase of Phase 36.
160
160
 
161
161
  ### Conversational UI (v1.36.3)
162
162
 
163
- [`reference/conversational-ui.md`](reference/conversational-ui.md) closes a zero-coverage surface: voice flows + chatbots. It codifies voice-flow reprompts (no-input / no-match → human handoff), multi-turn dialogue (context carryover, slot-filling, repair), **prompt-as-UX** (the assistant's persona/tone/boundaries as a versioned design artifact), chatbot empty-states + suggested replies, voice-first onboarding, and error recovery + accessibility. [`design-context-builder`](agents/design-context-builder.md) detects a `conversational` project type (brief keywords + chatbot/voice deps like `botpress` / `dialogflow` / `actions-on-google` / `ask-sdk-core`) and loads the pack into context. **No new runtime dependency.** This is the **final sub-phase of Phase 36 which is now complete** (domain packs + motion-tool verification + conversational UI).
163
+ [`reference/conversational-ui.md`](reference/conversational-ui.md) closes a zero-coverage surface: voice flows + chatbots. It codifies voice-flow reprompts (no-input / no-match → human handoff), multi-turn dialogue (context carryover, slot-filling, repair), **prompt-as-UX** (the assistant's persona/tone/boundaries as a versioned design artifact), chatbot empty-states + suggested replies, voice-first onboarding, and error recovery + accessibility. [`design-context-builder`](agents/design-context-builder.md) detects a `conversational` project type (brief keywords + chatbot/voice deps like `botpress` / `dialogflow` / `actions-on-google` / `ask-sdk-core`) and loads the pack into context. **No new runtime dependency.** This is the **final sub-phase of Phase 36 - which is now complete** (domain packs + motion-tool verification + conversational UI).
164
164
 
165
- ### AI-native tools Wave 2 (v1.37.1)
165
+ ### AI-native tools - Wave 2 (v1.37.1)
166
166
 
167
- Six more AI-native design tools join the connection layer (Phase 14's backlog, now scheduled): **Framer**, **Penpot**, and **Webflow** (canvas-category read frames/boards/structure as design sources) plus **v0.dev**, **Plasmic**, and **Builder.io** (generator-category prompt→component, wired into [`design-component-generator`](agents/design-component-generator.md) as `<!-- impl: -->` sections). Plasmic is dual (canvas + generator). Onboarding grows 21 → 27. Each is an opt-in MCP/API connection that degrades to code-only when absent **no new runtime dependency**. First sub-phase of Phase 37 (Greenfield DS Bootstrap follows).
167
+ Six more AI-native design tools join the connection layer (Phase 14's backlog, now scheduled): **Framer**, **Penpot**, and **Webflow** (canvas-category - read frames/boards/structure as design sources) plus **v0.dev**, **Plasmic**, and **Builder.io** (generator-category - prompt→component, wired into [`design-component-generator`](agents/design-component-generator.md) as `<!-- impl: -->` sections). Plasmic is dual (canvas + generator). Onboarding grows 21 → 27. Each is an opt-in MCP/API connection that degrades to code-only when absent - **no new runtime dependency**. First sub-phase of Phase 37 (Greenfield DS Bootstrap follows).
168
168
 
169
169
  ### Greenfield design-system bootstrap (v1.37.2)
170
170
 
@@ -172,46 +172,46 @@ Six more AI-native design tools join the connection layer (Phase 14's backlog, n
172
172
 
173
173
  ### Outcome-driven adaptation (v1.38.0)
174
174
 
175
- GDD now learns **which design patterns win with users**, not just which pass lint. `/gdd:design --variants N` emits N competing, hypothesis-tagged variants; a new `design_arms` posterior ([`design-arms-store`](scripts/lib/ds-arms/design-arms-store.cjs) Beta(2,8), distinct from the routing bandit) consults prior outcomes to bias generation (**advisory, never directive**). Two read-only external signal sources close the loop: **A/B experiments** ([LaunchDarkly / Statsig / GrowthBook](connections/launchdarkly.md) → [`experiment-result-ingester`](agents/experiment-result-ingester.md)) and **user research** ([UserTesting / Maze / Hotjar](connections/usertesting.md) → [`user-research-synthesizer`](agents/user-research-synthesizer.md)), the latter **pseudonymized before any agent context** (a tested PII guard). Findings populate the brief's `<prior-research>` block, which verify cross-checks. **No new runtime dependency.** Onboarding 27 → 33.
175
+ GDD now learns **which design patterns win with users**, not just which pass lint. `/gdd:design --variants N` emits N competing, hypothesis-tagged variants; a new `design_arms` posterior ([`design-arms-store`](scripts/lib/ds-arms/design-arms-store.cjs) - Beta(2,8), distinct from the routing bandit) consults prior outcomes to bias generation (**advisory, never directive**). Two read-only external signal sources close the loop: **A/B experiments** ([LaunchDarkly / Statsig / GrowthBook](connections/launchdarkly.md) → [`experiment-result-ingester`](agents/experiment-result-ingester.md)) and **user research** ([UserTesting / Maze / Hotjar](connections/usertesting.md) → [`user-research-synthesizer`](agents/user-research-synthesizer.md)), the latter **pseudonymized before any agent context** (a tested PII guard). Findings populate the brief's `<prior-research>` block, which verify cross-checks. **No new runtime dependency.** Onboarding 27 → 33.
176
176
 
177
177
  ### Deployment coordination (v1.38.5)
178
178
 
179
- GDD now tracks a design past "PR merged" to **actually live**. [`/gdd:rollout-status`](skills/rollout-status/SKILL.md) reads the feature-flag service (the Phase 38 LaunchDarkly/Statsig/GrowthBook connections) via [`rollout-coordinator`](agents/rollout-coordinator.md) and classifies each cycle `unrolled` / `staging-only` / `canary-N%` / `prod-100%` surfacing **stuck** rollouts (a canary that hasn't advanced in N days). The pure [`rollout-status`](scripts/lib/rollout/rollout-status.cjs) classifier also computes a **deployed-percentage weight** that feeds the `design_arms` posterior via `verify_outcome` events a variant that only reached 10% of users counts as weak evidence (0.1), a fully-rolled one counts 1.0. **Read-only** (GDD never advances or rolls back) and **no new runtime dependency**.
179
+ GDD now tracks a design past "PR merged" to **actually live**. [`/gdd:rollout-status`](skills/rollout-status/SKILL.md) reads the feature-flag service (the Phase 38 LaunchDarkly/Statsig/GrowthBook connections) via [`rollout-coordinator`](agents/rollout-coordinator.md) and classifies each cycle - `unrolled` / `staging-only` / `canary-N%` / `prod-100%` - surfacing **stuck** rollouts (a canary that hasn't advanced in N days). The pure [`rollout-status`](scripts/lib/rollout/rollout-status.cjs) classifier also computes a **deployed-percentage weight** that feeds the `design_arms` posterior via `verify_outcome` events - a variant that only reached 10% of users counts as weak evidence (0.1), a fully-rolled one counts 1.0. **Read-only** (GDD never advances or rolls back) and **no new runtime dependency**.
180
180
 
181
181
  ### DS migration workflows (v1.39.1)
182
182
 
183
- When a design system ships a breaking major shadcn/ui v1→v2, Tailwind v3→v4, MUI v5→v6, or the Material 2/3 token rename GDD detects the skew from the in-repo `package.json`, consults a curated rule library ([`reference/migrations/`](reference/migrations/)), and produces an **impact-scored, proposal-only** migration plan via [`ds-migration-planner`](agents/ds-migration-planner.md). Each affected component is scored by visual-delta × usage × tests-affected, and the planner emits codemod scaffolds to `.design/migration/` through the pure [`codemod-gen`](scripts/lib/migration/codemod-gen.cjs) which produces jscodeshift/ast-grep template **text only** (it never imports or runs a codemod engine). [`design-verifier`](agents/design-verifier.md) then treats an in-flight migration as a contract: visual-diff within threshold, component API surface unchanged, tests green, and an unmigrated high-impact rule is a gap. **Proposal-only, no new runtime dependency, no new egress.**
183
+ When a design system ships a breaking major - shadcn/ui v1→v2, Tailwind v3→v4, MUI v5→v6, or the Material 2/3 token rename - GDD detects the skew from the in-repo `package.json`, consults a curated rule library ([`reference/migrations/`](reference/migrations/)), and produces an **impact-scored, proposal-only** migration plan via [`ds-migration-planner`](agents/ds-migration-planner.md). Each affected component is scored by visual-delta × usage × tests-affected, and the planner emits codemod scaffolds to `.design/migration/` through the pure [`codemod-gen`](scripts/lib/migration/codemod-gen.cjs) - which produces jscodeshift/ast-grep template **text only** (it never imports or runs a codemod engine). [`design-verifier`](agents/design-verifier.md) then treats an in-flight migration as a contract: visual-diff within threshold, component API surface unchanged, tests green, and an unmigrated high-impact rule is a gap. **Proposal-only, no new runtime dependency, no new egress.**
184
184
 
185
185
  ### Long-horizon cost governance (v1.39.2)
186
186
 
187
- GDD already tracks cost per task and per runtime now it **forecasts** it, **caps** it at the project level, and shows whether the spend **shipped**. [`/gdd:budget`](skills/budget/SKILL.md) groups `costs.jsonl` by cycle and (via [`cost-forecaster`](agents/cost-forecaster.md) → the pure [`cost-forecast`](scripts/lib/budget/cost-forecast.cjs)) projects the next N cycles in **best / typical / worst** scenarios "at the current rate you'll hit your $X project cap in Y cycles." A new `budget.json.project_cap_usd` adds a **project-level hard cap**: the [`budget-enforcer`](hooks/budget-enforcer.ts) hook warns at 50% + 80% and **gracefully halts** the next agent spawn at 100% (via the pure [`project-cap`](scripts/lib/budget/project-cap.cjs) classifier) **disabled by default**, so existing users are unaffected. [`/gdd:roi`](skills/roi/SKILL.md) joins per-cycle cost with commits that shipped (survived ≥ 14 days) vs reverted into a cost-per-shipped-commit table ([`roi`](scripts/lib/budget/roi.cjs)). **No new runtime dependency, no new egress** the hook only ever blocks, never spends.
187
+ GDD already tracks cost per task and per runtime - now it **forecasts** it, **caps** it at the project level, and shows whether the spend **shipped**. [`/gdd:budget`](skills/budget/SKILL.md) groups `costs.jsonl` by cycle and (via [`cost-forecaster`](agents/cost-forecaster.md) → the pure [`cost-forecast`](scripts/lib/budget/cost-forecast.cjs)) projects the next N cycles in **best / typical / worst** scenarios - "at the current rate you'll hit your $X project cap in Y cycles." A new `budget.json.project_cap_usd` adds a **project-level hard cap**: the [`budget-enforcer`](hooks/budget-enforcer.ts) hook warns at 50% + 80% and **gracefully halts** the next agent spawn at 100% (via the pure [`project-cap`](scripts/lib/budget/project-cap.cjs) classifier) - **disabled by default**, so existing users are unaffected. [`/gdd:roi`](skills/roi/SKILL.md) joins per-cycle cost with commits that shipped (survived ≥ 14 days) vs reverted into a cost-per-shipped-commit table ([`roi`](scripts/lib/budget/roi.cjs)). **No new runtime dependency, no new egress** - the hook only ever blocks, never spends.
188
188
 
189
189
  ### GDD self-migration (v1.39.5)
190
190
 
191
- GDD migrates *your* design systems (above) now it migrates **itself**. When GDD ships a breaking path change (like the Phase 31.5 `scripts/lib/**` → `sdk/**` reorg), a machine-readable registry in [`reference/DEPRECATIONS.md`](reference/DEPRECATIONS.md) records `Since · Removed in · Old · New · hint`. After an upgrade, [`/gdd:update`](skills/update/SKILL.md) flags anything that crossed into deprecated/removed, and [`/gdd:migrate`](skills/migrate/SKILL.md) rewrites your project's stale references **previewing a diff first, never silent** via the pure [`deprecation-registry`](scripts/lib/deprecation-registry.cjs). Two CI gates keep the system honest: a completeness check (every entry has a shim or a confirmed removal) and `lint-changelog` (every future minor must declare a `### Breaking changes` section). **No new runtime dependency, no new egress.**
191
+ GDD migrates *your* design systems (above) - now it migrates **itself**. When GDD ships a breaking path change (like the Phase 31.5 `scripts/lib/**` → `sdk/**` reorg), a machine-readable registry in [`reference/DEPRECATIONS.md`](reference/DEPRECATIONS.md) records `Since · Removed in · Old · New · hint`. After an upgrade, [`/gdd:update`](skills/update/SKILL.md) flags anything that crossed into deprecated/removed, and [`/gdd:migrate`](skills/migrate/SKILL.md) rewrites your project's stale references - **previewing a diff first, never silent** - via the pure [`deprecation-registry`](scripts/lib/deprecation-registry.cjs). Two CI gates keep the system honest: a completeness check (every entry has a shim or a confirmed removal) and `lint-changelog` (every future minor must declare a `### Breaking changes` section). **No new runtime dependency, no new egress.**
192
192
 
193
193
  ### Team collaboration mode (v1.40.0)
194
194
 
195
- GDD's single-operator baseline now extends to **teams** git-native + advisory, no server. Two developers working a cycle on parallel branches merge their `.design/STATE.md` **per section** ([`section-merge`](scripts/lib/collab/section-merge.cjs) unions decisions by `D-id`; a real conflict is only a same-id divergence, which [`conflict-resolver`](agents/conflict-resolver.md) reconciles with human confirmation never auto-picking or dropping a decision). Decisions carry optional `[author= co-author=]` attribution, move through an async review queue (`proposed → reviewing → approved → locked`) with **hard locks** (the only escape is an audited [`/gdd:unlock-decision`](skills/unlock-decision/SKILL.md)), and [`/gdd:review-decisions`](skills/review-decisions/SKILL.md) surfaces what's pending. [`decision-journal-exporter`](agents/decision-journal-exporter.md) publishes a **pseudonymized, read-only** Notion/Confluence journal for stakeholders who don't run GDD. `gdd_cycle_mode` (designer/dev/full) partitions a cycle by role, a `permissions` model gates per-section writes, and `collab.multi_writer_enabled` switches the advisory lock to a team-mode backoff. The full contract: [`reference/multi-author-model.md`](reference/multi-author-model.md). **Everything is off by default** a single-operator project is unaffected. **No new runtime dependency.**
195
+ GDD's single-operator baseline now extends to **teams** - git-native + advisory, no server. Two developers working a cycle on parallel branches merge their `.design/STATE.md` **per section** ([`section-merge`](scripts/lib/collab/section-merge.cjs) unions decisions by `D-id`; a real conflict is only a same-id divergence, which [`conflict-resolver`](agents/conflict-resolver.md) reconciles with human confirmation - never auto-picking or dropping a decision). Decisions carry optional `[author= co-author=]` attribution, move through an async review queue (`proposed → reviewing → approved → locked`) with **hard locks** (the only escape is an audited [`/gdd:unlock-decision`](skills/unlock-decision/SKILL.md)), and [`/gdd:review-decisions`](skills/review-decisions/SKILL.md) surfaces what's pending. [`decision-journal-exporter`](agents/decision-journal-exporter.md) publishes a **pseudonymized, read-only** Notion/Confluence journal for stakeholders who don't run GDD. `gdd_cycle_mode` (designer/dev/full) partitions a cycle by role, a `permissions` model gates per-section writes, and `collab.multi_writer_enabled` switches the advisory lock to a team-mode backoff. The full contract: [`reference/multi-author-model.md`](reference/multi-author-model.md). **Everything is off by default** - a single-operator project is unaffected. **No new runtime dependency.**
196
196
 
197
197
  ### CLI localization (v1.40.5)
198
198
 
199
- GDD's README is multilingual now its **CLI** is too. [`/gdd:locale <code>`](skills/locale/SKILL.md) sets the language of `--help`, common error messages, and skill prompt headers, resolved by [`scripts/lib/i18n`](scripts/lib/i18n/index.cjs) (precedence: `config.locale` > env `LANG` > `en`; fallback chain `locale → base → en`). Flat-JSON message tables ship for **en** (complete source), **ru** (full), and **uk/de/fr/zh/ja** placeholders a missing key always falls back to English, so a partial locale never breaks the CLI. Skills + agents can carry an opt-in `description_i18n` map. Adding a locale is a PR: translate the table, add a `NOTICE` credit (the contribution path is in [`reference/cli-localization.md`](reference/cli-localization.md)). Completeness is **warn-only**. **No new runtime dependency.**
199
+ GDD's README is multilingual - now its **CLI** is too. [`/gdd:locale <code>`](skills/locale/SKILL.md) sets the language of `--help`, common error messages, and skill prompt headers, resolved by [`scripts/lib/i18n`](scripts/lib/i18n/index.cjs) (precedence: `config.locale` > env `LANG` > `en`; fallback chain `locale → base → en`). Flat-JSON message tables ship for **en** (complete source), **ru** (full), and **uk/de/fr/zh/ja** placeholders - a missing key always falls back to English, so a partial locale never breaks the CLI. Skills + agents can carry an opt-in `description_i18n` map. Adding a locale is a PR: translate the table, add a `NOTICE` credit (the contribution path is in [`reference/cli-localization.md`](reference/cli-localization.md)). Completeness is **warn-only**. **No new runtime dependency.**
200
200
 
201
- ### Deterministic anti-pattern CLI `gdd-detect` (v1.41.0)
201
+ ### Deterministic anti-pattern CLI - `gdd-detect` (v1.41.0)
202
202
 
203
- GDD's BAN-NN anti-pattern catalogue is now executable. [`gdd-detect`](bin/gdd-detect) is a **dep-free, offline** Node CLI that scans HTML/CSS/JSX for the 11 statically-detectable BAN rules ([`scripts/lib/detect/rules/`](scripts/lib/detect/)) `transition: all`, `will-change: all`, gradient text, bounce easing, `scale(0)` entry, naked `outline: none`, pure-black dark mode, disabled zoom, tinted image outline each finding linked to its [`reference/anti-patterns.md`](reference/anti-patterns.md) paragraph. `gdd-detect <path> [--json] [--fast] [--rule BAN-NN]` exits `0` clean / `2` findings / `1` error. The rule files are the canonical executable; the markdown stays canonical prose; [`sync-rule-catalogue`](scripts/sync-rule-catalogue.cjs) keeps them in parity. `npm run lint:design` is the CI gate; an opt-in pre-commit scaffold ships too. `design-auditor` and the Phase-25 quality-gate consume it; `jsdom`/`puppeteer` are soft-optional (regex-fast is the default). **No new runtime dependency.**
203
+ GDD's BAN-NN anti-pattern catalogue is now executable. [`gdd-detect`](bin/gdd-detect) is a **dep-free, offline** Node CLI that scans HTML/CSS/JSX for the 11 statically-detectable BAN rules ([`scripts/lib/detect/rules/`](scripts/lib/detect/)) - `transition: all`, `will-change: all`, gradient text, bounce easing, `scale(0)` entry, naked `outline: none`, pure-black dark mode, disabled zoom, tinted image outline - each finding linked to its [`reference/anti-patterns.md`](reference/anti-patterns.md) paragraph. `gdd-detect <path> [--json] [--fast] [--rule BAN-NN]` exits `0` clean / `2` findings / `1` error. The rule files are the canonical executable; the markdown stays canonical prose; [`sync-rule-catalogue`](scripts/sync-rule-catalogue.cjs) keeps them in parity. `npm run lint:design` is the CI gate; an opt-in pre-commit scaffold ships too. `design-auditor` and the Phase-25 quality-gate consume it; `jsdom`/`puppeteer` are soft-optional (regex-fast is the default). **No new runtime dependency.**
204
204
 
205
205
  ### Previous releases
206
206
 
207
- - **v1.26.0** Headless Model Resolver (per-runtime tier→model map, `resolved_models` router field, per-runtime price tables, `reasoning-class` runtime-neutral alias).
208
- - **v1.25.0** Pipeline Hardening (prototype gate + STATE `<prototyping>` block, router S/M/L/XL `complexity_class`, quality-gate Stage 4.5, Stop-hook turn closeout).
209
- - **v1.24.0** Multi-Runtime Installer (`@clack/prompts` interactive multi-select for all 14 runtimes, idempotent + foreign-AGENTS.md-safe, scripted CI surface preserved 1:1).
210
- - **v1.23.5** No-Regret Adaptive Layer (Thompson sampling bandit + AdaNormalHedge ensemble + MMR rerank; single-user via informed-prior bootstrap, no opt-in telemetry).
211
- - **v1.23.0** SDK Domain Primitives (solidify-with-rollback gate, JSON output contracts, auto-crystallization of `Touches:` patterns).
212
- - **v1.22.0** SDK Observability (~24 typed event types, per-tool-call trajectory, append-only event chain, secret scrubber).
213
- - **v1.21.0** Headless SDK (`gdd-sdk` CLI runs full pipeline without Claude Code, parallel researchers, cross-harness MCP).
214
- - **v1.20.0** SDK Foundation (resilience primitives, lockfile-safe `STATE.md`, `gdd-state` MCP server with 11 typed tools, TypeScript foundation).
207
+ - **v1.26.0** - Headless Model Resolver (per-runtime tier→model map, `resolved_models` router field, per-runtime price tables, `reasoning-class` runtime-neutral alias).
208
+ - **v1.25.0** - Pipeline Hardening (prototype gate + STATE `<prototyping>` block, router S/M/L/XL `complexity_class`, quality-gate Stage 4.5, Stop-hook turn closeout).
209
+ - **v1.24.0** - Multi-Runtime Installer (`@clack/prompts` interactive multi-select for all 14 runtimes, idempotent + foreign-AGENTS.md-safe, scripted CI surface preserved 1:1).
210
+ - **v1.23.5** - No-Regret Adaptive Layer (Thompson sampling bandit + AdaNormalHedge ensemble + MMR rerank; single-user via informed-prior bootstrap, no opt-in telemetry).
211
+ - **v1.23.0** - SDK Domain Primitives (solidify-with-rollback gate, JSON output contracts, auto-crystallization of `Touches:` patterns).
212
+ - **v1.22.0** - SDK Observability (~24 typed event types, per-tool-call trajectory, append-only event chain, secret scrubber).
213
+ - **v1.21.0** - Headless SDK (`gdd-sdk` CLI runs full pipeline without Claude Code, parallel researchers, cross-harness MCP).
214
+ - **v1.20.0** - SDK Foundation (resilience primitives, lockfile-safe `STATE.md`, `gdd-state` MCP server with 11 typed tools, TypeScript foundation).
215
215
 
216
216
  For full release notes see [CHANGELOG.md](CHANGELOG.md).
217
217
 
@@ -238,10 +238,14 @@ npx @hegemonart/get-design-done@latest
238
238
  ```
239
239
 
240
240
  The installer prompts you to choose:
241
- 1. **Runtime** Claude Code, OpenCode, Gemini, Kilo, Codex, Copilot, Cursor, Windsurf, Antigravity, Augment, Trae, Qwen Code, CodeBuddy, Cline, or all (interactive multi-select pick multiple runtimes in a single session)
242
- 2. **Location** Global (all projects) or local (current project only)
241
+ 1. **Runtime** - Claude Code, OpenCode, Gemini, Kilo, Codex, Copilot, Cursor, Windsurf, Antigravity, Augment, Trae, Qwen Code, CodeBuddy, Cline, or all (interactive multi-select - pick multiple runtimes in a single session)
242
+ 2. **Location** - Global (all projects) or local (current project only)
243
243
 
244
- All 14 runtimes receive their native artifact layout (`skills/`, `command/`, `agents/`, or `.clinerules`) via per-runtime content converters Claude SKILL.md sources are translated to each runtime's expected shape at install time (frontmatter pass-through, path rewrite, tool-name rewrite via the Phase 21 cross-harness maps). Architecture ported from `gsd-build/get-shit-done` (MIT see `NOTICE`; upstream is now archived following the May 2026 $GSD token rug-pull, community continuation lives at [`open-gsd/get-shit-done-redux`](https://github.com/open-gsd/get-shit-done-redux)).
244
+ All 14 runtimes receive their native artifact layout (`skills/`, `command/`, `agents/`, or `.clinerules`) via per-runtime content converters - Claude SKILL.md sources are translated to each runtime's expected shape at install time (frontmatter pass-through, path rewrite, tool-name rewrite via the Phase 21 cross-harness maps). Architecture ported from `gsd-build/get-shit-done` (MIT - see `NOTICE`; upstream is now archived following the May 2026 $GSD token rug-pull, community continuation lives at [`open-gsd/get-shit-done-redux`](https://github.com/open-gsd/get-shit-done-redux)).
245
+
246
+ **Multi-harness compilation (v1.42.0).** Skills are authored once in `source/skills/` with placeholders (`{{command_prefix}}`, `{{model}}`, `{{config_file}}`, `{{ask_instruction}}`) and compiled per-harness by `scripts/build-skills.cjs` (`npm run build:skills`, or `gdd-sdk build skills`) using a pure transformer factory that reads the single harness manifest at `scripts/lib/manifest/harnesses.json`. The committed `skills/` tree is the regenerated Claude-Code default (CI drift-gates `committed === generated`); the default bundle ships at `dist/claude-code/`, and the other 13 bundles are produced on demand. Adding a 15th harness is one manifest entry. Contributors: edit `source/skills/`, never `skills/` directly - see `reference/skill-placeholders.md` and `reference/DEPRECATIONS.md`.
247
+
248
+ **Editorial quality floor (v1.43.0).** A tool that audits design quality should hold its own prose to the same bar. `npm run lint:prose` is a CI gate that fails on em dashes, prose double hyphens, and AI-prose tells (`load-bearing`, `leverage`, `robust`, `seamless`, ...) across the README, `SKILL.md`, `source/skills/`, `agents/`, `CHANGELOG.md`, and `reference/` (bodies and frontmatter descriptions). Fenced/inline code, HTML comments, and Cyrillic-majority files are skipped. The ruleset lives in `STYLE.md`, generated from the shared denylist at `scripts/lib/manifest/prose-denylist.json`. See `CONTRIBUTING.md`. **No new runtime dependency.**
245
249
 
246
250
  Verify with:
247
251
 
@@ -250,11 +254,11 @@ Verify with:
250
254
  ```
251
255
 
252
256
  > [!TIP]
253
- > Run Claude Code with `--dangerously-skip-permissions` for a frictionless experience. GDD is designed for autonomous multi-stage execution approving each Read and `git commit` defeats the purpose.
257
+ > Run Claude Code with `--dangerously-skip-permissions` for a frictionless experience. GDD is designed for autonomous multi-stage execution - approving each Read and `git commit` defeats the purpose.
254
258
 
255
259
  ### Staying Updated
256
260
 
257
- GDD ships often. Update by re-running the installer (it's idempotent updates registered marketplace entries in place):
261
+ GDD ships often. Update by re-running the installer (it's idempotent - updates registered marketplace entries in place):
258
262
 
259
263
  ```bash
260
264
  npx @hegemonart/get-design-done@latest
@@ -266,7 +270,7 @@ Or from inside Claude Code:
266
270
  /gdd:update
267
271
  ```
268
272
 
269
- `/gdd:update` previews the changelog before applying. Local modifications under `reference/` are preserved if a structural update needs re-stitching, run `/gdd:reapply-patches`. When a new release lands, the SessionStart hook prints a one-line banner gated by state-machine logic so it never interrupts a running stage.
273
+ `/gdd:update` previews the changelog before applying. Local modifications under `reference/` are preserved - if a structural update needs re-stitching, run `/gdd:reapply-patches`. When a new release lands, the SessionStart hook prints a one-line banner gated by state-machine logic so it never interrupts a running stage.
270
274
 
271
275
  <details>
272
276
  <summary><strong>Non-interactive Install (Docker, CI, Scripts)</strong></summary>
@@ -323,7 +327,7 @@ claude plugin marketplace add hegemonart/get-design-done
323
327
  claude plugin install get-design-done@get-design-done
324
328
  ```
325
329
 
326
- This is what the npx installer does for you `npx` just collapses two commands into one.
330
+ This is what the npx installer does for you - `npx` just collapses two commands into one.
327
331
 
328
332
  </details>
329
333
 
@@ -331,36 +335,36 @@ This is what the npx installer does for you — `npx` just collapses two command
331
335
 
332
336
  Beyond the Phase 28.7 file-drop install paths above (which remain the default and continue to work exactly as before), v1.28.8 adds three Tier-2 distribution channels for discovery-driven install:
333
337
 
334
- - **agentskills.io cross-runtime portability.** Our `skills/` are spec-compliant per the [agentskills.io](https://agentskills.io) standard (lint-only path per Phase 28.8 D-13; Phase 28.5 frontmatter contract already matches the 2 required spec fields `name` + `description`; current lint score 38 PASS / 32 WARN / 0 FAIL). Runtimes that claim agentskills.io compatibility (Codex, Kilo, Augment, Hermes, Qwen) can consume our skills directly via that channel see `.planning/research/agentskills-io-compat/<runtime>.md` for per-runtime verification reports.
335
- - **Cursor Marketplace.** Install via Cursor's marketplace UI. Publisher application submitted to Cursor post-merge; live link pending Cursor team review approval (no published SLA) see `docs/cursor-marketplace-field-test.md` for current status. Manifest at `.cursor-plugin/plugin.json`.
338
+ - **agentskills.io cross-runtime portability.** Our `skills/` are spec-compliant per the [agentskills.io](https://agentskills.io) standard (lint-only path per Phase 28.8 D-13; Phase 28.5 frontmatter contract already matches the 2 required spec fields `name` + `description`; current lint score 38 PASS / 32 WARN / 0 FAIL). Runtimes that claim agentskills.io compatibility (Codex, Kilo, Augment, Hermes, Qwen) can consume our skills directly via that channel - see `.planning/research/agentskills-io-compat/<runtime>.md` for per-runtime verification reports.
339
+ - **Cursor Marketplace.** Install via Cursor's marketplace UI. Publisher application submitted to Cursor post-merge; live link pending Cursor team review approval (no published SLA) - see `docs/cursor-marketplace-field-test.md` for current status. Manifest at `.cursor-plugin/plugin.json`.
336
340
  - **Codex Plugin.** Install via Codex's GitHub-URL plugin add:
337
341
 
338
342
  ```bash
339
343
  codex plugin marketplace add hegemonart/get-design-done
340
344
  ```
341
345
 
342
- Works today against any GitHub URL with `.codex-plugin/plugin.json`. Per Phase 28.8 D-14: catalog discovery reuses `.claude-plugin/marketplace.json` no separate Codex catalog file required.
346
+ Works today against any GitHub URL with `.codex-plugin/plugin.json`. Per Phase 28.8 D-14: catalog discovery reuses `.claude-plugin/marketplace.json` - no separate Codex catalog file required.
343
347
 
344
- Tier-1 file-drop paths above and Tier-2 channels here are **additive opt-in** both work independently per Phase 28.8 D-05 backward-compat discipline.
348
+ Tier-1 file-drop paths above and Tier-2 channels here are **additive opt-in** - both work independently per Phase 28.8 D-05 backward-compat discipline.
345
349
 
346
350
  ### Capability-Gap Telemetry + Self-Authoring (v1.29.0+)
347
351
 
348
- The reflector loop now tracks "capability lookup failed" signals as first-class telemetry and once enough recurring gaps surface can draft new agents or skills as proposals for your review.
352
+ The reflector loop now tracks "capability lookup failed" signals as first-class telemetry and - once enough recurring gaps surface - can draft new agents or skills as proposals for your review.
349
353
 
350
- **Stage 0 telemetry (ships immediately).**
351
- Three lookup-fail points now emit typed `capability_gap` events: `skills/fast` no-skill-match paths, `gdd-router` unmatched-intent paths, and the reflector's pattern-detection pass (recurring `Touches:` clusters without a dedicated owner). The reflector aggregates per-cycle gap events into a `## Capability gaps observed` section in your reflection notes. View with `gdd-events --type capability_gap`. No authoring on Stage 0 this just surfaces signal.
354
+ **Stage 0 - telemetry (ships immediately).**
355
+ Three lookup-fail points now emit typed `capability_gap` events: `skills/fast` no-skill-match paths, `gdd-router` unmatched-intent paths, and the reflector's pattern-detection pass (recurring `Touches:` clusters without a dedicated owner). The reflector aggregates per-cycle gap events into a `## Capability gaps observed` section in your reflection notes. View with `gdd-events --type capability_gap`. No authoring on Stage 0 - this just surfaces signal.
352
356
 
353
- **Stage 1 self-authoring (opt-in once data crosses the gate).**
354
- When K=3 stable clusters surface across M=10 reflection cycles (defaults in `reference/capability-gap-stage-gate.md`), `/gdd:apply-reflections` prompts you once to enable Stage 1. With Stage 1 on, the reflector drafts incubator artifacts at `.design/reflections/incubator/<slug>/` `SKILL.md` or `agents/<slug>.md` with full Phase 28.5-compliant frontmatter, originating events, computed usage frequency, and a suggested integration point. Drafts surface in `/gdd:apply-reflections` as a 5th proposal class with four actions: `accept` (promotes + registers), `reject`, `defer`, `edit`. Promoted arms enter the bandit with a conservative `Beta(2, 8)` prior so they don't get preferential selection until evidence accumulates. Drafts not promoted/refreshed within 30 days auto-archive.
357
+ **Stage 1 - self-authoring (opt-in once data crosses the gate).**
358
+ When K=3 stable clusters surface across M=10 reflection cycles (defaults in `reference/capability-gap-stage-gate.md`), `/gdd:apply-reflections` prompts you once to enable Stage 1. With Stage 1 on, the reflector drafts incubator artifacts at `.design/reflections/incubator/<slug>/` - `SKILL.md` or `agents/<slug>.md` with full Phase 28.5-compliant frontmatter, originating events, computed usage frequency, and a suggested integration point. Drafts surface in `/gdd:apply-reflections` as a 5th proposal class with four actions: `accept` (promotes + registers), `reject`, `defer`, `edit`. Promoted arms enter the bandit with a conservative `Beta(2, 8)` prior so they don't get preferential selection until evidence accumulates. Drafts not promoted/refreshed within 30 days auto-archive.
355
359
 
356
- **Scope guard.** Authoring is limited to `agents/` and `skills/` only never runtimes, transports, connections, hooks, or CI workflows. `scripts/validate-incubator-scope.cjs` blocks promotion attempts outside scope.
360
+ **Scope guard.** Authoring is limited to `agents/` and `skills/` only - never runtimes, transports, connections, hooks, or CI workflows. `scripts/validate-incubator-scope.cjs` blocks promotion attempts outside scope.
357
361
 
358
- **Discipline preserved.** Reflector authors nothing that auto-ships. `/gdd:apply-reflections` remains the single human gate (Phase 11 SC-8). Stage 1 never auto-flips user opts in.
362
+ **Discipline preserved.** Reflector authors nothing that auto-ships. `/gdd:apply-reflections` remains the single human gate (Phase 11 SC-8). Stage 1 never auto-flips - user opts in.
359
363
 
360
364
 
361
365
  ### Figma off-context extraction (v1.31.0+)
362
366
 
363
- Pull an entire Figma design system into a compact, LLM-readable local digest **without the raw JSON ever entering Claude's context**. One command extracts the file via the Figma REST API into a local raw cache; a separate digest stage reduces it to `DESIGN.md` + `tokens.json` + `components.json`.
367
+ Pull an entire Figma design system into a compact, LLM-readable local digest - **without the raw JSON ever entering Claude's context**. One command extracts the file via the Figma REST API into a local raw cache; a separate digest stage reduces it to `DESIGN.md` + `tokens.json` + `components.json`.
364
368
 
365
369
  ```bash
366
370
  # Stage 1 — raw pull (0 Claude tokens; writes a gitignored cache)
@@ -369,10 +373,10 @@ node scripts/lib/figma-extract/pull.cjs <figma-file-url-or-key>
369
373
  node scripts/lib/figma-extract/digest.cjs --raw <cache>/raw/<key> --out .design/figma
370
374
  ```
371
375
 
372
- **The economics.** A spike measured **898× compression** (223 MB raw → 254 KB digest) with a ~15.7K-token `DESIGN.md`, capturing 127 component sets + 40 singletons (variants, props, defaults) in ~33s at **0 Claude tokens and 0 Figma MCP calls during extraction**. This is the cost-sane alternative to the Figma MCP for whole-design-system work, which can run tens of minutes and 50–500K+ tokens for the same data. (The Figma MCP remains the right tool for spot questions on a single component.)
376
+ **The economics.** A spike measured **898× compression** (223 MB raw → 254 KB digest) with a ~15.7K-token `DESIGN.md`, capturing 127 component sets + 40 singletons (variants, props, defaults) in ~33s - at **0 Claude tokens and 0 Figma MCP calls during extraction**. This is the cost-sane alternative to the Figma MCP for whole-design-system work, which can run tens of minutes and 50–500K+ tokens for the same data. (The Figma MCP remains the right tool for spot questions on a single component.)
373
377
 
374
- - **Token-safe by construction.** `FIGMA_TOKEN` is read from the environment only and sent solely as a request header never logged, never written to disk (a CI static-analysis test enforces this across the whole extract library). The digest never reads raw JSON into context.
375
- - **Works on any Figma plan.** The optional **"GDD Sync"** Figma plugin (`figma-plugin/`) fills the Variables-API-Enterprise gap: it reads `figma.variables` from inside Figma and POSTs them to an ephemeral, 127.0.0.1-only receiver so Free-tier users get full token coverage too.
378
+ - **Token-safe by construction.** `FIGMA_TOKEN` is read from the environment only and sent solely as a request header - never logged, never written to disk (a CI static-analysis test enforces this across the whole extract library). The digest never reads raw JSON into context.
379
+ - **Works on any Figma plan.** The optional **"GDD Sync"** Figma plugin (`figma-plugin/`) fills the Variables-API-Enterprise gap: it reads `figma.variables` from inside Figma and POSTs them to an ephemeral, 127.0.0.1-only receiver - so Free-tier users get full token coverage too.
376
380
  - **Per-component slices.** `digest --component <name|glob>` renders a ~500-token slice of just the components you ask for, instead of the full digest.
377
381
  - **Health-aware.** `/gdd:health` reports a `figma_extract` readiness line (token set / token missing / Free-tier plugin-sync needed).
378
382
 
@@ -380,10 +384,10 @@ See [`skills/figma-extract/SKILL.md`](skills/figma-extract/SKILL.md) and [`figma
380
384
 
381
385
  ### Skill discipline bootstrap (v1.32.0+)
382
386
 
383
- GDD ships 70+ skills, but a description-match skill router consults them opportunistically easy to skip a stage under pressure. v1.32.0 adds the forcing function GDD lacked, porting the skill-discipline **mechanism** (not content) from [`obra/superpowers`](https://github.com/obra/superpowers) (MIT):
387
+ GDD ships 70+ skills, but a description-match skill router consults them opportunistically - easy to skip a stage under pressure. v1.32.0 adds the forcing function GDD lacked, porting the skill-discipline **mechanism** (not content) from [`obra/superpowers`](https://github.com/obra/superpowers) (MIT):
384
388
 
385
- - **SessionStart inject.** A `using-gdd` bootstrap contract is injected at every session start / `/clear` / compact (`hooks/inject-using-gdd.sh`, per-harness: Cursor / Claude Code / SDK). It carries the **1%-rule** ("even a 1% chance a skill applies → invoke it"), a red-flags `Thought → Reality` table, and the skill-priority + instruction-priority order so the agent is primed to find the right skill before it acts.
386
- - **`<HARD-GATE>` at every stage transition.** Brief / Explore / Plan / Design / Verify each refuse to advance until the stage's artifact exists and is approved no free-handing a stage.
389
+ - **SessionStart inject.** A `using-gdd` bootstrap contract is injected at every session start / `/clear` / compact (`hooks/inject-using-gdd.sh`, per-harness: Cursor / Claude Code / SDK). It carries the **1%-rule** ("even a 1% chance a skill applies → invoke it"), a red-flags `Thought → Reality` table, and the skill-priority + instruction-priority order - so the agent is primed to find the right skill before it acts.
390
+ - **`<HARD-GATE>` at every stage transition.** Brief / Explore / Plan / Design / Verify each refuse to advance until the stage's artifact exists and is approved - no free-handing a stage.
387
391
  - **Rationalization tables** in all 7 stage skills name the common "skip it" justifications and rebut each; **inline self-review** blocks gate the brief and plan specs.
388
392
  - **`<SUBAGENT-STOP>` no-cascade.** The inject fires only on SessionStart, so the bootstrap never cascades into spawned subagents.
389
393
  - **Portable + health-aware.** `AGENTS.md` + `GEMINI.md` carry the same discipline block for non-Claude-Code harnesses, and `/gdd:health` reports a `skill-discipline` readiness line.
@@ -394,7 +398,7 @@ See [`skills/using-gdd/SKILL.md`](skills/using-gdd/SKILL.md) and the `NOTICE` at
394
398
 
395
399
  Static validators check a skill's shape; **behavior tests** check that it holds under pressure. v1.33.0 adds a manifest-driven pressure-scenario harness (porting the TDD-for-skills methodology + pressure-scenario pattern from [`obra/superpowers/skills/writing-skills`](https://github.com/obra/superpowers), MIT): a runner drives a scenario (time / sunk-cost / authority / exhaustion / scope-minimization) through an injectable agent-invoker and scores the response against a compliance/violation rubric with N-attempts + majority rule. Ships 8 scenarios (7 stage skills + `using-gdd`) with synthetic RED baselines.
396
400
 
397
- Behavior tests are **opt-in** and key-gated the default `npm test` stub suite covers the harness structurally and stays CI-green (LLM non-determinism keeps live runs out of CI). To run the live pass:
401
+ Behavior tests are **opt-in** and key-gated - the default `npm test` stub suite covers the harness structurally and stays CI-green (LLM non-determinism keeps live runs out of CI). To run the live pass:
398
402
 
399
403
  ```bash
400
404
  # Skips + exits 0 when ANTHROPIC_API_KEY is unset.
@@ -406,7 +410,7 @@ See [`docs/research/description-format-ab.md`](docs/research/description-format-
406
410
 
407
411
  ## How It Works
408
412
 
409
- > **New to an existing codebase?** Run `/gdd:map` first. It dispatches 5 specialist mappers in parallel (tokens, components, visual hierarchy, a11y, motion) and writes structured JSON to `.design/map/` much higher signal than the grep-based fallback in Explore.
413
+ > **New to an existing codebase?** Run `/gdd:map` first. It dispatches 5 specialist mappers in parallel (tokens, components, visual hierarchy, a11y, motion) and writes structured JSON to `.design/map/` - much higher signal than the grep-based fallback in Explore.
410
414
 
411
415
  ### 1. Brief
412
416
 
@@ -452,7 +456,7 @@ Decomposes Explore output into atomic, wave-coordinated, dependency-analyzed des
452
456
 
453
457
  Executes plan tasks in waves. Each task gets a dedicated `design-executor` agent with a fresh 200k context, atomic git commit, and automatic deviation handling per in-context rules. Parallel-safe tasks run in worktrees.
454
458
 
455
- **Solidify-with-rollback** (v1.23.0) every task validates (typecheck + build + targeted test) before locking in. Validation fails → `git stash` revert. Each task is atomic commit-or-revert.
459
+ **Solidify-with-rollback** (v1.23.0) - every task validates (typecheck + build + targeted test) before locking in. Validation fails → `git stash` revert. Each task is atomic commit-or-revert.
456
460
 
457
461
  **Creates:** `.design/tasks/task-NN.md` per task, atomic git commit per task
458
462
 
@@ -481,7 +485,7 @@ Executes plan tasks in waves. Each task gets a dedicated `design-executor` agent
481
485
  /gdd:verify
482
486
  ```
483
487
 
484
- Verifies against the brief must-haves, NN/g heuristics, audit rubric, token integration. Three agents run in sequence: `design-auditor` (6-pillar 1–4 score), `design-verifier` (goal-backward), `design-integration-checker` (greps D-XX decisions back to code). On failures, produces a structured gap list and enters a verify→fix loop via `design-fixer`.
488
+ Verifies against the brief - must-haves, NN/g heuristics, audit rubric, token integration. Three agents run in sequence: `design-auditor` (6-pillar 1–4 score), `design-verifier` (goal-backward), `design-integration-checker` (greps D-XX decisions back to code). On failures, produces a structured gap list and enters a verify→fix loop via `design-fixer`.
485
489
 
486
490
  **Creates:** `.design/DESIGN-VERIFICATION.md`, gap-fix commits if issues found
487
491
 
@@ -551,7 +555,7 @@ Each stage is a thin orchestrator that spawns specialized agents. Heavy lifting
551
555
 
552
556
  | Stage | Orchestrator does | Agents do |
553
557
  |-------|-------------------|-----------|
554
- | Brief | one-question interview | (no subagents leaf skill) |
558
+ | Brief | one-question interview | (no subagents - leaf skill) |
555
559
  | Explore | spawns 5 mappers + discussant | 5 parallel mappers, design-discussant, research-synthesizer |
556
560
  | Plan | spawns researcher + planner + checker | design-phase-researcher (optional), design-planner (opus), design-plan-checker (haiku) |
557
561
  | Design | wave coordination + worktree isolation | design-executor per task, design-fixer on solidify failure |
@@ -560,31 +564,31 @@ Each stage is a thin orchestrator that spawns specialized agents. Heavy lifting
560
564
 
561
565
  ### 12 Tool Connections
562
566
 
563
- All optional the pipeline degrades gracefully when any connection is unavailable:
564
-
565
- - **Figma** (read + write + Code Connect) annotations, token bindings, implementation status write-back
566
- - **Refero** design reference search
567
- - **Pinterest** visual reference grounding
568
- - **Claude Design** handoff bundle import (`/gdd:handoff`)
569
- - **Storybook** component-spec lookup
570
- - **Chromatic** visual regression baseline diff
571
- - **Preview** Playwright + Claude Preview MCP for runtime screenshots
572
- - **paper.design** MCP canvas read/write for round-trip verification
573
- - **pencil.dev** git-tracked `.pen` spec files
574
- - **Graphify** knowledge-graph export
575
- - **21st.dev Magic** prior-art component search before greenfield builds
576
- - **Magic Patterns** DS-aware component generation with `preview_url`
567
+ All optional - the pipeline degrades gracefully when any connection is unavailable:
568
+
569
+ - **Figma** (read + write + Code Connect) - annotations, token bindings, implementation status write-back
570
+ - **Refero** - design reference search
571
+ - **Pinterest** - visual reference grounding
572
+ - **Claude Design** - handoff bundle import (`/gdd:handoff`)
573
+ - **Storybook** - component-spec lookup
574
+ - **Chromatic** - visual regression baseline diff
575
+ - **Preview** - Playwright + Claude Preview MCP for runtime screenshots
576
+ - **paper.design** - MCP canvas read/write for round-trip verification
577
+ - **pencil.dev** - git-tracked `.pen` spec files
578
+ - **Graphify** - knowledge-graph export
579
+ - **21st.dev Magic** - prior-art component search before greenfield builds
580
+ - **Magic Patterns** - DS-aware component generation with `preview_url`
577
581
 
578
582
  ### Embedded Design References
579
583
 
580
584
  The plugin ships **18+ reference files** covering every major design-knowledge domain. Agents have authoritative answers without web search:
581
585
 
582
- - **Heuristics** NN/g 10, Don Norman emotional design (visceral/behavioral/reflective), Dieter Rams 10, Disney 12 (motion), Sonner / Emil Kowalski component-authoring lens, Peak-End Rule, Loss Aversion, Cognitive Load Theory, Aesthetic-Usability Effect, Doherty Threshold, Flow.
583
- - **Components** 35 component specs (Material 3, Apple HIG, Radix, shadcn, Polaris, Carbon, Fluent, Atlassian, Ant, Mantine, Chakra, Base Web, Spectrum, Lightning, Evergreen, Gestalt) with locked spec template (Purpose · Anatomy · Variants · States · Sizing · Typography · Keyboard · Motion · Do/Don't · Anti-patterns · Citations · Grep signatures).
584
- - **Visual + brand** gestalt principles, visual-hierarchy, brand-voice, palette catalog (161 industry palettes), style vocabulary (67 UI aesthetics), iconography (Lucide / Phosphor / Heroicons / Radix Icons / Tabler / SF Symbols).
585
- - **Motion** 12 canonical easings (RN MIT) + 8 transition families (hyperframes Apache-2.0) + spring presets + interpolation taxonomy + advanced craft (gesture mechanics, clip-path, blur crossfades, View Transitions API, WAAPI).
586
- - **Platform + a11y** WCAG 2.1 AA thresholds, platforms (iOS / Android / web / visionOS / watchOS), RTL + CJK + cultural color, form patterns (Wroblewski label research, autocomplete taxonomy, CAPTCHA ethics).
587
- - **Anti-patterns** regex-signature catalog matched by `design-pattern-mapper`.
586
+ - **Heuristics** - NN/g 10, Don Norman emotional design (visceral/behavioral/reflective), Dieter Rams 10, Disney 12 (motion), Sonner / Emil Kowalski component-authoring lens, Peak-End Rule, Loss Aversion, Cognitive Load Theory, Aesthetic-Usability Effect, Doherty Threshold, Flow.
587
+ - **Components** - 35 component specs (Material 3, Apple HIG, Radix, shadcn, Polaris, Carbon, Fluent, Atlassian, Ant, Mantine, Chakra, Base Web, Spectrum, Lightning, Evergreen, Gestalt) with locked spec template (Purpose · Anatomy · Variants · States · Sizing · Typography · Keyboard · Motion · Do/Don't · Anti-patterns · Citations · Grep signatures).
588
+ - **Visual + brand** - gestalt principles, visual-hierarchy, brand-voice, palette catalog (161 industry palettes), style vocabulary (67 UI aesthetics), iconography (Lucide / Phosphor / Heroicons / Radix Icons / Tabler / SF Symbols).
589
+ - **Motion** - 12 canonical easings (RN MIT) + 8 transition families (hyperframes Apache-2.0) + spring presets + interpolation taxonomy + advanced craft (gesture mechanics, clip-path, blur crossfades, View Transitions API, WAAPI).
590
+ - **Platform + a11y** - WCAG 2.1 AA thresholds, platforms (iOS / Android / web / visionOS / watchOS), RTL + CJK + cultural color, form patterns (Wroblewski label research, autocomplete taxonomy, CAPTCHA ethics).
591
+ - **Anti-patterns** - regex-signature catalog matched by `design-pattern-mapper`.
588
592
 
589
593
  ### Atomic Git Commits
590
594
 
@@ -603,19 +607,19 @@ Git bisect finds exact failing task. Each task is independently revertable. Soli
603
607
 
604
608
  After every cycle, `design-reflector` (opus) reads `events.jsonl`, `agent-metrics.json`, and `learnings/`, then proposes diffs:
605
609
 
606
- - **Tier overrides** "design-verifier on plans <300 lines: drop to haiku, no measured quality regression"
607
- - **Parallelism rules** "token-mapper + component-taxonomy-mapper conflict on `Touches: src/styles/`; serialize"
608
- - **Reference additions** "L-12 cited 9 times across cycles 3–5; promote to `reference/heuristics.md`"
609
- - **Frontmatter updates** "design-executor `typical-duration-seconds: 60` measured at 142s; propose 120s"
610
+ - **Tier overrides** - "design-verifier on plans <300 lines: drop to haiku, no measured quality regression"
611
+ - **Parallelism rules** - "token-mapper + component-taxonomy-mapper conflict on `Touches: src/styles/`; serialize"
612
+ - **Reference additions** - "L-12 cited 9 times across cycles 3–5; promote to `reference/heuristics.md`"
613
+ - **Frontmatter updates** - "design-executor `typical-duration-seconds: 60` measured at 142s; propose 120s"
610
614
 
611
615
  `/gdd:apply-reflections` shows the diff and asks before applying. Nothing auto-applies. The **No-Regret Adaptive Layer** (v1.23.5) layers a Thompson sampling bandit + AdaNormalHedge ensemble + MMR rerank on top, viable in single-user mode via informed-prior bootstrap.
612
616
 
613
617
  ### Cost Governance
614
618
 
615
- - **`gdd-router` skill** deterministic intent → fast / quick / full routing. No model call.
616
- - **`gdd-cache-manager`** Layer-B explicit cache with SHA-256 input-hash + 5-min TTL awareness.
617
- - **`budget-enforcer` PreToolUse hook** enforces tier overrides, hard caps, lazy-spawn gates from `.design/budget.json`.
618
- - **Per-spawn cost telemetry** `.design/telemetry/costs.jsonl` rows feed `/gdd:optimize` rule-based recommendations.
619
+ - **`gdd-router` skill** - deterministic intent → fast / quick / full routing. No model call.
620
+ - **`gdd-cache-manager`** - Layer-B explicit cache with SHA-256 input-hash + 5-min TTL awareness.
621
+ - **`budget-enforcer` PreToolUse hook** - enforces tier overrides, hard caps, lazy-spawn gates from `.design/budget.json`.
622
+ - **Per-spawn cost telemetry** - `.design/telemetry/costs.jsonl` rows feed `/gdd:optimize` rule-based recommendations.
619
623
 
620
624
  Targets 50–70% per-task token-cost reduction with no quality-floor regression.
621
625
 
@@ -627,14 +631,14 @@ Targets 50–70% per-task token-cost reduction with no quality-floor regression.
627
631
 
628
632
  | Command | What it does |
629
633
  |---------|--------------|
630
- | `/gdd:brief` | Stage 1 capture the design brief |
631
- | `/gdd:explore` | Stage 2 codebase inventory + interview |
632
- | `/gdd:plan` | Stage 3 produce DESIGN-PLAN.md |
633
- | `/gdd:design` | Stage 4 execute plan in waves |
634
- | `/gdd:verify` | Stage 5 verify against brief |
634
+ | `/gdd:brief` | Stage 1 - capture the design brief |
635
+ | `/gdd:explore` | Stage 2 - codebase inventory + interview |
636
+ | `/gdd:plan` | Stage 3 - produce DESIGN-PLAN.md |
637
+ | `/gdd:design` | Stage 4 - execute plan in waves |
638
+ | `/gdd:verify` | Stage 5 - verify against brief |
635
639
  | `/gdd:ship` | Generate clean PR branch (filters .design/ commits) |
636
640
  | `/gdd:next` | Auto-route to the next stage based on STATE.md |
637
- | `/gdd:do <text>` | Natural-language router picks the right command |
641
+ | `/gdd:do <text>` | Natural-language router - picks the right command |
638
642
  | `/gdd:fast <text>` | One-shot trivial fix, no pipeline |
639
643
  | `/gdd:quick` | Ad-hoc task with GDD guarantees but skipped optional gates |
640
644
 
@@ -642,7 +646,7 @@ Targets 50–70% per-task token-cost reduction with no quality-floor regression.
642
646
 
643
647
  | Command | What it does |
644
648
  |---------|--------------|
645
- | `/gdd:start` | First-run proof path top-3 design issues in your repo (no `.design/` footprint until you opt in) |
649
+ | `/gdd:start` | First-run proof path - top-3 design issues in your repo (no `.design/` footprint until you opt in) |
646
650
  | `/gdd:new-project` | Initialize a GDD project (PROJECT.md + STATE.md + first cycle) |
647
651
  | `/gdd:connections` | Onboarding wizard for the 12 external integrations |
648
652
 
@@ -652,7 +656,7 @@ Targets 50–70% per-task token-cost reduction with no quality-floor regression.
652
656
  |---------|--------------|
653
657
  | `/gdd:new-cycle` | Open a new design cycle |
654
658
  | `/gdd:complete-cycle` | Archive cycle artifacts + write per-cycle EXPERIENCE.md |
655
- | `/gdd:pause` / `/gdd:resume` | Numbered checkpoints pause mid-stage, resume from any saved checkpoint |
659
+ | `/gdd:pause` / `/gdd:resume` | Numbered checkpoints - pause mid-stage, resume from any saved checkpoint |
656
660
  | `/gdd:continue` | Alias for `/gdd:resume` (latest checkpoint) |
657
661
  | `/gdd:timeline` | Narrative retrospective across cycles + git log |
658
662
 
@@ -660,14 +664,14 @@ Targets 50–70% per-task token-cost reduction with no quality-floor regression.
660
664
 
661
665
  | Command | What it does |
662
666
  |---------|--------------|
663
- | `/gdd:discuss [topic]` | Adaptive design interview `--all` for batch gray areas, `--spec` for ambiguity scoring |
667
+ | `/gdd:discuss [topic]` | Adaptive design interview - `--all` for batch gray areas, `--spec` for ambiguity scoring |
664
668
  | `/gdd:list-assumptions` | Surface hidden design assumptions before planning |
665
- | `/gdd:sketch [idea]` | Multi-variant HTML mockup exploration browser-openable directly |
669
+ | `/gdd:sketch [idea]` | Multi-variant HTML mockup exploration - browser-openable directly |
666
670
  | `/gdd:spike [idea]` | Timeboxed feasibility experiment with hypothesis + verdict |
667
671
  | `/gdd:sketch-wrap-up` / `/gdd:spike-wrap-up` | Package findings into project-local skill |
668
672
  | `/gdd:audit` | Wraps `design-verifier` + `design-auditor` + `design-reflector`. `--retroactive` audits the full cycle |
669
- | `/gdd:reflect` | Run `design-reflector` on demand produces `.design/reflections/<cycle-slug>.md` |
670
- | `/gdd:apply-reflections` | Review and selectively apply reflector proposals diff before apply |
673
+ | `/gdd:reflect` | Run `design-reflector` on demand - produces `.design/reflections/<cycle-slug>.md` |
674
+ | `/gdd:apply-reflections` | Review and selectively apply reflector proposals - diff before apply |
671
675
 
672
676
  ### Memory + Knowledge Layer
673
677
 
@@ -675,8 +679,8 @@ Targets 50–70% per-task token-cost reduction with no quality-floor regression.
675
679
  |---------|--------------|
676
680
  | `/gdd:recall <query>` | FTS5-backed search across cycle archives, learnings, decisions, EXPERIENCE.md files |
677
681
  | `/gdd:extract-learnings` | Mine cycle artifacts for patterns + decisions + lessons |
678
- | `/gdd:note <text>` | Zero-friction idea capture append, list, promote to todo |
679
- | `/gdd:plant-seed <idea>` | Forward-looking idea with trigger condition surfaces at the right cycle |
682
+ | `/gdd:note <text>` | Zero-friction idea capture - append, list, promote to todo |
683
+ | `/gdd:plant-seed <idea>` | Forward-looking idea with trigger condition - surfaces at the right cycle |
680
684
  | `/gdd:analyze-dependencies` | Token fan-out, component call-graphs, decision traceability, circular dependency detection |
681
685
  | `/gdd:skill-manifest` | List all GDD skills + agents from the intel store |
682
686
  | `/gdd:graphify` | Build, query, inspect, diff the project knowledge graph |
@@ -699,9 +703,9 @@ Targets 50–70% per-task token-cost reduction with no quality-floor regression.
699
703
  | `/gdd:scan` | Codebase design-system inventory (no STATE.md write) |
700
704
  | `/gdd:map` | 5 parallel codebase mappers (tokens / components / a11y / motion / visual-hierarchy) |
701
705
  | `/gdd:debug [desc]` | Symptom-driven design investigation with persistent state |
702
- | `/gdd:health` | Reports `.design/` artifact health staleness, missing files, token drift |
706
+ | `/gdd:health` | Reports `.design/` artifact health - staleness, missing files, token drift |
703
707
  | `/gdd:progress` | Show pipeline position; `--forensic` runs 6-check integrity audit |
704
- | `/gdd:stats` | Cycle stats decisions made, tasks completed, commits, timeline, git metrics |
708
+ | `/gdd:stats` | Cycle stats - decisions made, tasks completed, commits, timeline, git metrics |
705
709
  | `/gdd:optimize` | Rule-based cost analysis + tier-override recommendations |
706
710
  | `/gdd:warm-cache` | Pre-warm Anthropic prompt cache across all agents that import shared-preamble |
707
711
 
@@ -711,10 +715,10 @@ Targets 50–70% per-task token-cost reduction with no quality-floor regression.
711
715
  |---------|--------------|
712
716
  | `/gdd:update` | Update GDD with changelog preview |
713
717
  | `/gdd:reapply-patches` | Restitch local `reference/` modifications after structural updates |
714
- | `/gdd:check-update` | Manual update check `--refresh` bypasses 24h TTL, `--dismiss` hides nudge |
715
- | `/gdd:settings` | Configure `.design/config.json` profile / parallelism / cleanup |
718
+ | `/gdd:check-update` | Manual update check - `--refresh` bypasses 24h TTL, `--dismiss` hides nudge |
719
+ | `/gdd:settings` | Configure `.design/config.json` - profile / parallelism / cleanup |
716
720
  | `/gdd:set-profile <profile>` | Switch model profile (quality / balanced / budget / inherit) |
717
- | `/gdd:undo` | Safe design change revert uses git log + dependency check |
721
+ | `/gdd:undo` | Safe design change revert - uses git log + dependency check |
718
722
  | `/gdd:pr-branch` | Create clean PR branch by filtering out `.design/` and `.planning/` commits |
719
723
 
720
724
  ### Backlog + Notes
@@ -743,7 +747,7 @@ GDD ships with 12 tool connections. All are optional; the pipeline degrades grac
743
747
  | **Figma** | Read tokens, components, screenshots; write annotations, Code Connect, implementation status | `mcp__figma__get_metadata` + `use_figma` |
744
748
  | **Refero** | Design reference search across catalogued sources | `mcp__refero__search` |
745
749
  | **Pinterest** | Visual reference grounding for brand-voice + style | OAuth + MCP |
746
- | **Claude Design** | Handoff bundle import (`/gdd:handoff`) skip Stages 1–3 | URL or local file |
750
+ | **Claude Design** | Handoff bundle import (`/gdd:handoff`) - skip Stages 1–3 | URL or local file |
747
751
  | **Storybook** | Component-spec lookup at port 6006 | HTTP probe |
748
752
  | **Chromatic** | Visual regression baseline diff | API key |
749
753
  | **Preview** | Playwright + Claude Preview MCP runtime screenshots | `mcp__Claude_Preview__preview_*` |
@@ -786,7 +790,7 @@ Use `inherit` when using non-Anthropic providers or to follow the runtime's curr
786
790
 
787
791
  | Mode | What it does |
788
792
  |------|--------------|
789
- | `static` (default) | Phase 10.1 behavior static D-13 tier map |
793
+ | `static` (default) | Phase 10.1 behavior - static D-13 tier map |
790
794
  | `hedge` | AdaNormalHedge ensemble + MMR rerank engaged. Bandit router still reads static map. Safest intro. |
791
795
  | `full` | Bandit router + Hedge + MMR all active, reading/writing `.design/telemetry/posterior.json` |
792
796
 
@@ -802,10 +806,10 @@ Use `inherit` when using non-Anthropic providers or to follow the runtime's curr
802
806
 
803
807
  | Setting | Default | What it controls |
804
808
  |---------|---------|------------------|
805
- | `solidify.rollback_mode` | `"stash"` | `stash` / `hard` / `none` how to revert on validation failure |
809
+ | `solidify.rollback_mode` | `"stash"` | `stash` / `hard` / `none` - how to revert on validation failure |
806
810
  | `solidify.commands` | autodetect | Override typecheck / build / test commands |
807
811
  | `verify.iterations_max` | `3` | Cap on verify→fix loop iterations |
808
- | `connection.figma_writeback` | `proposal` | `proposal` / `auto` confirm before writing |
812
+ | `connection.figma_writeback` | `proposal` | `proposal` / `auto` - confirm before writing |
809
813
 
810
814
  ---
811
815
 
@@ -815,11 +819,11 @@ Use `inherit` when using non-Anthropic providers or to follow the runtime's curr
815
819
 
816
820
  GDD ships defense-in-depth security since Phase 14.5:
817
821
 
818
- - **`hooks/gdd-bash-guard.js`** PreToolUse:Bash blocks ~50 dangerous patterns (`rm -rf /`, `chmod 777`, `curl | sh`, `git reset --hard`, fork bombs) after Unicode NFKC + ANSI normalization.
819
- - **`hooks/gdd-protected-paths.js`** PreToolUse:Edit/Write/Bash enforces `protected_paths` glob list (defaults: `reference/**`, `.design/archive/**`, `skills/**`, `commands/**`, `hooks/**`, `.design/config.json`, `.design/telemetry/**`).
820
- - **`hooks/gdd-read-injection-scanner.ts`** scans inbound Read content for invisible-Unicode (zero-width, word-joiner, BOM, bidi overrides) + HTML-comment + secret-exfil patterns.
821
- - **`scripts/lib/blast-radius.cjs`** `design-executor` preflight refuses tasks above `max_files_per_task: 10` / `max_lines_per_task: 400`.
822
- - **`hooks/gdd-mcp-circuit-breaker.js`** breaks consecutive-timeout loops on `use_figma` / `use_paper` / `use_pencil`.
822
+ - **`hooks/gdd-bash-guard.js`** - PreToolUse:Bash blocks ~50 dangerous patterns (`rm -rf /`, `chmod 777`, `curl | sh`, `git reset --hard`, fork bombs) after Unicode NFKC + ANSI normalization.
823
+ - **`hooks/gdd-protected-paths.js`** - PreToolUse:Edit/Write/Bash enforces `protected_paths` glob list (defaults: `reference/**`, `.design/archive/**`, `skills/**`, `commands/**`, `hooks/**`, `.design/config.json`, `.design/telemetry/**`).
824
+ - **`hooks/gdd-read-injection-scanner.ts`** - scans inbound Read content for invisible-Unicode (zero-width, word-joiner, BOM, bidi overrides) + HTML-comment + secret-exfil patterns.
825
+ - **`scripts/lib/blast-radius.cjs`** - `design-executor` preflight refuses tasks above `max_files_per_task: 10` / `max_lines_per_task: 400`.
826
+ - **`hooks/gdd-mcp-circuit-breaker.js`** - breaks consecutive-timeout loops on `use_figma` / `use_paper` / `use_pencil`.
823
827
 
824
828
  ### Protecting Sensitive Files
825
829
 
@@ -841,7 +845,7 @@ Add sensitive paths to your runtime's deny list:
841
845
  ```
842
846
 
843
847
  > [!IMPORTANT]
844
- > Because GDD generates markdown files that become LLM system prompts, any user-controlled text flowing into `.design/` artifacts is a potential indirect prompt-injection vector. The injection scanner catches such vectors at multiple layers but defense-in-depth is best practice.
848
+ > Because GDD generates markdown files that become LLM system prompts, any user-controlled text flowing into `.design/` artifacts is a potential indirect prompt-injection vector. The injection scanner catches such vectors at multiple layers - but defense-in-depth is best practice.
845
849
 
846
850
  ---
847
851
 
@@ -854,14 +858,14 @@ Add sensitive paths to your runtime's deny list:
854
858
  - Run `/gdd:help` to confirm registration
855
859
 
856
860
  **Pipeline stuck mid-stage?**
857
- - `/gdd:resume` restore from the most recent numbered checkpoint
858
- - `/gdd:health` diagnose `.design/` artifact issues
859
- - `/gdd:progress --forensic` 6-check integrity audit
861
+ - `/gdd:resume` - restore from the most recent numbered checkpoint
862
+ - `/gdd:health` - diagnose `.design/` artifact issues
863
+ - `/gdd:progress --forensic` - 6-check integrity audit
860
864
 
861
865
  **Cost overruns?**
862
- - `/gdd:optimize` rule-based recommendations
863
- - `/gdd:set-profile budget` switch to budget tier
864
- - Set `adaptive_mode: "full"` in `.design/budget.json` bandit will learn cheap-and-correct tier per agent over 5–10 cycles
866
+ - `/gdd:optimize` - rule-based recommendations
867
+ - `/gdd:set-profile budget` - switch to budget tier
868
+ - Set `adaptive_mode: "full"` in `.design/budget.json` - bandit will learn cheap-and-correct tier per agent over 5–10 cycles
865
869
 
866
870
  **Updating to the latest version?**
867
871
  ```bash
@@ -909,15 +913,15 @@ This removes all GDD commands, agents, hooks, and settings while preserving othe
909
913
 
910
914
  GDD now ships a consent-first GitHub issue reporter via the `/gdd:report-issue` slash command.
911
915
 
912
- - **What it does.** Walks you through reporting an issue or a capability gap, with a payload preview before submission. Local-first, consent-gated, no auto-mode. Triages against `reference/known-failure-modes.md` first many failures resolve without filing.
913
- - **Pseudonymization, NOT anonymization.** Direct identifiers (your username, hostname, absolute paths, git identity, env-var values, emails, IPs) are replaced with stable pseudonyms but internal correlation is preserved so maintainers can debug. Side-channel data (writing style, code patterns, repo fingerprints) may still re-identify. You see the full payload before submission and explicitly consent per-issue.
916
+ - **What it does.** Walks you through reporting an issue or a capability gap, with a payload preview before submission. Local-first, consent-gated, no auto-mode. Triages against `reference/known-failure-modes.md` first - many failures resolve without filing.
917
+ - **Pseudonymization, NOT anonymization.** Direct identifiers (your username, hostname, absolute paths, git identity, env-var values, emails, IPs) are replaced with stable pseudonyms - but internal correlation is preserved so maintainers can debug. Side-channel data (writing style, code patterns, repo fingerprints) may still re-identify. You see the full payload before submission and explicitly consent per-issue.
914
918
  - **Kill-switch.** Set `GDD_DISABLE_ISSUE_REPORTER=1` (env) or add `{ "issue_reporter": false }` to `.design/config.json` to halt submission before any network call. `gsd-health` surfaces the disable line.
915
919
  - **Hardcoded destination.** The reporter cannot be redirected at runtime; the destination repo is a frozen constant in `scripts/lib/issue-reporter/destination.cjs`.
916
920
  - **`gh`-absent fallback.** If the GitHub CLI isn't installed, the payload is written to `.design/issue-drafts/` and the issue-template URL is copied to your clipboard (xclip / pbcopy / clip).
917
921
 
918
922
  See [`reference/pseudonymization-rules.md`](reference/pseudonymization-rules.md) for the R1..R8 rule catalog and [`reference/known-failure-modes.md`](reference/known-failure-modes.md) for known anti-patterns the reporter detects.
919
923
 
920
- **v1.30.5 update** the catalogue now ships 22 entries (was 10 in v1.30.0), and a new deterministic fuzzy matcher (`scripts/lib/failure-mode-matcher.cjs`, top-N + threshold + confidence) returns ranked candidates for ambiguous symptoms. The reflector + authority-watcher can propose new entries via `/gdd:apply-reflections` (6th proposal class) strictly proposal-only, every entry passes through user review.
924
+ **v1.30.5 update** - the catalogue now ships 22 entries (was 10 in v1.30.0), and a new deterministic fuzzy matcher (`scripts/lib/failure-mode-matcher.cjs`, top-N + threshold + confidence) returns ranked candidates for ambiguous symptoms. The reflector + authority-watcher can propose new entries via `/gdd:apply-reflections` (6th proposal class) - strictly proposal-only, every entry passes through user review.
921
925
 
922
926
  ---
923
927