@su-record/vibe 2.16.4 → 3.1.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 (607) hide show
  1. package/CLAUDE.md +8 -8
  2. package/README.en.md +46 -29
  3. package/README.md +41 -24
  4. package/agents/acceptance-tester.md +56 -0
  5. package/agents/architect.md +25 -67
  6. package/agents/build-error-resolver.md +28 -97
  7. package/agents/code-reviewer.md +89 -0
  8. package/agents/diagrammer.md +34 -169
  9. package/agents/documenter.md +43 -0
  10. package/agents/e2e-tester.md +46 -281
  11. package/agents/event/event-ops.md +54 -77
  12. package/agents/event/event-planner.md +63 -0
  13. package/agents/figma/figma-engineer.md +76 -0
  14. package/agents/implementer.md +26 -41
  15. package/agents/security-reviewer.md +56 -0
  16. package/agents/tester.md +37 -33
  17. package/agents/ui/design-reviewer.md +62 -0
  18. package/agents/ui/design-system-gen.md +63 -0
  19. package/dist/cli/commands/remove.d.ts.map +1 -1
  20. package/dist/cli/commands/remove.js +8 -10
  21. package/dist/cli/commands/remove.js.map +1 -1
  22. package/dist/cli/index.d.ts +0 -4
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +0 -4
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/llm/model-refresh.js +1 -1
  27. package/dist/cli/llm/model-refresh.js.map +1 -1
  28. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  29. package/dist/cli/postinstall/claude-agents.js +16 -77
  30. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  31. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  32. package/dist/cli/postinstall/constants.js +80 -296
  33. package/dist/cli/postinstall/constants.js.map +1 -1
  34. package/dist/cli/postinstall/cursor-agents.d.ts +5 -0
  35. package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -1
  36. package/dist/cli/postinstall/cursor-agents.js +26 -68
  37. package/dist/cli/postinstall/cursor-agents.js.map +1 -1
  38. package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -1
  39. package/dist/cli/postinstall/cursor-skills.js +26 -30
  40. package/dist/cli/postinstall/cursor-skills.js.map +1 -1
  41. package/dist/cli/postinstall/main.d.ts.map +1 -1
  42. package/dist/cli/postinstall/main.js +0 -2
  43. package/dist/cli/postinstall/main.js.map +1 -1
  44. package/dist/cli/setup/Provisioner.d.ts.map +1 -1
  45. package/dist/cli/setup/Provisioner.js +19 -21
  46. package/dist/cli/setup/Provisioner.js.map +1 -1
  47. package/dist/cli/utils.d.ts +4 -1
  48. package/dist/cli/utils.d.ts.map +1 -1
  49. package/dist/cli/utils.js +4 -1
  50. package/dist/cli/utils.js.map +1 -1
  51. package/dist/infra/lib/FrameworkDetector.js +4 -4
  52. package/dist/infra/lib/FrameworkDetector.js.map +1 -1
  53. package/dist/infra/lib/OrchestrateWorkflow.js +2 -2
  54. package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
  55. package/dist/infra/lib/browser/launch.js +1 -1
  56. package/dist/infra/lib/browser/launch.js.map +1 -1
  57. package/dist/infra/lib/browser/types.d.ts +1 -1
  58. package/dist/infra/lib/browser/types.js +1 -1
  59. package/dist/infra/lib/constants.d.ts +1 -1
  60. package/dist/infra/lib/constants.d.ts.map +1 -1
  61. package/dist/infra/lib/constants.js +4 -5
  62. package/dist/infra/lib/constants.js.map +1 -1
  63. package/dist/infra/lib/evolution/__tests__/integration.test.js +7 -7
  64. package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -1
  65. package/dist/infra/lib/memory/index.d.ts +0 -2
  66. package/dist/infra/lib/memory/index.d.ts.map +1 -1
  67. package/dist/infra/lib/memory/index.js +0 -2
  68. package/dist/infra/lib/memory/index.js.map +1 -1
  69. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +1 -1
  70. package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
  71. package/dist/tools/index.d.ts +0 -4
  72. package/dist/tools/index.d.ts.map +1 -1
  73. package/dist/tools/index.js +0 -4
  74. package/dist/tools/index.js.map +1 -1
  75. package/dist/tools/memory/autoSaveContext.d.ts +0 -1
  76. package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
  77. package/dist/tools/memory/autoSaveContext.js +13 -27
  78. package/dist/tools/memory/autoSaveContext.js.map +1 -1
  79. package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -78
  80. package/hooks/scripts/__tests__/.vibe/memories/memories.db +0 -0
  81. package/hooks/scripts/__tests__/.vibe/memories/memories.db-shm +0 -0
  82. package/hooks/scripts/__tests__/.vibe/memories/memories.db-wal +0 -0
  83. package/hooks/scripts/__tests__/clone-behaviors.test.js +64 -0
  84. package/hooks/scripts/__tests__/clone-merge-responsive.test.js +106 -0
  85. package/hooks/scripts/__tests__/code-check-detectors.test.js +2 -2
  86. package/hooks/scripts/__tests__/run-ledger.test.js +1 -1
  87. package/hooks/scripts/__tests__/scope-from-spec.test.js +12 -12
  88. package/hooks/scripts/__tests__/step-counter.test.js +1 -1
  89. package/hooks/scripts/clone-extract.js +242 -28
  90. package/hooks/scripts/clone-merge-responsive.js +184 -0
  91. package/hooks/scripts/clone-spec.js +33 -8
  92. package/hooks/scripts/clone-validate.js +15 -9
  93. package/hooks/scripts/code-check.js +16 -203
  94. package/hooks/scripts/context-save.js +0 -11
  95. package/hooks/scripts/lib/scope-from-spec.js +9 -6
  96. package/hooks/scripts/post-edit-dispatcher.js +1 -1
  97. package/hooks/scripts/prompt-dispatcher.js +7 -18
  98. package/hooks/scripts/session-start.js +25 -35
  99. package/package.json +6 -5
  100. package/skills/agents-md/SKILL.md +62 -15
  101. package/skills/arch-guard/SKILL.md +1 -1
  102. package/skills/brand-assets/SKILL.md +2 -2
  103. package/skills/capability-loop/SKILL.md +1 -1
  104. package/skills/chub-usage/SKILL.md +1 -1
  105. package/skills/clone/SKILL.md +132 -55
  106. package/skills/commerce-patterns/SKILL.md +2 -2
  107. package/skills/commit-push-pr/SKILL.md +0 -1
  108. package/skills/context7-usage/SKILL.md +1 -1
  109. package/skills/design-refine/SKILL.md +140 -0
  110. package/skills/{design-polish → design-refine}/templates/polish-report.md +1 -1
  111. package/skills/{design-normalize → design-refine}/templates/token-audit.md +3 -3
  112. package/skills/design-review/SKILL.md +143 -0
  113. package/skills/{design-audit → design-review}/agents/a11y-auditor.md +1 -1
  114. package/skills/{design-audit → design-review}/agents/performance-auditor.md +1 -1
  115. package/skills/{design-audit → design-review}/agents/responsive-auditor.md +1 -1
  116. package/skills/{design-audit → design-review}/agents/slop-detector.md +1 -1
  117. package/skills/{design-audit → design-review}/frameworks/core-web-vitals.md +1 -1
  118. package/skills/{design-audit → design-review}/frameworks/wcag-checklist.md +1 -1
  119. package/skills/{design-audit → design-review}/orchestrator.md +3 -3
  120. package/skills/{design-critique → design-review}/templates/critique-report.md +3 -3
  121. package/skills/{design-audit → design-review}/templates/report.md +3 -3
  122. package/skills/design-teach/SKILL.md +11 -11
  123. package/skills/docs/SKILL.md +14 -16
  124. package/skills/e2e-commerce/SKILL.md +1 -1
  125. package/skills/event-comms/SKILL.md +1 -1
  126. package/skills/event-ops/SKILL.md +2 -2
  127. package/skills/event-planning/SKILL.md +1 -1
  128. package/skills/exec-plan/SKILL.md +2 -2
  129. package/skills/figma/SKILL.md +240 -148
  130. package/skills/figma/rubrics/css-mapping.md +125 -0
  131. package/skills/git-worktree/SKILL.md +1 -1
  132. package/skills/handoff/SKILL.md +1 -1
  133. package/skills/parallel-research/SKILL.md +14 -28
  134. package/skills/priority-todos/SKILL.md +1 -1
  135. package/skills/regress/SKILL.md +11 -0
  136. package/skills/restraint/SKILL.md +72 -0
  137. package/skills/seo-checklist/SKILL.md +2 -2
  138. package/skills/spec/SKILL.md +65 -836
  139. package/skills/test/SKILL.md +3 -3
  140. package/skills/tool-fallback/SKILL.md +2 -2
  141. package/skills/vercel-react-best-practices/SKILL.md +1 -1
  142. package/skills/vibe/SKILL.md +20 -35
  143. package/skills/vibe.analyze/SKILL.md +7 -9
  144. package/skills/vibe.clone/SKILL.md +39 -19
  145. package/skills/vibe.docs/SKILL.md +1 -1
  146. package/skills/vibe.event/SKILL.md +27 -27
  147. package/skills/vibe.figma/SKILL.md +14 -18
  148. package/skills/vibe.harness/SKILL.md +5 -5
  149. package/skills/vibe.reason/SKILL.md +0 -2
  150. package/skills/vibe.review/SKILL.md +45 -49
  151. package/skills/vibe.run/SKILL.md +2 -5
  152. package/skills/vibe.run/references/parallel-agents.md +33 -98
  153. package/skills/vibe.spec/SKILL.md +38 -535
  154. package/skills/vibe.utils/SKILL.md +3 -3
  155. package/skills/vibe.verify/SKILL.md +70 -542
  156. package/skills/video-production/SKILL.md +1 -1
  157. package/vibe/rules/orchestrator-contract.md +5 -4
  158. package/vibe/rules/quality/performance.md +1 -1
  159. package/vibe/templates/claudemd-template.md +1 -1
  160. package/vibe/templates/spec-template.md +35 -185
  161. package/agents/architect-low.md +0 -41
  162. package/agents/architect-medium.md +0 -59
  163. package/agents/compounder.md +0 -265
  164. package/agents/docs/api-documenter.md +0 -99
  165. package/agents/docs/changelog-writer.md +0 -93
  166. package/agents/event/event-comms.md +0 -78
  167. package/agents/event/event-content.md +0 -68
  168. package/agents/event/event-image.md +0 -95
  169. package/agents/event/event-scheduler.md +0 -69
  170. package/agents/event/event-speaker.md +0 -86
  171. package/agents/explorer-low.md +0 -42
  172. package/agents/explorer-medium.md +0 -59
  173. package/agents/explorer.md +0 -48
  174. package/agents/figma/figma-analyst.md +0 -56
  175. package/agents/figma/figma-architect.md +0 -116
  176. package/agents/figma/figma-auditor.md +0 -86
  177. package/agents/figma/figma-builder.md +0 -104
  178. package/agents/implementer-low.md +0 -43
  179. package/agents/implementer-medium.md +0 -52
  180. package/agents/junior-mentor.md +0 -141
  181. package/agents/planning/requirements-analyst.md +0 -84
  182. package/agents/planning/ux-advisor.md +0 -83
  183. package/agents/qa/acceptance-tester.md +0 -86
  184. package/agents/qa/edge-case-finder.md +0 -93
  185. package/agents/qa/qa-coordinator.md +0 -131
  186. package/agents/refactor-cleaner.md +0 -143
  187. package/agents/research/best-practices.md +0 -199
  188. package/agents/research/codebase-patterns.md +0 -157
  189. package/agents/research/framework-docs.md +0 -188
  190. package/agents/research/security-advisory.md +0 -213
  191. package/agents/review/architecture-reviewer.md +0 -107
  192. package/agents/review/complexity-reviewer.md +0 -116
  193. package/agents/review/data-integrity-reviewer.md +0 -88
  194. package/agents/review/git-history-reviewer.md +0 -103
  195. package/agents/review/performance-reviewer.md +0 -86
  196. package/agents/review/python-reviewer.md +0 -150
  197. package/agents/review/rails-reviewer.md +0 -139
  198. package/agents/review/react-reviewer.md +0 -144
  199. package/agents/review/security-reviewer.md +0 -80
  200. package/agents/review/simplicity-reviewer.md +0 -140
  201. package/agents/review/test-coverage-reviewer.md +0 -116
  202. package/agents/review/typescript-reviewer.md +0 -127
  203. package/agents/searcher.md +0 -54
  204. package/agents/simplifier.md +0 -124
  205. package/agents/teams/debug-team.md +0 -74
  206. package/agents/teams/dev-team.md +0 -92
  207. package/agents/teams/docs-team.md +0 -84
  208. package/agents/teams/figma-team.md +0 -89
  209. package/agents/teams/fullstack-team.md +0 -87
  210. package/agents/teams/lite-team.md +0 -73
  211. package/agents/teams/migration-team.md +0 -82
  212. package/agents/teams/refactor-team.md +0 -98
  213. package/agents/teams/research-team.md +0 -90
  214. package/agents/teams/review-debate-team.md +0 -129
  215. package/agents/teams/security-team.md +0 -85
  216. package/agents/ui/ui-a11y-auditor.md +0 -93
  217. package/agents/ui/ui-antipattern-detector.md +0 -102
  218. package/agents/ui/ui-dataviz-advisor.md +0 -69
  219. package/agents/ui/ui-design-system-gen.md +0 -57
  220. package/agents/ui/ui-industry-analyzer.md +0 -49
  221. package/agents/ui/ui-layout-architect.md +0 -65
  222. package/agents/ui/ui-stack-implementer.md +0 -68
  223. package/agents/ui/ux-compliance-reviewer.md +0 -81
  224. package/agents/ui-previewer.md +0 -262
  225. package/dist/cli/llm/gemini-commands.d.ts +0 -25
  226. package/dist/cli/llm/gemini-commands.d.ts.map +0 -1
  227. package/dist/cli/llm/gemini-commands.js +0 -143
  228. package/dist/cli/llm/gemini-commands.js.map +0 -1
  229. package/dist/cli/postinstall/codex-agents.d.ts +0 -24
  230. package/dist/cli/postinstall/codex-agents.d.ts.map +0 -1
  231. package/dist/cli/postinstall/codex-agents.js +0 -114
  232. package/dist/cli/postinstall/codex-agents.js.map +0 -1
  233. package/dist/cli/postinstall/codex-instruction.d.ts +0 -10
  234. package/dist/cli/postinstall/codex-instruction.d.ts.map +0 -1
  235. package/dist/cli/postinstall/codex-instruction.js +0 -56
  236. package/dist/cli/postinstall/codex-instruction.js.map +0 -1
  237. package/dist/cli/postinstall/gemini-agents.d.ts +0 -12
  238. package/dist/cli/postinstall/gemini-agents.d.ts.map +0 -1
  239. package/dist/cli/postinstall/gemini-agents.js +0 -80
  240. package/dist/cli/postinstall/gemini-agents.js.map +0 -1
  241. package/dist/cli/postinstall/gemini-instruction.d.ts +0 -10
  242. package/dist/cli/postinstall/gemini-instruction.d.ts.map +0 -1
  243. package/dist/cli/postinstall/gemini-instruction.js +0 -59
  244. package/dist/cli/postinstall/gemini-instruction.js.map +0 -1
  245. package/dist/infra/lib/ContextCompressor.d.ts +0 -104
  246. package/dist/infra/lib/ContextCompressor.d.ts.map +0 -1
  247. package/dist/infra/lib/ContextCompressor.js +0 -297
  248. package/dist/infra/lib/ContextCompressor.js.map +0 -1
  249. package/dist/infra/lib/ContextCompressor.test.d.ts +0 -2
  250. package/dist/infra/lib/ContextCompressor.test.d.ts.map +0 -1
  251. package/dist/infra/lib/ContextCompressor.test.js +0 -25
  252. package/dist/infra/lib/ContextCompressor.test.js.map +0 -1
  253. package/dist/infra/lib/ProgressTracker.d.ts +0 -73
  254. package/dist/infra/lib/ProgressTracker.d.ts.map +0 -1
  255. package/dist/infra/lib/ProgressTracker.js +0 -267
  256. package/dist/infra/lib/ProgressTracker.js.map +0 -1
  257. package/dist/infra/lib/TokenBudgetTracker.d.ts +0 -68
  258. package/dist/infra/lib/TokenBudgetTracker.d.ts.map +0 -1
  259. package/dist/infra/lib/TokenBudgetTracker.js +0 -191
  260. package/dist/infra/lib/TokenBudgetTracker.js.map +0 -1
  261. package/dist/infra/lib/autonomy/AuditStore.d.ts +0 -63
  262. package/dist/infra/lib/autonomy/AuditStore.d.ts.map +0 -1
  263. package/dist/infra/lib/autonomy/AuditStore.js +0 -185
  264. package/dist/infra/lib/autonomy/AuditStore.js.map +0 -1
  265. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +0 -84
  266. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +0 -1
  267. package/dist/infra/lib/autonomy/AutonomyConfig.js +0 -49
  268. package/dist/infra/lib/autonomy/AutonomyConfig.js.map +0 -1
  269. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +0 -78
  270. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +0 -1
  271. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +0 -246
  272. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +0 -1
  273. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +0 -36
  274. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +0 -1
  275. package/dist/infra/lib/autonomy/BackgroundMonitor.js +0 -138
  276. package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +0 -1
  277. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +0 -56
  278. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +0 -1
  279. package/dist/infra/lib/autonomy/CollaborationProtocol.js +0 -122
  280. package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +0 -1
  281. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +0 -42
  282. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +0 -1
  283. package/dist/infra/lib/autonomy/ConfirmationManager.js +0 -200
  284. package/dist/infra/lib/autonomy/ConfirmationManager.js.map +0 -1
  285. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +0 -55
  286. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +0 -1
  287. package/dist/infra/lib/autonomy/ConfirmationStore.js +0 -130
  288. package/dist/infra/lib/autonomy/ConfirmationStore.js.map +0 -1
  289. package/dist/infra/lib/autonomy/EventBus.d.ts +0 -20
  290. package/dist/infra/lib/autonomy/EventBus.d.ts.map +0 -1
  291. package/dist/infra/lib/autonomy/EventBus.js +0 -119
  292. package/dist/infra/lib/autonomy/EventBus.js.map +0 -1
  293. package/dist/infra/lib/autonomy/EventOutbox.d.ts +0 -32
  294. package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +0 -1
  295. package/dist/infra/lib/autonomy/EventOutbox.js +0 -152
  296. package/dist/infra/lib/autonomy/EventOutbox.js.map +0 -1
  297. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +0 -24
  298. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +0 -1
  299. package/dist/infra/lib/autonomy/NotificationDispatcher.js +0 -112
  300. package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +0 -1
  301. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +0 -76
  302. package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +0 -1
  303. package/dist/infra/lib/autonomy/PolicyEngine.js +0 -208
  304. package/dist/infra/lib/autonomy/PolicyEngine.js.map +0 -1
  305. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +0 -61
  306. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +0 -1
  307. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +0 -236
  308. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +0 -1
  309. package/dist/infra/lib/autonomy/RiskClassifier.d.ts +0 -35
  310. package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +0 -1
  311. package/dist/infra/lib/autonomy/RiskClassifier.js +0 -147
  312. package/dist/infra/lib/autonomy/RiskClassifier.js.map +0 -1
  313. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +0 -51
  314. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +0 -1
  315. package/dist/infra/lib/autonomy/SecuritySentinel.js +0 -162
  316. package/dist/infra/lib/autonomy/SecuritySentinel.js.map +0 -1
  317. package/dist/infra/lib/autonomy/SuggestionStore.d.ts +0 -54
  318. package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +0 -1
  319. package/dist/infra/lib/autonomy/SuggestionStore.js +0 -144
  320. package/dist/infra/lib/autonomy/SuggestionStore.js.map +0 -1
  321. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +0 -38
  322. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +0 -1
  323. package/dist/infra/lib/autonomy/TaskDecomposer.js +0 -175
  324. package/dist/infra/lib/autonomy/TaskDecomposer.js.map +0 -1
  325. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +0 -2
  326. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +0 -1
  327. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +0 -198
  328. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +0 -1
  329. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +0 -2
  330. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +0 -1
  331. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +0 -225
  332. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +0 -1
  333. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +0 -2
  334. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +0 -1
  335. package/dist/infra/lib/autonomy/__tests__/event-core.test.js +0 -194
  336. package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +0 -1
  337. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +0 -2
  338. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +0 -1
  339. package/dist/infra/lib/autonomy/__tests__/governance.test.js +0 -540
  340. package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +0 -1
  341. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +0 -2
  342. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +0 -1
  343. package/dist/infra/lib/autonomy/__tests__/integration.test.js +0 -480
  344. package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +0 -1
  345. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +0 -2
  346. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +0 -1
  347. package/dist/infra/lib/autonomy/__tests__/proactive.test.js +0 -410
  348. package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +0 -1
  349. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +0 -2
  350. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +0 -1
  351. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +0 -486
  352. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +0 -1
  353. package/dist/infra/lib/autonomy/index.d.ts +0 -18
  354. package/dist/infra/lib/autonomy/index.d.ts.map +0 -1
  355. package/dist/infra/lib/autonomy/index.js +0 -22
  356. package/dist/infra/lib/autonomy/index.js.map +0 -1
  357. package/dist/infra/lib/autonomy/schemas.d.ts +0 -317
  358. package/dist/infra/lib/autonomy/schemas.d.ts.map +0 -1
  359. package/dist/infra/lib/autonomy/schemas.js +0 -90
  360. package/dist/infra/lib/autonomy/schemas.js.map +0 -1
  361. package/dist/infra/lib/claude/index.d.ts +0 -5
  362. package/dist/infra/lib/claude/index.d.ts.map +0 -1
  363. package/dist/infra/lib/claude/index.js +0 -5
  364. package/dist/infra/lib/claude/index.js.map +0 -1
  365. package/dist/infra/lib/claude/storage.d.ts +0 -12
  366. package/dist/infra/lib/claude/storage.d.ts.map +0 -1
  367. package/dist/infra/lib/claude/storage.js +0 -54
  368. package/dist/infra/lib/claude/storage.js.map +0 -1
  369. package/dist/infra/lib/gemini/auth.d.ts +0 -18
  370. package/dist/infra/lib/gemini/auth.d.ts.map +0 -1
  371. package/dist/infra/lib/gemini/auth.js +0 -32
  372. package/dist/infra/lib/gemini/auth.js.map +0 -1
  373. package/dist/infra/lib/gemini/capabilities.d.ts +0 -28
  374. package/dist/infra/lib/gemini/capabilities.d.ts.map +0 -1
  375. package/dist/infra/lib/gemini/capabilities.js +0 -178
  376. package/dist/infra/lib/gemini/capabilities.js.map +0 -1
  377. package/dist/infra/lib/gemini/chat.d.ts +0 -35
  378. package/dist/infra/lib/gemini/chat.d.ts.map +0 -1
  379. package/dist/infra/lib/gemini/chat.js +0 -161
  380. package/dist/infra/lib/gemini/chat.js.map +0 -1
  381. package/dist/infra/lib/gemini/completion.d.ts +0 -12
  382. package/dist/infra/lib/gemini/completion.d.ts.map +0 -1
  383. package/dist/infra/lib/gemini/completion.js +0 -13
  384. package/dist/infra/lib/gemini/completion.js.map +0 -1
  385. package/dist/infra/lib/gemini/constants.d.ts +0 -8
  386. package/dist/infra/lib/gemini/constants.d.ts.map +0 -1
  387. package/dist/infra/lib/gemini/constants.js +0 -11
  388. package/dist/infra/lib/gemini/constants.js.map +0 -1
  389. package/dist/infra/lib/gemini/index.d.ts +0 -13
  390. package/dist/infra/lib/gemini/index.d.ts.map +0 -1
  391. package/dist/infra/lib/gemini/index.js +0 -12
  392. package/dist/infra/lib/gemini/index.js.map +0 -1
  393. package/dist/infra/lib/gemini/models.d.ts +0 -11
  394. package/dist/infra/lib/gemini/models.d.ts.map +0 -1
  395. package/dist/infra/lib/gemini/models.js +0 -38
  396. package/dist/infra/lib/gemini/models.js.map +0 -1
  397. package/dist/infra/lib/gemini/orchestration.d.ts +0 -33
  398. package/dist/infra/lib/gemini/orchestration.d.ts.map +0 -1
  399. package/dist/infra/lib/gemini/orchestration.js +0 -62
  400. package/dist/infra/lib/gemini/orchestration.js.map +0 -1
  401. package/dist/infra/lib/gemini/types.d.ts +0 -115
  402. package/dist/infra/lib/gemini/types.d.ts.map +0 -1
  403. package/dist/infra/lib/gemini/types.js +0 -5
  404. package/dist/infra/lib/gemini/types.js.map +0 -1
  405. package/dist/infra/orchestrator/AgentAnnouncer.d.ts +0 -64
  406. package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +0 -1
  407. package/dist/infra/orchestrator/AgentAnnouncer.js +0 -127
  408. package/dist/infra/orchestrator/AgentAnnouncer.js.map +0 -1
  409. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +0 -5
  410. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
  411. package/dist/infra/orchestrator/AgentAnnouncer.test.js +0 -119
  412. package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +0 -1
  413. package/dist/infra/orchestrator/AgentExecutor.d.ts +0 -22
  414. package/dist/infra/orchestrator/AgentExecutor.d.ts.map +0 -1
  415. package/dist/infra/orchestrator/AgentExecutor.js +0 -272
  416. package/dist/infra/orchestrator/AgentExecutor.js.map +0 -1
  417. package/dist/infra/orchestrator/AgentManager.d.ts +0 -72
  418. package/dist/infra/orchestrator/AgentManager.d.ts.map +0 -1
  419. package/dist/infra/orchestrator/AgentManager.js +0 -183
  420. package/dist/infra/orchestrator/AgentManager.js.map +0 -1
  421. package/dist/infra/orchestrator/AgentManifestCache.d.ts +0 -54
  422. package/dist/infra/orchestrator/AgentManifestCache.d.ts.map +0 -1
  423. package/dist/infra/orchestrator/AgentManifestCache.js +0 -191
  424. package/dist/infra/orchestrator/AgentManifestCache.js.map +0 -1
  425. package/dist/infra/orchestrator/AgentRegistry.d.ts +0 -76
  426. package/dist/infra/orchestrator/AgentRegistry.d.ts.map +0 -1
  427. package/dist/infra/orchestrator/AgentRegistry.js +0 -217
  428. package/dist/infra/orchestrator/AgentRegistry.js.map +0 -1
  429. package/dist/infra/orchestrator/AgentRegistry.test.d.ts +0 -5
  430. package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +0 -1
  431. package/dist/infra/orchestrator/AgentRegistry.test.js +0 -122
  432. package/dist/infra/orchestrator/AgentRegistry.test.js.map +0 -1
  433. package/dist/infra/orchestrator/BackgroundManager.d.ts +0 -128
  434. package/dist/infra/orchestrator/BackgroundManager.d.ts.map +0 -1
  435. package/dist/infra/orchestrator/BackgroundManager.js +0 -620
  436. package/dist/infra/orchestrator/BackgroundManager.js.map +0 -1
  437. package/dist/infra/orchestrator/BackgroundManager.test.d.ts +0 -6
  438. package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +0 -1
  439. package/dist/infra/orchestrator/BackgroundManager.test.js +0 -162
  440. package/dist/infra/orchestrator/BackgroundManager.test.js.map +0 -1
  441. package/dist/infra/orchestrator/CheckpointManager.d.ts +0 -54
  442. package/dist/infra/orchestrator/CheckpointManager.d.ts.map +0 -1
  443. package/dist/infra/orchestrator/CheckpointManager.js +0 -121
  444. package/dist/infra/orchestrator/CheckpointManager.js.map +0 -1
  445. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +0 -12
  446. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +0 -1
  447. package/dist/infra/orchestrator/CodexAgentRuntime.js +0 -94
  448. package/dist/infra/orchestrator/CodexAgentRuntime.js.map +0 -1
  449. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +0 -2
  450. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +0 -1
  451. package/dist/infra/orchestrator/CodexAgentRuntime.test.js +0 -37
  452. package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +0 -1
  453. package/dist/infra/orchestrator/LLMCluster.d.ts +0 -82
  454. package/dist/infra/orchestrator/LLMCluster.d.ts.map +0 -1
  455. package/dist/infra/orchestrator/LLMCluster.js +0 -146
  456. package/dist/infra/orchestrator/LLMCluster.js.map +0 -1
  457. package/dist/infra/orchestrator/MultiLlmResearch.d.ts +0 -31
  458. package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +0 -1
  459. package/dist/infra/orchestrator/MultiLlmResearch.js +0 -160
  460. package/dist/infra/orchestrator/MultiLlmResearch.js.map +0 -1
  461. package/dist/infra/orchestrator/PhasePipeline.d.ts +0 -122
  462. package/dist/infra/orchestrator/PhasePipeline.d.ts.map +0 -1
  463. package/dist/infra/orchestrator/PhasePipeline.js +0 -385
  464. package/dist/infra/orchestrator/PhasePipeline.js.map +0 -1
  465. package/dist/infra/orchestrator/PhaseResultStore.d.ts +0 -39
  466. package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +0 -1
  467. package/dist/infra/orchestrator/PhaseResultStore.js +0 -151
  468. package/dist/infra/orchestrator/PhaseResultStore.js.map +0 -1
  469. package/dist/infra/orchestrator/SessionStore.d.ts +0 -40
  470. package/dist/infra/orchestrator/SessionStore.d.ts.map +0 -1
  471. package/dist/infra/orchestrator/SessionStore.js +0 -116
  472. package/dist/infra/orchestrator/SessionStore.js.map +0 -1
  473. package/dist/infra/orchestrator/SmartRouter.d.ts +0 -90
  474. package/dist/infra/orchestrator/SmartRouter.d.ts.map +0 -1
  475. package/dist/infra/orchestrator/SmartRouter.js +0 -277
  476. package/dist/infra/orchestrator/SmartRouter.js.map +0 -1
  477. package/dist/infra/orchestrator/SmartRouter.test.d.ts +0 -5
  478. package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +0 -1
  479. package/dist/infra/orchestrator/SmartRouter.test.js +0 -484
  480. package/dist/infra/orchestrator/SmartRouter.test.js.map +0 -1
  481. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +0 -143
  482. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
  483. package/dist/infra/orchestrator/SwarmOrchestrator.js +0 -378
  484. package/dist/infra/orchestrator/SwarmOrchestrator.js.map +0 -1
  485. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
  486. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
  487. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +0 -95
  488. package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +0 -1
  489. package/dist/infra/orchestrator/agentDiscovery.d.ts +0 -26
  490. package/dist/infra/orchestrator/agentDiscovery.d.ts.map +0 -1
  491. package/dist/infra/orchestrator/agentDiscovery.js +0 -175
  492. package/dist/infra/orchestrator/agentDiscovery.js.map +0 -1
  493. package/dist/infra/orchestrator/backgroundAgent.d.ts +0 -9
  494. package/dist/infra/orchestrator/backgroundAgent.d.ts.map +0 -1
  495. package/dist/infra/orchestrator/backgroundAgent.js +0 -10
  496. package/dist/infra/orchestrator/backgroundAgent.js.map +0 -1
  497. package/dist/infra/orchestrator/index.d.ts +0 -207
  498. package/dist/infra/orchestrator/index.d.ts.map +0 -1
  499. package/dist/infra/orchestrator/index.js +0 -362
  500. package/dist/infra/orchestrator/index.js.map +0 -1
  501. package/dist/infra/orchestrator/orchestrator.d.ts +0 -60
  502. package/dist/infra/orchestrator/orchestrator.d.ts.map +0 -1
  503. package/dist/infra/orchestrator/orchestrator.js +0 -214
  504. package/dist/infra/orchestrator/orchestrator.js.map +0 -1
  505. package/dist/infra/orchestrator/parallelResearch.d.ts +0 -27
  506. package/dist/infra/orchestrator/parallelResearch.d.ts.map +0 -1
  507. package/dist/infra/orchestrator/parallelResearch.js +0 -285
  508. package/dist/infra/orchestrator/parallelResearch.js.map +0 -1
  509. package/dist/infra/orchestrator/types.d.ts +0 -205
  510. package/dist/infra/orchestrator/types.d.ts.map +0 -1
  511. package/dist/infra/orchestrator/types.js +0 -87
  512. package/dist/infra/orchestrator/types.js.map +0 -1
  513. package/dist/infra/orchestrator/types.test.d.ts +0 -2
  514. package/dist/infra/orchestrator/types.test.d.ts.map +0 -1
  515. package/dist/infra/orchestrator/types.test.js +0 -57
  516. package/dist/infra/orchestrator/types.test.js.map +0 -1
  517. package/dist/tools/semantic/analyzeDependencyGraph.d.ts +0 -12
  518. package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +0 -1
  519. package/dist/tools/semantic/analyzeDependencyGraph.js +0 -359
  520. package/dist/tools/semantic/analyzeDependencyGraph.js.map +0 -1
  521. package/dist/tools/semantic/astGrep.d.ts +0 -25
  522. package/dist/tools/semantic/astGrep.d.ts.map +0 -1
  523. package/dist/tools/semantic/astGrep.js +0 -324
  524. package/dist/tools/semantic/astGrep.js.map +0 -1
  525. package/dist/tools/semantic/astGrep.test.d.ts +0 -2
  526. package/dist/tools/semantic/astGrep.test.d.ts.map +0 -1
  527. package/dist/tools/semantic/astGrep.test.js +0 -74
  528. package/dist/tools/semantic/astGrep.test.js.map +0 -1
  529. package/dist/tools/semantic/findReferences.d.ts +0 -9
  530. package/dist/tools/semantic/findReferences.d.ts.map +0 -1
  531. package/dist/tools/semantic/findReferences.js +0 -200
  532. package/dist/tools/semantic/findReferences.js.map +0 -1
  533. package/dist/tools/semantic/findSymbol.d.ts +0 -8
  534. package/dist/tools/semantic/findSymbol.d.ts.map +0 -1
  535. package/dist/tools/semantic/findSymbol.js +0 -204
  536. package/dist/tools/semantic/findSymbol.js.map +0 -1
  537. package/dist/tools/semantic/index.d.ts +0 -9
  538. package/dist/tools/semantic/index.d.ts.map +0 -1
  539. package/dist/tools/semantic/index.js +0 -11
  540. package/dist/tools/semantic/index.js.map +0 -1
  541. package/dist/tools/semantic/lsp.d.ts +0 -68
  542. package/dist/tools/semantic/lsp.d.ts.map +0 -1
  543. package/dist/tools/semantic/lsp.js +0 -561
  544. package/dist/tools/semantic/lsp.js.map +0 -1
  545. package/dist/tools/spec/e2eTestGenerator.d.ts +0 -61
  546. package/dist/tools/spec/e2eTestGenerator.d.ts.map +0 -1
  547. package/dist/tools/spec/e2eTestGenerator.js +0 -255
  548. package/dist/tools/spec/e2eTestGenerator.js.map +0 -1
  549. package/dist/tools/spec/specVersioning.d.ts +0 -76
  550. package/dist/tools/spec/specVersioning.d.ts.map +0 -1
  551. package/dist/tools/spec/specVersioning.js +0 -236
  552. package/dist/tools/spec/specVersioning.js.map +0 -1
  553. package/hooks/scripts/__tests__/keyword-detector.test.js +0 -242
  554. package/hooks/scripts/keyword-detector.js +0 -226
  555. package/skills/characterization-test/SKILL.md +0 -209
  556. package/skills/characterization-test/agents/behavior-capturer.md +0 -50
  557. package/skills/characterization-test/agents/coverage-checker.md +0 -54
  558. package/skills/characterization-test/agents/reporter.md +0 -50
  559. package/skills/characterization-test/agents/test-writer.md +0 -49
  560. package/skills/characterization-test/rubrics/coverage-criteria.md +0 -53
  561. package/skills/characterization-test/templates/test-template.ts +0 -101
  562. package/skills/claude-md-guide/SKILL.md +0 -353
  563. package/skills/claude-md-guide/rubrics/anti-patterns.md +0 -88
  564. package/skills/design-audit/SKILL.md +0 -154
  565. package/skills/design-critique/SKILL.md +0 -140
  566. package/skills/design-distill/SKILL.md +0 -131
  567. package/skills/design-normalize/SKILL.md +0 -135
  568. package/skills/design-polish/SKILL.md +0 -132
  569. package/skills/figma-convert/SKILL.md +0 -236
  570. package/skills/figma-extract/SKILL.md +0 -242
  571. package/skills/interview/SKILL.md +0 -358
  572. package/skills/interview/checklists/api.md +0 -101
  573. package/skills/interview/checklists/feature.md +0 -88
  574. package/skills/interview/checklists/library.md +0 -95
  575. package/skills/interview/checklists/mobile.md +0 -89
  576. package/skills/interview/checklists/webapp.md +0 -97
  577. package/skills/interview/checklists/website.md +0 -99
  578. package/skills/plan/SKILL.md +0 -254
  579. package/skills/rob-pike/SKILL.md +0 -66
  580. package/skills/spec/references/askuser-examples.md +0 -57
  581. package/skills/spec/references/example-session.md +0 -87
  582. package/skills/spec/references/templates.md +0 -194
  583. package/skills/spec-review/SKILL.md +0 -725
  584. package/skills/systematic-debugging/SKILL.md +0 -142
  585. package/skills/techdebt/SKILL.md +0 -126
  586. package/skills/techdebt/agents/analyzer.md +0 -50
  587. package/skills/techdebt/agents/fixer.md +0 -41
  588. package/skills/techdebt/agents/reviewer.md +0 -47
  589. package/skills/techdebt/agents/scanner.md +0 -44
  590. package/skills/techdebt/orchestrator.md +0 -72
  591. package/skills/techdebt/rubrics/severity.md +0 -51
  592. package/skills/techdebt/scripts/scan.js +0 -90
  593. package/skills/techdebt/templates/report.md +0 -86
  594. package/skills/typescript-advanced-types/SKILL.md +0 -68
  595. package/skills/typescript-advanced-types/rubrics/type-patterns.md +0 -109
  596. package/skills/yagni-ladder/SKILL.md +0 -90
  597. /package/skills/{claude-md-guide → agents-md}/templates/claude-md.md +0 -0
  598. /package/skills/{design-polish → design-refine}/rubrics/polish-checklist.md +0 -0
  599. /package/skills/{design-normalize → design-refine}/rubrics/token-naming.md +0 -0
  600. /package/skills/{design-distill → design-refine}/templates/design-system.md +0 -0
  601. /package/skills/{design-audit → design-review}/agents/scorer.md +0 -0
  602. /package/skills/{design-audit → design-review}/rubrics/ai-slop-patterns.md +0 -0
  603. /package/skills/{design-audit → design-review}/rubrics/scoring.md +0 -0
  604. /package/skills/{design-critique → design-review}/rubrics/ux-heuristics.md +0 -0
  605. /package/skills/{figma-convert → figma}/rubrics/conversion-rules.md +0 -0
  606. /package/skills/{figma-extract → figma}/rubrics/image-rules.md +0 -0
  607. /package/skills/{figma-convert → figma}/templates/component.md +0 -0
