@su-record/vibe 2.9.22 → 2.9.23

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 (466) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +105 -105
  3. package/LICENSE +21 -21
  4. package/agents/architect-low.md +41 -41
  5. package/agents/architect-medium.md +59 -59
  6. package/agents/architect.md +80 -80
  7. package/agents/build-error-resolver.md +115 -115
  8. package/agents/compounder.md +261 -261
  9. package/agents/diagrammer.md +178 -178
  10. package/agents/docs/api-documenter.md +99 -99
  11. package/agents/docs/changelog-writer.md +93 -93
  12. package/agents/e2e-tester.md +294 -294
  13. package/agents/event/event-comms.md +78 -78
  14. package/agents/event/event-content.md +68 -68
  15. package/agents/event/event-image.md +95 -95
  16. package/agents/event/event-ops.md +84 -84
  17. package/agents/event/event-scheduler.md +69 -69
  18. package/agents/event/event-speaker.md +86 -86
  19. package/agents/explorer-low.md +42 -42
  20. package/agents/explorer-medium.md +59 -59
  21. package/agents/explorer.md +48 -48
  22. package/agents/implementer-low.md +43 -43
  23. package/agents/implementer-medium.md +52 -52
  24. package/agents/implementer.md +54 -54
  25. package/agents/junior-mentor.md +141 -141
  26. package/agents/planning/requirements-analyst.md +84 -84
  27. package/agents/planning/ux-advisor.md +83 -83
  28. package/agents/qa/acceptance-tester.md +86 -86
  29. package/agents/qa/edge-case-finder.md +93 -93
  30. package/agents/qa/qa-coordinator.md +131 -131
  31. package/agents/refactor-cleaner.md +143 -143
  32. package/agents/research/best-practices-agent.md +199 -199
  33. package/agents/research/codebase-patterns-agent.md +157 -157
  34. package/agents/research/framework-docs-agent.md +188 -188
  35. package/agents/research/security-advisory-agent.md +213 -213
  36. package/agents/review/architecture-reviewer.md +107 -107
  37. package/agents/review/complexity-reviewer.md +116 -116
  38. package/agents/review/data-integrity-reviewer.md +88 -88
  39. package/agents/review/git-history-reviewer.md +103 -103
  40. package/agents/review/performance-reviewer.md +86 -86
  41. package/agents/review/python-reviewer.md +150 -150
  42. package/agents/review/rails-reviewer.md +139 -139
  43. package/agents/review/react-reviewer.md +144 -144
  44. package/agents/review/security-reviewer.md +80 -80
  45. package/agents/review/simplicity-reviewer.md +140 -140
  46. package/agents/review/test-coverage-reviewer.md +116 -116
  47. package/agents/review/typescript-reviewer.md +127 -127
  48. package/agents/searcher.md +54 -54
  49. package/agents/simplifier.md +120 -120
  50. package/agents/teams/debug-team.md +70 -70
  51. package/agents/teams/dev-team.md +88 -88
  52. package/agents/teams/docs-team.md +80 -80
  53. package/agents/teams/figma/figma-analyst.md +52 -52
  54. package/agents/teams/figma/figma-architect.md +112 -112
  55. package/agents/teams/figma/figma-auditor.md +82 -82
  56. package/agents/teams/figma/figma-builder.md +100 -100
  57. package/agents/teams/figma-team.md +85 -85
  58. package/agents/teams/fullstack-team.md +83 -83
  59. package/agents/teams/lite-team.md +69 -69
  60. package/agents/teams/migration-team.md +78 -78
  61. package/agents/teams/refactor-team.md +94 -94
  62. package/agents/teams/research-team.md +86 -86
  63. package/agents/teams/review-debate-team.md +125 -125
  64. package/agents/teams/security-team.md +81 -81
  65. package/agents/tester.md +49 -49
  66. package/agents/ui/ui-a11y-auditor.md +93 -93
  67. package/agents/ui/ui-antipattern-detector.md +102 -102
  68. package/agents/ui/ui-dataviz-advisor.md +69 -69
  69. package/agents/ui/ui-design-system-gen.md +57 -57
  70. package/agents/ui/ui-industry-analyzer.md +49 -49
  71. package/agents/ui/ui-layout-architect.md +65 -65
  72. package/agents/ui/ui-stack-implementer.md +68 -68
  73. package/agents/ui/ux-compliance-reviewer.md +81 -81
  74. package/agents/ui-previewer.md +258 -258
  75. package/commands/vibe.analyze.md +533 -533
  76. package/commands/vibe.contract.md +105 -105
  77. package/commands/vibe.docs.md +33 -33
  78. package/commands/vibe.event.md +163 -163
  79. package/commands/vibe.figma.md +584 -584
  80. package/commands/vibe.harness.md +177 -177
  81. package/commands/vibe.regress.md +73 -73
  82. package/commands/vibe.review.md +624 -624
  83. package/commands/vibe.run.md +1940 -1940
  84. package/commands/vibe.scaffold.md +195 -195
  85. package/commands/vibe.spec.md +577 -577
  86. package/commands/vibe.test.md +96 -96
  87. package/commands/vibe.trace.md +276 -276
  88. package/commands/vibe.utils.md +413 -413
  89. package/commands/vibe.verify.md +550 -550
  90. package/dist/cli/collaborator.js +52 -52
  91. package/dist/cli/commands/codex-proxy.js +15 -15
  92. package/dist/cli/commands/config.js +9 -9
  93. package/dist/cli/commands/evolution.js +12 -12
  94. package/dist/cli/commands/figma.js +20 -20
  95. package/dist/cli/commands/info.js +52 -52
  96. package/dist/cli/commands/init.d.ts.map +1 -1
  97. package/dist/cli/commands/init.js +16 -5
  98. package/dist/cli/commands/init.js.map +1 -1
  99. package/dist/cli/commands/remove.js +14 -14
  100. package/dist/cli/commands/sentinel.js +27 -27
  101. package/dist/cli/commands/skills.js +5 -5
  102. package/dist/cli/commands/slack.js +10 -10
  103. package/dist/cli/commands/stats.js +6 -6
  104. package/dist/cli/commands/telegram.js +12 -12
  105. package/dist/cli/commands/update.d.ts.map +1 -1
  106. package/dist/cli/commands/update.js +16 -0
  107. package/dist/cli/commands/update.js.map +1 -1
  108. package/dist/cli/detect.js +32 -32
  109. package/dist/cli/index.js +33 -33
  110. package/dist/cli/llm/claude-commands.js +16 -16
  111. package/dist/cli/llm/config.js +18 -18
  112. package/dist/cli/llm/gemini-commands.js +16 -16
  113. package/dist/cli/llm/gpt-commands.js +19 -19
  114. package/dist/cli/llm/help.js +21 -21
  115. package/dist/cli/postinstall/cursor-agents.js +32 -32
  116. package/dist/cli/postinstall/cursor-rules.js +83 -83
  117. package/dist/cli/postinstall/cursor-skills.js +743 -743
  118. package/dist/cli/setup/Provisioner.js +42 -42
  119. package/dist/infra/lib/DeepInit.js +24 -24
  120. package/dist/infra/lib/IterationTracker.js +11 -11
  121. package/dist/infra/lib/PythonParser.js +108 -108
  122. package/dist/infra/lib/ReviewRace.js +96 -96
  123. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  124. package/dist/infra/lib/SkillQualityGate.js +9 -9
  125. package/dist/infra/lib/SkillRepository.js +159 -159
  126. package/dist/infra/lib/UltraQA.js +99 -99
  127. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  128. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  129. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  130. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  131. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  132. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  133. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  134. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  135. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  136. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  137. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  138. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  139. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  140. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  141. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  142. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  143. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  144. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  145. package/dist/infra/lib/gemini/orchestration.js +5 -5
  146. package/dist/infra/lib/gpt/orchestration.js +4 -4
  147. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  148. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  149. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  150. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  151. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  152. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  153. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  154. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  155. package/dist/infra/orchestrator/AgentManager.js +12 -12
  156. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  157. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  158. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  159. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  160. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  161. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  162. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  163. package/dist/tools/memory/getMemoryGraph.js +12 -12
  164. package/dist/tools/memory/getSessionContext.js +9 -9
  165. package/dist/tools/memory/linkMemories.js +14 -14
  166. package/dist/tools/memory/listMemories.js +4 -4
  167. package/dist/tools/memory/recallMemory.js +4 -4
  168. package/dist/tools/memory/saveMemory.js +4 -4
  169. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  170. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  171. package/dist/tools/semantic/astGrep.test.js +6 -6
  172. package/dist/tools/spec/prdParser.test.js +171 -171
  173. package/dist/tools/spec/specGenerator.js +169 -169
  174. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  175. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  176. package/hooks/gemini-hooks.json +73 -73
  177. package/hooks/hooks.json +126 -126
  178. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  179. package/hooks/scripts/__tests__/pre-tool-guard.test.js +368 -368
  180. package/hooks/scripts/__tests__/sentinel-guard.test.js +208 -208
  181. package/hooks/scripts/auto-commit.js +97 -97
  182. package/hooks/scripts/auto-format.js +64 -64
  183. package/hooks/scripts/auto-test.js +81 -81
  184. package/hooks/scripts/code-check.js +268 -268
  185. package/hooks/scripts/codex-detect.js +46 -46
  186. package/hooks/scripts/codex-review-gate.js +80 -80
  187. package/hooks/scripts/command-log.js +32 -32
  188. package/hooks/scripts/context-save.js +353 -353
  189. package/hooks/scripts/evolution-engine.js +91 -91
  190. package/hooks/scripts/figma-extract.js +635 -635
  191. package/hooks/scripts/figma-guard.js +219 -219
  192. package/hooks/scripts/figma-refine.js +315 -315
  193. package/hooks/scripts/figma-to-scss.js +394 -394
  194. package/hooks/scripts/figma-validate.js +353 -353
  195. package/hooks/scripts/hud-status.js +321 -321
  196. package/hooks/scripts/keyword-detector.js +214 -214
  197. package/hooks/scripts/lib/scope-from-spec.js +261 -0
  198. package/hooks/scripts/llm-orchestrate.js +645 -645
  199. package/hooks/scripts/post-edit.js +32 -32
  200. package/hooks/scripts/pr-test-gate.js +52 -52
  201. package/hooks/scripts/pre-tool-dispatcher.js +5 -0
  202. package/hooks/scripts/pre-tool-guard.js +254 -254
  203. package/hooks/scripts/prompt-dispatcher.js +190 -190
  204. package/hooks/scripts/scope-guard.js +145 -0
  205. package/hooks/scripts/sentinel-guard.js +130 -130
  206. package/hooks/scripts/session-start.js +186 -177
  207. package/hooks/scripts/skill-injector.js +83 -83
  208. package/hooks/scripts/stop-notify.js +209 -209
  209. package/hooks/scripts/utils.js +257 -257
  210. package/languages/csharp-unity.md +515 -515
  211. package/languages/gdscript-godot.md +470 -470
  212. package/languages/ruby-rails.md +489 -489
  213. package/languages/typescript-angular.md +433 -433
  214. package/languages/typescript-astro.md +416 -416
  215. package/languages/typescript-electron.md +406 -406
  216. package/languages/typescript-nestjs.md +524 -524
  217. package/languages/typescript-svelte.md +407 -407
  218. package/languages/typescript-tauri.md +365 -365
  219. package/package.json +10 -5
  220. package/skills/agents-md/SKILL.md +121 -121
  221. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  222. package/skills/agents-md/templates/agents-md.md +36 -36
  223. package/skills/arch-guard/SKILL.md +181 -181
  224. package/skills/arch-guard/agents/detector.md +48 -48
  225. package/skills/arch-guard/agents/reporter.md +48 -48
  226. package/skills/arch-guard/agents/rule-generator.md +49 -49
  227. package/skills/arch-guard/agents/violation-checker.md +51 -51
  228. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  229. package/skills/arch-guard/frameworks/solid.md +102 -102
  230. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  231. package/skills/arch-guard/templates/arch-rules.json +47 -47
  232. package/skills/arch-guard/templates/violation-report.md +53 -53
  233. package/skills/brand-assets/SKILL.md +147 -147
  234. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  235. package/skills/brand-assets/templates/brand-guide.md +161 -161
  236. package/skills/capability-loop/SKILL.md +272 -272
  237. package/skills/capability-loop/agents/capability-designer.md +61 -61
  238. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  239. package/skills/capability-loop/agents/implementer.md +50 -50
  240. package/skills/capability-loop/agents/tester.md +53 -53
  241. package/skills/capability-loop/templates/capability-spec.md +118 -118
  242. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  243. package/skills/characterization-test/SKILL.md +207 -207
  244. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  245. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  246. package/skills/characterization-test/agents/reporter.md +50 -50
  247. package/skills/characterization-test/agents/test-writer.md +49 -49
  248. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  249. package/skills/characterization-test/templates/test-template.ts +101 -101
  250. package/skills/chub-usage/SKILL.md +139 -139
  251. package/skills/claude-md-guide/SKILL.md +351 -351
  252. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  253. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  254. package/skills/commerce-patterns/SKILL.md +64 -64
  255. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  256. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  257. package/skills/commit-push-pr/SKILL.md +77 -77
  258. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  259. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  260. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  261. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  262. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  263. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  264. package/skills/context7-usage/SKILL.md +106 -106
  265. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  266. package/skills/create-prd/SKILL.md +90 -90
  267. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  268. package/skills/create-prd/agents/prioritizer.md +60 -60
  269. package/skills/create-prd/agents/requirements-writer.md +48 -48
  270. package/skills/create-prd/agents/researcher.md +55 -55
  271. package/skills/create-prd/agents/reviewer.md +54 -54
  272. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  273. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  274. package/skills/create-prd/orchestrator.md +70 -70
  275. package/skills/create-prd/rubrics/completeness.md +58 -58
  276. package/skills/create-prd/templates/prd.md +139 -139
  277. package/skills/design-audit/SKILL.md +152 -152
  278. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  279. package/skills/design-audit/agents/performance-auditor.md +46 -46
  280. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  281. package/skills/design-audit/agents/scorer.md +47 -47
  282. package/skills/design-audit/agents/slop-detector.md +47 -47
  283. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  284. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  285. package/skills/design-audit/orchestrator.md +64 -64
  286. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  287. package/skills/design-audit/rubrics/scoring.md +63 -63
  288. package/skills/design-audit/templates/report.md +88 -88
  289. package/skills/design-critique/SKILL.md +139 -139
  290. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  291. package/skills/design-critique/templates/critique-report.md +86 -86
  292. package/skills/design-distill/SKILL.md +130 -130
  293. package/skills/design-distill/templates/design-system.md +132 -132
  294. package/skills/design-normalize/SKILL.md +133 -133
  295. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  296. package/skills/design-normalize/templates/token-audit.md +89 -89
  297. package/skills/design-polish/SKILL.md +131 -131
  298. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  299. package/skills/design-polish/templates/polish-report.md +64 -64
  300. package/skills/design-teach/SKILL.md +182 -182
  301. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  302. package/skills/design-teach/templates/design-context.json +36 -36
  303. package/skills/devlog/SKILL.md +143 -143
  304. package/skills/e2e-commerce/SKILL.md +62 -62
  305. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  306. package/skills/event-comms/SKILL.md +172 -172
  307. package/skills/event-comms/templates/email-invite.md +99 -99
  308. package/skills/event-comms/templates/sns-post.md +133 -133
  309. package/skills/event-ops/SKILL.md +207 -207
  310. package/skills/event-ops/rubrics/contingency.md +85 -85
  311. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  312. package/skills/event-planning/SKILL.md +144 -144
  313. package/skills/event-planning/rubrics/timeline.md +70 -70
  314. package/skills/event-planning/templates/event-plan.md +91 -91
  315. package/skills/exec-plan/SKILL.md +149 -149
  316. package/skills/exec-plan/agents/decomposer.md +47 -47
  317. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  318. package/skills/exec-plan/agents/estimator.md +43 -43
  319. package/skills/exec-plan/agents/validator.md +55 -55
  320. package/skills/exec-plan/orchestrator.md +70 -70
  321. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  322. package/skills/exec-plan/templates/plan.md +147 -147
  323. package/skills/git-worktree/SKILL.md +73 -73
  324. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  325. package/skills/handoff/SKILL.md +110 -110
  326. package/skills/handoff/agents/context-summarizer.md +51 -51
  327. package/skills/handoff/agents/document-writer.md +63 -63
  328. package/skills/handoff/agents/state-collector.md +53 -53
  329. package/skills/handoff/agents/verifier.md +48 -48
  330. package/skills/handoff/rubrics/completeness.md +62 -62
  331. package/skills/handoff/templates/handoff.md +107 -107
  332. package/skills/parallel-research/SKILL.md +104 -104
  333. package/skills/parallel-research/agents/best-practices.md +43 -43
  334. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  335. package/skills/parallel-research/agents/framework-docs.md +45 -45
  336. package/skills/parallel-research/agents/security-advisory.md +46 -46
  337. package/skills/parallel-research/agents/synthesizer.md +57 -57
  338. package/skills/parallel-research/experts/best-practices.md +50 -50
  339. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  340. package/skills/parallel-research/experts/framework-docs.md +65 -65
  341. package/skills/parallel-research/experts/security-advisory.md +69 -69
  342. package/skills/parallel-research/orchestrator.md +79 -79
  343. package/skills/parallel-research/templates/awesome-list.md +32 -32
  344. package/skills/parallel-research/templates/paper.md +88 -88
  345. package/skills/parallel-research/templates/synthesis.md +101 -101
  346. package/skills/prioritization-frameworks/SKILL.md +87 -87
  347. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  348. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  349. package/skills/priority-todos/SKILL.md +64 -64
  350. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  351. package/skills/priority-todos/templates/todo-board.md +59 -59
  352. package/skills/seo-checklist/SKILL.md +58 -58
  353. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  354. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  355. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  356. package/skills/techdebt/SKILL.md +124 -124
  357. package/skills/techdebt/agents/analyzer.md +50 -50
  358. package/skills/techdebt/agents/fixer.md +41 -41
  359. package/skills/techdebt/agents/reviewer.md +47 -47
  360. package/skills/techdebt/agents/scanner.md +44 -44
  361. package/skills/techdebt/orchestrator.md +70 -70
  362. package/skills/techdebt/rubrics/severity.md +51 -51
  363. package/skills/techdebt/scripts/scan.js +90 -90
  364. package/skills/techdebt/templates/report.md +86 -86
  365. package/skills/tool-fallback/SKILL.md +104 -104
  366. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  367. package/skills/typescript-advanced-types/SKILL.md +67 -67
  368. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  369. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  370. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  371. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  372. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  373. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  374. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  375. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  376. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  377. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  378. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  379. package/skills/user-personas/SKILL.md +75 -75
  380. package/skills/user-personas/rubrics/research-methods.md +56 -56
  381. package/skills/user-personas/templates/persona.md +89 -89
  382. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  383. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  384. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  385. package/skills/vibe-contract/SKILL.md +166 -166
  386. package/skills/vibe-docs/templates/architecture.md +80 -80
  387. package/skills/vibe-docs/templates/readme.md +84 -84
  388. package/skills/vibe-docs/templates/release-notes.md +74 -74
  389. package/skills/vibe-figma/SKILL.md +363 -363
  390. package/skills/vibe-figma/rubrics/extraction-checklist.md +51 -51
  391. package/skills/vibe-figma/templates/component-index.md +126 -126
  392. package/skills/vibe-figma/templates/component-spec.md +168 -168
  393. package/skills/vibe-figma/templates/figma-handoff.md +100 -100
  394. package/skills/vibe-figma/templates/remapped-tree.md +277 -277
  395. package/skills/vibe-figma-convert/SKILL.md +235 -235
  396. package/skills/vibe-figma-convert/rubrics/conversion-rules.md +141 -141
  397. package/skills/vibe-figma-convert/templates/component.md +140 -140
  398. package/skills/vibe-figma-extract/SKILL.md +219 -219
  399. package/skills/vibe-figma-extract/rubrics/image-rules.md +157 -157
  400. package/skills/vibe-interview/SKILL.md +358 -358
  401. package/skills/vibe-interview/checklists/api.md +101 -101
  402. package/skills/vibe-interview/checklists/feature.md +88 -88
  403. package/skills/vibe-interview/checklists/library.md +95 -95
  404. package/skills/vibe-interview/checklists/mobile.md +89 -89
  405. package/skills/vibe-interview/checklists/webapp.md +97 -97
  406. package/skills/vibe-interview/checklists/website.md +99 -99
  407. package/skills/vibe-plan/SKILL.md +254 -254
  408. package/skills/vibe-regress/SKILL.md +174 -174
  409. package/skills/vibe-regress/templates/bug.md +44 -44
  410. package/skills/vibe-regress/templates/test-jest.md +29 -29
  411. package/skills/vibe-regress/templates/test-vitest.md +30 -30
  412. package/skills/vibe-spec/SKILL.md +1195 -1195
  413. package/skills/vibe-spec-review/SKILL.md +726 -726
  414. package/skills/vibe-test/SKILL.md +247 -247
  415. package/skills/video-production/SKILL.md +52 -52
  416. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  417. package/skills/video-production/templates/production-plan.md +104 -104
  418. package/vibe/config.json +29 -29
  419. package/vibe/constitution.md +227 -227
  420. package/vibe/rules/principles/communication-guide.md +98 -98
  421. package/vibe/rules/principles/development-philosophy.md +52 -52
  422. package/vibe/rules/principles/quick-start.md +102 -102
  423. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  424. package/vibe/rules/quality/checklist.md +276 -276
  425. package/vibe/rules/quality/performance.md +236 -236
  426. package/vibe/rules/quality/testing-strategy.md +440 -440
  427. package/vibe/rules/standards/anti-patterns.md +541 -541
  428. package/vibe/rules/standards/code-structure.md +291 -291
  429. package/vibe/rules/standards/complexity-metrics.md +313 -313
  430. package/vibe/rules/standards/git-workflow.md +237 -237
  431. package/vibe/rules/standards/naming-conventions.md +198 -198
  432. package/vibe/rules/standards/security.md +305 -305
  433. package/vibe/rules/writing/document-style.md +74 -74
  434. package/vibe/setup.sh +31 -31
  435. package/vibe/templates/claudemd-template.md +74 -74
  436. package/vibe/templates/constitution-template.md +267 -267
  437. package/vibe/templates/contract-backend-template.md +526 -526
  438. package/vibe/templates/contract-frontend-template.md +599 -599
  439. package/vibe/templates/feature-template.md +96 -96
  440. package/vibe/templates/plan-template.md +194 -194
  441. package/vibe/templates/spec-template.md +221 -221
  442. package/vibe/ui-ux-data/charts.csv +26 -26
  443. package/vibe/ui-ux-data/colors.csv +97 -97
  444. package/vibe/ui-ux-data/icons.csv +101 -101
  445. package/vibe/ui-ux-data/landing.csv +31 -31
  446. package/vibe/ui-ux-data/products.csv +96 -96
  447. package/vibe/ui-ux-data/react-performance.csv +45 -45
  448. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  449. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  450. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  451. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  452. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  453. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  454. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  455. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  456. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  457. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  458. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  459. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  460. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  461. package/vibe/ui-ux-data/styles.csv +68 -68
  462. package/vibe/ui-ux-data/typography.csv +57 -57
  463. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  464. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  465. package/vibe/ui-ux-data/version.json +31 -31
  466. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,235 +1,235 @@
