@su-record/vibe 2.9.3 → 2.9.5

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 (479) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +190 -190
  3. package/LICENSE +21 -21
  4. package/README.ko.md +170 -170
  5. package/README.md +219 -219
  6. package/agents/architect-low.md +41 -41
  7. package/agents/architect-medium.md +59 -59
  8. package/agents/architect.md +80 -80
  9. package/agents/build-error-resolver.md +115 -115
  10. package/agents/compounder.md +261 -261
  11. package/agents/diagrammer.md +178 -178
  12. package/agents/docs/api-documenter.md +99 -99
  13. package/agents/docs/changelog-writer.md +93 -93
  14. package/agents/e2e-tester.md +294 -294
  15. package/agents/event/event-comms.md +78 -78
  16. package/agents/event/event-content.md +68 -68
  17. package/agents/event/event-image.md +95 -95
  18. package/agents/event/event-ops.md +84 -84
  19. package/agents/event/event-scheduler.md +69 -69
  20. package/agents/event/event-speaker.md +86 -86
  21. package/agents/explorer-low.md +42 -42
  22. package/agents/explorer-medium.md +59 -59
  23. package/agents/explorer.md +48 -48
  24. package/agents/implementer-low.md +43 -43
  25. package/agents/implementer-medium.md +52 -52
  26. package/agents/implementer.md +54 -54
  27. package/agents/junior-mentor.md +141 -141
  28. package/agents/planning/requirements-analyst.md +84 -84
  29. package/agents/planning/ux-advisor.md +83 -83
  30. package/agents/qa/acceptance-tester.md +86 -86
  31. package/agents/qa/edge-case-finder.md +93 -93
  32. package/agents/qa/qa-coordinator.md +131 -131
  33. package/agents/refactor-cleaner.md +143 -143
  34. package/agents/research/best-practices-agent.md +199 -199
  35. package/agents/research/codebase-patterns-agent.md +157 -157
  36. package/agents/research/framework-docs-agent.md +188 -188
  37. package/agents/research/security-advisory-agent.md +213 -213
  38. package/agents/review/architecture-reviewer.md +107 -107
  39. package/agents/review/complexity-reviewer.md +116 -116
  40. package/agents/review/data-integrity-reviewer.md +88 -88
  41. package/agents/review/git-history-reviewer.md +103 -103
  42. package/agents/review/performance-reviewer.md +86 -86
  43. package/agents/review/python-reviewer.md +150 -150
  44. package/agents/review/rails-reviewer.md +139 -139
  45. package/agents/review/react-reviewer.md +144 -144
  46. package/agents/review/security-reviewer.md +80 -80
  47. package/agents/review/simplicity-reviewer.md +140 -140
  48. package/agents/review/test-coverage-reviewer.md +116 -116
  49. package/agents/review/typescript-reviewer.md +127 -127
  50. package/agents/searcher.md +54 -54
  51. package/agents/simplifier.md +120 -120
  52. package/agents/teams/debug-team.md +70 -70
  53. package/agents/teams/dev-team.md +88 -88
  54. package/agents/teams/docs-team.md +80 -80
  55. package/agents/teams/figma/figma-analyst.md +52 -52
  56. package/agents/teams/figma/figma-architect.md +112 -112
  57. package/agents/teams/figma/figma-auditor.md +82 -82
  58. package/agents/teams/figma/figma-builder.md +100 -100
  59. package/agents/teams/figma-team.md +85 -85
  60. package/agents/teams/fullstack-team.md +83 -83
  61. package/agents/teams/lite-team.md +69 -69
  62. package/agents/teams/migration-team.md +78 -78
  63. package/agents/teams/refactor-team.md +94 -94
  64. package/agents/teams/research-team.md +86 -86
  65. package/agents/teams/review-debate-team.md +125 -125
  66. package/agents/teams/security-team.md +81 -81
  67. package/agents/tester.md +49 -49
  68. package/agents/ui/ui-a11y-auditor.md +93 -93
  69. package/agents/ui/ui-antipattern-detector.md +102 -102
  70. package/agents/ui/ui-dataviz-advisor.md +69 -69
  71. package/agents/ui/ui-design-system-gen.md +57 -57
  72. package/agents/ui/ui-industry-analyzer.md +49 -49
  73. package/agents/ui/ui-layout-architect.md +65 -65
  74. package/agents/ui/ui-stack-implementer.md +68 -68
  75. package/agents/ui/ux-compliance-reviewer.md +81 -81
  76. package/agents/ui-previewer.md +258 -258
  77. package/commands/vibe.analyze.md +533 -533
  78. package/commands/vibe.docs.md +32 -32
  79. package/commands/vibe.event.md +163 -163
  80. package/commands/vibe.figma.md +584 -584
  81. package/commands/vibe.harness.md +177 -177
  82. package/commands/vibe.review.md +624 -624
  83. package/commands/vibe.run.md +1925 -1925
  84. package/commands/vibe.scaffold.md +195 -195
  85. package/commands/vibe.spec.md +565 -565
  86. package/commands/vibe.trace.md +276 -276
  87. package/commands/vibe.utils.md +413 -413
  88. package/commands/vibe.verify.md +519 -519
  89. package/dist/cli/collaborator.js +52 -52
  90. package/dist/cli/commands/codex-proxy.d.ts +10 -0
  91. package/dist/cli/commands/codex-proxy.d.ts.map +1 -0
  92. package/dist/cli/commands/codex-proxy.js +221 -0
  93. package/dist/cli/commands/codex-proxy.js.map +1 -0
  94. package/dist/cli/commands/config.js +9 -9
  95. package/dist/cli/commands/evolution.js +12 -12
  96. package/dist/cli/commands/figma.js +20 -20
  97. package/dist/cli/commands/index.d.ts +1 -0
  98. package/dist/cli/commands/index.d.ts.map +1 -1
  99. package/dist/cli/commands/index.js +1 -0
  100. package/dist/cli/commands/index.js.map +1 -1
  101. package/dist/cli/commands/info.d.ts.map +1 -1
  102. package/dist/cli/commands/info.js +50 -53
  103. package/dist/cli/commands/info.js.map +1 -1
  104. package/dist/cli/commands/init.js +5 -5
  105. package/dist/cli/commands/remove.js +14 -14
  106. package/dist/cli/commands/sentinel.js +27 -27
  107. package/dist/cli/commands/skills.js +5 -5
  108. package/dist/cli/commands/slack.js +10 -10
  109. package/dist/cli/commands/stats.js +6 -6
  110. package/dist/cli/commands/telegram.js +12 -12
  111. package/dist/cli/detect.js +32 -32
  112. package/dist/cli/index.d.ts.map +1 -1
  113. package/dist/cli/index.js +67 -53
  114. package/dist/cli/index.js.map +1 -1
  115. package/dist/cli/llm/claude-commands.js +16 -16
  116. package/dist/cli/llm/config.js +18 -18
  117. package/dist/cli/llm/gemini-commands.js +16 -16
  118. package/dist/cli/llm/gpt-commands.js +19 -19
  119. package/dist/cli/llm/help.js +21 -21
  120. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  121. package/dist/cli/postinstall/constants.js +17 -13
  122. package/dist/cli/postinstall/constants.js.map +1 -1
  123. package/dist/cli/postinstall/cursor-agents.js +32 -32
  124. package/dist/cli/postinstall/cursor-rules.js +83 -83
  125. package/dist/cli/postinstall/cursor-skills.js +743 -743
  126. package/dist/cli/postinstall/fs-utils.d.ts +6 -0
  127. package/dist/cli/postinstall/fs-utils.d.ts.map +1 -1
  128. package/dist/cli/postinstall/fs-utils.js +15 -0
  129. package/dist/cli/postinstall/fs-utils.js.map +1 -1
  130. package/dist/cli/postinstall/main.d.ts.map +1 -1
  131. package/dist/cli/postinstall/main.js +8 -8
  132. package/dist/cli/postinstall/main.js.map +1 -1
  133. package/dist/cli/setup/Provisioner.js +42 -42
  134. package/dist/cli/types.d.ts +8 -0
  135. package/dist/cli/types.d.ts.map +1 -1
  136. package/dist/infra/lib/DeepInit.js +24 -24
  137. package/dist/infra/lib/IterationTracker.js +11 -11
  138. package/dist/infra/lib/OrchestrateWorkflow.js +1 -1
  139. package/dist/infra/lib/PythonParser.js +108 -108
  140. package/dist/infra/lib/ReviewRace.js +96 -96
  141. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  142. package/dist/infra/lib/SkillQualityGate.js +9 -9
  143. package/dist/infra/lib/SkillRepository.js +159 -159
  144. package/dist/infra/lib/UltraQA.js +99 -99
  145. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  146. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  147. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  148. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  149. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  150. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  151. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  152. package/dist/infra/lib/codex-proxy.d.ts +21 -0
  153. package/dist/infra/lib/codex-proxy.d.ts.map +1 -0
  154. package/dist/infra/lib/codex-proxy.js +510 -0
  155. package/dist/infra/lib/codex-proxy.js.map +1 -0
  156. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  157. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  158. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  159. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  160. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  161. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  162. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  163. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  164. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  165. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  166. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  167. package/dist/infra/lib/gemini/orchestration.js +5 -5
  168. package/dist/infra/lib/gpt/orchestration.js +4 -4
  169. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  170. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  171. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  172. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  173. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  174. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  175. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  176. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  177. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +4 -4
  178. package/dist/infra/orchestrator/AgentManager.js +12 -12
  179. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  180. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  181. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  182. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  183. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  184. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  185. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  186. package/dist/tools/memory/getMemoryGraph.js +12 -12
  187. package/dist/tools/memory/getSessionContext.js +9 -9
  188. package/dist/tools/memory/linkMemories.js +14 -14
  189. package/dist/tools/memory/listMemories.js +4 -4
  190. package/dist/tools/memory/recallMemory.js +4 -4
  191. package/dist/tools/memory/saveMemory.js +4 -4
  192. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  193. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  194. package/dist/tools/semantic/astGrep.test.js +6 -6
  195. package/dist/tools/spec/prdParser.test.js +171 -171
  196. package/dist/tools/spec/specGenerator.js +169 -169
  197. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  198. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  199. package/hooks/gemini-hooks.json +73 -73
  200. package/hooks/hooks.json +174 -174
  201. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  202. package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -286
  203. package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -210
  204. package/hooks/scripts/auto-commit.js +97 -97
  205. package/hooks/scripts/auto-format.js +64 -64
  206. package/hooks/scripts/auto-test.js +81 -81
  207. package/hooks/scripts/code-check.js +268 -268
  208. package/hooks/scripts/codex-detect.js +46 -46
  209. package/hooks/scripts/codex-review-gate.js +80 -80
  210. package/hooks/scripts/command-log.js +32 -32
  211. package/hooks/scripts/context-save.js +353 -353
  212. package/hooks/scripts/evolution-engine.js +91 -91
  213. package/hooks/scripts/figma-extract.js +635 -635
  214. package/hooks/scripts/figma-guard.js +220 -220
  215. package/hooks/scripts/figma-refine.js +315 -315
  216. package/hooks/scripts/figma-to-scss.js +394 -394
  217. package/hooks/scripts/figma-validate.js +353 -353
  218. package/hooks/scripts/hud-status.js +321 -321
  219. package/hooks/scripts/keyword-detector.js +214 -214
  220. package/hooks/scripts/llm-orchestrate.js +572 -572
  221. package/hooks/scripts/post-edit.js +32 -32
  222. package/hooks/scripts/pr-test-gate.js +52 -52
  223. package/hooks/scripts/pre-tool-guard.js +214 -214
  224. package/hooks/scripts/prompt-dispatcher.js +185 -185
  225. package/hooks/scripts/sentinel-guard.js +131 -131
  226. package/hooks/scripts/session-start.js +177 -177
  227. package/hooks/scripts/skill-injector.js +83 -83
  228. package/hooks/scripts/stop-notify.js +209 -209
  229. package/hooks/scripts/utils.js +243 -243
  230. package/languages/csharp-unity.md +515 -515
  231. package/languages/gdscript-godot.md +470 -470
  232. package/languages/ruby-rails.md +489 -489
  233. package/languages/typescript-angular.md +433 -433
  234. package/languages/typescript-astro.md +416 -416
  235. package/languages/typescript-electron.md +406 -406
  236. package/languages/typescript-nestjs.md +524 -524
  237. package/languages/typescript-svelte.md +407 -407
  238. package/languages/typescript-tauri.md +365 -365
  239. package/package.json +101 -101
  240. package/skills/agents-md/SKILL.md +121 -121
  241. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  242. package/skills/agents-md/templates/agents-md.md +36 -36
  243. package/skills/arch-guard/SKILL.md +181 -181
  244. package/skills/arch-guard/agents/detector.md +48 -48
  245. package/skills/arch-guard/agents/reporter.md +48 -48
  246. package/skills/arch-guard/agents/rule-generator.md +49 -49
  247. package/skills/arch-guard/agents/violation-checker.md +51 -51
  248. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  249. package/skills/arch-guard/frameworks/solid.md +102 -102
  250. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  251. package/skills/arch-guard/templates/arch-rules.json +47 -47
  252. package/skills/arch-guard/templates/violation-report.md +53 -53
  253. package/skills/brand-assets/SKILL.md +147 -147
  254. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  255. package/skills/brand-assets/templates/brand-guide.md +161 -161
  256. package/skills/capability-loop/SKILL.md +272 -272
  257. package/skills/capability-loop/agents/capability-designer.md +61 -61
  258. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  259. package/skills/capability-loop/agents/implementer.md +50 -50
  260. package/skills/capability-loop/agents/tester.md +53 -53
  261. package/skills/capability-loop/templates/capability-spec.md +118 -118
  262. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  263. package/skills/characterization-test/SKILL.md +207 -207
  264. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  265. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  266. package/skills/characterization-test/agents/reporter.md +50 -50
  267. package/skills/characterization-test/agents/test-writer.md +49 -49
  268. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  269. package/skills/characterization-test/templates/test-template.ts +101 -101
  270. package/skills/chub-usage/SKILL.md +139 -139
  271. package/skills/claude-md-guide/SKILL.md +351 -351
  272. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  273. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  274. package/skills/commerce-patterns/SKILL.md +64 -64
  275. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  276. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  277. package/skills/commit-push-pr/SKILL.md +77 -77
  278. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  279. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  280. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  281. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  282. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  283. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  284. package/skills/context7-usage/SKILL.md +106 -106
  285. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  286. package/skills/create-prd/SKILL.md +90 -90
  287. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  288. package/skills/create-prd/agents/prioritizer.md +60 -60
  289. package/skills/create-prd/agents/requirements-writer.md +48 -48
  290. package/skills/create-prd/agents/researcher.md +55 -55
  291. package/skills/create-prd/agents/reviewer.md +54 -54
  292. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  293. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  294. package/skills/create-prd/orchestrator.md +70 -70
  295. package/skills/create-prd/rubrics/completeness.md +58 -58
  296. package/skills/create-prd/templates/prd.md +139 -139
  297. package/skills/design-audit/SKILL.md +152 -152
  298. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  299. package/skills/design-audit/agents/performance-auditor.md +46 -46
  300. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  301. package/skills/design-audit/agents/scorer.md +47 -47
  302. package/skills/design-audit/agents/slop-detector.md +47 -47
  303. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  304. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  305. package/skills/design-audit/orchestrator.md +64 -64
  306. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  307. package/skills/design-audit/rubrics/scoring.md +63 -63
  308. package/skills/design-audit/templates/report.md +88 -88
  309. package/skills/design-critique/SKILL.md +139 -139
  310. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  311. package/skills/design-critique/templates/critique-report.md +86 -86
  312. package/skills/design-distill/SKILL.md +130 -130
  313. package/skills/design-distill/templates/design-system.md +132 -132
  314. package/skills/design-normalize/SKILL.md +133 -133
  315. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  316. package/skills/design-normalize/templates/token-audit.md +89 -89
  317. package/skills/design-polish/SKILL.md +131 -131
  318. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  319. package/skills/design-polish/templates/polish-report.md +64 -64
  320. package/skills/design-teach/SKILL.md +182 -182
  321. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  322. package/skills/design-teach/templates/design-context.json +36 -36
  323. package/skills/devlog/SKILL.md +143 -143
  324. package/skills/e2e-commerce/SKILL.md +62 -62
  325. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  326. package/skills/event-comms/SKILL.md +172 -172
  327. package/skills/event-comms/templates/email-invite.md +99 -99
  328. package/skills/event-comms/templates/sns-post.md +133 -133
  329. package/skills/event-ops/SKILL.md +207 -207
  330. package/skills/event-ops/rubrics/contingency.md +85 -85
  331. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  332. package/skills/event-planning/SKILL.md +144 -144
  333. package/skills/event-planning/rubrics/timeline.md +70 -70
  334. package/skills/event-planning/templates/event-plan.md +91 -91
  335. package/skills/exec-plan/SKILL.md +149 -149
  336. package/skills/exec-plan/agents/decomposer.md +47 -47
  337. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  338. package/skills/exec-plan/agents/estimator.md +43 -43
  339. package/skills/exec-plan/agents/validator.md +55 -55
  340. package/skills/exec-plan/orchestrator.md +70 -70
  341. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  342. package/skills/exec-plan/templates/plan.md +147 -147
  343. package/skills/git-worktree/SKILL.md +73 -73
  344. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  345. package/skills/handoff/SKILL.md +110 -110
  346. package/skills/handoff/agents/context-summarizer.md +51 -51
  347. package/skills/handoff/agents/document-writer.md +63 -63
  348. package/skills/handoff/agents/state-collector.md +53 -53
  349. package/skills/handoff/agents/verifier.md +48 -48
  350. package/skills/handoff/rubrics/completeness.md +62 -62
  351. package/skills/handoff/templates/handoff.md +107 -107
  352. package/skills/parallel-research/SKILL.md +89 -89
  353. package/skills/parallel-research/agents/best-practices.md +43 -43
  354. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  355. package/skills/parallel-research/agents/framework-docs.md +45 -45
  356. package/skills/parallel-research/agents/security-advisory.md +46 -46
  357. package/skills/parallel-research/agents/synthesizer.md +52 -52
  358. package/skills/parallel-research/experts/best-practices.md +50 -50
  359. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  360. package/skills/parallel-research/experts/framework-docs.md +65 -65
  361. package/skills/parallel-research/experts/security-advisory.md +69 -69
  362. package/skills/parallel-research/orchestrator.md +65 -65
  363. package/skills/parallel-research/templates/synthesis.md +101 -101
  364. package/skills/prioritization-frameworks/SKILL.md +87 -87
  365. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  366. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  367. package/skills/priority-todos/SKILL.md +64 -64
  368. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  369. package/skills/priority-todos/templates/todo-board.md +59 -59
  370. package/skills/seo-checklist/SKILL.md +58 -58
  371. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  372. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  373. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  374. package/skills/techdebt/SKILL.md +124 -124
  375. package/skills/techdebt/agents/analyzer.md +50 -50
  376. package/skills/techdebt/agents/fixer.md +41 -41
  377. package/skills/techdebt/agents/reviewer.md +47 -47
  378. package/skills/techdebt/agents/scanner.md +44 -44
  379. package/skills/techdebt/orchestrator.md +70 -70
  380. package/skills/techdebt/rubrics/severity.md +51 -51
  381. package/skills/techdebt/scripts/scan.js +90 -90
  382. package/skills/techdebt/templates/report.md +86 -86
  383. package/skills/tool-fallback/SKILL.md +104 -104
  384. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  385. package/skills/typescript-advanced-types/SKILL.md +67 -67
  386. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  387. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  388. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  389. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  390. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  391. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  392. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  393. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  394. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  395. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  396. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  397. package/skills/user-personas/SKILL.md +75 -75
  398. package/skills/user-personas/rubrics/research-methods.md +56 -56
  399. package/skills/user-personas/templates/persona.md +89 -89
  400. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  401. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  402. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  403. package/skills/{vibe.docs → vibe-docs}/SKILL.md +171 -171
  404. package/skills/{vibe.docs → vibe-docs}/templates/architecture.md +80 -80
  405. package/skills/{vibe.docs → vibe-docs}/templates/readme.md +84 -84
  406. package/skills/{vibe.docs → vibe-docs}/templates/release-notes.md +74 -74
  407. package/skills/{vibe.figma → vibe-figma}/SKILL.md +363 -363
  408. package/skills/{vibe.figma → vibe-figma}/rubrics/extraction-checklist.md +51 -51
  409. package/skills/{vibe.figma → vibe-figma}/templates/component-index.md +126 -126
  410. package/skills/{vibe.figma → vibe-figma}/templates/component-spec.md +168 -168
  411. package/skills/{vibe.figma → vibe-figma}/templates/figma-handoff.md +100 -100
  412. package/skills/{vibe.figma → vibe-figma}/templates/remapped-tree.md +277 -277
  413. package/skills/{vibe.figma.convert → vibe-figma-convert}/SKILL.md +235 -235
  414. package/skills/{vibe.figma.convert → vibe-figma-convert}/rubrics/conversion-rules.md +141 -141
  415. package/skills/{vibe.figma.convert → vibe-figma-convert}/templates/component.md +140 -140
  416. package/skills/{vibe.figma.extract → vibe-figma-extract}/SKILL.md +219 -219
  417. package/skills/{vibe.figma.extract → vibe-figma-extract}/rubrics/image-rules.md +157 -157
  418. package/skills/{vibe.interview → vibe-interview}/SKILL.md +358 -358
  419. package/skills/{vibe.interview → vibe-interview}/checklists/api.md +101 -101
  420. package/skills/{vibe.interview → vibe-interview}/checklists/feature.md +88 -88
  421. package/skills/{vibe.interview → vibe-interview}/checklists/library.md +95 -95
  422. package/skills/{vibe.interview → vibe-interview}/checklists/mobile.md +89 -89
  423. package/skills/{vibe.interview → vibe-interview}/checklists/webapp.md +97 -97
  424. package/skills/{vibe.interview → vibe-interview}/checklists/website.md +99 -99
  425. package/skills/{vibe.plan → vibe-plan}/SKILL.md +254 -216
  426. package/skills/{vibe.spec → vibe-spec}/SKILL.md +1155 -1155
  427. package/skills/{vibe.spec.review → vibe-spec-review}/SKILL.md +726 -726
  428. package/skills/video-production/SKILL.md +52 -52
  429. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  430. package/skills/video-production/templates/production-plan.md +104 -104
  431. package/vibe/config.json +29 -29
  432. package/vibe/constitution.md +227 -227
  433. package/vibe/rules/principles/communication-guide.md +98 -98
  434. package/vibe/rules/principles/development-philosophy.md +52 -52
  435. package/vibe/rules/principles/quick-start.md +102 -102
  436. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  437. package/vibe/rules/quality/checklist.md +276 -276
  438. package/vibe/rules/quality/performance.md +236 -236
  439. package/vibe/rules/quality/testing-strategy.md +440 -440
  440. package/vibe/rules/standards/anti-patterns.md +541 -541
  441. package/vibe/rules/standards/code-structure.md +291 -291
  442. package/vibe/rules/standards/complexity-metrics.md +313 -313
  443. package/vibe/rules/standards/git-workflow.md +237 -237
  444. package/vibe/rules/standards/naming-conventions.md +198 -198
  445. package/vibe/rules/standards/security.md +305 -305
  446. package/vibe/rules/writing/document-style.md +74 -74
  447. package/vibe/setup.sh +31 -31
  448. package/vibe/templates/claudemd-template.md +74 -74
  449. package/vibe/templates/constitution-template.md +267 -267
  450. package/vibe/templates/contract-backend-template.md +526 -526
  451. package/vibe/templates/contract-frontend-template.md +599 -599
  452. package/vibe/templates/feature-template.md +96 -96
  453. package/vibe/templates/plan-template.md +194 -194
  454. package/vibe/templates/spec-template.md +221 -221
  455. package/vibe/ui-ux-data/charts.csv +26 -26
  456. package/vibe/ui-ux-data/colors.csv +97 -97
  457. package/vibe/ui-ux-data/icons.csv +101 -101
  458. package/vibe/ui-ux-data/landing.csv +31 -31
  459. package/vibe/ui-ux-data/products.csv +96 -96
  460. package/vibe/ui-ux-data/react-performance.csv +45 -45
  461. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  462. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  463. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  464. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  465. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  466. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  467. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  468. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  469. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  470. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  471. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  472. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  473. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  474. package/vibe/ui-ux-data/styles.csv +68 -68
  475. package/vibe/ui-ux-data/typography.csv +57 -57
  476. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  477. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  478. package/vibe/ui-ux-data/version.json +31 -31
  479. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,363 +1,363 @@