@@ -5,7 +5,7 @@ invocation: [auto]
5
5
  tier: standard
6
6
  description: "When an agent fails, diagnose which capability is missing and build it into the repo. Activates after repeated agent failures, tool errors, or when a task keeps failing in the same way. Analyzes failure transcripts, identifies the missing guardrail/tool/abstraction/doc, and creates it permanently. Use this skill whenever you see 3+ similar failures, an agent hitting the same wall repeatedly, or the user asking 'why does this keep failing'."
7
7
  triggers: [capability loop, failure loop, build capability, missing capability, agent failed, why did it fail]
8
- priority: 75
8
+ priority: 60
9
9
  ---
10
10
 
11
11
  # Capability Loop — Failure → Capability Building
@@ -4,7 +4,7 @@ invocation: [auto]
4
4
  tier: optional
5
5
  description: "Context Hub (chub) — fetch vetted, up-to-date API documentation. Write accurate code based on the latest docs instead of training data when working with external APIs/SDKs."
6
6
  triggers: [chub, context hub, API docs, latest API, deprecated API, SDK documentation, api reference, 최신 문서]
7
- priority: 65
7
+ priority: 60
8
8
  ---
9
9
 
10
10
  # Context Hub (chub) Usage
@@ -24,8 +24,14 @@ The rendered DOM is the source of truth for markup. Screenshots are for pixel ve
24
24
 
