@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
@@ -0,0 +1,106 @@
1
+ // sdk/cli/commands/build.ts — Phase 42 (COMPILE-06).
2
+ //
3
+ // `gdd-sdk build skills [--harness <id>] [--zip] [--check]` — compile the per-harness skill bundles
4
+ // from source/skills/ via the orchestrator scripts/build-skills.cjs. The orchestrator is a separate
5
+ // dep-free CJS process (no bundling entanglement with the SDK); we resolve it relative to the package
6
+ // root and spawn it, forwarding stdout/stderr.
7
+ //
8
+ // Exit codes:
9
+ // * 0 — build (or --check) succeeded.
10
+ // * 1 — --check found drift (committed != generated).
11
+ // * 3 — arg / config error (missing/unknown target).
12
+
13
+ import { spawnSync } from 'node:child_process';
14
+ import { existsSync } from 'node:fs';
15
+ import { dirname, join } from 'node:path';
16
+
17
+ import {
18
+ coerceFlags,
19
+ COMMON_FLAGS,
20
+ type FlagSpec,
21
+ type ParsedArgs,
22
+ } from '../parse-args.ts';
23
+
24
+ const BUILD_FLAGS: readonly FlagSpec[] = [
25
+ ...COMMON_FLAGS,
26
+ { name: 'harness', type: 'string' },
27
+ { name: 'zip', type: 'boolean' },
28
+ { name: 'check', type: 'boolean' },
29
+ ];
30
+
31
+ export const BUILD_USAGE = `gdd-sdk build skills [flags]
32
+
33
+ Compile per-harness skill bundles from source/skills/ into dist/<bundle>/ (and regenerate the
34
+ committed Claude-Code surface skills/). One source, N provider bundles.
35
+
36
+ Flags:
37
+ --harness <id> Build only one harness (e.g. claude, codex, gemini). Default: all 14.
38
+ --zip Also package each bundle as dist/<bundle>.tgz (needs tar).
39
+ --check Verify committed skills/ + dist/claude-code/ match source/ (the drift gate); no writes.
40
+ -h, --help Show this help.
41
+
42
+ Exit codes: 0 ok · 1 drift (--check) · 3 arg error
43
+ `;
44
+
45
+ interface CommandCtx {
46
+ readonly stdout: NodeJS.WritableStream;
47
+ readonly stderr: NodeJS.WritableStream;
48
+ }
49
+
50
+ /** Walk up from the CLI entry (argv[1]) to the package root that holds scripts/build-skills.cjs. */
51
+ function findOrchestrator(): string | null {
52
+ let dir = dirname(process.argv[1] ?? process.cwd());
53
+ for (let i = 0; i < 8; i++) {
54
+ const candidate = join(dir, 'scripts', 'build-skills.cjs');
55
+ if (existsSync(candidate)) return candidate;
56
+ const parent = dirname(dir);
57
+ if (parent === dir) break;
58
+ dir = parent;
59
+ }
60
+ const cwdCandidate = join(process.cwd(), 'scripts', 'build-skills.cjs');
61
+ return existsSync(cwdCandidate) ? cwdCandidate : null;
62
+ }
63
+
64
+ export async function buildCommand(parsed: ParsedArgs, ctx: CommandCtx): Promise<number> {
65
+ if (parsed.flags['help'] === true || parsed.flags['h'] === true) {
66
+ ctx.stdout.write(BUILD_USAGE);
67
+ return 0;
68
+ }
69
+
70
+ const target = parsed.positionals[0];
71
+ if (target !== 'skills') {
72
+ ctx.stderr.write(`gdd-sdk build: expected target "skills" (got ${target ? `"${target}"` : 'nothing'})\n${BUILD_USAGE}`);
73
+ return 3;
74
+ }
75
+
76
+ let flags: Record<string, unknown>;
77
+ try {
78
+ flags = coerceFlags(parsed, BUILD_FLAGS);
79
+ } catch {
80
+ ctx.stderr.write(`gdd-sdk build: invalid flags\n${BUILD_USAGE}`);
81
+ return 3;
82
+ }
83
+
84
+ const script = findOrchestrator();
85
+ if (!script) {
86
+ ctx.stderr.write('gdd-sdk build: could not locate scripts/build-skills.cjs\n');
87
+ return 3;
88
+ }
89
+
90
+ const orchestratorArgs: string[] = [];
91
+ if (flags['check'] === true) orchestratorArgs.push('--check');
92
+ if (flags['zip'] === true) orchestratorArgs.push('--zip');
93
+ const harness = flags['harness'];
94
+ if (typeof harness === 'string' && harness.length > 0) {
95
+ orchestratorArgs.push('--harness', harness);
96
+ }
97
+
98
+ const res = spawnSync(process.execPath, [script, ...orchestratorArgs], { encoding: 'utf8' });
99
+ if (res.stdout) ctx.stdout.write(res.stdout);
100
+ if (res.stderr) ctx.stderr.write(res.stderr);
101
+ if (res.error) {
102
+ ctx.stderr.write(`gdd-sdk build: failed to run orchestrator: ${res.error.message}\n`);
103
+ return 3;
104
+ }
105
+ return typeof res.status === 'number' ? res.status : 3;
106
+ }
package/sdk/cli/index.js CHANGED
@@ -8004,6 +8004,83 @@ function errMessage5(err) {
8004
8004
  return String(err);
8005
8005
  }
8006
8006
 
