@su-record/vibe 2.9.25 → 2.9.32

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