25
25
  ```
26
26
  1. Do NOT generate CSS values by guessing or eyeballing screenshots.
27
- Use clone-extract.js computed CSS output as-is.
28
- Do NOT write CSS values directly inside scoped <style> blocks.
27
+ ✅ clone-to-scss.js output is a DRAFT (skeleton), not a frozen artifact. You MAY
28
+ rewrite SCSS values/selectors but ONLY with evidence cited from computed.json /
29
+ states.json / behaviors.json (value correction, dedupe, selector restructuring).
30
+ ✅ clone-validate.js PASS is the sole judge of value correctness — not self-report.
31
+ ❌ Do NOT invent values with no extraction evidence ("looks like 18px" is forbidden).
32
+ ❌ Do NOT write CSS values directly inside scoped <style> blocks — style LOCATION
33
+ rule: all values live in styles/{feature}/ SCSS (value authority and style
34
+ location are separate rules; both hold).
29
35
 
30
36
  2. Do NOT hotlink remote assets. All images/fonts must be downloaded and rewritten.
31
37
 
@@ -34,6 +40,9 @@ The rendered DOM is the source of truth for markup. Screenshots are for pixel ve
34
40
  4. Do NOT copy textual content verbatim from copyrighted sources for production use.
35
41
  This skill is for layout/markup learning ("클론 코딩"). Replace text with placeholders
36
42
  or user-provided copy when shipping a real product.
43
+ Exception: `--real-content` — the user confirms (once, explicitly) they own the site
44
+ or have permission. Then keep text verbatim; clone-spec.js is invoked with
45
+ `--real-content` so specs mark copy as verbatim.
37
46
 
38
47
  5. Do NOT build a section without confirming its interaction model. The model in
39
48
  sections.json is a static-DOM heuristic — verify scroll-driven vs click-driven vs
@@ -42,10 +51,11 @@ The rendered DOM is the source of truth for markup. Screenshots are for pixel ve
42
51
  6. Do NOT ship default-state-only. Implement every harvested state (hover/focus/active/open/
43
52
  tab-switch) from states.json / the section spec.
44
53
 
45
- 7. Do NOT ignore behaviors.json. The ACTIVE interaction sweep (scroll-state diffs +
46
- click-driven tab content-swap detection) catches JS-set state that static CSS harvesting
47
- is blind to. When the spec's "Dynamic behaviors" block conflicts with the static
48
- interaction heuristic, the active capture wins.
54
+ 7. Do NOT ignore behaviors.json. The ACTIVE interaction sweep (scroll-state diffs,
55
+ click-driven tab content-swap detection, hover diffs, in-view entrance animations,
56
+ time-driven mutation candidates, smooth-scroll-lib detection) catches JS-set state
57
+ that static CSS harvesting is blind to. When the spec's "Dynamic behaviors" block
58
+ conflicts with the static interaction heuristic, the active capture wins.
49
59
  ```