8007
+ // sdk/cli/commands/build.ts
8008
+ var import_node_child_process = require("node:child_process");
8009
+ var import_node_fs22 = require("node:fs");
8010
+ var import_node_path20 = require("node:path");
8011
+ var BUILD_FLAGS = [
8012
+ ...COMMON_FLAGS,
8013
+ { name: "harness", type: "string" },
8014
+ { name: "zip", type: "boolean" },
8015
+ { name: "check", type: "boolean" }
8016
+ ];
8017
+ var BUILD_USAGE = `gdd-sdk build skills [flags]
8018
+
8019
+ Compile per-harness skill bundles from source/skills/ into dist/<bundle>/ (and regenerate the
8020
+ committed Claude-Code surface skills/). One source, N provider bundles.
8021
+
8022
+ Flags:
8023
+ --harness <id> Build only one harness (e.g. claude, codex, gemini). Default: all 14.
8024
+ --zip Also package each bundle as dist/<bundle>.tgz (needs tar).
8025
+ --check Verify committed skills/ + dist/claude-code/ match source/ (the drift gate); no writes.
8026
+ -h, --help Show this help.
8027
+
8028
+ Exit codes: 0 ok \xB7 1 drift (--check) \xB7 3 arg error
8029
+ `;
8030
+ function findOrchestrator() {
8031
+ let dir = (0, import_node_path20.dirname)(process.argv[1] ?? process.cwd());
8032
+ for (let i = 0; i < 8; i++) {
8033
+ const candidate = (0, import_node_path20.join)(dir, "scripts", "build-skills.cjs");
8034
+ if ((0, import_node_fs22.existsSync)(candidate)) return candidate;
8035
+ const parent = (0, import_node_path20.dirname)(dir);
8036
+ if (parent === dir) break;
8037
+ dir = parent;
8038
+ }
8039
+ const cwdCandidate = (0, import_node_path20.join)(process.cwd(), "scripts", "build-skills.cjs");
8040
+ return (0, import_node_fs22.existsSync)(cwdCandidate) ? cwdCandidate : null;
8041
+ }
8042
+ async function buildCommand(parsed, ctx) {
8043
+ if (parsed.flags["help"] === true || parsed.flags["h"] === true) {
8044
+ ctx.stdout.write(BUILD_USAGE);
8045
+ return 0;
8046
+ }
8047
+ const target = parsed.positionals[0];
8048
+ if (target !== "skills") {
8049
+ ctx.stderr.write(`gdd-sdk build: expected target "skills" (got ${target ? `"${target}"` : "nothing"})
8050
+ ${BUILD_USAGE}`);
8051
+ return 3;
8052
+ }
8053
+ let flags;
8054
+ try {
8055
+ flags = coerceFlags(parsed, BUILD_FLAGS);
8056
+ } catch {
8057
+ ctx.stderr.write(`gdd-sdk build: invalid flags
8058
+ ${BUILD_USAGE}`);
8059
+ return 3;
8060
+ }
8061
+ const script = findOrchestrator();
8062
+ if (!script) {
8063
+ ctx.stderr.write("gdd-sdk build: could not locate scripts/build-skills.cjs\n");
8064
+ return 3;
8065
+ }
8066
+ const orchestratorArgs = [];
8067
+ if (flags["check"] === true) orchestratorArgs.push("--check");
8068
+ if (flags["zip"] === true) orchestratorArgs.push("--zip");
8069
+ const harness = flags["harness"];
8070
+ if (typeof harness === "string" && harness.length > 0) {
8071
+ orchestratorArgs.push("--harness", harness);
8072
+ }
8073
+ const res = (0, import_node_child_process.spawnSync)(process.execPath, [script, ...orchestratorArgs], { encoding: "utf8" });
8074
+ if (res.stdout) ctx.stdout.write(res.stdout);
8075
+ if (res.stderr) ctx.stderr.write(res.stderr);
8076
+ if (res.error) {
8077
+ ctx.stderr.write(`gdd-sdk build: failed to run orchestrator: ${res.error.message}
8078
+ `);
8079
+ return 3;
8080
+ }
8081
+ return typeof res.status === "number" ? res.status : 3;
8082
+ }
8083
+
8007
8084
  // sdk/cli/index.ts
8008
8085
  var USAGE6 = `gdd-sdk <command> [flags]
8009
8086
 
@@ -8013,6 +8090,7 @@ Commands:
8013
8090
  query <op> Typed STATE.md read operations.
8014
8091
  audit Probe connections + dry-run verify.
8015
8092
  init Bootstrap a new project.
8093
+ build skills Compile per-harness skill bundles from source/skills/.
8016
8094
 
8017
8095
  Use 'gdd-sdk <command> -h' for command-specific flags.
8018
8096
 
@@ -8030,7 +8108,8 @@ async function dispatch(parsed, deps = {}) {
8030
8108
  stage: deps.commands?.stage ?? stageCommand,
8031
8109
  query: deps.commands?.query ?? queryCommand,
8032
8110
  audit: deps.commands?.audit ?? auditCommand,
8033
- init: deps.commands?.init ?? initCommand
8111
+ init: deps.commands?.init ?? initCommand,
8112
+ build: deps.commands?.build ?? buildCommand
8034
8113
  };
8035
8114
  if (parsed.subcommand === null) {
8036
8115
  stdout.write(USAGE6);
@@ -8054,6 +8133,8 @@ async function dispatch(parsed, deps = {}) {
8054
8133
  return await commands.audit(parsed, { stdout, stderr });
8055
8134
  case "init":
8056
8135
  return await commands.init(parsed, { stdout, stderr });
8136
+ case "build":
8137
+ return await commands.build(parsed, { stdout, stderr });
8057
8138
  default:
8058
8139
  stderr.write(
8059
8140
  `gdd-sdk: unknown subcommand "${parsed.subcommand}"
