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