@su-record/vibe 2.9.32 → 2.9.33

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 (480) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +109 -109
  3. package/LICENSE +21 -21
  4. package/README.en.md +220 -220
  5. package/README.md +171 -171
  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.contract.md +105 -105
  79. package/commands/vibe.docs.md +33 -33
  80. package/commands/vibe.event.md +163 -163
  81. package/commands/vibe.figma.md +600 -600
  82. package/commands/vibe.harness.md +177 -177
  83. package/commands/vibe.regress.md +73 -73
  84. package/commands/vibe.review.md +624 -624
  85. package/commands/vibe.run.md +1946 -1946
  86. package/commands/vibe.scaffold.md +195 -195
  87. package/commands/vibe.spec.md +577 -577
  88. package/commands/vibe.test.md +49 -49
  89. package/commands/vibe.trace.md +276 -276
  90. package/commands/vibe.utils.md +413 -413
  91. package/commands/vibe.verify.md +572 -572
  92. package/dist/cli/collaborator.js +52 -52
  93. package/dist/cli/commands/codex-proxy.js +15 -15
  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/info.js +46 -46
  98. package/dist/cli/commands/init.d.ts.map +1 -1
  99. package/dist/cli/commands/init.js +15 -10
  100. package/dist/cli/commands/init.js.map +1 -1
  101. package/dist/cli/commands/remove.js +14 -14
  102. package/dist/cli/commands/sentinel.js +27 -27
  103. package/dist/cli/commands/skills.js +5 -5
  104. package/dist/cli/commands/slack.js +10 -10
  105. package/dist/cli/commands/stats.js +6 -6
  106. package/dist/cli/commands/telegram.js +12 -12
  107. package/dist/cli/commands/update.d.ts.map +1 -1
  108. package/dist/cli/commands/update.js +5 -3
  109. package/dist/cli/commands/update.js.map +1 -1
  110. package/dist/cli/detect.js +32 -32
  111. package/dist/cli/index.js +33 -33
  112. package/dist/cli/llm/claude-commands.js +16 -16
  113. package/dist/cli/llm/config.js +18 -18
  114. package/dist/cli/llm/gemini-commands.js +16 -16
  115. package/dist/cli/llm/gpt-commands.js +19 -19
  116. package/dist/cli/llm/help.js +21 -21
  117. package/dist/cli/postinstall/cursor-agents.js +32 -32
  118. package/dist/cli/postinstall/cursor-rules.js +83 -83
  119. package/dist/cli/postinstall/cursor-skills.js +743 -743
  120. package/dist/cli/postinstall/main.d.ts.map +1 -1
  121. package/dist/cli/postinstall/main.js +11 -0
  122. package/dist/cli/postinstall/main.js.map +1 -1
  123. package/dist/cli/setup/ProjectSetup.d.ts +9 -4
  124. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  125. package/dist/cli/setup/ProjectSetup.js +95 -79
  126. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  127. package/dist/cli/setup/Provisioner.js +42 -42
  128. package/dist/cli/setup.d.ts +1 -1
  129. package/dist/cli/setup.d.ts.map +1 -1
  130. package/dist/cli/setup.js +1 -1
  131. package/dist/cli/setup.js.map +1 -1
  132. package/dist/infra/lib/DeepInit.js +24 -24
  133. package/dist/infra/lib/IterationTracker.js +11 -11
  134. package/dist/infra/lib/PythonParser.js +108 -108
  135. package/dist/infra/lib/ReviewRace.js +96 -96
  136. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  137. package/dist/infra/lib/SkillQualityGate.js +9 -9
  138. package/dist/infra/lib/SkillRepository.js +159 -159
  139. package/dist/infra/lib/UltraQA.js +99 -99
  140. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  141. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  142. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  143. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  144. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  145. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  146. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  147. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  148. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  149. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  150. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  151. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  152. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  153. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  154. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  155. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  156. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  157. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  158. package/dist/infra/lib/gemini/orchestration.js +5 -5
  159. package/dist/infra/lib/gpt/orchestration.js +4 -4
  160. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  161. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  162. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  163. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  164. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  165. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  166. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  167. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  168. package/dist/infra/orchestrator/AgentManager.js +12 -12
  169. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  170. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  171. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  172. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  173. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  174. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  175. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  176. package/dist/tools/memory/getMemoryGraph.js +12 -12
  177. package/dist/tools/memory/getSessionContext.js +9 -9
  178. package/dist/tools/memory/linkMemories.js +14 -14
  179. package/dist/tools/memory/listMemories.js +4 -4
  180. package/dist/tools/memory/recallMemory.js +4 -4
  181. package/dist/tools/memory/saveMemory.js +4 -4
  182. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  183. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  184. package/dist/tools/semantic/astGrep.test.js +6 -6
  185. package/dist/tools/spec/prdParser.test.js +171 -171
  186. package/dist/tools/spec/specGenerator.js +169 -169
  187. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  188. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  189. package/hooks/gemini-hooks.json +73 -73
  190. package/hooks/hooks.json +134 -134
  191. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  192. package/hooks/scripts/__tests__/pre-tool-guard.test.js +409 -409
  193. package/hooks/scripts/__tests__/sentinel-guard.test.js +208 -208
  194. package/hooks/scripts/auto-commit.js +97 -97
  195. package/hooks/scripts/auto-format.js +64 -64
  196. package/hooks/scripts/auto-test.js +81 -81
  197. package/hooks/scripts/code-check.js +271 -271
  198. package/hooks/scripts/codex-detect.js +46 -46
  199. package/hooks/scripts/codex-review-gate.js +80 -80
  200. package/hooks/scripts/command-log.js +32 -32
  201. package/hooks/scripts/context-save.js +353 -353
  202. package/hooks/scripts/evolution-engine.js +91 -91
  203. package/hooks/scripts/figma-extract.js +768 -768
  204. package/hooks/scripts/figma-guard.js +219 -219
  205. package/hooks/scripts/figma-refine.js +315 -315
  206. package/hooks/scripts/figma-to-scss.js +394 -394
  207. package/hooks/scripts/figma-validate.js +353 -353
  208. package/hooks/scripts/hud-status.js +321 -321
  209. package/hooks/scripts/keyword-detector.js +214 -214
  210. package/hooks/scripts/lib/dispatcher.js +87 -87
  211. package/hooks/scripts/lib/scope-from-spec.js +276 -276
  212. package/hooks/scripts/llm-orchestrate.js +645 -645
  213. package/hooks/scripts/post-edit.js +35 -35
  214. package/hooks/scripts/pr-test-gate.js +52 -52
  215. package/hooks/scripts/pre-tool-guard.js +259 -259
  216. package/hooks/scripts/prompt-dispatcher.js +192 -192
  217. package/hooks/scripts/scope-guard.js +145 -145
  218. package/hooks/scripts/sentinel-guard.js +130 -130
  219. package/hooks/scripts/session-start.js +186 -186
  220. package/hooks/scripts/skill-injector.js +83 -83
  221. package/hooks/scripts/step-counter.js +45 -45
  222. package/hooks/scripts/stop-notify.js +209 -209
  223. package/hooks/scripts/utils.js +315 -315
  224. package/languages/csharp-unity.md +515 -515
  225. package/languages/gdscript-godot.md +470 -470
  226. package/languages/ruby-rails.md +489 -489
  227. package/languages/typescript-angular.md +433 -433
  228. package/languages/typescript-astro.md +416 -416
  229. package/languages/typescript-electron.md +406 -406
  230. package/languages/typescript-nestjs.md +524 -524
  231. package/languages/typescript-svelte.md +407 -407
  232. package/languages/typescript-tauri.md +365 -365
  233. package/package.json +106 -106
  234. package/skills/agents-md/SKILL.md +121 -121
  235. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  236. package/skills/agents-md/templates/agents-md.md +36 -36
  237. package/skills/arch-guard/SKILL.md +181 -181
  238. package/skills/arch-guard/agents/detector.md +48 -48
  239. package/skills/arch-guard/agents/reporter.md +48 -48
  240. package/skills/arch-guard/agents/rule-generator.md +49 -49
  241. package/skills/arch-guard/agents/violation-checker.md +51 -51
  242. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  243. package/skills/arch-guard/frameworks/solid.md +102 -102
  244. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  245. package/skills/arch-guard/templates/arch-rules.json +47 -47
  246. package/skills/arch-guard/templates/violation-report.md +53 -53
  247. package/skills/brand-assets/SKILL.md +147 -147
  248. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  249. package/skills/brand-assets/templates/brand-guide.md +161 -161
  250. package/skills/capability-loop/SKILL.md +272 -272
  251. package/skills/capability-loop/agents/capability-designer.md +61 -61
  252. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  253. package/skills/capability-loop/agents/implementer.md +50 -50
  254. package/skills/capability-loop/agents/tester.md +53 -53
  255. package/skills/capability-loop/templates/capability-spec.md +118 -118
  256. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  257. package/skills/characterization-test/SKILL.md +207 -207
  258. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  259. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  260. package/skills/characterization-test/agents/reporter.md +50 -50
  261. package/skills/characterization-test/agents/test-writer.md +49 -49
  262. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  263. package/skills/characterization-test/templates/test-template.ts +101 -101
  264. package/skills/chub-usage/SKILL.md +139 -139
  265. package/skills/claude-md-guide/SKILL.md +351 -351
  266. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  267. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  268. package/skills/commerce-patterns/SKILL.md +64 -64
  269. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  270. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  271. package/skills/commit-push-pr/SKILL.md +77 -77
  272. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  273. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  274. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  275. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  276. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  277. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  278. package/skills/context7-usage/SKILL.md +106 -106
  279. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  280. package/skills/create-prd/SKILL.md +90 -90
  281. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  282. package/skills/create-prd/agents/prioritizer.md +60 -60
  283. package/skills/create-prd/agents/requirements-writer.md +48 -48
  284. package/skills/create-prd/agents/researcher.md +55 -55
  285. package/skills/create-prd/agents/reviewer.md +54 -54
  286. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  287. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  288. package/skills/create-prd/orchestrator.md +70 -70
  289. package/skills/create-prd/rubrics/completeness.md +58 -58
  290. package/skills/create-prd/templates/prd.md +139 -139
  291. package/skills/design-audit/SKILL.md +152 -152
  292. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  293. package/skills/design-audit/agents/performance-auditor.md +46 -46
  294. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  295. package/skills/design-audit/agents/scorer.md +47 -47
  296. package/skills/design-audit/agents/slop-detector.md +47 -47
  297. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  298. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  299. package/skills/design-audit/orchestrator.md +64 -64
  300. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  301. package/skills/design-audit/rubrics/scoring.md +63 -63
  302. package/skills/design-audit/templates/report.md +88 -88
  303. package/skills/design-critique/SKILL.md +139 -139
  304. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  305. package/skills/design-critique/templates/critique-report.md +86 -86
  306. package/skills/design-distill/SKILL.md +130 -130
  307. package/skills/design-distill/templates/design-system.md +132 -132
  308. package/skills/design-normalize/SKILL.md +133 -133
  309. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  310. package/skills/design-normalize/templates/token-audit.md +89 -89
  311. package/skills/design-polish/SKILL.md +131 -131
  312. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  313. package/skills/design-polish/templates/polish-report.md +64 -64
  314. package/skills/design-teach/SKILL.md +182 -182
  315. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  316. package/skills/design-teach/templates/design-context.json +36 -36
  317. package/skills/devlog/SKILL.md +143 -143
  318. package/skills/e2e-commerce/SKILL.md +62 -62
  319. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  320. package/skills/event-comms/SKILL.md +172 -172
  321. package/skills/event-comms/templates/email-invite.md +99 -99
  322. package/skills/event-comms/templates/sns-post.md +133 -133
  323. package/skills/event-ops/SKILL.md +207 -207
  324. package/skills/event-ops/rubrics/contingency.md +85 -85
  325. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  326. package/skills/event-planning/SKILL.md +144 -144
  327. package/skills/event-planning/rubrics/timeline.md +70 -70
  328. package/skills/event-planning/templates/event-plan.md +91 -91
  329. package/skills/exec-plan/SKILL.md +149 -149
  330. package/skills/exec-plan/agents/decomposer.md +47 -47
  331. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  332. package/skills/exec-plan/agents/estimator.md +43 -43
  333. package/skills/exec-plan/agents/validator.md +55 -55
  334. package/skills/exec-plan/orchestrator.md +70 -70
  335. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  336. package/skills/exec-plan/templates/plan.md +147 -147
  337. package/skills/git-worktree/SKILL.md +73 -73
  338. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  339. package/skills/handoff/SKILL.md +110 -110
  340. package/skills/handoff/agents/context-summarizer.md +51 -51
  341. package/skills/handoff/agents/document-writer.md +63 -63
  342. package/skills/handoff/agents/state-collector.md +53 -53
  343. package/skills/handoff/agents/verifier.md +48 -48
  344. package/skills/handoff/rubrics/completeness.md +62 -62
  345. package/skills/handoff/templates/handoff.md +107 -107
  346. package/skills/parallel-research/SKILL.md +104 -104
  347. package/skills/parallel-research/agents/best-practices.md +43 -43
  348. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  349. package/skills/parallel-research/agents/framework-docs.md +45 -45
  350. package/skills/parallel-research/agents/security-advisory.md +46 -46
  351. package/skills/parallel-research/agents/synthesizer.md +57 -57
  352. package/skills/parallel-research/experts/best-practices.md +50 -50
  353. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  354. package/skills/parallel-research/experts/framework-docs.md +65 -65
  355. package/skills/parallel-research/experts/security-advisory.md +69 -69
  356. package/skills/parallel-research/orchestrator.md +79 -79
  357. package/skills/parallel-research/templates/awesome-list.md +32 -32
  358. package/skills/parallel-research/templates/paper.md +88 -88
  359. package/skills/parallel-research/templates/synthesis.md +101 -101
  360. package/skills/prioritization-frameworks/SKILL.md +87 -87
  361. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  362. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  363. package/skills/priority-todos/SKILL.md +64 -64
  364. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  365. package/skills/priority-todos/templates/todo-board.md +59 -59
  366. package/skills/seo-checklist/SKILL.md +58 -58
  367. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  368. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  369. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  370. package/skills/techdebt/SKILL.md +124 -124
  371. package/skills/techdebt/agents/analyzer.md +50 -50
  372. package/skills/techdebt/agents/fixer.md +41 -41
  373. package/skills/techdebt/agents/reviewer.md +47 -47
  374. package/skills/techdebt/agents/scanner.md +44 -44
  375. package/skills/techdebt/orchestrator.md +70 -70
  376. package/skills/techdebt/rubrics/severity.md +51 -51
  377. package/skills/techdebt/scripts/scan.js +90 -90
  378. package/skills/techdebt/templates/report.md +86 -86
  379. package/skills/tool-fallback/SKILL.md +104 -104
  380. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  381. package/skills/typescript-advanced-types/SKILL.md +67 -67
  382. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  383. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  384. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  385. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  386. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  387. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  388. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  389. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  390. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  391. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  392. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  393. package/skills/user-personas/SKILL.md +75 -75
  394. package/skills/user-personas/rubrics/research-methods.md +56 -56
  395. package/skills/user-personas/templates/persona.md +89 -89
  396. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  397. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  398. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  399. package/skills/vibe-contract/SKILL.md +166 -166
  400. package/skills/vibe-docs/templates/architecture.md +80 -80
  401. package/skills/vibe-docs/templates/readme.md +84 -84
  402. package/skills/vibe-docs/templates/release-notes.md +74 -74
  403. package/skills/vibe-figma/SKILL.md +363 -363
  404. package/skills/vibe-figma/rubrics/extraction-checklist.md +51 -51
  405. package/skills/vibe-figma/templates/component-index.md +126 -126
  406. package/skills/vibe-figma/templates/component-spec.md +168 -168
  407. package/skills/vibe-figma/templates/figma-handoff.md +100 -100
  408. package/skills/vibe-figma/templates/remapped-tree.md +277 -277
  409. package/skills/vibe-figma-convert/SKILL.md +235 -235
  410. package/skills/vibe-figma-convert/rubrics/conversion-rules.md +141 -141
  411. package/skills/vibe-figma-convert/templates/component.md +140 -140
  412. package/skills/vibe-figma-extract/SKILL.md +241 -241
  413. package/skills/vibe-figma-extract/rubrics/image-rules.md +157 -157
  414. package/skills/vibe-interview/SKILL.md +358 -358
  415. package/skills/vibe-interview/checklists/api.md +101 -101
  416. package/skills/vibe-interview/checklists/feature.md +88 -88
  417. package/skills/vibe-interview/checklists/library.md +95 -95
  418. package/skills/vibe-interview/checklists/mobile.md +89 -89
  419. package/skills/vibe-interview/checklists/webapp.md +97 -97
  420. package/skills/vibe-interview/checklists/website.md +99 -99
  421. package/skills/vibe-plan/SKILL.md +254 -254
  422. package/skills/vibe-regress/SKILL.md +174 -174
  423. package/skills/vibe-regress/templates/bug.md +44 -44
  424. package/skills/vibe-regress/templates/test-jest.md +29 -29
  425. package/skills/vibe-regress/templates/test-vitest.md +30 -30
  426. package/skills/vibe-spec/SKILL.md +1195 -1195
  427. package/skills/vibe-spec-review/SKILL.md +726 -726
  428. package/skills/vibe-test/SKILL.md +140 -140
  429. package/skills/video-production/SKILL.md +52 -52
  430. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  431. package/skills/video-production/templates/production-plan.md +104 -104
  432. package/vibe/config.json +29 -29
  433. package/vibe/constitution.md +227 -227
  434. package/vibe/rules/principles/communication-guide.md +98 -98
  435. package/vibe/rules/principles/development-philosophy.md +52 -52
  436. package/vibe/rules/principles/quick-start.md +102 -102
  437. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  438. package/vibe/rules/quality/checklist.md +276 -276
  439. package/vibe/rules/quality/performance.md +236 -236
  440. package/vibe/rules/quality/testing-strategy.md +440 -440
  441. package/vibe/rules/standards/anti-patterns.md +541 -541
  442. package/vibe/rules/standards/code-structure.md +291 -291
  443. package/vibe/rules/standards/complexity-metrics.md +313 -313
  444. package/vibe/rules/standards/git-workflow.md +237 -237
  445. package/vibe/rules/standards/naming-conventions.md +198 -198
  446. package/vibe/rules/standards/security.md +305 -305
  447. package/vibe/rules/writing/document-style.md +74 -74
  448. package/vibe/setup.sh +31 -31
  449. package/vibe/templates/claudemd-template.md +74 -74
  450. package/vibe/templates/constitution-template.md +267 -267
  451. package/vibe/templates/contract-backend-template.md +526 -526
  452. package/vibe/templates/contract-frontend-template.md +599 -599
  453. package/vibe/templates/feature-template.md +96 -96
  454. package/vibe/templates/plan-template.md +194 -194
  455. package/vibe/templates/spec-template.md +221 -221
  456. package/vibe/ui-ux-data/charts.csv +26 -26
  457. package/vibe/ui-ux-data/colors.csv +97 -97
  458. package/vibe/ui-ux-data/icons.csv +101 -101
  459. package/vibe/ui-ux-data/landing.csv +31 -31
  460. package/vibe/ui-ux-data/products.csv +96 -96
  461. package/vibe/ui-ux-data/react-performance.csv +45 -45
  462. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  463. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  464. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  465. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  466. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  467. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  468. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  469. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  470. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  471. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  472. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  473. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  474. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  475. package/vibe/ui-ux-data/styles.csv +68 -68
  476. package/vibe/ui-ux-data/typography.csv +57 -57
  477. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  478. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  479. package/vibe/ui-ux-data/version.json +31 -31
  480. 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. |