@@ -8067,7 +8148,8 @@ var KNOWN_SUBCOMMANDS = /* @__PURE__ */ new Set([
8067
8148
  "stage",
8068
8149
  "query",
8069
8150
  "audit",
8070
- "init"
8151
+ "init",
8152
+ "build"
8071
8153
  ]);
8072
8154
  async function main(argv = process.argv.slice(2), deps = {}) {
8073
8155
  const parsed = parseArgs(argv);
package/sdk/cli/index.ts CHANGED
@@ -21,6 +21,7 @@ import { stageCommand } from './commands/stage.ts';
21
21
  import { queryCommand } from './commands/query.ts';
22
22
  import { auditCommand } from './commands/audit.ts';
23
23
  import { initCommand } from './commands/init.ts';
24
+ import { buildCommand } from './commands/build.ts';
24
25
 
25
26
  // ---------------------------------------------------------------------------
26
27
  // Top-level USAGE.
@@ -34,6 +35,7 @@ Commands:
34
35
  query <op> Typed STATE.md read operations.
35
36
  audit Probe connections + dry-run verify.
36
37
  init Bootstrap a new project.
38
+ build skills Compile per-harness skill bundles from source/skills/.
37
39
 
38
40
  Use 'gdd-sdk <command> -h' for command-specific flags.
39
41
 
@@ -57,6 +59,7 @@ export interface DispatcherDeps {
57
59
  readonly query?: typeof queryCommand;
58
60
  readonly audit?: typeof auditCommand;
59
61
  readonly init?: typeof initCommand;
62
+ readonly build?: typeof buildCommand;
60
63
  };
61
64
  }
62
65
 
@@ -81,6 +84,7 @@ export async function dispatch(
81
84
  query: deps.commands?.query ?? queryCommand,
82
85
  audit: deps.commands?.audit ?? auditCommand,
83
86
  init: deps.commands?.init ?? initCommand,
87
+ build: deps.commands?.build ?? buildCommand,
84
88
  };
85
89
 
86
90
  // Bare invocation or top-level help → USAGE.