1
- ---
2
- name: vibe-figma-convert
3
- description: Figma tree → structured code generation + screenshot validation
4
- triggers: []
5
- tier: standard
6
- ---
7
-
8
- # vibe.figma.convert — Tree-Based Structured Code Generation
9
-
10
- **Mechanically map tree.json to HTML+CSS. Do not guess.**
11
- **Claude handles only semantic decisions (tag selection, component separation, interactions).**
12
-
13
- ---
14
-
15
- ## 0. Reuse Check (Before Writing Code)
16
-
17
- ```
18
- If there is a matching component in component-index.json:
19
- ✅ Import and use it (do not create a new one)
20
- ✅ Customize via props
21
- ❌ Modify the internals of an existing component
22
- ❌ Create a new one when 90% similar already exists
23
- ```
24
-
25
- ---
26
-
27
- ## 1. Image vs HTML Determination (BLOCKING)
28
-
29
- ```
30
- ⛔ Before writing code: write the determination table first.
31
-
32
- Determination rules (YES on any one → HTML):
33
- Q1. Does it have TEXT children? → HTML
34
- Q2. Is it a repeating INSTANCE pattern? → HTML v-for (inner assets only as <img>)
35
- Q3. Is it an interactive element? (btn, CTA) → HTML <button>
36
- Q4. Is it dynamic data? (price, quantity, duration) → HTML text
37
- All NO → image rendering is acceptable
38
-
39
- ⛔ Design text determination (Q1 exception — text that must be rendered as image):
40
- If any of the following conditions are met → image rendering (HTML text forbidden):
41
- D1. TEXT node has 2 or more fills (gradient + solid overlap)
42
- D2. TEXT node has effects (DROP_SHADOW, stroke, etc.)
43
- D3. TEXT node fills contain a GRADIENT type
44
- D4. Parent GROUP/FRAME has 3 or more VECTORs (vector text)
45
- D5. TEXT node fontFamily is not in the project's web fonts
46
-
47
- → Render node as content/{section}-{name}.webp
48
- → Place in HTML as <img src="..." alt="text content">
49
- → Do not attempt CSS text implementation (visual quality cannot be guaranteed)
50
-
51
- BG frames:
52
- ❌ No <img> tags
53
- ✅ Parent SCSS background-image only:
54
- .section { background-image: url('bg.webp'); background-size: cover; }
55
- ```
56
-
57
- ---
58
-
59
- ## 2. Node → HTML Mapping (Mechanical)
60
-
61
- ```
62
- FRAME + Auto Layout → <div> + flex (direction/gap/padding directly mapped)
63
- FRAME + no Auto Layout → <div> + position:relative (children absolute)
64
- TEXT → <span> (Claude promotes to h2/p/button)
65
- IMAGE fill (passed determination) → <img>
66
- VECTOR/GROUP ≤64px → icon <img>
67
- INSTANCE repeated 2+ → v-for / .map()
68
- Size 0px, VECTOR ≤2px → skip
69
- ```
70
-
71
- ---
72
-
73
- ## 3. CSS Property Direct Mapping
74
-
75
- ```
76
- ⛔ Immutable rule: do not create CSS properties not present in tree.json.
77
- ⛔ No custom functions/mixins: no self-defined abstractions like wp-fluid(), wp-bg-layer, etc.
78
- ⛔ No CSS properties not in tree.json such as aspect-ratio, container query, etc.
79
- ✅ Only direct 1:1 mapping from tree.json css object → SCSS is allowed.
80
- ✅ The only transformation: px → vw (mechanically, using the formula).
81
-
82
- Layout (layout/ files):
83
- display, flex-direction, justify-content, align-items, gap,
84
- flex-grow, padding, width, height, overflow, position, top, left, transform
85
-
86
- Visual (components/ files):
87
- background-color, background-image, background-blend-mode, color,
88
- font-family, font-size, font-weight, line-height, letter-spacing,
89
- text-align, text-transform, text-overflow,
90
- border-radius, border, outline, box-sizing, box-shadow,
91
- opacity, mix-blend-mode, filter, backdrop-filter
92
-
93
- If a value is absent → omit that property (no guessing)
94
-
95
- ❌ Forbidden patterns:
96
- aspect-ratio: 720 / 1280; → ❌ (tree.json has width+height)
97
- @function wp-fluid(...) { ... } → ❌ (custom function)
98
- @include wp-bg-layer; → ❌ (custom mixin)
99
- clamp(12px, 2.5vw, 18px); → ❌ (guessing values not in tree.json)
100
-
101
- ✅ Correct patterns:
102
- width: 100vw; height: 177.78vw; → ✅ (720px/720×100, 1280px/720×100)
103
- background-image: url('hero-bg.webp'); background-size: cover; → ✅
104
- font-size: 5.56vw; → ✅ (40px/720×100)
105
- ```
106
-
107
- ### Responsive Unit Conversion
108
-
109
- ```
110
- vw conversion (use only the mechanical formula):
111
- width, height, padding, gap, border-radius, box-shadow, top, left, border-width
112
- vw value = (Figma px / designWidth) × 100
113
- ⛔ clamp, min(), max() etc. are allowed only for font-size
114
-
115
- Font → clamp(min, vw, max):
116
- | Role | Min | Determination Basis |
117
- |---------|-------|-----------------------------|
118
- | h1~h2 | 16px | name contains "title" |
119
- | h3~h4 | 14px | medium size |
120
- | Body | 12px | long text |
121
- | Caption | 10px | small fontSize |
122
- | Button | 12px | name contains "btn" |
123
- max value = original Figma px as-is
124
-
125
- Properties not converted:
126
- color, opacity, font-weight, font-family, z-index, text-align,
127
- mix-blend-mode, transform(rotate), background-blend-mode,
128
- flex-grow, box-sizing, grayscale/saturate, background-image(gradient)
129
-
130
- layoutSizing handling:
131
- HUG → omit width/height (auto)
132
- FILL → check parent direction:
133
- FILL in same direction → flex: 1 0 0
134
- FILL on cross axis → align-self: stretch
135
- FIXED → vw conversion
136
-
137
- imageScaleMode:
138
- FILL → background-size: cover
139
- FIT → background-size: contain
140
- CROP → background-size: cover; background-position: center
141
- TILE → background-size: auto; background-repeat: repeat
142
- ```
143
-
144
- ---
145
-
146
- ## 4. Claude Semantic Decisions (The Only Inference Area)
147
-
148
- ```
149
- 1. HTML tag promotion:
150
- <span> → <h2> (section title), <p> (description), <button> (clickable)
151
-
152
- 2. Component separation:
153
- 1st-depth children = section components, INSTANCE repetition = shared components
154
-
155
- 3. Interactions: @click handlers, state variables, conditional rendering
156
-
157
- 4. Accessibility:
158
- Background/decorative → alt="" aria-hidden="true"
159
- Content → alt="description"
160
- Interactive → role, aria-label
161
-
162
- 5. Semantic HTML:
163
- Top-level <section>, heading order h1~h6, lists <ul>/<ol>
164
- ```
165
-
166
- ---
167
-
168
- ## 5. SCSS File Structure
169
-
170
- ```
171
- layout/ → position, display, flex, width, height, padding, gap, overflow, z-index
172
- components/ → font, color, border, shadow, opacity, background
173
-
174
- _base.scss:
175
- .{feature} { width: 100%; max-width: 720px; margin: 0 auto; overflow-x: hidden; }
176
-
177
- _tokens.scss:
178
- Reference existing tokens (@use) → if no mapping, create a new token
179
- Feature-scoped naming ($feature-color-xxx)
180
- ```
181
-
182
- ---
183
-
184
- ## 6. Responsive (MO↔PC)
185
-
186
- ```
187
- Use remapped.json's pcDiff to add @media overrides.
188
- Do not delete the base MO code.
189
-
190
- .section {
191
- // MO base (vw = px / 720 × 100)
192
- height: 177.78vw;
193
-
194
- @media (min-width: #{$bp-desktop}) {
195
- // PC diff only (vw = px / 2560 × 100)
196
- height: 32.66vw;
197
- }
198
- }
199
-
200
- diff handling:
201
- Same value → keep MO only
202
- Different px → @media { PC vw }
203
- Different layout → @media { flex-direction: row }
204
- Different image → @media { background-image: url(pc-xxx.webp) }
205
- layoutSizing diff → @media { flex/width change }
206
- ```
207
-
208
- ---
209
-
210
- ## 7. Self-Validation
211
-
212
- ```
213
- ⛔ Any failure → rewrite that section's code (do not proceed to the next section)
214
-
215
- 1. Class names: all classes in template are defined in SCSS → OK
216
- 2. Image paths: src file actually exists → OK
217
- 3. Tree mapping: Auto Layout node → flex present in SCSS → OK
218
- 4. ⛔ No abstractions: no @function or @mixin defined in SCSS → OK
219
- (project existing token @use is allowed; creating new functions/mixins is forbidden)
220
- 5. ⛔ Property mapping: all SCSS properties are grounded in tree.json css object → OK
221
- (aspect-ratio, container, custom properties etc. not in tree.json → FAIL)
222
- 6. ⛔ Image filenames: kebab-case naming → OK
223
- (hash filenames like 68ad470b.webp etc. → FAIL)
224
- ```
225
-
226
- ---
227
-
228
- ## Error Recovery
229
-
230
- | Failure | Recovery |
231
- |---------|----------|
232
- | tree.json missing | Prompt user to run extract phase first: load `vibe.figma.extract` skill |
233
- | component-index.json missing | Generate minimal index from tree.json section names |
234
- | sections.json malformed | Re-read tree.json and regenerate sections.json from scratch |
235
- | SCSS output empty | Check tree.json for valid style nodes. If none found, use default reset styles. |
1
+ ---
2
+ name: vibe-figma-convert
3
+ description: Figma tree → structured code generation + screenshot validation
4
+ triggers: []
5
+ tier: standard
6
+ ---
7
+
8
+ # vibe.figma.convert — Tree-Based Structured Code Generation
9
+
10
+ **Mechanically map tree.json to HTML+CSS. Do not guess.**
11
+ **Claude handles only semantic decisions (tag selection, component separation, interactions).**
12
+
13
+ ---
14
+
15
+ ## 0. Reuse Check (Before Writing Code)
16
+
17
+ ```
18
+ If there is a matching component in component-index.json:
19
+ ✅ Import and use it (do not create a new one)
20
+ ✅ Customize via props
21
+ ❌ Modify the internals of an existing component
22
+ ❌ Create a new one when 90% similar already exists
23
+ ```
24
+
25
+ ---
26
+
27
+ ## 1. Image vs HTML Determination (BLOCKING)
28
+
29
+ ```
30
+ ⛔ Before writing code: write the determination table first.
31
+
32
+ Determination rules (YES on any one → HTML):
33
+ Q1. Does it have TEXT children? → HTML
34
+ Q2. Is it a repeating INSTANCE pattern? → HTML v-for (inner assets only as <img>)
35
+ Q3. Is it an interactive element? (btn, CTA) → HTML <button>
36
+ Q4. Is it dynamic data? (price, quantity, duration) → HTML text
37
+ All NO → image rendering is acceptable
38
+
39
+ ⛔ Design text determination (Q1 exception — text that must be rendered as image):
40
+ If any of the following conditions are met → image rendering (HTML text forbidden):
41
+ D1. TEXT node has 2 or more fills (gradient + solid overlap)
42
+ D2. TEXT node has effects (DROP_SHADOW, stroke, etc.)
43
+ D3. TEXT node fills contain a GRADIENT type
44
+ D4. Parent GROUP/FRAME has 3 or more VECTORs (vector text)
45
+ D5. TEXT node fontFamily is not in the project's web fonts
46
+
47
+ → Render node as content/{section}-{name}.webp
48
+ → Place in HTML as <img src="..." alt="text content">
49
+ → Do not attempt CSS text implementation (visual quality cannot be guaranteed)
50
+
51
+ BG frames:
52
+ ❌ No <img> tags
53
+ ✅ Parent SCSS background-image only:
54
+ .section { background-image: url('bg.webp'); background-size: cover; }
55
+ ```
56
+
57
+ ---
58
+
59
+ ## 2. Node → HTML Mapping (Mechanical)
60
+
61
+ ```
62
+ FRAME + Auto Layout → <div> + flex (direction/gap/padding directly mapped)
63
+ FRAME + no Auto Layout → <div> + position:relative (children absolute)
64
+ TEXT → <span> (Claude promotes to h2/p/button)
65
+ IMAGE fill (passed determination) → <img>
66
+ VECTOR/GROUP ≤64px → icon <img>
67
+ INSTANCE repeated 2+ → v-for / .map()
68
+ Size 0px, VECTOR ≤2px → skip
69
+ ```
70
+
71
+ ---
72
+
73
+ ## 3. CSS Property Direct Mapping
74
+
75
+ ```
76
+ ⛔ Immutable rule: do not create CSS properties not present in tree.json.
77
+ ⛔ No custom functions/mixins: no self-defined abstractions like wp-fluid(), wp-bg-layer, etc.
78
+ ⛔ No CSS properties not in tree.json such as aspect-ratio, container query, etc.
79
+ ✅ Only direct 1:1 mapping from tree.json css object → SCSS is allowed.
80
+ ✅ The only transformation: px → vw (mechanically, using the formula).
81
+
82
+ Layout (layout/ files):
83
+ display, flex-direction, justify-content, align-items, gap,
84
+ flex-grow, padding, width, height, overflow, position, top, left, transform
85
+
86
+ Visual (components/ files):
87
+ background-color, background-image, background-blend-mode, color,
88
+ font-family, font-size, font-weight, line-height, letter-spacing,
89
+ text-align, text-transform, text-overflow,
90
+ border-radius, border, outline, box-sizing, box-shadow,
91
+ opacity, mix-blend-mode, filter, backdrop-filter
92
+
93
+ If a value is absent → omit that property (no guessing)
94
+
95
+ ❌ Forbidden patterns:
96
+ aspect-ratio: 720 / 1280; → ❌ (tree.json has width+height)
97
+ @function wp-fluid(...) { ... } → ❌ (custom function)
98
+ @include wp-bg-layer; → ❌ (custom mixin)
99
+ clamp(12px, 2.5vw, 18px); → ❌ (guessing values not in tree.json)
100
+
101
+ ✅ Correct patterns:
102
+ width: 100vw; height: 177.78vw; → ✅ (720px/720×100, 1280px/720×100)
103
+ background-image: url('hero-bg.webp'); background-size: cover; → ✅
104
+ font-size: 5.56vw; → ✅ (40px/720×100)
105
+ ```
106
+
107
+ ### Responsive Unit Conversion
108
+
109
+ ```
110
+ vw conversion (use only the mechanical formula):
111
+ width, height, padding, gap, border-radius, box-shadow, top, left, border-width
112
+ vw value = (Figma px / designWidth) × 100
113
+ ⛔ clamp, min(), max() etc. are allowed only for font-size
114
+
115
+ Font → clamp(min, vw, max):
116
+ | Role | Min | Determination Basis |
117
+ |---------|-------|-----------------------------|
118
+ | h1~h2 | 16px | name contains "title" |
119
+ | h3~h4 | 14px | medium size |
120
+ | Body | 12px | long text |
121
+ | Caption | 10px | small fontSize |
122
+ | Button | 12px | name contains "btn" |
123
+ max value = original Figma px as-is
124
+
125
+ Properties not converted:
126
+ color, opacity, font-weight, font-family, z-index, text-align,
127
+ mix-blend-mode, transform(rotate), background-blend-mode,
128
+ flex-grow, box-sizing, grayscale/saturate, background-image(gradient)
129
+
130
+ layoutSizing handling:
131
+ HUG → omit width/height (auto)
132
+ FILL → check parent direction:
133
+ FILL in same direction → flex: 1 0 0
134
+ FILL on cross axis → align-self: stretch
135
+ FIXED → vw conversion
136
+
137
+ imageScaleMode:
138
+ FILL → background-size: cover
139
+ FIT → background-size: contain
140
+ CROP → background-size: cover; background-position: center
141
+ TILE → background-size: auto; background-repeat: repeat
142
+ ```
143
+
144
+ ---
145
+
146
+ ## 4. Claude Semantic Decisions (The Only Inference Area)
147
+
148
+ ```
149
+ 1. HTML tag promotion:
150
+ <span> → <h2> (section title), <p> (description), <button> (clickable)
151
+
152
+ 2. Component separation:
153
+ 1st-depth children = section components, INSTANCE repetition = shared components
154
+
155
+ 3. Interactions: @click handlers, state variables, conditional rendering
156
+
157
+ 4. Accessibility:
158
+ Background/decorative → alt="" aria-hidden="true"
159
+ Content → alt="description"
160
+ Interactive → role, aria-label
161
+
162
+ 5. Semantic HTML:
163
+ Top-level <section>, heading order h1~h6, lists <ul>/<ol>
164
+ ```
165
+
166
+ ---
167
+
168
+ ## 5. SCSS File Structure
169
+
170
+ ```
171
+ layout/ → position, display, flex, width, height, padding, gap, overflow, z-index
172
+ components/ → font, color, border, shadow, opacity, background
173
+
174
+ _base.scss:
175
+ .{feature} { width: 100%; max-width: 720px; margin: 0 auto; overflow-x: hidden; }
176
+
177
+ _tokens.scss:
178
+ Reference existing tokens (@use) → if no mapping, create a new token
179
+ Feature-scoped naming ($feature-color-xxx)
180
+ ```
181
+
182
+ ---
183
+
184
+ ## 6. Responsive (MO↔PC)
185
+
186
+ ```
187
+ Use remapped.json's pcDiff to add @media overrides.
188
+ Do not delete the base MO code.
189
+
190
+ .section {
191
+ // MO base (vw = px / 720 × 100)
192
+ height: 177.78vw;
193
+
194
+ @media (min-width: #{$bp-desktop}) {
195
+ // PC diff only (vw = px / 2560 × 100)
196
+ height: 32.66vw;
197
+ }
198
+ }
199
+
200
+ diff handling:
201
+ Same value → keep MO only
202
+ Different px → @media { PC vw }
203
+ Different layout → @media { flex-direction: row }
204
+ Different image → @media { background-image: url(pc-xxx.webp) }
205
+ layoutSizing diff → @media { flex/width change }
206
+ ```
207
+
208
+ ---
209
+
210
+ ## 7. Self-Validation
211
+
212
+ ```
213
+ ⛔ Any failure → rewrite that section's code (do not proceed to the next section)
214
+
215
+ 1. Class names: all classes in template are defined in SCSS → OK
216
+ 2. Image paths: src file actually exists → OK
217
+ 3. Tree mapping: Auto Layout node → flex present in SCSS → OK
218
+ 4. ⛔ No abstractions: no @function or @mixin defined in SCSS → OK
219
+ (project existing token @use is allowed; creating new functions/mixins is forbidden)
220
+ 5. ⛔ Property mapping: all SCSS properties are grounded in tree.json css object → OK
221
+ (aspect-ratio, container, custom properties etc. not in tree.json → FAIL)
222
+ 6. ⛔ Image filenames: kebab-case naming → OK
223
+ (hash filenames like 68ad470b.webp etc. → FAIL)
224
+ ```
225
+
226
+ ---
227
+
228
+ ## Error Recovery
229
+
230
+ | Failure | Recovery |
231
+ |---------|----------|
232
+ | tree.json missing | Prompt user to run extract phase first: load `vibe.figma.extract` skill |
233
+ | component-index.json missing | Generate minimal index from tree.json section names |
234
+ | sections.json malformed | Re-read tree.json and regenerate sections.json from scratch |
235
+ | SCSS output empty | Check tree.json for valid style nodes. If none found, use default reset styles. |