50
60
 
51
61
  ## Full Flow
@@ -56,9 +66,11 @@ Input: a URL (or multiple URLs for multi-page clones)
56
66
  → Phase 0: Setup (stack detection, feature naming, working dir)
57
67
  → Phase 1: Capture (Puppeteer → rendered HTML + computed CSS + screenshots + assets)
58
68
  → Phase 2: Refine (DOM → sections.json per breakpoint; + interaction model + states)
59
- → Phase 3: Scaffold (spec gate SCSS auto-gen + Claude-authored HTML/components)
69
+ → Phase 2.5: Foundation (fonts / favicon / OG / SVG icons — sequential, before any section)
70
+ → Phase 3: Scaffold (spec gate → SCSS draft + builder dispatch, parallel per section)
71
+ → Phase 3C: Responsive merge (clone-merge-responsive.js — mobile-first @media)
60
72
  → Phase 4: Compile gate
61
- → Phase 5: Pixel verification loop
73
+ → Phase 5: Pixel verification loop (BOTH viewports after merge)
62
74
 
63
75
  Working directory:
64
76
  /tmp/{feature}/
@@ -67,7 +79,9 @@ Working directory:
67
79
  └── tokens.json — extracted design tokens (colors/fonts/spacing)
68
80
 
69
81
  Code output: placed directly in the project directory per detected stack