@@ -111,6 +115,8 @@ export async function dispatch(
111
115
  return await commands.audit(parsed, { stdout, stderr });
112
116
  case 'init':
113
117
  return await commands.init(parsed, { stdout, stderr });
118
+ case 'build':
119
+ return await commands.build(parsed, { stdout, stderr });
114
120
  default:
115
121
  stderr.write(
116
122
  `gdd-sdk: unknown subcommand "${parsed.subcommand}"\n${USAGE}`,
@@ -125,6 +131,7 @@ const KNOWN_SUBCOMMANDS: ReadonlySet<string> = new Set([
125
131
  'query',
126
132
  'audit',
127
133
  'init',
134
+ 'build',
128
135
  ]);
129
136
 
130
137
  // ---------------------------------------------------------------------------
@@ -10,11 +10,11 @@ disable-model-invocation: true
10
10
 
11
11
  **Role:** Long-term parking lot for design ideas. Backing store: `.design/backlog/BACKLOG.md`.
12
12
 
13
- ## Step 1 Get text
13
+ ## Step 1 - Get text
14
14
 
15
15
  If `$ARGUMENTS` is empty, ask the user: "What should be added to the backlog?"
16
16
 
17
- ## Step 2 Append
17
+ ## Step 2 - Append
18
18
 
19
19
  Create `.design/backlog/` directory and `BACKLOG.md` with `# Design Backlog` header if missing.
20
20
 
@@ -43,6 +43,6 @@ Promote later via: /gdd:review-backlog
43
43
  ## Constraints
44
44
 
45
45
  - Do not modify files outside `.design/backlog/`.
46
- - Do not set status to anything other than `parked` here `/gdd:review-backlog` owns status transitions.
46
+ - Do not set status to anything other than `parked` here - `/gdd:review-backlog` owns status transitions.
47
47
 
48
48
  ## ADD-BACKLOG COMPLETE
@@ -6,7 +6,7 @@ tools: Bash, Read, Glob, Grep
6
6
 
7
7
  # /gdd:analyze-dependencies
8
8
 
9
- **Role:** Surface dependency relationships, token usage spread, component graphs, and decision traceability using `.design/intel/`. All queries are O(1) reads against pre-built JSON slices no file greps. See `./reference/heuristics.md` for the underlying dependency-analysis heuristics (fan-out thresholds, orphan-token criteria, cycle-detection bias).
9
+ **Role:** Surface dependency relationships, token usage spread, component graphs, and decision traceability using `.design/intel/`. All queries are O(1) reads against pre-built JSON slices - no file greps. See `./reference/heuristics.md` for the underlying dependency-analysis heuristics (fan-out thresholds, orphan-token criteria, cycle-detection bias).
10
10
 
11
11
  ## Pre-flight
12
12
 
@@ -26,13 +26,13 @@ Then re-run /gdd:analyze-dependencies.
26
26
 
27
27
  ## Usage modes
28
28
 
29
- - `/gdd:analyze-dependencies` run all four analyses and print a combined report
30
- - `/gdd:analyze-dependencies tokens` token fan-out only
31
- - `/gdd:analyze-dependencies components` component call-graph only
32
- - `/gdd:analyze-dependencies decisions` decision traceability only
33
- - `/gdd:analyze-dependencies circular` circular dependency detection only
29
+ - `/gdd:analyze-dependencies` - run all four analyses and print a combined report
30
+ - `/gdd:analyze-dependencies tokens` - token fan-out only
31
+ - `/gdd:analyze-dependencies components` - component call-graph only
32
+ - `/gdd:analyze-dependencies decisions` - decision traceability only
33
+ - `/gdd:analyze-dependencies circular` - circular dependency detection only
34
34
 
35
- ## Analysis 1 Token fan-out
35
+ ## Analysis 1 - Token fan-out
36
36
 
37
37
  Surfaces tokens referenced in many files + orphans (referenced exactly once).
38
38
 
@@ -42,7 +42,7 @@ Surfaces tokens referenced in many files + orphans (referenced exactly once).
42
42
 
43
43
  Header: `━━━ Token fan-out ━━━` … `(top 20 shown)` … `Orphaned tokens (referenced in exactly 1 file):` … footer rule.
44
44
 
45
- ## Analysis 2 Component call-graph
45
+ ## Analysis 2 - Component call-graph
46
46
 
47
47
  Surfaces widely-referenced components and the files referencing each.
48
48
 
@@ -52,7 +52,7 @@ Surfaces widely-referenced components and the files referencing each.
52
52
 
53
53
  Header: `━━━ Component call-graph ━━━` … footer rule.
54
54
 
55
- ## Analysis 3 Decision traceability
55
+ ## Analysis 3 - Decision traceability
56
56
 
57
57
  Maps decisions to skill/agent files that cite them.
58
58
 
@@ -64,7 +64,7 @@ Maps decisions to skill/agent files that cite them.
64
64
 
65
65
  Empty-state: `No decisions indexed. Run node scripts/build-intel.cjs after creating .design/DESIGN-CONTEXT.md.`
66
66
 
67
- ## Analysis 4 Circular dependency detection
67
+ ## Analysis 4 - Circular dependency detection
68
68
 
69
69
  Detects cycles in the `@`-reference graph (File A → File B → File A). DFS with path-tracking detects back-edges; algorithm + adjacency-map shape detailed in `./reference/heuristics.md` §"Dependency-cycle detection".
70
70
 
@@ -45,14 +45,14 @@ Change: ...
45
45
  If `--dry-run`: print `[dry-run — would prompt here]` and continue to next proposal without prompting.
46
46
 
47
47
  Based on user choice:
48
- - **a** apply (see Apply Logic below)
49
- - **s** mark proposal as `**Reviewed: skipped**` in the reflections file; continue
50
- - **e** show the Change text, ask user to provide edited version, then apply the edited version
51
- - **q** stop processing; print "Stopped at proposal N. Resume with `/gdd:apply-reflections --cycle <slug>`."
48
+ - **a** - apply (see Apply Logic below)
49
+ - **s** - mark proposal as `**Reviewed: skipped**` in the reflections file; continue
50
+ - **e** - show the Change text, ask user to provide edited version, then apply the edited version
51
+ - **q** - stop processing; print "Stopped at proposal N. Resume with `/gdd:apply-reflections --cycle <slug>`."
52
52
 
53
53
  ### 4. Apply Logic by Proposal Type
54
54
 
55
- After the user chooses `a` (apply) or `e` (edit-then-apply), branch on the proposal's bracketed type tag and follow the per-type apply procedure in `./apply-reflections-procedure.md` one numbered procedure each for `[FRONTMATTER]`, `[REFERENCE]`, `[BUDGET]`, `[QUESTION]`, `[GLOBAL-SKILL]`. All branches end with `**Applied**: <date>` appended to the proposal block in the reflections file.
55
+ After the user chooses `a` (apply) or `e` (edit-then-apply), branch on the proposal's bracketed type tag and follow the per-type apply procedure in `./apply-reflections-procedure.md` - one numbered procedure each for `[FRONTMATTER]`, `[REFERENCE]`, `[BUDGET]`, `[QUESTION]`, `[GLOBAL-SKILL]`. All branches end with `**Applied**: <date>` appended to the proposal block in the reflections file.
56
56
 
57
57
  ### 5. Summary
58
58
 
@@ -73,12 +73,12 @@ Incubator drafts authored by `scripts/lib/incubator-author.cjs` (Phase 29-04) ap
73
73
  1. `discoverIncubatorDrafts()` → list pending drafts.
74
74
  2. `renderProposal(draft)` → show full body + diff + origin signals.
75
75
  3. User chooses **accept** | **reject** | **defer** | **edit**.
76
- 4. **accept** scope-guard runs FIRST (`validateScope` from `scripts/validate-incubator-scope.cjs`); `applyAccept` then promotes draft → `agents/<slug>.md` or `skills/<slug>/SKILL.md` and appends a registry entry. Single-step per D-04.
77
- 5. **reject** `applyReject` removes the incubator subdir.
78
- 6. **defer** no-op; draft re-surfaces next run.
79
- 7. **edit** `applyEdit` opens `$EDITOR`; re-prompt user on close.
76
+ 4. **accept** - scope-guard runs FIRST (`validateScope` from `scripts/validate-incubator-scope.cjs`); `applyAccept` then promotes draft → `agents/<slug>.md` or `skills/<slug>/SKILL.md` and appends a registry entry. Single-step per D-04.
77
+ 5. **reject** - `applyReject` removes the incubator subdir.
78
+ 6. **defer** - no-op; draft re-surfaces next run.
79
+ 7. **edit** - `applyEdit` opens `$EDITOR`; re-prompt user on close.
80
80
 
81
- **Stage-1 gate.** At session start, call `checkStage1Gate()`. If `thresholdMet && !optInRecorded`, display the opt-in prompt once. NEVER auto-flip per D-01 recording opt-in requires explicit user confirmation via `recordOptIn()`. Full procedure: `./apply-reflections-procedure.md` §[INCUBATOR].
81
+ **Stage-1 gate.** At session start, call `checkStage1Gate()`. If `thresholdMet && !optInRecorded`, display the opt-in prompt once. NEVER auto-flip per D-01 - recording opt-in requires explicit user confirmation via `recordOptIn()`. Full procedure: `./apply-reflections-procedure.md` §[INCUBATOR].
82
82
 
83
83
  ## [KFM-CANDIDATE]
84
84
 
@@ -87,6 +87,6 @@ KFM-catalogue proposals authored by `scripts/lib/reflector-kfm-proposer.cjs` (Ph
87
87
  ## Do Not
88
88
 
89
89
  - Do not apply any proposal without the user explicitly choosing `a` or `e`.
90
- - Do not modify source code files (`.ts`, `.tsx`, `.css`, `.js`) only agent files, reference files, budget.json, discussant questions, global skills, and incubator drafts.
91
- - Do not re-run the reflector this skill only applies existing proposals.
92
- - Do not bypass the scope guard or auto-flip Stage-1 both are non-negotiable per D-05 / D-01.
90
+ - Do not modify source code files (`.ts`, `.tsx`, `.css`, `.js`) - only agent files, reference files, budget.json, discussant questions, global skills, and incubator drafts.
91
+ - Do not re-run the reflector - this skill only applies existing proposals.
92
+ - Do not bypass the scope guard or auto-flip Stage-1 - both are non-negotiable per D-05 / D-01.
@@ -7,7 +7,7 @@ tags: [apply-reflections, proposal, frontmatter, reference, budget, question, gl
7
7
  last_updated: 2026-05-21
8
8
  ---
9
9
 
10
- # Apply-Reflections Per-Type Procedure
10
+ # Apply-Reflections - Per-Type Procedure
11
11
 
12
12
  Extracted from `skills/apply-reflections/SKILL.md` per Phase 28.5 D-10 (extract-then-link,
13
13
  never delete content). The orchestrator loop in `apply-reflections` (resolve file → parse →
@@ -64,7 +64,7 @@ the proposal's bracketed type tag.
64
64
  <content>
65
65
  ```
66
66
 
67
- 5. Print: "Global skill written to ~/.claude/gdd/global-skills/<name>.md auto-loads in all future gdd sessions"
67
+ 5. Print: "Global skill written to ~/.claude/gdd/global-skills/<name>.md - auto-loads in all future gdd sessions"
68
68
  6. Append `**Applied**: <date>` to proposal in reflections file
69
69
 
70
70
  ### [INCUBATOR]
@@ -82,33 +82,33 @@ Use `scripts/lib/apply-reflections/incubator-proposals.cjs` for all actions.
82
82
 
83
83
  **Per-action behavior:**
84
84
 
85
- 1. **accept** call `applyAccept(draft, { registryPath, repoRoot })`.
85
+ 1. **accept** - call `applyAccept(draft, { registryPath, repoRoot })`.
86
86
  - The helper calls `validateScope(draft.target_path)` from `scripts/validate-incubator-scope.cjs` **before** any write. Out-of-scope paths throw and the registry stays untouched. This is the non-bypassable scope guard (D-05).
87
- - On success: target artifact written, `reference/registry.json` appended with `{ slug, path, added, origin: 'incubator' }`, incubator subdir removed last (T-29.05-04 partial-failure leaves draft retryable).
88
- - Print: "Accepted promoted to <target_path>; registered."
87
+ - On success: target artifact written, `reference/registry.json` appended with `{ slug, path, added, origin: 'incubator' }`, incubator subdir removed last (T-29.05-04 - partial-failure leaves draft retryable).
88
+ - Print: "Accepted - promoted to <target_path>; registered."
89
89
  - Append `**Applied**: <date>` to the proposal block.
90
90
 
91
- 2. **reject** call `applyReject(draft)`. Only the incubator subdir is removed; registry is untouched. Append `**Reviewed: rejected**` to the reflections file.
91
+ 2. **reject** - call `applyReject(draft)`. Only the incubator subdir is removed; registry is untouched. Append `**Reviewed: rejected**` to the reflections file.
92
92
 
93
- 3. **defer** no-op. Print "Deferred draft re-surfaces next run." Append `**Reviewed: deferred**`.
93
+ 3. **defer** - no-op. Print "Deferred - draft re-surfaces next run." Append `**Reviewed: deferred**`.
94
94
 
95
- 4. **edit** call `applyEdit(draft)` (uses `$EDITOR` or the `editorCmd` array option). On clean exit, the helper reloads the draft and the caller re-runs `renderProposal` + the prompt. On non-zero exit, the original draft is preserved unchanged.
95
+ 4. **edit** - call `applyEdit(draft)` (uses `$EDITOR` or the `editorCmd` array option). On clean exit, the helper reloads the draft and the caller re-runs `renderProposal` + the prompt. On non-zero exit, the original draft is preserved unchanged.
96
96
 
97
- **Stage-1 gate (D-01 no auto-flip):**
97
+ **Stage-1 gate (D-01 - no auto-flip):**
98
98
 
99
- 1. At the start of the cycle, call `checkStage1Gate({ gateSpecPath, statePath, registryPath })`. The call is **read-only** never mutates state. The returned `{ thresholdMet, summary, optInRecorded }` is informational.
99
+ 1. At the start of the cycle, call `checkStage1Gate({ gateSpecPath, statePath, registryPath })`. The call is **read-only** - never mutates state. The returned `{ thresholdMet, summary, optInRecorded }` is informational.
100
100
  2. If `thresholdMet && !optInRecorded`, surface a one-time prompt:
101
101
  ```
102
102
  Stage-1 capability-gap authoring threshold met: <summary>
103
103
  Enable incubator-draft promotion? (y/N)
104
104
  ```
105
- 3. **Only on explicit `y`**, call `recordOptIn({ statePath, confirmedBy })`. The function is idempotent a second call detects the existing record and returns `{ alreadyRecorded: true }`. Never call it on any other input.
105
+ 3. **Only on explicit `y`**, call `recordOptIn({ statePath, confirmedBy })`. The function is idempotent - a second call detects the existing record and returns `{ alreadyRecorded: true }`. Never call it on any other input.
106
106
 
107
107
  **Why this is gated.** The `[INCUBATOR]` proposal class can write executable surface (agents + skills) into the plugin runtime. Both Phase 29 D-01 (no auto-flip) and D-05 (scope guard) exist because that surface has integration-test and security implications that exceed reflector autonomy. `validateScope` keeps the file landing zone confined to `agents/<slug>.md` or `skills/<slug>/SKILL.md`. The Stage-1 gate keeps the *whether* of opting in to incubator authoring under explicit user control even after the data threshold says we have enough signal.
108
108
 
109
109
  **Bandit-fairness gate on `accept` (Phase 29 Plan 06 / CONTEXT D-04).**
110
110
 
111
- When the `accept` action promotes an incubator draft, the bandit-router arms for the freshly-promoted agent/skill MUST be bootstrapped with `prior_class: 'promoted_incubator'`. This invokes a conservative `Beta(2, 8)` bootstrap prior (posterior mean 0.2) instead of the optimistic Phase 23.5 informed prior the bandit-fairness gate IS the staging mechanism (D-04: no separate two-step ratify split). The conservative prior suppresses preferential selection until ~8-10 successful pulls accumulate.
111
+ When the `accept` action promotes an incubator draft, the bandit-router arms for the freshly-promoted agent/skill MUST be bootstrapped with `prior_class: 'promoted_incubator'`. This invokes a conservative `Beta(2, 8)` bootstrap prior (posterior mean 0.2) instead of the optimistic Phase 23.5 informed prior - the bandit-fairness gate IS the staging mechanism (D-04: no separate two-step ratify split). The conservative prior suppresses preferential selection until ~8-10 successful pulls accumulate.
112
112
 
113
113
  Call shape (whether eagerly invoked on promotion or via first-pull lazy bootstrap):
114
114
 
@@ -133,7 +133,7 @@ bandit.updateWithDelegate({
133
133
  });
134
134
  ```
135
135
 
136
- Omitting `prior_class` reverts to Phase 23.5 informed-prior bootstrap (non-breaking). The reward math is unchanged `prior_class` only affects bootstrap.
136
+ Omitting `prior_class` reverts to Phase 23.5 informed-prior bootstrap (non-breaking). The reward math is unchanged - `prior_class` only affects bootstrap.
137
137
 
138
138
  ### [KFM-CANDIDATE]
139
139
 
@@ -141,7 +141,7 @@ Known-failure-mode catalogue proposals come from `scripts/lib/reflector-kfm-prop
141
141
 
142
142
  Two upstream signals share this draft surface (D-06):
143
143
  - `capability_gap` clusters of size ≥3 with no existing-entry match (Phase 29-03 aggregator + `failure-mode-matcher.match()`).
144
- - `kfm-candidate` events from the Phase 30.5-03 Task 2 authority-watcher whitelist (D-06 single events bypass the ≥3 gate).
144
+ - `kfm-candidate` events from the Phase 30.5-03 Task 2 authority-watcher whitelist (D-06 - single events bypass the ≥3 gate).
145
145
 
146
146
  Use `scripts/lib/reflector-kfm-proposer.cjs` for all actions:
147
147
 
@@ -153,18 +153,18 @@ Use `scripts/lib/reflector-kfm-proposer.cjs` for all actions:
153
153
 
154
154
  **Per-action behavior:**
155
155
 
156
- 1. **accept** call `applyAccept(draftPath, { repoRoot })`.
156
+ 1. **accept** - call `applyAccept(draftPath, { repoRoot })`.
157
157
  - The helper re-stamps the proposed `id` with the next available `KFM-NNN` from the catalogue (avoids collisions when multiple drafts promote in the same run).
158
158
  - Appends a `### KFM-NNN — <symptom heading>` section into `reference/known-failure-modes.md` with the yaml block intact.
159
159
  - Appends a `reference/registry.json` entry: `{ name: 'known-failure-modes/kfm-NNN', path: 'reference/known-failure-modes.md', type: 'failure-mode', phase: 30.5, origin: 'incubator-kfm', added: '<ISO date>' }`.
160
160
  - Removes the incubator subdir LAST (partial-failure leaves the draft retryable).
161
- - Print: "Accepted promoted to KFM-NNN in reference/known-failure-modes.md."
161
+ - Print: "Accepted - promoted to KFM-NNN in reference/known-failure-modes.md."
162
162
  - Append `**Applied**: <date>` to the proposal entry (when surfaced from a reflections file).
163
163
 
164
- 2. **reject** call `applyReject(draftPath)`. Only the incubator subdir is removed; catalogue + registry untouched. Print: "Rejected draft removed."
164
+ 2. **reject** - call `applyReject(draftPath)`. Only the incubator subdir is removed; catalogue + registry untouched. Print: "Rejected - draft removed."
165
165
 
166
- 3. **defer** call `applyDefer(draftPath, { deferredUntil })` where `deferredUntil` is an ISO date (default: today + 30d). The helper stamps `deferred_until: <ISO>` into the draft body. Print: "Deferred draft re-surfaces next run."
166
+ 3. **defer** - call `applyDefer(draftPath, { deferredUntil })` where `deferredUntil` is an ISO date (default: today + 30d). The helper stamps `deferred_until: <ISO>` into the draft body. Print: "Deferred - draft re-surfaces next run."
167
167
 
168
- 4. **edit** call `applyEdit(draftPath)` which returns the draft path. The caller opens `$EDITOR` on the path; on clean exit, re-discover the draft and re-prompt. Typical edits: replace `pattern: 'TODO: ...'` with a conservative regex, replace `fix: 'TODO: ...'` with a step-by-step user-runnable remedy, set `severity` if `medium` default is wrong.
168
+ 4. **edit** - call `applyEdit(draftPath)` which returns the draft path. The caller opens `$EDITOR` on the path; on clean exit, re-discover the draft and re-prompt. Typical edits: replace `pattern: 'TODO: ...'` with a conservative regex, replace `fix: 'TODO: ...'` with a step-by-step user-runnable remedy, set `severity` if `medium` default is wrong.
169
169
 
170
- **Why this is gated.** `reference/known-failure-modes.md` feeds Phase 30's `triage-matcher.cjs` BEFORE the consent prompt a bad entry could mute legitimate issue reports. The user-review gate is non-negotiable (D-05). The proposer is strictly proposal-only; the canonical catalogue only changes via the accept action.
170
+ **Why this is gated.** `reference/known-failure-modes.md` feeds Phase 30's `triage-matcher.cjs` BEFORE the consent prompt - a bad entry could mute legitimate issue reports. The user-review gate is non-negotiable (D-05). The proposer is strictly proposal-only; the canonical catalogue only changes via the accept action.
@@ -7,7 +7,7 @@ tools: Read, Write, Task, Glob, Bash
7
7
 
8
8
  # /gdd:audit
9
9
 
10
- Wraps the existing `design-auditor`, `design-verifier`, and `design-integration-checker` agents no new auditor logic here. Parses flags, spawns the right combination, prints summary.
10
+ Wraps the existing `design-auditor`, `design-verifier`, and `design-integration-checker` agents - no new auditor logic here. Parses flags, spawns the right combination, prints summary.
11
11
 
12
12
  For the 6-pillar scoring rubric this skill aggregates, see `../../reference/audit-scoring.md`. For the shared design-quality pillar set that frames the score categories, see `../../reference/shared-preamble.md`.
13
13
 
@@ -16,7 +16,7 @@ For the 6-pillar scoring rubric this skill aggregates, see `../../reference/audi
16
16
  ### Default
17
17
  Spawn `design-auditor` (6-pillar scoring 1–4) in parallel with `design-integration-checker`. After both finish, read `.design/DESIGN-AUDIT.md` and `.design/DESIGN-INTEGRATION.md` and print a consolidated summary (scores + top 3 findings each).
18
18
 
19
- After the auditor and integration checker complete, check if `.design/learnings/` exists and contains at least one `.md` file. If so and unless `--no-reflect` is passed spawn `design-reflector` for the current cycle. Append the reflection proposal count to the audit summary: "Reflection: N proposals → review with `/gdd:apply-reflections`".
19
+ After the auditor and integration checker complete, check if `.design/learnings/` exists and contains at least one `.md` file. If so - and unless `--no-reflect` is passed - spawn `design-reflector` for the current cycle. Append the reflection proposal count to the audit summary: "Reflection: N proposals → review with `/gdd:apply-reflections`".
20
20
 
21
21
  ### `--retroactive`
22
22
  Spawn `design-verifier` with cycle-span scope. Verifier reads all tasks completed in the current cycle (from STATE.md `<completed_tasks>` list for the active `cycle:` ID) and uses `DESIGN-PLAN.md` goals as the reference baseline for what "should have been done." Output: `.design/DESIGN-VERIFICATION.md` with per-task pass/fail.
@@ -37,7 +37,7 @@ Run only `design-auditor` (skip `design-integration-checker`). Faster health che
37
37
  - Check if `.design/learnings/` exists and has ≥1 `.md` file
38
38
  - If yes: spawn `design-reflector` for the current cycle slug (read from STATE.md)
39
39
  - After completion: count proposal types and append to summary
40
- 6. Recommend next action based on findings (e.g., "Score 2/4 on typography run `/gdd:discuss typography` to gather decisions").
40
+ 6. Recommend next action based on findings (e.g., "Score 2/4 on typography - run `/gdd:discuss typography` to gather decisions").
41
41
 
42
42
  ## Registered Audit Agents
43
43
 
@@ -53,7 +53,7 @@ Run only `design-auditor` (skip `design-integration-checker`). Faster health che
53
53
  - Do not modify source files.
54
54
  - Do not rerun stages; this is a read-only audit.
55
55
 
56
- ## Step 7 Update notice (post-closeout surface)
56
+ ## Step 7 - Update notice (post-closeout surface)
57
57
 
58
58
  After the consolidated audit summary has been printed (and any reflection-proposal count appended), emit the plugin-update banner if one is present:
59
59
 
@@ -63,17 +63,17 @@ After the consolidated audit summary has been printed (and any reflection-propos
63
63
 
64
64
  Written by `hooks/update-check.sh`; suppressed mid-pipeline and when the latest release is dismissed.
65
65
 
66
- ## Rationalizations Thought to Reality
66
+ ## Rationalizations - Thought to Reality
67
67
 
68
68
  The excuses an agent reaches for to skip or thin out an audit, and the drift each one misses:
69
69
 
70
70
  | Thought | Reality |
71
71
  |---------|---------|
72
72
  | "The audit passed last cycle, I can skip it this cycle." | Per-cycle audit catches drift the prior pass couldn't see; a skipped review is exactly where regressions accumulate unnoticed. |
73
- | "`--quick` is fine, integration isn't the concern here." | Dropping the integration-checker hides orphaned decisions wiring breaks even when the 6-pillar score looks healthy. |
73
+ | "`--quick` is fine, integration isn't the concern here." | Dropping the integration-checker hides orphaned decisions - wiring breaks even when the 6-pillar score looks healthy. |
74
74
  | "I can eyeball the scores instead of spawning the auditor." | The auditor's rubric scores six pillars consistently; an eyeballed review drifts toward whatever the agent already believes. |
75
75
  | "Reflection proposals are optional polish, skip the reflector." | The reflector turns this cycle's learnings into next-cycle improvements; skipping it lets the same mistakes repeat. |
76
76
  | "I'll modify the source while I'm in here fixing findings." | Audit is read-only by contract; editing source mid-audit invalidates the very scores you're producing. |
77
- | "Retroactive mode is overkill for a finished cycle." | Retroactive verification is the only check on tasks that shipped without per-task verify skipping it leaves a completed cycle unaudited. |
77
+ | "Retroactive mode is overkill for a finished cycle." | Retroactive verification is the only check on tasks that shipped without per-task verify - skipping it leaves a completed cycle unaudited. |
78
78
 
79
79
  ## AUDIT COMPLETE
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gdd-bandit-status
3
- description: "Surface read-only per-(agent, bin, delegate) bandit posterior snapshot alpha/beta/mean/stddev/count/last-used per arm. Phase 27.5 (v1.27.5) diagnostic. Use when investigating 'why did the bandit pick tier X for agent Y?' or when verifying posterior convergence after enabling adaptive_mode: full."
3
+ description: "Surface read-only per-(agent, bin, delegate) bandit posterior snapshot - alpha/beta/mean/stddev/count/last-used per arm. Phase 27.5 (v1.27.5) diagnostic. Use when investigating 'why did the bandit pick tier X for agent Y?' or when verifying posterior convergence after enabling adaptive_mode: full."
4
4
  argument-hint: ""
5
5
  tools: Read, Bash
6
6
  ---
@@ -9,7 +9,7 @@ tools: Read, Bash
9
9
 
10
10
  ## Role
11
11
 
12
- You are a deterministic, read-only diagnostic skill. You do not spawn agents and do not modify the posterior. You read `.design/telemetry/posterior.json` (path declared by `scripts/lib/bandit-router.cjs`'s `DEFAULT_POSTERIOR_PATH`), aggregate per-`(agent, bin, delegate, tier)` arm state, and emit a single Markdown table. Read-only per Phase 27.5 D-11 to reset, use `/gdd:bandit-reset` (Phase 23.5). See `./reference/bandit-integration.md` for setup, interpretation, and convergence guidance.
12
+ You are a deterministic, read-only diagnostic skill. You do not spawn agents and do not modify the posterior. You read `.design/telemetry/posterior.json` (path declared by `scripts/lib/bandit-router.cjs`'s `DEFAULT_POSTERIOR_PATH`), aggregate per-`(agent, bin, delegate, tier)` arm state, and emit a single Markdown table. Read-only per Phase 27.5 D-11 - to reset, use `/gdd:bandit-reset` (Phase 23.5). See `./reference/bandit-integration.md` for setup, interpretation, and convergence guidance.
13
13
 
14
14
  ## Invocation Contract
15
15
 
@@ -51,7 +51,7 @@ Schema:
51
51
  }
52
52
  ```
53
53
 
54
- The `delegate` field is optional absent = Phase 23.5 legacy slice (rendered as `-` in the table).
54
+ The `delegate` field is optional - absent = Phase 23.5 legacy slice (rendered as `-` in the table).
55
55
 
56
56
  ### 3. Render the table
57
57
 
@@ -81,7 +81,7 @@ Total arms: <count>
81
81
 
82
82
  Precision: alpha/beta 2 decimals; mean/stddev 3 decimals; count integer; `last_used` truncated to minute (`YYYY-MM-DDTHH:MM`); null `last_used` renders `-`.
83
83
 
84
- After the table, surface a per-`(agent, bin)` best-arm summary: for each unique pair, identify highest-mean arm (tie-broken by `count` DESC) answers "why did the bandit pick tier X?" at a glance.
84
+ After the table, surface a per-`(agent, bin)` best-arm summary: for each unique pair, identify highest-mean arm (tie-broken by `count` DESC) - answers "why did the bandit pick tier X?" at a glance.
85
85
 
86
86
  ### 4. Record
87
87
 
@@ -89,6 +89,6 @@ Append one JSONL line to `.design/skill-records.jsonl`: `{"skill":"gdd-bandit-st
89
89
 
90
90
  ## Cross-references
91
91
 
92
- - `./reference/bandit-integration.md` operator guide; interpretation patterns.
93
- - `scripts/lib/bandit-router.cjs` (Phase 23.5) posterior shape, `DEFAULT_POSTERIOR_PATH`, `loadPosterior()`.
94
- - `scripts/lib/bandit-router/integration.cjs` (27.5-01), `hooks/budget-enforcer.ts` (27.5-02), `scripts/lib/session-runner/index.ts` (27.5-03), `scripts/lib/bandit-arbitrage.cjs` (27.5-04), `/gdd:bandit-reset` (Phase 23.5) only surface that mutates the posterior.
92
+ - `./reference/bandit-integration.md` - operator guide; interpretation patterns.
93
+ - `scripts/lib/bandit-router.cjs` (Phase 23.5) - posterior shape, `DEFAULT_POSTERIOR_PATH`, `loadPosterior()`.
94
+ - `scripts/lib/bandit-router/integration.cjs` (27.5-01), `hooks/budget-enforcer.ts` (27.5-02), `scripts/lib/session-runner/index.ts` (27.5-03), `scripts/lib/bandit-arbitrage.cjs` (27.5-04), `/gdd:bandit-reset` (Phase 23.5) - only surface that mutates the posterior.