@su-record/vibe 2.9.4 → 2.9.5

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