70
- components/{feature}/, components/{feature}/_specs/, styles/{feature}/, public/images/{feature}/
82
+ components/{feature}/, components/{feature}/_specs/{mo,pc}/,
83
+ styles/{feature}/{mo,pc}/ (per-BP drafts) → styles/{feature}/ (Phase 3C merged),
84
+ public/images/{feature}/, public/ (favicons/OG from assets/seo/)
71
85
  ```
72
86
 
73
87
  ---
@@ -124,10 +138,11 @@ node {{VIBE_PATH}}/hooks/scripts/clone-extract.js capture <URL> \
124
138
  ├── computed.json — per-element computed CSS + bounding box
125
139
  ├── screenshot.png — full-page screenshot
126
140
  ├── states.json — non-default state rules (hover/focus/active/checked/tab/aria/data-state)
127
- ├── behaviors.json — ACTIVE sweep: scroll-triggered header/nav diffs + click-driven tab groups
141
+ ├── behaviors.json — ACTIVE sweep: scroll / tab / hover / in-view / time-driven + scrollLib
128
142
  ├── assets/
129
143
  │ ├── images/ — all <img>, background-image, <picture> sources
130
- └── fonts/ — @font-face srcs
144
+ ├── fonts/ — @font-face srcs
145
+ │ └── seo/ — favicons, apple-touch-icons, OG images, webmanifest
131
146
  └── asset-map.json — remote URL → local path mapping
132
147
  ```