1
- ---
2
- name: vibe.figma
3
- description: Figma design to code — tree-based structural code generation
4
- triggers: []
5
- tier: standard
6
- ---
7
-
8
- # vibe.figma — Structural Code Generation
9
-
10
- ## Core Principles
11
-
12
- ```
13
- The Figma tree is the source of truth for code. Screenshots are for verification only.
14
-
15
- ✅ Figma Auto Layout → CSS Flexbox 1:1 mechanical mapping
16
- ✅ Figma CSS properties → SCSS direct conversion (no guessing)
17
- ✅ Claude handles semantic decisions only: tag selection, component splitting, interactions
18
- ✅ Screenshots are used for verification only, not generation
19
- ```
20
-
21
- ## Immutable Rules
22
-
23
- ```
24
- 1. Do NOT render content as images via screenshot
25
- ✅ BG rendering (backgrounds with no TEXT children), vector-text GROUPs, section screenshots (verification only)
26
- ❌ Frames with TEXT children, INSTANCE repetitions, buttons/prices, rendering entire sections
27
-
28
- 2. BG must use CSS background-image only. <img> tag is forbidden.
29
-
30
- 3. No new screenshot calls during Phase 4 code generation.
31
- Use only Phase 2 materials. No matter how complex — implement with HTML+CSS.
32
- ```
33
-
34
- ## Full Flow
35
-
36
- ```
37
- Input: receive all URLs at once
38
- Storyboard: figma.com/...?node-id=aaa (if present)
39
- MO Design: figma.com/...?node-id=xxx
40
- PC Design: figma.com/...?node-id=yyy (if present)
41
-
42
- → Phase 0: Setup
43
- → Phase 1: Storyboard analysis → functional spec document
44
- → Phase 2: Gather materials (→ vibe.figma.extract)
45
- → Phase 3: Remapping (MO↔PC matching → remapped.json)
46
- → Phase 4: Sequential code generation (→ vibe.figma.convert)
47
- → Phase 5: Compile gate
48
- → Phase 6: Visual verification loop
49
-
50
- Working directory:
51
- /tmp/{feature}/
52
- ├── mo-main/tree.json, bg/, content/, sections/
53
- ├── pc-main/tree.json, bg/, content/, sections/
54
- └── remapped.json ← sole input for Phase 4
55
-
56
- Code output: placed directly in the project directory
57
- components/{feature}/, styles/{feature}/
58
- ```
59
-
60
- ---
61
-
62
- ## Phase 0: Setup
63
-
64
- ```
65
- 1. Stack detection: package.json → react/vue/svelte, next/nuxt, scss/tailwind
66
- 2. Feature name: Figma filename → kebab-case
67
- 3. Directories: components/{feature}/, public/images/{feature}/, styles/{feature}/
68
- 4. Component indexing → /tmp/{feature}/component-index.json
69
- (scan up to 50 components, extract props/slots/classes, within 2 minutes)
70
- 5. Hooks/Types/Constants → /tmp/{feature}/context-index.json
71
- 6. Design token scan → /tmp/{feature}/project-tokens.json
72
- (SCSS > CSS Variables > Tailwind > CSS-in-JS)
73
- ```
74
-
75
- ---
76
-
77
- ## Phase 1: Storyboard Analysis
78
-
79
- ```
80
- User input: enter URLs or PDF/images separated by newlines
81
-
82
- URL classification (automatic):
83
- Different fileKey → storyboard vs design
84
- ROOT name contains "MO" → mobile, "PC" → desktop
85
-
86
- Storyboard analysis:
87
- Collect frames at depth=3 → classify by name pattern
88
- SPEC (functional definition) → CONFIG (resolution) → PAGE (main sections) → SHARED (common)
89
- PDF/images follow the same structural extraction
90
-
91
- ❌ No code file creation during Phase 1
92
-
93
- Output (text only):
94
- 1. Section list table (name, Figma name, height, description)
95
- 2. Functional definition per section ([Function] + [Interaction] + [State])
96
- 3. Common component list
97
- 4. TypeScript interface draft
98
- ```
99
-
100
- ---
101
-
102
- ## Phase 2: Gather Materials ← Research (parallel)
103
-
104
- **→ Follow the rules of the vibe.figma.extract skill.**
105
- **Coordinator pattern: run MO/PC extraction as parallel workers.**
106
-
107
- ```
108
- # [FIGMA_SCRIPT] = {{VIBE_PATH}}/hooks/scripts/figma-extract.js
109
-
110
- Simultaneous MO/PC extraction (each as an independent worker):
111
- Worker-MO: screenshot → tree → images → asset rendering → sections/
112
- Worker-PC: screenshot → tree → images → asset rendering → sections/
113
- → Proceed to Phase 3 only after both workers have completed
114
-
115
- Single BP: run sequentially with 1 worker
116
-
117
- Multi-frame (same BP, different pages):
118
- Sequential extraction (500ms interval), partial failure allowed
119
- ```
120
-
121
- ---
122
-
123
- ## Phase 3: Data Refinement ← Synthesis (independent per BP)
124
-
125
- **Split and refine each BP's tree.json by section.**
126
- **MO↔PC matching (responsive) is NOT done at this stage.**
127
-
128
- ### BLOCKING Command — Writing custom refine scripts is strictly forbidden
129
-
130
- ```bash
131
- # MO
132
- node {{VIBE_PATH}}/hooks/scripts/figma-refine.js \
133
- /tmp/{feature}/mo-main/tree.json \
134
- --out=/tmp/{feature}/mo-main/sections.json \
135
- --design-width=720 \
136
- --bp=mo
137
-
138
- # PC
139
- node {{VIBE_PATH}}/hooks/scripts/figma-refine.js \
140
- /tmp/{feature}/pc-main/tree.json \
141
- --out=/tmp/{feature}/pc-main/sections.json \
142
- --design-width=2560 \
143
- --bp=pc
144
- ```
145
-
146
- ⛔ **Phase 4 is blocked until these commands are executed.**
147
- ⛔ **Do NOT write custom refine scripts** (refine-sections.mjs, refine.js, etc. — all forbidden)
148
- ⛔ **Do NOT parse tree.json directly with Python/Node to produce sections.json**
149
- ✅ Use only the output of figma-refine.js. If the output is unsatisfactory, modify figma-refine.js.
150
-
151
- ### Core Principles
152
-
153
- ```
154
- ⛔ Refine each BP independently. Do NOT mix MO and PC.
155
- ⛔ The refined JSON is the sole input for Phase 4.
156
- ⛔ The full subtree (recursive children) for each section must be included.
157
- ```
158
-
159
- ### Output
160
-
161
- ```
162
- /tmp/{feature}/
163
- mo-main/
164
- sections.json ← MO refinement result
165
- pc-main/
166
- sections.json ← PC refinement result
167
-
168
- sections.json structure:
169
- {
170
- meta: { feature, designWidth, bp (the corresponding BP) },
171
- sections: [
172
- {
173
- name: "Hero",
174
- nodeId, name, type, size, css,
175
- text, // TEXT nodes only
176
- imageRef, // image fill
177
- fills, // multiple fills (2 or more)
178
- layoutSizingH, // HUG/FILL/FIXED
179
- layoutSizingV,
180
- children: [ // ⛔ full recursive subtree — down to leaf nodes
181
- { nodeId, name, type, size, css, children: [...] }
182
- ],
183
- images: {
184
- bg: "bg/hero-bg.webp",
185
- content: ["content/hero-title.webp"]
186
- }
187
- }
188
- ]
189
- }
190
- ```
191
-
192
- ### Node Refinement Rules
193
-
194
- ```
195
- Refinement applied when converting tree.json → sections.json:
196
- 1. Nodes with size 0px → remove
197
- 2. VECTOR decorative lines (w/h ≤ 2px) → remove
198
- 3. isMask nodes → remove
199
- 4. BG frames → separate from children, move to images.bg
200
- 5. Vector-text GROUPs → separate from children, add to images.content
201
- 6. Design text (TEXT with multiple/gradient fills or effects) → add to images.content
202
- 7. Remaining nodes → keep in children (with CSS, recursive)
203
- ```
204
-
205
- ### Multi-frame (same BP, different pages)
206
-
207
- ```
208
- Identify common elements → extract shared components
209
- Union of common tokens → shared _tokens.scss
210
- ```
211
-
212
- ---
213
-
214
- ## Phase 4: Per-BP Static Implementation ← Implement (sequential per BP)
215
-
216
- **→ Follow the rules of the vibe.figma.convert skill.**
217
- **⛔ Implement MO fully first → pass verification → then implement PC. No responsive conversion.**
218
- **⛔ CSS values must use Figma original px as-is. vw conversion, clamp, @media are forbidden.**
219
-
220
- ### BLOCKING Command — SCSS must only use script output
221
-
222
- ```bash
223
- # Step A: Auto-generate SCSS skeleton (run once per BP)
224
- node {{VIBE_PATH}}/hooks/scripts/figma-to-scss.js \
225
- /tmp/{feature}/{bp}-main/sections.json \
226
- --out=/path/to/project/assets/scss/{feature}/
227
-
228
- # Step B: Per-section validation (after writing each section's code)
229
- node {{VIBE_PATH}}/hooks/scripts/figma-validate.js \
230
- /path/to/project/assets/scss/{feature}/ \
231
- /tmp/{feature}/{bp}-main/sections.json \
232
- --section={SectionName}
233
- ```
234
-
235
- ⛔ **Writing SCSS files directly without calling figma-to-scss.js invalidates Phase 4.**
236
- ⛔ **Do NOT write custom SCSS generation scripts** (to-scss.mjs, generate-scss.js, etc. — all forbidden)
237
- ⛔ **Do NOT proceed to the next section without a figma-validate.js PASS.**
238
- ⛔ **Do NOT write CSS values directly inside scoped style blocks** — only @import of external SCSS files is allowed.
239
- ✅ Use figma-to-scss.js output as-is. If unsatisfactory, modify figma-to-scss.js.
240
-
241
- ```
242
- Phase 4A: MO Static Implementation
243
- Input: /tmp/{feature}/mo-main/sections.json
244
- ⛔ No parallelism. Process one section at a time:
245
- 1. Read the target section from sections.json
246
- 2. Write an image vs HTML classification table (BLOCKING)
247
- 3. figma-to-scss.js → auto-generate SCSS skeleton (px as-is) — Step A once
248
- 4. Claude: HTML structure + semantic tags + layout + interactions (Vue/React files only)
249
- ⛔ No CSS written directly in <style> blocks — only @import or @use allowed
250
- 5. figma-validate.js → compare SCSS vs sections.json — Step B
251
- ├─ PASS → next section
252
- └─ FAIL → fix discrepancies → re-run step 5 (repeat until P1=0, no round cap)
253
- → Phase 5 (MO compile) → Phase 6 (MO visual verification)
254
-
255
- Phase 4B: PC Static Implementation
256
- Input: /tmp/{feature}/pc-main/sections.json
257
- Same process as MO
258
- → Phase 5 (PC compile) → Phase 6 (PC visual verification)
259
-
260
- Phase 4C: Responsive Integration (after both MO+PC pass verification)
261
- → Separate flow to be established (TODO)
262
-
263
- Claude's role (restricted):
264
- ✅ Image classification: BG / content / decoration / vector-text
265
- ✅ HTML semantics: section/h1/p/button tag selection
266
- ✅ Component splitting: v-for repetition, shared components
267
- ✅ Interactions: @click, state variables, conditional rendering
268
- ✅ Execute figma-to-scss.js / figma-validate.js commands
269
- ❌ Do NOT modify SCSS CSS values (use figma-to-scss.js output as-is)
270
- ❌ Do NOT write CSS directly in <style> blocks
271
- ❌ Do NOT use vw conversion, clamp, @media, or create custom functions/mixins
272
- ❌ Do NOT write custom refine/generate scripts (refine.mjs, to-scss.mjs, etc.)
273
-
274
- SCSS Setup (before the first section):
275
- index.scss, _tokens.scss, _base.scss
276
- Token mapping: reference existing tokens from project-tokens.json → create new ones if no match
277
-
278
- Component matching (before each section):
279
- Compare against component-index.json → import if matched, create new if not
280
-
281
- Multi-frame:
282
- Step 1: shared components first → components/shared/
283
- Step 2: unique sections per frame
284
- ```
285
-
286
- ---
287
-
288
- ## Phase 5: Compile Gate
289
-
290
- ```
291
- No round cap. Loop until compile succeeds (or stuck → ask user).
292
-
293
- 0. Capture baseline (before Phase 4): record existing tsc + build errors
294
- → Phase 5 only fixes NEW errors
295
-
296
- 1. TypeScript: vue-tsc/svelte-check/tsc --noEmit
297
- 2. Build: npm run build (120s timeout)
298
- 3. Dev server: npm run dev → detect port → polling
299
-
300
- On error: parse → auto-fix → re-check
301
- Termination conditions:
302
- ✅ Success: all checks pass → enter Phase 6
303
- ⚠️ Stuck: same errors as previous round → ask user
304
- 1. Provide direct fix instructions → retry next round
305
- 2. "proceed" — record remaining errors as TODO, proceed to Phase 6
306
- 3. "abort" — halt workflow
307
- ultrawork mode: on stuck, record TODO without prompting and proceed to Phase 6
308
-
309
- On completion: preserve dev server PID → used in Phase 6
310
-
311
- ⛔ After Phase 5 passes (or user proceeds), must enter Phase 6. Do NOT output a "completion summary".
312
- ⛔ Do NOT declare work complete without Phase 6.
313
- ```
314
-
315
- ---
316
-
317
- ## Phase 6: Visual Verification Loop ← Verify (parallel) MANDATORY
318
-
319
- **⛔ Phase 6 is mandatory, not optional. Enter automatically upon Phase 5 completion.**
320
- **⛔ If Phase 6 is skipped, the entire task is considered "incomplete".**
321
- **Coordinator pattern: independent per-section verification can be run as parallel workers.**
322
-
323
- ```
324
- No round cap. Loop until P1=0 (or stuck → ask user).
325
- Infrastructure: src/infra/lib/browser/ (Puppeteer + CDP)
326
-
327
- 1. Capture rendered screenshot → pixelmatch comparison against Figma screenshot
328
- diffRatio > 0.1 → P1
329
- 2. CSS value comparison: computed CSS vs tree.json expected values
330
- delta > 4px → P1, ≤ 4px → P2
331
- 3. Check for missing images and text
332
- 4. Fix P1 issues first (refer to tree.json, no guessing) → revalidate compile → reload
333
-
334
- Narrowing scope (noise reduction):
335
- Round 1: P1+P2+P3 all
336
- Round 2: P1+P2
337
- Round 3+: P1 only (continue until P1=0)
338
-
339
- Termination conditions:
340
- ✅ Success: P1 = 0 AND no new findings → complete
341
- ⚠️ Stuck: same findings as previous round → ask user
342
- 1. Provide direct resolution → retry next round
343
- 2. "proceed" — record remaining issues as TODO, complete
344
- 3. "abort" — halt workflow
345
- ultrawork mode: on stuck, record TODO without prompting and complete
346
-
347
- Responsive: after MO verification, change viewport → same loop against PC screenshots
348
- Cleanup: shut down browser + dev server
349
-
350
- ⛔ "Completion summary" output is only allowed after Phase 6 is complete (or user proceeds).
351
- ```
352
-
353
- ---
354
-
355
- ## Error Recovery
356
-
357
- | Failure | Recovery |
358
- |---------|----------|
359
- | figma-extract.js script error | Check Node.js version (>=18 required). Verify Figma API token in config. Retry once. |
360
- | figma-to-scss.js parse failure | Validate input tree.json structure. If malformed, re-run extract phase. |
361
- | figma-validate.js comparison failure | Skip automated validation, present screenshot side-by-side for manual review |
362
- | Puppeteer/CDP not available | Skip visual verification phase, rely on manual browser check |
363
- | Figma API rate limit (429) | Wait 60s and retry. If persistent, reduce node scope. |
1
+ ---
2
+ name: vibe-figma
3
+ description: Figma design to code — tree-based structural code generation
4
+ triggers: []
5
+ tier: standard
6
+ ---
7
+
8
+ # vibe.figma — Structural Code Generation
9
+
10
+ ## Core Principles
11
+
12
+ ```
13
+ The Figma tree is the source of truth for code. Screenshots are for verification only.
14
+
15
+ ✅ Figma Auto Layout → CSS Flexbox 1:1 mechanical mapping
16
+ ✅ Figma CSS properties → SCSS direct conversion (no guessing)
17
+ ✅ Claude handles semantic decisions only: tag selection, component splitting, interactions
18
+ ✅ Screenshots are used for verification only, not generation
19
+ ```
20
+
21
+ ## Immutable Rules
22
+
23
+ ```
24
+ 1. Do NOT render content as images via screenshot
25
+ ✅ BG rendering (backgrounds with no TEXT children), vector-text GROUPs, section screenshots (verification only)
26
+ ❌ Frames with TEXT children, INSTANCE repetitions, buttons/prices, rendering entire sections
27
+
28
+ 2. BG must use CSS background-image only. <img> tag is forbidden.
29
+
30
+ 3. No new screenshot calls during Phase 4 code generation.
31
+ Use only Phase 2 materials. No matter how complex — implement with HTML+CSS.
32
+ ```
33
+
34
+ ## Full Flow
35
+
36
+ ```
37
+ Input: receive all URLs at once
38
+ Storyboard: figma.com/...?node-id=aaa (if present)
39
+ MO Design: figma.com/...?node-id=xxx
40
+ PC Design: figma.com/...?node-id=yyy (if present)
41
+
42
+ → Phase 0: Setup
43
+ → Phase 1: Storyboard analysis → functional spec document
44
+ → Phase 2: Gather materials (→ vibe.figma.extract)
45
+ → Phase 3: Remapping (MO↔PC matching → remapped.json)
46
+ → Phase 4: Sequential code generation (→ vibe.figma.convert)
47
+ → Phase 5: Compile gate
48
+ → Phase 6: Visual verification loop
49
+
50
+ Working directory:
51
+ /tmp/{feature}/
52
+ ├── mo-main/tree.json, bg/, content/, sections/
53
+ ├── pc-main/tree.json, bg/, content/, sections/
54
+ └── remapped.json ← sole input for Phase 4
55
+
56
+ Code output: placed directly in the project directory
57
+ components/{feature}/, styles/{feature}/
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Phase 0: Setup
63
+
64
+ ```
65
+ 1. Stack detection: package.json → react/vue/svelte, next/nuxt, scss/tailwind
66
+ 2. Feature name: Figma filename → kebab-case
67
+ 3. Directories: components/{feature}/, public/images/{feature}/, styles/{feature}/
68
+ 4. Component indexing → /tmp/{feature}/component-index.json
69
+ (scan up to 50 components, extract props/slots/classes, within 2 minutes)
70
+ 5. Hooks/Types/Constants → /tmp/{feature}/context-index.json
71
+ 6. Design token scan → /tmp/{feature}/project-tokens.json
72
+ (SCSS > CSS Variables > Tailwind > CSS-in-JS)
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Phase 1: Storyboard Analysis
78
+
79
+ ```
80
+ User input: enter URLs or PDF/images separated by newlines
81
+
82
+ URL classification (automatic):
83
+ Different fileKey → storyboard vs design
84
+ ROOT name contains "MO" → mobile, "PC" → desktop
85
+
86
+ Storyboard analysis:
87
+ Collect frames at depth=3 → classify by name pattern
88
+ SPEC (functional definition) → CONFIG (resolution) → PAGE (main sections) → SHARED (common)
89
+ PDF/images follow the same structural extraction
90
+
91
+ ❌ No code file creation during Phase 1
92
+
93
+ Output (text only):
94
+ 1. Section list table (name, Figma name, height, description)
95
+ 2. Functional definition per section ([Function] + [Interaction] + [State])
96
+ 3. Common component list
97
+ 4. TypeScript interface draft
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Phase 2: Gather Materials ← Research (parallel)
103
+
104
+ **→ Follow the rules of the vibe.figma.extract skill.**
105
+ **Coordinator pattern: run MO/PC extraction as parallel workers.**
106
+
107
+ ```
108
+ # [FIGMA_SCRIPT] = {{VIBE_PATH}}/hooks/scripts/figma-extract.js
109
+
110
+ Simultaneous MO/PC extraction (each as an independent worker):
111
+ Worker-MO: screenshot → tree → images → asset rendering → sections/
112
+ Worker-PC: screenshot → tree → images → asset rendering → sections/
113
+ → Proceed to Phase 3 only after both workers have completed
114
+
115
+ Single BP: run sequentially with 1 worker
116
+
117
+ Multi-frame (same BP, different pages):
118
+ Sequential extraction (500ms interval), partial failure allowed
119
+ ```
120
+
121
+ ---
122
+
123
+ ## Phase 3: Data Refinement ← Synthesis (independent per BP)
124
+
125
+ **Split and refine each BP's tree.json by section.**
126
+ **MO↔PC matching (responsive) is NOT done at this stage.**
127
+
128
+ ### BLOCKING Command — Writing custom refine scripts is strictly forbidden
129
+
130
+ ```bash
131
+ # MO
132
+ node {{VIBE_PATH}}/hooks/scripts/figma-refine.js \
133
+ /tmp/{feature}/mo-main/tree.json \
134
+ --out=/tmp/{feature}/mo-main/sections.json \
135
+ --design-width=720 \
136
+ --bp=mo
137
+
138
+ # PC
139
+ node {{VIBE_PATH}}/hooks/scripts/figma-refine.js \
140
+ /tmp/{feature}/pc-main/tree.json \
141
+ --out=/tmp/{feature}/pc-main/sections.json \
142
+ --design-width=2560 \
143
+ --bp=pc
144
+ ```
145
+
146
+ ⛔ **Phase 4 is blocked until these commands are executed.**
147
+ ⛔ **Do NOT write custom refine scripts** (refine-sections.mjs, refine.js, etc. — all forbidden)
148
+ ⛔ **Do NOT parse tree.json directly with Python/Node to produce sections.json**
149
+ ✅ Use only the output of figma-refine.js. If the output is unsatisfactory, modify figma-refine.js.
150
+
151
+ ### Core Principles
152
+
153
+ ```
154
+ ⛔ Refine each BP independently. Do NOT mix MO and PC.
155
+ ⛔ The refined JSON is the sole input for Phase 4.
156
+ ⛔ The full subtree (recursive children) for each section must be included.
157
+ ```
158
+
159
+ ### Output
160
+
161
+ ```
162
+ /tmp/{feature}/
163
+ mo-main/
164
+ sections.json ← MO refinement result
165
+ pc-main/
166
+ sections.json ← PC refinement result
167
+
168
+ sections.json structure:
169
+ {
170
+ meta: { feature, designWidth, bp (the corresponding BP) },
171
+ sections: [
172
+ {
173
+ name: "Hero",
174
+ nodeId, name, type, size, css,
175
+ text, // TEXT nodes only
176
+ imageRef, // image fill
177
+ fills, // multiple fills (2 or more)
178
+ layoutSizingH, // HUG/FILL/FIXED
179
+ layoutSizingV,
180
+ children: [ // ⛔ full recursive subtree — down to leaf nodes
181
+ { nodeId, name, type, size, css, children: [...] }
182
+ ],
183
+ images: {
184
+ bg: "bg/hero-bg.webp",
185
+ content: ["content/hero-title.webp"]
186
+ }
187
+ }
188
+ ]
189
+ }
190
+ ```
191
+
192
+ ### Node Refinement Rules
193
+
194
+ ```
195
+ Refinement applied when converting tree.json → sections.json:
196
+ 1. Nodes with size 0px → remove
197
+ 2. VECTOR decorative lines (w/h ≤ 2px) → remove
198
+ 3. isMask nodes → remove
199
+ 4. BG frames → separate from children, move to images.bg
200
+ 5. Vector-text GROUPs → separate from children, add to images.content
201
+ 6. Design text (TEXT with multiple/gradient fills or effects) → add to images.content
202
+ 7. Remaining nodes → keep in children (with CSS, recursive)
203
+ ```
204
+
205
+ ### Multi-frame (same BP, different pages)
206
+
207
+ ```
208
+ Identify common elements → extract shared components
209
+ Union of common tokens → shared _tokens.scss
210
+ ```
211
+
212
+ ---
213
+
214
+ ## Phase 4: Per-BP Static Implementation ← Implement (sequential per BP)
215
+
216
+ **→ Follow the rules of the vibe.figma.convert skill.**
217
+ **⛔ Implement MO fully first → pass verification → then implement PC. No responsive conversion.**
218
+ **⛔ CSS values must use Figma original px as-is. vw conversion, clamp, @media are forbidden.**
219
+
220
+ ### BLOCKING Command — SCSS must only use script output
221
+
222
+ ```bash
223
+ # Step A: Auto-generate SCSS skeleton (run once per BP)
224
+ node {{VIBE_PATH}}/hooks/scripts/figma-to-scss.js \
225
+ /tmp/{feature}/{bp}-main/sections.json \
226
+ --out=/path/to/project/assets/scss/{feature}/
227
+
228
+ # Step B: Per-section validation (after writing each section's code)
229
+ node {{VIBE_PATH}}/hooks/scripts/figma-validate.js \
230
+ /path/to/project/assets/scss/{feature}/ \
231
+ /tmp/{feature}/{bp}-main/sections.json \
232
+ --section={SectionName}
233
+ ```
234
+
235
+ ⛔ **Writing SCSS files directly without calling figma-to-scss.js invalidates Phase 4.**
236
+ ⛔ **Do NOT write custom SCSS generation scripts** (to-scss.mjs, generate-scss.js, etc. — all forbidden)
237
+ ⛔ **Do NOT proceed to the next section without a figma-validate.js PASS.**
238
+ ⛔ **Do NOT write CSS values directly inside scoped style blocks** — only @import of external SCSS files is allowed.
239
+ ✅ Use figma-to-scss.js output as-is. If unsatisfactory, modify figma-to-scss.js.
240
+
241
+ ```
242
+ Phase 4A: MO Static Implementation
243
+ Input: /tmp/{feature}/mo-main/sections.json
244
+ ⛔ No parallelism. Process one section at a time:
245
+ 1. Read the target section from sections.json
246
+ 2. Write an image vs HTML classification table (BLOCKING)
247
+ 3. figma-to-scss.js → auto-generate SCSS skeleton (px as-is) — Step A once
248
+ 4. Claude: HTML structure + semantic tags + layout + interactions (Vue/React files only)
249
+ ⛔ No CSS written directly in <style> blocks — only @import or @use allowed
250
+ 5. figma-validate.js → compare SCSS vs sections.json — Step B
251
+ ├─ PASS → next section
252
+ └─ FAIL → fix discrepancies → re-run step 5 (repeat until P1=0, no round cap)
253
+ → Phase 5 (MO compile) → Phase 6 (MO visual verification)
254
+
255
+ Phase 4B: PC Static Implementation
256
+ Input: /tmp/{feature}/pc-main/sections.json
257
+ Same process as MO
258
+ → Phase 5 (PC compile) → Phase 6 (PC visual verification)
259
+
260
+ Phase 4C: Responsive Integration (after both MO+PC pass verification)
261
+ → Separate flow to be established (TODO)
262
+
263
+ Claude's role (restricted):
264
+ ✅ Image classification: BG / content / decoration / vector-text
265
+ ✅ HTML semantics: section/h1/p/button tag selection
266
+ ✅ Component splitting: v-for repetition, shared components
267
+ ✅ Interactions: @click, state variables, conditional rendering
268
+ ✅ Execute figma-to-scss.js / figma-validate.js commands
269
+ ❌ Do NOT modify SCSS CSS values (use figma-to-scss.js output as-is)
270
+ ❌ Do NOT write CSS directly in <style> blocks
271
+ ❌ Do NOT use vw conversion, clamp, @media, or create custom functions/mixins
272
+ ❌ Do NOT write custom refine/generate scripts (refine.mjs, to-scss.mjs, etc.)
273
+
274
+ SCSS Setup (before the first section):
275
+ index.scss, _tokens.scss, _base.scss
276
+ Token mapping: reference existing tokens from project-tokens.json → create new ones if no match
277
+
278
+ Component matching (before each section):
279
+ Compare against component-index.json → import if matched, create new if not
280
+
281
+ Multi-frame:
282
+ Step 1: shared components first → components/shared/
283
+ Step 2: unique sections per frame
284
+ ```
285
+
286
+ ---
287
+
288
+ ## Phase 5: Compile Gate
289
+
290
+ ```
291
+ No round cap. Loop until compile succeeds (or stuck → ask user).
292
+
293
+ 0. Capture baseline (before Phase 4): record existing tsc + build errors
294
+ → Phase 5 only fixes NEW errors
295
+
296
+ 1. TypeScript: vue-tsc/svelte-check/tsc --noEmit
297
+ 2. Build: npm run build (120s timeout)
298
+ 3. Dev server: npm run dev → detect port → polling
299
+
300
+ On error: parse → auto-fix → re-check
301
+ Termination conditions:
302
+ ✅ Success: all checks pass → enter Phase 6
303
+ ⚠️ Stuck: same errors as previous round → ask user
304
+ 1. Provide direct fix instructions → retry next round
305
+ 2. "proceed" — record remaining errors as TODO, proceed to Phase 6
306
+ 3. "abort" — halt workflow
307
+ ultrawork mode: on stuck, record TODO without prompting and proceed to Phase 6
308
+
309
+ On completion: preserve dev server PID → used in Phase 6
310
+
311
+ ⛔ After Phase 5 passes (or user proceeds), must enter Phase 6. Do NOT output a "completion summary".
312
+ ⛔ Do NOT declare work complete without Phase 6.
313
+ ```
314
+
315
+ ---
316
+
317
+ ## Phase 6: Visual Verification Loop ← Verify (parallel) MANDATORY
318
+
319
+ **⛔ Phase 6 is mandatory, not optional. Enter automatically upon Phase 5 completion.**
320
+ **⛔ If Phase 6 is skipped, the entire task is considered "incomplete".**
321
+ **Coordinator pattern: independent per-section verification can be run as parallel workers.**
322
+
323
+ ```
324
+ No round cap. Loop until P1=0 (or stuck → ask user).
325
+ Infrastructure: src/infra/lib/browser/ (Puppeteer + CDP)
326
+
327
+ 1. Capture rendered screenshot → pixelmatch comparison against Figma screenshot
328
+ diffRatio > 0.1 → P1
329
+ 2. CSS value comparison: computed CSS vs tree.json expected values
330
+ delta > 4px → P1, ≤ 4px → P2
331
+ 3. Check for missing images and text
332
+ 4. Fix P1 issues first (refer to tree.json, no guessing) → revalidate compile → reload
333
+
334
+ Narrowing scope (noise reduction):
335
+ Round 1: P1+P2+P3 all
336
+ Round 2: P1+P2
337
+ Round 3+: P1 only (continue until P1=0)
338
+
339
+ Termination conditions:
340
+ ✅ Success: P1 = 0 AND no new findings → complete
341
+ ⚠️ Stuck: same findings as previous round → ask user
342
+ 1. Provide direct resolution → retry next round
343
+ 2. "proceed" — record remaining issues as TODO, complete
344
+ 3. "abort" — halt workflow
345
+ ultrawork mode: on stuck, record TODO without prompting and complete
346
+
347
+ Responsive: after MO verification, change viewport → same loop against PC screenshots
348
+ Cleanup: shut down browser + dev server
349
+
350
+ ⛔ "Completion summary" output is only allowed after Phase 6 is complete (or user proceeds).
351
+ ```
352
+
353
+ ---
354
+
355
+ ## Error Recovery
356
+
357
+ | Failure | Recovery |
358
+ |---------|----------|
359
+ | figma-extract.js script error | Check Node.js version (>=18 required). Verify Figma API token in config. Retry once. |
360
+ | figma-to-scss.js parse failure | Validate input tree.json structure. If malformed, re-run extract phase. |
361
+ | figma-validate.js comparison failure | Skip automated validation, present screenshot side-by-side for manual review |
362
+ | Puppeteer/CDP not available | Skip visual verification phase, rely on manual browser check |
363
+ | Figma API rate limit (429) | Wait 60s and retry. If persistent, reduce node scope. |