133
148
 
@@ -149,7 +164,15 @@ node {{VIBE_PATH}}/hooks/scripts/clone-extract.js capture <URL> \
149
164
  - Scroll-state diff: tag sticky/fixed/top-bar headers+nav, snapshot computed CSS at
150
165
  scroll 0, scroll past threshold, re-snapshot, diff → {prop: {from, to}, triggerScrollY}
151
166
  - Tab groups: click tab-like sibling sets, detect whether content swaps on click
167
+ - Hover diff: hover interactive elements (1 sample per tag+class signature, max 30),
168
+ diff computed styles → JS-set hover states that :hover harvesting misses
169
+ - In-view entrance: fresh reload, tag below-fold "waiting to animate" nodes
170
+ (opacity 0 / transform offset), scroll each into view, diff → fade-up/slide-in
171
+ - Time-driven: 3s no-input MutationObserver watch → carousel/auto-cycle candidates
172
+ - Scroll-lib detection: Lenis / Locomotive Scroll (native scrolling feels different —
173
+ the user spots it immediately; wire the lib page-level, not per-section)
152
174
  Disable with --no-interact (restores the old fully-deterministic, screenshot-stable capture).
175
+ 10. SEO asset harvest: favicon / apple-touch-icon / webmanifest / og:image → assets/seo/
153
176
  ```
154
177
 
155
178
  ---
@@ -240,6 +263,26 @@ Refinement applied when converting rendered.html + computed.json → sections.js
240
263
 
241
264
  ---
242
265
 
266
+ ## Phase 2.5: Foundation ← sequential, BEFORE any section build
267
+
268
+ Nothing renders right until the foundation exists. Do this yourself (not delegated) — it
269
+ touches shared files:
270
+
271
+ ```
272
+ 1. Fonts: verify _base.scss @font-face srcs point at downloaded assets/fonts/ files.
273
+ Next.js stack → wire via next/font/local in the layout instead of raw @font-face.
274
+ 2. Favicon / OG / manifest: copy assets/seo/* → public/ (project convention path),
275
+ wire metadata (layout.tsx metadata / <head>) to the local files.
276
+ 3. SVG icons: collect inline <svg> from rendered.html, dedupe by path data,
277
+ emit one stack-appropriate icon module (e.g. components/{feature}/icons.tsx).
278
+ Name by visual function (SearchIcon, ArrowRightIcon, LogoIcon).
279
+ 4. Global behaviors from behaviors.json: scrollLib detected → install/wire page-level
280
+ (Lenis etc.); global keyframes/scroll-snap → styles/{feature}/_shared.scss.
281
+ 5. Verify: compile passes before moving on.
282
+ ```
283
+
284
+ ---
285
+
243
286
  ## Phase 3: Scaffold ← stack-specific code generation
244
287
 
245
288
  **⛔ Implement MO fully first → pass verification → then PC. No responsive conversion in this phase.**
@@ -251,78 +294,105 @@ Refinement applied when converting rendered.html + computed.json → sections.js
251
294
  # Step 0: Generate per-section build-contract specs (run once per BP)
252
295
  node {{VIBE_PATH}}/hooks/scripts/clone-spec.js \
253
296
  /tmp/{feature}/{bp}/sections.json \
254
- --out=/path/to/project/components/{feature}/_specs/ \
255
- --feature={feature}
297
+ --out=/path/to/project/components/{feature}/_specs/{bp}/ \
298
+ --feature={feature} [--real-content]
256
299
 
257
- # Step A: Auto-generate SCSS skeleton (run once per BP)
300
+ # Step A: Auto-generate SCSS draft (run once per BP — note the per-BP out dir)
258
301
  node {{VIBE_PATH}}/hooks/scripts/clone-to-scss.js \
259
302
  /tmp/{feature}/{bp}/sections.json \
260
- --out=/path/to/project/styles/{feature}/ \
303
+ --out=/path/to/project/styles/{feature}/{bp}/ \
261
304
  --token-file=/tmp/{feature}/project-tokens.json
262
305
 
263
306
  # Step B: Per-section validation (after writing each section's component code)
264
307
  node {{VIBE_PATH}}/hooks/scripts/clone-validate.js \
265
- /path/to/project/styles/{feature}/ \
308
+ /path/to/project/styles/{feature}/{bp}/ \
266
309
  /tmp/{feature}/{bp}/sections.json \
267
310
  --section={SectionName}
268
311
  ```
269
312
 
270
313
  ⛔ **No section is built without a completed spec.** Step 0 emits `_specs/{Section}.spec.md`
271
- (interaction model + **active-capture Dynamic behaviors** + states + computed CSS + assets +
272
- text + checklist). clone-spec.js auto-loads `behaviors.json` from the sections.json dir and
273
- attaches matching scroll/tab behaviors per section. Before writing a
274
- section's component, Claude reviews its spec and resolves every `TODO` (confirm interaction
275
- model, list states to implement, choose tags, replace copyrighted text). The spec is the
276
- contract AND the audit trail it forces extraction rigor before any code is written.
277
- **Writing SCSS files directly without calling clone-to-scss.js invalidates Phase 3.**
314
+ (interaction model + **active-capture Dynamic behaviors** (scroll/tab/hover/in-view/
315
+ time-driven/scroll-lib) + states + computed CSS + assets + text + checklist).
316
+ clone-spec.js auto-loads `behaviors.json` from the sections.json dir and attaches matching
317
+ behaviors per section. Before dispatching a section's builder, Claude reviews its spec and
318
+ resolves every `TODO` (confirm interaction model, list states to implement, choose tags,
319
+ replace copyrighted text skipped with --real-content). The spec is the contract AND the
320
+ audit trail it forces extraction rigor before any code is written.
321
+ ⛔ **clone-to-scss.js must run first (Step A) — its output is the DRAFT every section starts
322
+ from.** After that, SCSS edits are allowed per Immutable Rule 1 (evidence-cited only);
323
+ clone-validate.js PASS is the judge.
278
324
  ⛔ **Do NOT write custom SCSS / spec generation scripts.**
279
- ⛔ **Do NOT proceed to the next section without a clone-validate.js PASS.**
280
- ✅ Use clone-spec.js / clone-to-scss.js output as-is. If unsatisfactory, modify the script.
325
+ ⛔ **Do NOT proceed past a section without a clone-validate.js PASS for it.**
281
326
 
282
327
  ```
283
- Phase 3A: MO Scaffold
328
+ Phase 3A: MO Scaffold — parallel builder dispatch
284
329
  Input: /tmp/{feature}/mo/sections.json
285
- Step 0 once: clone-spec.js → emit _specs/{Section}.spec.md for every section
286
- No parallelism. Process one section at a time:
287
- 1. Read the target section's spec resolve every TODO:
288
- ├─ Confirm the interaction model (spec.interaction is a heuristic guess)
289
- ├─ List the states to implement (spec.states)
290
- └─ Mark copyrighted text for placeholder replacement
291
- 2. Map component candidates against component-index.json
292
- ├─ Match import existing
293
- └─ No match create new in components/{feature}/
294
- 3. clone-to-scss.js auto-generate SCSS skeleton (computed values as-is) Step A once
295
- 4. Claude: HTML structure + semantic tags + framework-specific component file
296
- No CSS written directly in <style> blocks only @import/@use allowed
297
- Build for the CONFIRMED interaction model (don't build a click UI for a
298
- scroll-driven original); wire every state from the spec (hover/active/open/…)
299
- Framework mapping:
300
- - React/Next .tsx with CSS Modules or styled-components per stack
301
- - Vue/Nuxt → .vue with scoped <style lang="scss"> @import only
302
- - Svelte → .svelte with <style> @import only
303
- - Vanilla .html + linked .scss
304
- 5. Asset references public/images/{feature}/ (already populated in Phase 1)
305
- 6. clone-validate.js compare SCSS vs sections.json Step B
306
- ├─ PASS next section
330
+ Prep (sequential, once):
331
+ a. Step 0: clone-spec.js emit _specs/mo/{Section}.spec.md for every section
332
+ b. Step A: clone-to-scss.js SCSS draft in styles/{feature}/mo/ (computed values)
333
+ c. Orchestrator resolves every spec TODO BEFORE dispatch:
334
+ ├─ Confirm the interaction model (spec.interaction is a heuristic guess;
335
+ │ the spec's active-capture "Dynamic behaviors" block overrides it on conflict)
336
+ ├─ List the states to implement (spec.states + Dynamic behaviors)
337
+ ├─ Mark copyrighted text for placeholder replacement (skip with --real-content)
338
+ └─ Map component candidates against component-index.json (reuse vs create)
339
+ d. 150-line split rule (mechanical wc -l, don't override with "but it's related"):
340
+ a completed spec over 150 lines means the section is too big for one builder →
341
+ split into sub-component specs (one per card variant / repeated pattern) + one
342
+ wrapper spec that imports them.
343
+ Dispatch (parallel):
344
+ Every builder prompt embeds the FULL spec text INLINE — never "go read the file".
345
+ The spec file stays on disk as the audit trail; the prompt must be self-sufficient.
346
+ Builders that write files in parallel run in worktree isolation; sub-component
347
+ builders complete before their wrapper builder starts.
348
+ Builder contract (each agent):
349
+ 1. Build HTML structure + semantic tags + framework-specific component file
350
+ No CSS in <style> blocksonly @import/@use of styles/{feature}/mo/
351
+ Build for the CONFIRMED interaction model in the spec; wire every state
352
+ Framework mapping:
353
+ - React/Next → .tsx with CSS Modules or styled-components per stack
354
+ - Vue/Nuxt → .vue with scoped <style lang="scss"> @import only
355
+ - Svelte → .svelte with <style> @import only
356
+ - Vanilla → .html + linked .scss
357
+ 2. Asset references → public/images/{feature}/ (already populated in Phase 1)
358
+ 3. SCSS edits per Immutable Rule 1 (evidence-cited only)
359
+ 4. Verify compile (tsc --noEmit or stack equivalent) before finishing
360
+ Merge (orchestrator, as builders complete):
361
+ 5. Merge worktrees; resolve conflicts (you have full context on every spec)
362
+ 6. clone-validate.js per section — Step B
363
+ ├─ PASS → section done
307
364
  └─ FAIL → fix discrepancies → re-run step 6 (loop until P1=0, no round cap)
308
365
  → Phase 4 (MO compile) → Phase 5 (MO pixel verification)
309
366
 
310
367
  Phase 3B: PC Scaffold
311
- Same process as MO, input /tmp/{feature}/pc/sections.json
368
+ Same process as MO, input /tmp/{feature}/pc/sections.json → styles/{feature}/pc/
312
369
  → Phase 4 (PC compile) → Phase 5 (PC pixel verification)
313
370
 
314
- Phase 3C: Responsive Integration (after both MO+PC pass verification)
315
- Merge MO+PC styles into @media-based responsive layout (separate flow, TODO)
316
-
317
- Claude's role (restricted):
371
+ Phase 3C: Responsive Integration (after both MO+PC pass Phase 5)
372
+ 1. node {{VIBE_PATH}}/hooks/scripts/clone-merge-responsive.js \
373
+ --mo=/path/to/project/styles/{feature}/mo/ \
374
+ --pc=/path/to/project/styles/{feature}/pc/ \
375
+ --out=/path/to/project/styles/{feature}/ \
376
+ [--breakpoint=1024]
377
+ → mobile-first merge: MO declarations = base, PC diffs → @media (min-width) block
378
+ 2. Switch component style imports from styles/{feature}/{bp}/index.scss to the merged
379
+ styles/{feature}/index.scss
380
+ 3. Review pc-only/mo-only selectors in the merge report — hide/show them with the
381
+ media query if the original does (evidence: the two sections.json trees)
382
+ 4. → Phase 4 (compile) → Phase 5 at BOTH viewports against each BP's screenshot.
383
+ ⛔ The clone is NOT complete until the MERGED build passes Phase 5 at both.
384
+
385
+ Claude's role:
318
386
  ✅ Component candidates: decide which patterns become reusable components
319
387
  ✅ HTML semantics: section/h1/p/button/nav tag selection
320
388
  ✅ Text replacement: substitute copyrighted copy with placeholders or user-supplied text
321
389
  ✅ Interaction model: confirm the spec's heuristic guess, then build for the real model
322
390
  ✅ Interactions: implement every state in the spec (hover/focus/active/open), click handlers
323
- Do NOT modify SCSS CSS values (use clone-to-scss.js output as-is)
391
+ SCSS value edits WITH cited evidence (computed.json/states.json/behaviors.json)
392
+ clone-validate.js PASS is the judge
393
+ ❌ Do NOT invent CSS values without extraction evidence
324
394
  ❌ Do NOT write CSS directly in <style> blocks
325
- ❌ Do NOT use vw/clamp/@media or create custom mixins in Phase 3A/3B
395
+ ❌ Do NOT hand-write vw/clamp/@media in Phase 3A/3B (responsive comes from Phase 3C merge)
326
396
  ❌ Do NOT hotlink remote URLs — all assets must use local public/images/ paths
327
397
  ```
328
398
 
@@ -382,6 +452,9 @@ Termination:
382
452
  ultrawork mode: on stuck, record TODO without prompting and complete
383
453
 
384
454
  Responsive: after MO verification → change viewport → repeat against PC screenshot
455
+ Post-merge (Phase 3C): re-run at BOTH viewports (375×812 vs mo/screenshot.png,
456
+ 1440×900 vs pc/screenshot.png) — either failing means the merge regressed; fix the
457
+ merged SCSS (evidence: the per-BP sections.json), never by re-guessing values
385
458
  Cleanup: shut down browser + dev server
386
459
 
387
460
  ⛔ "Completion summary" output only allowed after Phase 5 completes.
@@ -404,6 +477,8 @@ NOT intended for:
404
477
 
405
478
  Claude must:
406
479
  - Replace copyrighted text content with placeholders (e.g. "[Lorem ipsum]") by default
480
+ - --real-content: ask ONE explicit confirmation (site ownership / permission) before
481
+ Phase 3; on confirmation keep text verbatim (clone-spec.js --real-content)
407
482
  - Skip and warn when robots.txt disallows fetching the target path
408
483
  - Refuse if the user's stated intent is brand impersonation or deception
409
484
  ```
@@ -423,3 +498,5 @@ Claude must:
423
498
  | Interaction model guess wrong (Phase 5) | section.interaction is a static-DOM heuristic. Re-observe the live site, correct the model in the spec, rebuild the section for the confirmed model. |
424
499
  | states.json empty but site has hover/tabs | States may be set via inline JS, not CSS rules. Check behaviors.json (active sweep captures scroll/tab JS state). If still missing, note in the spec and capture manually during Phase 5. |
425
500
  | behaviors.json missing or empty | Active sweep was disabled (--no-interact), hit no sticky/tab elements, or errored (logged, non-fatal). Falls back to static states.json. Re-run without --no-interact to retry. |
501
+ | clone-merge-responsive.js reports many mo-only/pc-only selectors | Section detection diverged between BPs (layout differs structurally). Expected for hidden-on-mobile elements; verify each against the two sections.json trees and gate with the media query manually if needed. |
502
+ | Merged build fails Phase 5 at one viewport only | The merge dropped or mis-bucketed a declaration. Diff the failing viewport's computed CSS against its sections.json; fix in the merged SCSS with that evidence. |
@@ -3,8 +3,8 @@ name: commerce-patterns
3
3
  invocation: [auto]
4
4
  tier: core
5
5
  description: "E-commerce domain patterns — cart management, payment processing (Toss/Stripe/PG), inventory tracking, and order state machines with transaction safety. Use when implementing any shopping cart, checkout flow, payment integration, stock management, or order lifecycle. Covers idempotency keys, double-charge prevention, stock reservation, and refund flows. Must use this skill when the codebase involves e-commerce — even for seemingly simple 'add to cart' features."
6
- triggers: [commerce, ecommerce, cart, payment, checkout, inventory, stock, order, pg, toss, stripe]
7
- priority: 70
6
+ triggers: [commerce, ecommerce, cart, payment, checkout, inventory, toss, stripe, order flow]
7
+ priority: 60
8
8
  ---
9
9
 
10
10
  # Commerce Patterns
@@ -5,7 +5,6 @@ tier: optional
5
5
  description: "Commit, push, and create PR in one go. Auto-activates on commit, PR, push keywords."
6
6
  triggers: [commit, push, PR, pull request, merge]
7
7
  priority: 70
8
- chain-next: [techdebt]
9
8
  ---
10
9
 
11
10
  # Commit-Push-PR
@@ -3,7 +3,7 @@ name: context7-usage
3
3
  invocation: [auto]
4
4
  tier: optional
5
5
  description: "Context7 plugin for latest library documentation. Auto-activates when docs, documentation, latest version, official docs, API reference, or library help is needed."
6
- triggers: [docs, documentation, latest version, official docs, API reference, library help, context7]
6
+ triggers: [latest version, official docs, API reference, library help, context7]
7
7
  priority: 60
8
8
  ---
9
9
 
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: design-refine
3
+ user-invocable: true
4
+ invocation: [command, auto]
5
+ tier: standard
6
+ description: "Design refinement — distill (remove visual complexity), normalize (hardcoded values → design tokens), polish (pre-ship micro-details). Modifying passes. Use when design-refine, design-polish, design-normalize, token-align, simplify-ui, ship-ready."
7
+ triggers: [design-refine, design-polish, design-normalize, token-align, design-distill, simplify-ui, ship-ready]
8
+ priority: 50
9
+ ---
10
+
11
+ # Design Refine — Distill / Normalize / Polish
12
+
13
+ Modifying design-improvement passes. Mode selected by the first argument; default runs the full pipeline in order: **distill → normalize → polish**.
14
+
15
+ ## Usage
16
+
17
+ ```
18
+ /design-refine <target> # Full pipeline (distill → normalize → polish)
19
+ /design-refine distill <target> # Remove visual complexity only
20
+ /design-refine normalize <target> # Token alignment only
21
+ /design-refine polish <target> # Pre-ship final pass only
22
+ /design-refine . # Refine all changed UI files
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Mode: distill — Remove Visual Complexity
28
+
29
+ Every remaining element must justify its existence: **if it doesn't help the user complete their task, remove it.**
30
+
31
+ ### Targets
32
+
33
+ 1. **Decorative clutter** — purposeless gradients/patterns/textures, dividers between already-spaced sections, ornamental icons, stacked borders/shadows on nested containers
34
+ 2. **Redundant information** — headings repeating page title/parent context, labels duplicating placeholders, "Welcome to {App}" banners, descriptions restating the obvious
35
+ 3. **Over-wrapped containers** — cards wrapping a single element, nested cards, cosmetic-only wrapper divs, single-child sections
36
+ 4. **Excessive animation** — entry animations on every element, hover effects on non-interactive elements, transitions > 300ms for feedback, parallax on content pages
37
+ 5. **Progressive disclosure opportunities** — 10+ visible form fields → steps; flat settings → grouped collapsibles; 8+ nav items → categories; all-metrics dashboards → top 3 + expand
38
+
39
+ ### Principles
40
+
41
+ | Principle | Question |
42
+ |-----------|----------|
43
+ | Purpose | Does this help the user complete a task? |
44
+ | Duplication | Is this information already on screen? |
45
+ | Cognitive load | Would removal reduce decision fatigue? |
46
+ | Visual weight | Does this compete with more important content? |
47
+ | Progressive disclosure | Can this be hidden until needed? |
48
+
49
+ Before removing: verify functionality survives, check semantic meaning, confirm signal-to-noise improves. Preserve brand-expressive elements (per `brand.personality`); calibrate aggressiveness by `aesthetic.style` (minimal → aggressive, bold → lenient).
50
+
51
+ ---
52
+
53
+ ## Mode: normalize — Design Token Alignment
54
+
55
+ Replace hardcoded design values with tokens. Naming conventions: `rubrics/token-naming.md`.
56
+
57
+ ### Process
58
+
59
+ 1. **Load token source** (priority): `.vibe/design-system/{project}/MASTER.md` → `.vibe/design-context.json` → default detection (with prompt: "Run `/design-teach` or create MASTER.md first")
60
+ 2. **Scan for hardcoded values**:
61
+
62
+ | Category | Pattern | Example |
63
+ |----------|---------|---------|
64
+ | Colors | hex, `rgb()`, `hsl()` | `#3B82F6` → `var(--color-primary)` |
65
+ | Typography | `font-size`, `font-weight` | `14px` → `var(--text-sm)` |
66
+ | Spacing | `margin`/`padding`/`gap` px | `16px` → `var(--space-4)` |
67
+ | Shadows | inline `box-shadow` | → `var(--shadow-sm)` |
68
+ | Border radius | `border-radius: 8px` | → `var(--radius-md)` |
69
+
70
+ 3. **Map to tokens**: exact match → replace; close match (within 2px / similar hue) → replace + note; no match → flag for manual review (may need new token)
71
+ 4. **Apply**, preserving: `/* intentional */` one-offs, animation keyframes, SVG path data, third-party overrides
72
+
73
+ Use `detectedStack.styling` to pick token format (CSS vars, Tailwind, etc.). New-token suggestions go to MASTER.md, then re-run.
74
+
75
+ ---
76
+
77
+ ## Mode: polish — Pre-Ship Final Pass
78
+
79
+ Last-mile pixel-level check with **direct fixes**. Detailed pass/fail criteria: `rubrics/polish-checklist.md`.
80
+
81
+ ### Checklist
82
+
83
+ 1. **Alignment & spacing** — 4/8px grid, section rhythm, baselines across columns, icons vertically centered with text, symmetric container padding
84
+ 2. **Interaction states (complete set)** — Default / Hover / Focus (visible ring) / Active / Disabled (`aria-disabled` + reduced opacity) / Loading / Error / Success
85
+ 3. **Typography & copy** — no orphaned words, consistent capitalization, no placeholder text, ellipsis truncation, line length ≤ 75ch
86
+ 4. **Visual consistency** — border radius per level, shadow matches elevation, icon sizes (16/20/24), semantic color usage
87
+ 5. **Cleanup** — no `console.log`, no commented-out JSX/HTML, no `z-index` > 100 undocumented, no inline styles that should be tokens, no dead CSS
88
+
89
+ ### Auto-Fix Rules
90
+
91
+ | Issue | Fix |
92
+ |-------|-----|
93
+ | Missing hover / focus / disabled state | Add using existing tokens (`focus-visible` outline, reduced-opacity disabled) |
94
+ | Inconsistent border radius | Normalize to nearest token |
95
+ | Inline color values | Replace with CSS variable |
96
+ | `console.log` / commented-out code | Remove |
97
+
98
+ Only auto-fix items with clear, safe remediation — ambiguous items are flagged for manual review. Re-verify fixed files pass the checklist.
99
+
100
+ ---
101
+
102
+ ## Preparation (all modes)
103
+
104
+ 1. **Read** `.vibe/design-context.json`
105
+ - Missing → display "Run `/design-teach` first for better results" → proceed with defaults
106
+ - Parse error → warn → proceed with defaults → recommend `/design-teach`
107
+ 2. **Read** `.vibe/design-system/*/MASTER.md` (if exists) as authoritative token source
108
+
109
+ ## Output Format
110
+
111
+ ```markdown
112
+ ## Design Refine: {target} (mode: {distill|normalize|polish|full})
113
+
114
+ ### Changed
115
+ - ✂️ {file}:{line} — removed decorative gradient (distill)
116
+ - 🔄 {file}:{line} — #3B82F6 → var(--color-primary), confidence: exact (normalize)
117
+ - ✅ {file}:{line} — added hover state to submit button (polish)
118
+
119
+ ### Manual Review Needed
120
+ - ⚠️ {file}:{line} — no matching token / layout choice / missing loading state
121
+
122
+ ### Summary
123
+ - Reviewed: {N} · Changed: {N} · New tokens suggested: {N} · Manual review: {N}
124
+ - Ship-ready: {yes/no}
125
+ ```
126
+
127
+ Report templates: `templates/polish-report.md` · `templates/token-audit.md` · `templates/design-system.md`.
128
+
129
+ ## Next Steps
130
+
131
+ | If Result Shows | Recommended Next |
132
+ |----------------|-----------------|
133
+ | New tokens suggested | Add to MASTER.md → re-run `/design-refine normalize` |
134
+ | Broad quality concerns | `/design-review` — audit + UX critique |
135
+ | All items pass | Ship ready |
136
+
137
+ ## Important
138
+
139
+ - **Modifying**: applies changes directly (conservative — safe items only; removals listed for easy revert).
140
+ - **Pairs with**: `/design-review` first for findings, then `/design-refine` to fix.
@@ -60,5 +60,5 @@
60
60
 
61
61
  | Condition | Recommended Skill |
62
62
  |-----------|-------------------|
63
- | Design system gaps found | `/design-normalize` then re-run `/design-polish` |
63
+ | Design system gaps found | `/design-refine normalize` then re-run `/design-refine polish` |
64
64
  | All items pass | Ship ready |
@@ -84,6 +84,6 @@ These values appear 3+ times with no matching token. Candidates for addition to
84
84
 
85
85
  ## Next Steps
86
86
 
87
- 1. {{#HAS_SUGGESTED_TOKENS}}Add suggested tokens to MASTER.md, then re-run `/design-normalize`{{/HAS_SUGGESTED_TOKENS}}
88
- 2. {{#HAS_HARDCODED}}Run `/design-normalize` to apply replacements{{/HAS_HARDCODED}}
89
- 3. {{#ALL_TOKENIZED}}Token coverage complete — proceed to `/design-polish`{{/ALL_TOKENIZED}}
87
+ 1. {{#HAS_SUGGESTED_TOKENS}}Add suggested tokens to MASTER.md, then re-run `/design-refine normalize`{{/HAS_SUGGESTED_TOKENS}}
88
+ 2. {{#HAS_HARDCODED}}Run `/design-refine normalize` to apply replacements{{/HAS_HARDCODED}}
89
+ 3. {{#ALL_TOKENIZED}}Token coverage complete — proceed to `/design-refine polish`{{/ALL_TOKENIZED}}