@su-record/vibe 2.9.4 → 2.9.6
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 +190 -190
- package/LICENSE +21 -21
- package/README.ko.md +170 -170
- package/README.md +219 -219
- 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.docs.md +32 -32
- package/commands/vibe.event.md +163 -163
- package/commands/vibe.figma.md +584 -584
- package/commands/vibe.harness.md +177 -177
- package/commands/vibe.review.md +624 -624
- package/commands/vibe.run.md +1925 -1925
- package/commands/vibe.scaffold.md +195 -195
- package/commands/vibe.spec.md +565 -565
- package/commands/vibe.trace.md +276 -276
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +519 -519
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/codex-proxy.d.ts +10 -0
- package/dist/cli/commands/codex-proxy.d.ts.map +1 -0
- package/dist/cli/commands/codex-proxy.js +228 -0
- package/dist/cli/commands/codex-proxy.js.map +1 -0
- 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/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +50 -53
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.js +5 -5
- 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/detect.js +32 -32
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +67 -53
- 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/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +17 -13
- package/dist/cli/postinstall/constants.js.map +1 -1
- 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/fs-utils.d.ts +6 -0
- package/dist/cli/postinstall/fs-utils.d.ts.map +1 -1
- package/dist/cli/postinstall/fs-utils.js +15 -0
- package/dist/cli/postinstall/fs-utils.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +8 -8
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/cli/types.d.ts +8 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/IterationTracker.js +11 -11
- package/dist/infra/lib/OrchestrateWorkflow.js +1 -1
- 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/codex-proxy.d.ts +21 -0
- package/dist/infra/lib/codex-proxy.d.ts.map +1 -0
- package/dist/infra/lib/codex-proxy.js +510 -0
- package/dist/infra/lib/codex-proxy.js.map +1 -0
- 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/lib/telemetry/SkillTelemetry.test.js +4 -4
- 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 +174 -174
- package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
- package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -286
- package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -210
- 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 +268 -268
- 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 +635 -635
- package/hooks/scripts/figma-guard.js +220 -220
- 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/llm-orchestrate.js +572 -572
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pr-test-gate.js +52 -52
- package/hooks/scripts/pre-tool-guard.js +214 -214
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +131 -131
- package/hooks/scripts/session-start.js +177 -177
- package/hooks/scripts/skill-injector.js +83 -83
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +243 -243
- 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 +101 -101
- 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 +89 -89
- 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 +52 -52
- 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 +65 -65
- 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.docs → vibe-docs}/SKILL.md +171 -171
- package/skills/{vibe.docs → vibe-docs}/templates/architecture.md +80 -80
- package/skills/{vibe.docs → vibe-docs}/templates/readme.md +84 -84
- package/skills/{vibe.docs → vibe-docs}/templates/release-notes.md +74 -74
- package/skills/{vibe.figma → vibe-figma}/SKILL.md +363 -363
- package/skills/{vibe.figma → vibe-figma}/rubrics/extraction-checklist.md +51 -51
- package/skills/{vibe.figma → vibe-figma}/templates/component-index.md +126 -126
- package/skills/{vibe.figma → vibe-figma}/templates/component-spec.md +168 -168
- package/skills/{vibe.figma → vibe-figma}/templates/figma-handoff.md +100 -100
- package/skills/{vibe.figma → vibe-figma}/templates/remapped-tree.md +277 -277
- package/skills/{vibe.figma.convert → vibe-figma-convert}/SKILL.md +235 -235
- package/skills/{vibe.figma.convert → vibe-figma-convert}/rubrics/conversion-rules.md +141 -141
- package/skills/{vibe.figma.convert → vibe-figma-convert}/templates/component.md +140 -140
- package/skills/{vibe.figma.extract → vibe-figma-extract}/SKILL.md +219 -219
- package/skills/{vibe.figma.extract → vibe-figma-extract}/rubrics/image-rules.md +157 -157
- package/skills/{vibe.interview → vibe-interview}/SKILL.md +358 -358
- package/skills/{vibe.interview → vibe-interview}/checklists/api.md +101 -101
- package/skills/{vibe.interview → vibe-interview}/checklists/feature.md +88 -88
- package/skills/{vibe.interview → vibe-interview}/checklists/library.md +95 -95
- package/skills/{vibe.interview → vibe-interview}/checklists/mobile.md +89 -89
- package/skills/{vibe.interview → vibe-interview}/checklists/webapp.md +97 -97
- package/skills/{vibe.interview → vibe-interview}/checklists/website.md +99 -99
- package/skills/{vibe.plan → vibe-plan}/SKILL.md +254 -254
- package/skills/{vibe.spec → vibe-spec}/SKILL.md +1155 -1155
- package/skills/{vibe.spec.review → vibe-spec-review}/SKILL.md +726 -726
- 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
package/commands/vibe.spec.md
CHANGED
|
@@ -1,565 +1,565 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 프로젝트 명세 통합 진입점 — interview → plan → spec → review → run/figma 전체 워크플로 오케스트레이션
|
|
3
|
-
argument-hint: "(선택) feature name, plan/interview file path, or idea"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /vibe.spec
|
|
7
|
-
|
|
8
|
-
**vibe 워크플로 통합 진입점.** "무엇을 개발할지" 질문으로 시작해서 interview → plan → SPEC 작성 → review → 구현 + UI 디자인까지 전체 흐름을 오케스트레이션한다.
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
/vibe.spec # 빈 시작 — "무엇을 만들까요?"부터
|
|
14
|
-
/vibe.spec "패럴랙스 웹사이트" # 아이디어/피처명 지정 시작
|
|
15
|
-
/vibe.spec ".claude/vibe/plans/{feature}.md" # 기획서 입력 (plan 단계 스킵)
|
|
16
|
-
/vibe.spec ".claude/vibe/interviews/{feature}.md" # interview 입력 (interview 단계 스킵)
|
|
17
|
-
/vibe.spec "docs/prd.md" # 외부 PRD/아이디어 파일 입력
|
|
18
|
-
/vibe.spec + 📎 첨부 # 첨부 기반 시작
|
|
19
|
-
/vibe.spec "feature-name" ultrawork # 중단 게이트 없이 자동 전 흐름 실행
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Philosophy
|
|
23
|
-
|
|
24
|
-
> **사용자는 "무엇을 만들지"만 말하면 된다. 어떤 스킬을 언제 부를지는 vibe가 결정한다.**
|
|
25
|
-
|
|
26
|
-
- **단일 진입점**: `/vibe.spec` 하나로 전체 워크플로 시작. 다른 `/vibe.*` 커맨드 이름 외울 필요 없음.
|
|
27
|
-
- **Smart resume**: 기존 interview/plan/spec 파일 존재 여부로 어느 단계부터 시작할지 자동 판단.
|
|
28
|
-
- **자동 체이닝**: 스킬 `chain-next` 메타데이터 따라 vibe
|
|
29
|
-
- **분기 판단**: 기획서의 `type` 필드로 UI 트랙/로직 트랙 여부 결정.
|
|
30
|
-
- **사용자 제어**: 각 단계 사이에 사용자 확인 지점(stop gate) 제공 (ultrawork 모드는 스킵).
|
|
31
|
-
|
|
32
|
-
## Flow
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
/vibe.spec ["input"?]
|
|
36
|
-
↓
|
|
37
|
-
Phase 0: Git branch setup
|
|
38
|
-
↓
|
|
39
|
-
Phase 0.5: Input 분석 + Smart resume 결정
|
|
40
|
-
- 첨부/파일/아이디어 감지
|
|
41
|
-
- 기존 .claude/vibe/{interviews,plans,specs}/ 확인
|
|
42
|
-
- 시작 단계 결정: interview | plan | spec | review
|
|
43
|
-
↓
|
|
44
|
-
Phase 1: Interview (skill: vibe
|
|
45
|
-
- 조건: interview 파일 없음
|
|
46
|
-
- 사용자 "그만"까지 반복 인터뷰
|
|
47
|
-
- 출력: .claude/vibe/interviews/{feature}.md
|
|
48
|
-
↓
|
|
49
|
-
[Stop Gate 1] — ultrawork 모드에서는 스킵
|
|
50
|
-
↓
|
|
51
|
-
Phase 2: Plan (skill: vibe
|
|
52
|
-
- 조건: plan 파일 없음
|
|
53
|
-
- interview → 마크다운 기획서 정제
|
|
54
|
-
- 출력: .claude/vibe/plans/{feature}.md
|
|
55
|
-
↓
|
|
56
|
-
[Stop Gate 2 + 분기 판단]
|
|
57
|
-
기획서 type 읽고 경로 결정:
|
|
58
|
-
- website/webapp/mobile → UI + Logic 병렬
|
|
59
|
-
- api/library/feature-data → Logic만
|
|
60
|
-
↓
|
|
61
|
-
Phase 3: SPEC 작성 (skill: vibe
|
|
62
|
-
- PTCF 구조 SPEC 문서 + Feature(BDD) 파일
|
|
63
|
-
- Parallel research (GPT/Gemini/Claude agents)
|
|
64
|
-
- Large scope 자동 분할
|
|
65
|
-
- Ambiguity scan + 품질 게이트(100점, 수렴까지 루프)
|
|
66
|
-
- 출력: .claude/vibe/specs/{feature}.md + .claude/vibe/features/{feature}.feature
|
|
67
|
-
↓
|
|
68
|
-
Phase 4: SPEC Review (skill: vibe
|
|
69
|
-
- Race Review (GPT + Gemini, 라운드 수 캡 없음, 수렴까지 루프)
|
|
70
|
-
- (옵션) Codex adversarial review
|
|
71
|
-
- 사용자 최종 체크포인트
|
|
72
|
-
↓
|
|
73
|
-
Phase 5a: Logic Track → /vibe.run
|
|
74
|
-
Phase 5b: UI Track (병렬, UI 프로젝트만) → /vibe.figma
|
|
75
|
-
↓
|
|
76
|
-
Phase 6: Verify (/vibe.verify)
|
|
77
|
-
Phase 7: Trace (/vibe.trace)
|
|
78
|
-
↓
|
|
79
|
-
Done
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Rules Reference
|
|
83
|
-
|
|
84
|
-
**`~/.claude/vibe/rules/` (global) 준수:**
|
|
85
|
-
|
|
86
|
-
- `core/development-philosophy.md`
|
|
87
|
-
- `core/quick-start.md` — Korean first
|
|
88
|
-
- `core/communication-guide.md`
|
|
89
|
-
|
|
90
|
-
## Process
|
|
91
|
-
|
|
92
|
-
> **⏱️ Timer**: 시작 시 `getCurrentTime` 호출, `{start_time}`로 기록.
|
|
93
|
-
|
|
94
|
-
### Phase 0: Git Branch Setup (MANDATORY)
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
git branch --show-current
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
| 현재 | 행동 |
|
|
101
|
-
|-----|-----|
|
|
102
|
-
| `main`/`master` | 임시 이름으로 `git checkout -b vibe/tmp` (이후 feature 이름 확정되면 리네임) |
|
|
103
|
-
| `feature/*`, `plan/*`, `interview/*`, `vibe/*` | 확인: "이 브랜치에서 계속?" |
|
|
104
|
-
| 기타 | 사용자 확인 |
|
|
105
|
-
|
|
106
|
-
### Phase 0.5: Input 분석 + Smart Resume
|
|
107
|
-
|
|
108
|
-
**입력 우선순위:**
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
1. 📎 첨부 파일 있음? → 첨부 분석 → feature name 추출
|
|
112
|
-
2. 인자가 파일 경로? → 파일 위치로 시작 단계 결정:
|
|
113
|
-
.claude/vibe/interviews/*.md → Phase 2 (plan)
|
|
114
|
-
.claude/vibe/plans/*.md → Phase 3 (spec)
|
|
115
|
-
.claude/vibe/specs/*.md → Phase 4 (review)
|
|
116
|
-
기타 (.md/.txt/.pdf) → Phase 2 (plan, 외부 PRD 흡수)
|
|
117
|
-
3. 인자가 feature name? → .claude/vibe/에서 기존 파일 검색
|
|
118
|
-
existing spec → "리뷰 재실행? 이어서? 재작성?" 물음
|
|
119
|
-
existing plan → Phase 3 (spec)
|
|
120
|
-
existing interview → Phase 2 (plan)
|
|
121
|
-
아무것도 없음 → Phase 1 (interview)
|
|
122
|
-
4. 인자 없음 → Smart Resume Fallback 알고리즘 실행 (아래 참조)
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
#### Smart Resume Fallback (인자 없는 `/vibe.spec` 호출 시)
|
|
126
|
-
|
|
127
|
-
**목적**: feature 이름을 기억하지 못해도 진행 중 작업을 자동 발견해서 이어서 진행할 수 있게 한다.
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
알고리즘:
|
|
131
|
-
|
|
132
|
-
Step 1) .claude/vibe/.last-feature 확인 (pointer 파일)
|
|
133
|
-
- 파일 없음 → Step 2로
|
|
134
|
-
- 존재 → 해당 feature의 상태 요약 출력 + 확인 질문:
|
|
135
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
136
|
-
🔄 마지막 작업: {feature-name}
|
|
137
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138
|
-
✅ interview: .claude/vibe/interviews/{feature}.md (status: complete, N일 전)
|
|
139
|
-
✅ plan: .claude/vibe/plans/{feature}.md (N일 전)
|
|
140
|
-
❌ spec: 없음
|
|
141
|
-
→ 다음 단계: Phase 3 (vibe
|
|
142
|
-
|
|
143
|
-
이어서 진행할까요?
|
|
144
|
-
Enter / yes → 이어서 진행
|
|
145
|
-
list → 다른 진행 중 작업 목록 보기
|
|
146
|
-
new → 새 아이디어로 시작
|
|
147
|
-
abort → 종료"
|
|
148
|
-
|
|
149
|
-
- yes → Phase 0.5의 인자 분석 경로 3번 (feature name)으로 진입
|
|
150
|
-
- list → Step 2로
|
|
151
|
-
- new → Step 3으로
|
|
152
|
-
- abort → 종료
|
|
153
|
-
|
|
154
|
-
Step 2) 진행 중 작업 목록 표시 (.claude/vibe/ 디렉토리 스캔)
|
|
155
|
-
수집:
|
|
156
|
-
features = {} (feature name → {hasInterview, hasPlan, hasSpec, mtime})
|
|
157
|
-
for each file in .claude/vibe/interviews/*.md:
|
|
158
|
-
feature = basename without .md
|
|
159
|
-
features[feature].hasInterview = true
|
|
160
|
-
features[feature].interviewMtime = file.mtime
|
|
161
|
-
features[feature].interviewStatus = frontmatter의 status (complete/partial)
|
|
162
|
-
동일하게 plans/*.md, specs/*.md 스캔
|
|
163
|
-
|
|
164
|
-
정렬: 가장 최근 작업 (max mtime) 순
|
|
165
|
-
최대 10개까지 표시
|
|
166
|
-
|
|
167
|
-
진행 중 작업 0개 → Step 3으로
|
|
168
|
-
1개 이상 → 목록 출력 + 선택 질문:
|
|
169
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
170
|
-
🔍 진행 중인 작업
|
|
171
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
172
|
-
|
|
173
|
-
1. bean-landing [interview: partial] 2일 전
|
|
174
|
-
2. todo-app [plan: complete] 어제
|
|
175
|
-
3. payment-api [spec: complete] 방금 전
|
|
176
|
-
─────────────────────────────────────────────
|
|
177
|
-
n. ➕ 새로 시작
|
|
178
|
-
a. 종료
|
|
179
|
-
|
|
180
|
-
선택 번호 또는 feature 이름을 입력하세요:"
|
|
181
|
-
|
|
182
|
-
사용자 응답 처리:
|
|
183
|
-
- 숫자 (1~N) → 해당 feature 선택 → 인자 분석 경로 3번으로
|
|
184
|
-
- 정확한 feature 이름 → 인자 분석 경로 3번으로
|
|
185
|
-
- "n" 또는 "new" → Step 3으로
|
|
186
|
-
- "a" 또는 "abort" → 종료
|
|
187
|
-
- 자유 텍스트 (매칭 없음) → "{입력}은 기존 feature가 아닙니다. 새로 시작할까요? (y/n)" 확인
|
|
188
|
-
|
|
189
|
-
Step 3) 빈 시작 (기존 동작)
|
|
190
|
-
"👋 무엇을 만들고 싶으신가요?" 질문 → Phase 1 (interview)
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
#### `.last-feature` 포인터 파일 갱신 규칙
|
|
194
|
-
|
|
195
|
-
```
|
|
196
|
-
경로: .claude/vibe/.last-feature
|
|
197
|
-
형식: 한 줄, feature name만 저장
|
|
198
|
-
예: "bean-landing\n"
|
|
199
|
-
|
|
200
|
-
⚠ 이 파일은 **개인 작업 포인터**이므로 git에 커밋하지 않는다.
|
|
201
|
-
`.gitignore` 에 `.claude/vibe/.last-feature` 엔트리 필수.
|
|
202
|
-
|
|
203
|
-
갱신 시점:
|
|
204
|
-
- Phase 1 (interview) 진입 시 → feature name 결정되면 즉시 기록
|
|
205
|
-
- Phase 2 (plan) 진입 시 → 기록 (이미 맞으면 no-op)
|
|
206
|
-
- Phase 3 (spec) 진입 시 → 기록
|
|
207
|
-
- Phase 4 (review) 진입 시 → 기록
|
|
208
|
-
|
|
209
|
-
즉, 어느 Phase에서 멈추든 다음 /vibe.spec 호출 시 이 feature가 1순위로 제안된다.
|
|
210
|
-
|
|
211
|
-
삭제 시점:
|
|
212
|
-
- Phase 7 (trace) 완료 시 → 파일 삭제 (워크플로 완주)
|
|
213
|
-
- 사용자가 명시적으로 종료/abort 선택 시 → 삭제하지 않음 (재개 가능하게)
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
**출력 예시:**
|
|
217
|
-
|
|
218
|
-
```
|
|
219
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
220
|
-
🔍 Input 분석
|
|
221
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
222
|
-
|
|
223
|
-
입력: "패럴랙스 웹사이트"
|
|
224
|
-
분류: 신규 아이디어
|
|
225
|
-
기존 파일: 없음
|
|
226
|
-
|
|
227
|
-
→ 시작 단계: Phase 1 (vibe
|
|
228
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
### Phase 1: Interview (조건부)
|
|
232
|
-
|
|
233
|
-
**진입 조건:** interview 파일이 아직 없음
|
|
234
|
-
|
|
235
|
-
**진입 방식:**
|
|
236
|
-
|
|
237
|
-
1. **인자 있음** (`/vibe.spec "아이디어"`)
|
|
238
|
-
→ `vibe
|
|
239
|
-
|
|
240
|
-
2. **인자 없음** (`/vibe.spec`)
|
|
241
|
-
→ **Smart Resume Fallback 먼저** (Phase 0.5 참조):
|
|
242
|
-
- `.last-feature` 있고 사용자가 "이어서" 선택 → 해당 feature로 진입 (이 Phase 1 건너뛸 수 있음)
|
|
243
|
-
- 진행 중 작업 목록에서 선택 → 해당 feature로 진입
|
|
244
|
-
- "new" 선택 or 진행 중 작업 없음 → 아래 질문으로 빈 시작
|
|
245
|
-
→ 빈 시작 질문:
|
|
246
|
-
```
|
|
247
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
248
|
-
👋 무엇을 만들고 싶으신가요?
|
|
249
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
250
|
-
|
|
251
|
-
예:
|
|
252
|
-
- "패럴랙스 웹사이트"
|
|
253
|
-
- "할 일 관리 앱"
|
|
254
|
-
- "Stripe 결제 연동 API"
|
|
255
|
-
- 또는 자유롭게 설명
|
|
256
|
-
|
|
257
|
-
(파일/이미지 첨부도 가능)
|
|
258
|
-
```
|
|
259
|
-
→ 사용자 응답 → `vibe
|
|
260
|
-
|
|
261
|
-
**스킬 로드:**
|
|
262
|
-
|
|
263
|
-
```
|
|
264
|
-
Load skill `vibe
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
> **`.last-feature` 갱신**: vibe
|
|
268
|
-
|
|
269
|
-
`vibe
|
|
270
|
-
- 프로젝트 타입 감지 (website/webapp/mobile/api/library/feature)
|
|
271
|
-
- 타입별 체크리스트 로드 (`skills/vibe
|
|
272
|
-
- 반복 인터뷰 실행 (사용자 "그만"까지)
|
|
273
|
-
- `.claude/vibe/interviews/{feature-name}.md` 저장
|
|
274
|
-
|
|
275
|
-
**Stop Gate 1**: Interview 완료 후 (ultrawork 모드 스킵)
|
|
276
|
-
|
|
277
|
-
```
|
|
278
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
279
|
-
✅ Interview 완료
|
|
280
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
281
|
-
|
|
282
|
-
📄 .claude/vibe/interviews/{feature}.md
|
|
283
|
-
Required: N/M | Optional: K/L | Discovered: X
|
|
284
|
-
|
|
285
|
-
다음 단계: 기획서 작성
|
|
286
|
-
1. 계속 진행 (기본)
|
|
287
|
-
2. Interview만 저장하고 종료
|
|
288
|
-
3. Interview 수정 후 다시 (vibe
|
|
289
|
-
|
|
290
|
-
Enter → 계속
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
### Phase 2: Plan (조건부)
|
|
294
|
-
|
|
295
|
-
**진입 조건:** plan 파일이 아직 없음
|
|
296
|
-
|
|
297
|
-
```
|
|
298
|
-
Load skill `vibe
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
`vibe
|
|
302
|
-
- 템플릿 로드 (`~/.claude/vibe/templates/plan-template.md`)
|
|
303
|
-
- Interview 섹션별 정제
|
|
304
|
-
- UI 섹션 조건부 포함 (type 기반)
|
|
305
|
-
- `.claude/vibe/plans/{feature}.md` 저장
|
|
306
|
-
|
|
307
|
-
**Stop Gate 2**: 기획서 완료 후 + 분기 판단 (ultrawork 모드 스킵)
|
|
308
|
-
|
|
309
|
-
```
|
|
310
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
311
|
-
✅ 기획서 완성
|
|
312
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
313
|
-
|
|
314
|
-
📄 .claude/vibe/plans/{feature}.md
|
|
315
|
-
Type: {type}
|
|
316
|
-
|
|
317
|
-
{type ∈ UI}:
|
|
318
|
-
자동 경로: SPEC 작성 → Review → Logic Track + UI Track 병렬 실행
|
|
319
|
-
1. 계속 (권장)
|
|
320
|
-
2. Logic Track만 (SPEC만)
|
|
321
|
-
3. UI Track만 (/vibe.figma 바로)
|
|
322
|
-
4. 여기서 종료
|
|
323
|
-
|
|
324
|
-
{type ∈ non-UI}:
|
|
325
|
-
자동 경로: SPEC 작성 → Review → Logic Track
|
|
326
|
-
1. 계속 (권장)
|
|
327
|
-
2. 여기서 종료
|
|
328
|
-
|
|
329
|
-
Enter → 계속
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
### Phase 3: SPEC 작성
|
|
333
|
-
|
|
334
|
-
**진입 조건:** spec 파일이 아직 없음 (또는 재작성 요청)
|
|
335
|
-
|
|
336
|
-
```
|
|
337
|
-
Load skill `vibe
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
`vibe
|
|
341
|
-
|
|
342
|
-
**핵심 단계** (상세는 `skills/vibe
|
|
343
|
-
|
|
344
|
-
1. Project analysis (explorer agent)
|
|
345
|
-
2. config.json references 로드
|
|
346
|
-
3. Parallel research (GPT + Gemini + Claude agents, 8개 병렬)
|
|
347
|
-
4. UI/UX Design Intelligence (UI 키워드 시 자동)
|
|
348
|
-
5. PTCF SPEC 작성 (Large scope 자동 분할)
|
|
349
|
-
6. Feature file (BDD) 생성
|
|
350
|
-
7. Ambiguity scan
|
|
351
|
-
8. Quality gate (100점, 수렴까지 루프)
|
|
352
|
-
|
|
353
|
-
**출력:**
|
|
354
|
-
|
|
355
|
-
- `.claude/vibe/specs/{feature-name}.md` (또는 split folder)
|
|
356
|
-
- `.claude/vibe/features/{feature-name}.feature` (또는 split folder)
|
|
357
|
-
|
|
358
|
-
### Phase 4: SPEC Review
|
|
359
|
-
|
|
360
|
-
```
|
|
361
|
-
Load skill `vibe
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
`vibe
|
|
365
|
-
|
|
366
|
-
**핵심 단계** (상세는 `skills/vibe
|
|
367
|
-
|
|
368
|
-
1. SPEC/Feature 파일 로드 (single/split 자동 감지)
|
|
369
|
-
2. Quality Validation (100점 게이트, 수렴까지 auto-fix 루프)
|
|
370
|
-
3. Race Review (GPT + Gemini parallel, 라운드 수 캡 없음, P1=0 + 수렴 시 종료)
|
|
371
|
-
4. (옵션) Codex adversarial review
|
|
372
|
-
5. Review Debate Team (2+ P1/P2 이슈 시)
|
|
373
|
-
6. 사용자 최종 체크포인트
|
|
374
|
-
|
|
375
|
-
### Phase 5a: Logic Track
|
|
376
|
-
|
|
377
|
-
```
|
|
378
|
-
/vibe.run "{feature-name}"
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
SPEC → 코드 구현.
|
|
382
|
-
|
|
383
|
-
### Phase 5b: UI Track (type ∈ {website, webapp, mobile}일 때만)
|
|
384
|
-
|
|
385
|
-
**5a와 병렬 실행** (또는 순차 — 사용자 선택):
|
|
386
|
-
|
|
387
|
-
```
|
|
388
|
-
/vibe.figma
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
**`/vibe.figma`에 전달할 컨텍스트:**
|
|
392
|
-
|
|
393
|
-
- `.claude/vibe/plans/{feature}.md` 경로
|
|
394
|
-
- 기획서의 §7 Look & Feel, §8 레이아웃, §9 반응형 섹션을 Phase 1 스토리보드 입력으로 사용
|
|
395
|
-
|
|
396
|
-
### Phase 6: Verify
|
|
397
|
-
|
|
398
|
-
```
|
|
399
|
-
/vibe.verify "{feature-name}"
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
UI + 로직 + 연결 검증 (후속 PR에서 3축 확장 예정).
|
|
403
|
-
|
|
404
|
-
### Phase 7: Trace
|
|
405
|
-
|
|
406
|
-
```
|
|
407
|
-
/vibe.trace "{feature-name}"
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
SPEC ↔ 구현 추적.
|
|
411
|
-
|
|
412
|
-
> **Phase 7 완료 시**: `.claude/vibe/.last-feature` 삭제 (워크플로 완주 — 다음 `/vibe.spec` 호출은 빈 시작 또는 진행 중 작업 목록에서 시작).
|
|
413
|
-
|
|
414
|
-
## ultrawork 모드
|
|
415
|
-
|
|
416
|
-
`ultrawork` (또는 `ulw`)가 인자에 포함되면:
|
|
417
|
-
|
|
418
|
-
- **모든 Stop Gate 스킵**
|
|
419
|
-
- interview → plan → spec → review → run → (figma 병렬) 전체 자동 실행
|
|
420
|
-
- askUser 체크포인트 스킵, 기본값 사용
|
|
421
|
-
- 수동 개입 없이 완주
|
|
422
|
-
|
|
423
|
-
```
|
|
424
|
-
/vibe.spec "패럴랙스 웹사이트" ultrawork
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
## Smart Resume 예시
|
|
428
|
-
|
|
429
|
-
### 예시 1: 신규 프로젝트
|
|
430
|
-
```
|
|
431
|
-
User: /vibe.spec "원두 브랜드 랜딩"
|
|
432
|
-
|
|
433
|
-
Claude: 🔍 Input 분석
|
|
434
|
-
입력: "원두 브랜드 랜딩"
|
|
435
|
-
분류: 신규 아이디어
|
|
436
|
-
기존 파일: 없음
|
|
437
|
-
→ 시작 단계: Phase 1 (vibe
|
|
438
|
-
|
|
439
|
-
[vibe
|
|
440
|
-
Type: website 감지 → checklists/website.md 로드
|
|
441
|
-
...
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
### 예시 2: 기획서에서 시작
|
|
445
|
-
```
|
|
446
|
-
User: /vibe.spec ".claude/vibe/plans/bean-landing.md"
|
|
447
|
-
|
|
448
|
-
Claude: 🔍 Input 분석
|
|
449
|
-
입력: plan 파일 경로
|
|
450
|
-
분류: 기존 기획서
|
|
451
|
-
Feature: bean-landing
|
|
452
|
-
→ 시작 단계: Phase 3 (vibe
|
|
453
|
-
|
|
454
|
-
[vibe
|
|
455
|
-
기획서 읽기 → research → PTCF 작성 ...
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
### 예시 3: 기존 feature 재개
|
|
459
|
-
```
|
|
460
|
-
User: /vibe.spec "bean-landing"
|
|
461
|
-
|
|
462
|
-
Claude: 🔍 Input 분석
|
|
463
|
-
입력: feature name
|
|
464
|
-
기존 파일 검색...
|
|
465
|
-
✅ interview: .claude/vibe/interviews/bean-landing.md
|
|
466
|
-
✅ plan: .claude/vibe/plans/bean-landing.md
|
|
467
|
-
❌ spec: 없음
|
|
468
|
-
→ 시작 단계: Phase 3 (vibe
|
|
469
|
-
|
|
470
|
-
[vibe
|
|
471
|
-
...
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
### 예시 4: SPEC 리뷰 재실행
|
|
475
|
-
```
|
|
476
|
-
User: /vibe.spec "bean-landing"
|
|
477
|
-
|
|
478
|
-
Claude: 🔍 Input 분석
|
|
479
|
-
기존 파일:
|
|
480
|
-
✅ spec: .claude/vibe/specs/bean-landing.md
|
|
481
|
-
✅ feature: .claude/vibe/features/bean-landing.feature
|
|
482
|
-
|
|
483
|
-
이미 SPEC이 존재합니다. 어떻게 진행할까요?
|
|
484
|
-
1. SPEC 리뷰 (Phase 4: vibe
|
|
485
|
-
2. /vibe.run 실행 (구현)
|
|
486
|
-
3. SPEC 재작성 (기존 백업 후 새로 작성)
|
|
487
|
-
4. 종료
|
|
488
|
-
```
|
|
489
|
-
|
|
490
|
-
### 예시 5: feature 이름을 잊고 인자 없이 호출 (Smart Resume Fallback)
|
|
491
|
-
```
|
|
492
|
-
User: /vibe.spec
|
|
493
|
-
|
|
494
|
-
Claude: (.last-feature 읽기 → "bean-landing" 발견)
|
|
495
|
-
|
|
496
|
-
🔄 마지막 작업: bean-landing
|
|
497
|
-
✅ interview: .claude/vibe/interviews/bean-landing.md (status: partial, 2일 전)
|
|
498
|
-
❌ plan: 없음
|
|
499
|
-
❌ spec: 없음
|
|
500
|
-
→ 다음 단계: Phase 2 (vibe
|
|
501
|
-
|
|
502
|
-
이어서 진행할까요?
|
|
503
|
-
Enter / yes → 이어서 진행
|
|
504
|
-
list → 다른 진행 중 작업 목록 보기
|
|
505
|
-
new → 새 아이디어로 시작
|
|
506
|
-
abort → 종료
|
|
507
|
-
|
|
508
|
-
User: yes
|
|
509
|
-
|
|
510
|
-
Claude: [Phase 2 진입]
|
|
511
|
-
.last-feature = bean-landing
|
|
512
|
-
[vibe
|
|
513
|
-
...
|
|
514
|
-
```
|
|
515
|
-
|
|
516
|
-
### 예시 6: 여러 feature 중 선택 (Fallback list 모드)
|
|
517
|
-
```
|
|
518
|
-
User: /vibe.spec
|
|
519
|
-
|
|
520
|
-
Claude: (.last-feature 없음 → 디렉토리 스캔)
|
|
521
|
-
|
|
522
|
-
🔍 진행 중인 작업
|
|
523
|
-
|
|
524
|
-
1. bean-landing [interview: partial] 2일 전
|
|
525
|
-
2. todo-app [plan: complete] 어제
|
|
526
|
-
3. payment-api [spec: complete] 방금 전
|
|
527
|
-
─────────────────────────────────────────────
|
|
528
|
-
n. ➕ 새로 시작
|
|
529
|
-
a. 종료
|
|
530
|
-
|
|
531
|
-
선택 번호 또는 feature 이름을 입력하세요:
|
|
532
|
-
|
|
533
|
-
User: 2
|
|
534
|
-
|
|
535
|
-
Claude: Feature: todo-app 선택
|
|
536
|
-
✅ plan 완성 → Phase 3 (vibe
|
|
537
|
-
.last-feature = todo-app
|
|
538
|
-
...
|
|
539
|
-
```
|
|
540
|
-
|
|
541
|
-
## Rollback / Resume
|
|
542
|
-
|
|
543
|
-
- 각 Phase 종료 시 상태가 `.claude/vibe/{interviews,plans,specs,features}/`에 저장됨
|
|
544
|
-
- **`.claude/vibe/.last-feature` pointer**가 각 Phase 진입 시 갱신되어 "가장 최근에 작업한 feature" 추적 (Phase 7 완주 시 삭제)
|
|
545
|
-
- 중단 시 다시 `/vibe.spec`으로 돌아오면 Smart Resume Fallback 동작:
|
|
546
|
-
- 인자 있음 (`/vibe.spec "feature-name"` 또는 파일 경로) → 해당 feature의 가장 진행된 단계 다음으로 바로 진입
|
|
547
|
-
- 인자 없음 → `.last-feature` 우선 제안 → 거부하면 진행 중 작업 목록 제시 → 또 거부하면 빈 시작
|
|
548
|
-
- 수동 개입 필요시 스킬 직접 호출 가능 (`Load skill vibe
|
|
549
|
-
|
|
550
|
-
## Next Step
|
|
551
|
-
|
|
552
|
-
```
|
|
553
|
-
# 전형적인 사용
|
|
554
|
-
/vibe.spec "프로젝트 아이디어"
|
|
555
|
-
|
|
556
|
-
# 중간 단계 재개
|
|
557
|
-
/vibe.spec "feature-name"
|
|
558
|
-
|
|
559
|
-
# ultrawork 자동 완주
|
|
560
|
-
/vibe.spec "feature-name" ultrawork
|
|
561
|
-
```
|
|
562
|
-
|
|
563
|
-
---
|
|
564
|
-
|
|
565
|
-
ARGUMENTS: $ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: 프로젝트 명세 통합 진입점 — interview → plan → spec → review → run/figma 전체 워크플로 오케스트레이션
|
|
3
|
+
argument-hint: "(선택) feature name, plan/interview file path, or idea"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /vibe.spec
|
|
7
|
+
|
|
8
|
+
**vibe 워크플로 통합 진입점.** "무엇을 개발할지" 질문으로 시작해서 interview → plan → SPEC 작성 → review → 구현 + UI 디자인까지 전체 흐름을 오케스트레이션한다.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/vibe.spec # 빈 시작 — "무엇을 만들까요?"부터
|
|
14
|
+
/vibe.spec "패럴랙스 웹사이트" # 아이디어/피처명 지정 시작
|
|
15
|
+
/vibe.spec ".claude/vibe/plans/{feature}.md" # 기획서 입력 (plan 단계 스킵)
|
|
16
|
+
/vibe.spec ".claude/vibe/interviews/{feature}.md" # interview 입력 (interview 단계 스킵)
|
|
17
|
+
/vibe.spec "docs/prd.md" # 외부 PRD/아이디어 파일 입력
|
|
18
|
+
/vibe.spec + 📎 첨부 # 첨부 기반 시작
|
|
19
|
+
/vibe.spec "feature-name" ultrawork # 중단 게이트 없이 자동 전 흐름 실행
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Philosophy
|
|
23
|
+
|
|
24
|
+
> **사용자는 "무엇을 만들지"만 말하면 된다. 어떤 스킬을 언제 부를지는 vibe가 결정한다.**
|
|
25
|
+
|
|
26
|
+
- **단일 진입점**: `/vibe.spec` 하나로 전체 워크플로 시작. 다른 `/vibe.*` 커맨드 이름 외울 필요 없음.
|
|
27
|
+
- **Smart resume**: 기존 interview/plan/spec 파일 존재 여부로 어느 단계부터 시작할지 자동 판단.
|
|
28
|
+
- **자동 체이닝**: 스킬 `chain-next` 메타데이터 따라 vibe-interview → vibe-plan → vibe-spec → vibe-spec-review 진행.
|
|
29
|
+
- **분기 판단**: 기획서의 `type` 필드로 UI 트랙/로직 트랙 여부 결정.
|
|
30
|
+
- **사용자 제어**: 각 단계 사이에 사용자 확인 지점(stop gate) 제공 (ultrawork 모드는 스킵).
|
|
31
|
+
|
|
32
|
+
## Flow
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
/vibe.spec ["input"?]
|
|
36
|
+
↓
|
|
37
|
+
Phase 0: Git branch setup
|
|
38
|
+
↓
|
|
39
|
+
Phase 0.5: Input 분석 + Smart resume 결정
|
|
40
|
+
- 첨부/파일/아이디어 감지
|
|
41
|
+
- 기존 .claude/vibe/{interviews,plans,specs}/ 확인
|
|
42
|
+
- 시작 단계 결정: interview | plan | spec | review
|
|
43
|
+
↓
|
|
44
|
+
Phase 1: Interview (skill: vibe-interview)
|
|
45
|
+
- 조건: interview 파일 없음
|
|
46
|
+
- 사용자 "그만"까지 반복 인터뷰
|
|
47
|
+
- 출력: .claude/vibe/interviews/{feature}.md
|
|
48
|
+
↓
|
|
49
|
+
[Stop Gate 1] — ultrawork 모드에서는 스킵
|
|
50
|
+
↓
|
|
51
|
+
Phase 2: Plan (skill: vibe-plan)
|
|
52
|
+
- 조건: plan 파일 없음
|
|
53
|
+
- interview → 마크다운 기획서 정제
|
|
54
|
+
- 출력: .claude/vibe/plans/{feature}.md
|
|
55
|
+
↓
|
|
56
|
+
[Stop Gate 2 + 분기 판단]
|
|
57
|
+
기획서 type 읽고 경로 결정:
|
|
58
|
+
- website/webapp/mobile → UI + Logic 병렬
|
|
59
|
+
- api/library/feature-data → Logic만
|
|
60
|
+
↓
|
|
61
|
+
Phase 3: SPEC 작성 (skill: vibe-spec)
|
|
62
|
+
- PTCF 구조 SPEC 문서 + Feature(BDD) 파일
|
|
63
|
+
- Parallel research (GPT/Gemini/Claude agents)
|
|
64
|
+
- Large scope 자동 분할
|
|
65
|
+
- Ambiguity scan + 품질 게이트(100점, 수렴까지 루프)
|
|
66
|
+
- 출력: .claude/vibe/specs/{feature}.md + .claude/vibe/features/{feature}.feature
|
|
67
|
+
↓
|
|
68
|
+
Phase 4: SPEC Review (skill: vibe-spec-review)
|
|
69
|
+
- Race Review (GPT + Gemini, 라운드 수 캡 없음, 수렴까지 루프)
|
|
70
|
+
- (옵션) Codex adversarial review
|
|
71
|
+
- 사용자 최종 체크포인트
|
|
72
|
+
↓
|
|
73
|
+
Phase 5a: Logic Track → /vibe.run
|
|
74
|
+
Phase 5b: UI Track (병렬, UI 프로젝트만) → /vibe.figma
|
|
75
|
+
↓
|
|
76
|
+
Phase 6: Verify (/vibe.verify)
|
|
77
|
+
Phase 7: Trace (/vibe.trace)
|
|
78
|
+
↓
|
|
79
|
+
Done
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Rules Reference
|
|
83
|
+
|
|
84
|
+
**`~/.claude/vibe/rules/` (global) 준수:**
|
|
85
|
+
|
|
86
|
+
- `core/development-philosophy.md`
|
|
87
|
+
- `core/quick-start.md` — Korean first
|
|
88
|
+
- `core/communication-guide.md`
|
|
89
|
+
|
|
90
|
+
## Process
|
|
91
|
+
|
|
92
|
+
> **⏱️ Timer**: 시작 시 `getCurrentTime` 호출, `{start_time}`로 기록.
|
|
93
|
+
|
|
94
|
+
### Phase 0: Git Branch Setup (MANDATORY)
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
git branch --show-current
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
| 현재 | 행동 |
|
|
101
|
+
|-----|-----|
|
|
102
|
+
| `main`/`master` | 임시 이름으로 `git checkout -b vibe/tmp` (이후 feature 이름 확정되면 리네임) |
|
|
103
|
+
| `feature/*`, `plan/*`, `interview/*`, `vibe/*` | 확인: "이 브랜치에서 계속?" |
|
|
104
|
+
| 기타 | 사용자 확인 |
|
|
105
|
+
|
|
106
|
+
### Phase 0.5: Input 분석 + Smart Resume
|
|
107
|
+
|
|
108
|
+
**입력 우선순위:**
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
1. 📎 첨부 파일 있음? → 첨부 분석 → feature name 추출
|
|
112
|
+
2. 인자가 파일 경로? → 파일 위치로 시작 단계 결정:
|
|
113
|
+
.claude/vibe/interviews/*.md → Phase 2 (plan)
|
|
114
|
+
.claude/vibe/plans/*.md → Phase 3 (spec)
|
|
115
|
+
.claude/vibe/specs/*.md → Phase 4 (review)
|
|
116
|
+
기타 (.md/.txt/.pdf) → Phase 2 (plan, 외부 PRD 흡수)
|
|
117
|
+
3. 인자가 feature name? → .claude/vibe/에서 기존 파일 검색
|
|
118
|
+
existing spec → "리뷰 재실행? 이어서? 재작성?" 물음
|
|
119
|
+
existing plan → Phase 3 (spec)
|
|
120
|
+
existing interview → Phase 2 (plan)
|
|
121
|
+
아무것도 없음 → Phase 1 (interview)
|
|
122
|
+
4. 인자 없음 → Smart Resume Fallback 알고리즘 실행 (아래 참조)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
#### Smart Resume Fallback (인자 없는 `/vibe.spec` 호출 시)
|
|
126
|
+
|
|
127
|
+
**목적**: feature 이름을 기억하지 못해도 진행 중 작업을 자동 발견해서 이어서 진행할 수 있게 한다.
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
알고리즘:
|
|
131
|
+
|
|
132
|
+
Step 1) .claude/vibe/.last-feature 확인 (pointer 파일)
|
|
133
|
+
- 파일 없음 → Step 2로
|
|
134
|
+
- 존재 → 해당 feature의 상태 요약 출력 + 확인 질문:
|
|
135
|
+
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
136
|
+
🔄 마지막 작업: {feature-name}
|
|
137
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138
|
+
✅ interview: .claude/vibe/interviews/{feature}.md (status: complete, N일 전)
|
|
139
|
+
✅ plan: .claude/vibe/plans/{feature}.md (N일 전)
|
|
140
|
+
❌ spec: 없음
|
|
141
|
+
→ 다음 단계: Phase 3 (vibe-spec 스킬 — SPEC 작성)
|
|
142
|
+
|
|
143
|
+
이어서 진행할까요?
|
|
144
|
+
Enter / yes → 이어서 진행
|
|
145
|
+
list → 다른 진행 중 작업 목록 보기
|
|
146
|
+
new → 새 아이디어로 시작
|
|
147
|
+
abort → 종료"
|
|
148
|
+
|
|
149
|
+
- yes → Phase 0.5의 인자 분석 경로 3번 (feature name)으로 진입
|
|
150
|
+
- list → Step 2로
|
|
151
|
+
- new → Step 3으로
|
|
152
|
+
- abort → 종료
|
|
153
|
+
|
|
154
|
+
Step 2) 진행 중 작업 목록 표시 (.claude/vibe/ 디렉토리 스캔)
|
|
155
|
+
수집:
|
|
156
|
+
features = {} (feature name → {hasInterview, hasPlan, hasSpec, mtime})
|
|
157
|
+
for each file in .claude/vibe/interviews/*.md:
|
|
158
|
+
feature = basename without .md
|
|
159
|
+
features[feature].hasInterview = true
|
|
160
|
+
features[feature].interviewMtime = file.mtime
|
|
161
|
+
features[feature].interviewStatus = frontmatter의 status (complete/partial)
|
|
162
|
+
동일하게 plans/*.md, specs/*.md 스캔
|
|
163
|
+
|
|
164
|
+
정렬: 가장 최근 작업 (max mtime) 순
|
|
165
|
+
최대 10개까지 표시
|
|
166
|
+
|
|
167
|
+
진행 중 작업 0개 → Step 3으로
|
|
168
|
+
1개 이상 → 목록 출력 + 선택 질문:
|
|
169
|
+
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
170
|
+
🔍 진행 중인 작업
|
|
171
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
172
|
+
|
|
173
|
+
1. bean-landing [interview: partial] 2일 전
|
|
174
|
+
2. todo-app [plan: complete] 어제
|
|
175
|
+
3. payment-api [spec: complete] 방금 전
|
|
176
|
+
─────────────────────────────────────────────
|
|
177
|
+
n. ➕ 새로 시작
|
|
178
|
+
a. 종료
|
|
179
|
+
|
|
180
|
+
선택 번호 또는 feature 이름을 입력하세요:"
|
|
181
|
+
|
|
182
|
+
사용자 응답 처리:
|
|
183
|
+
- 숫자 (1~N) → 해당 feature 선택 → 인자 분석 경로 3번으로
|
|
184
|
+
- 정확한 feature 이름 → 인자 분석 경로 3번으로
|
|
185
|
+
- "n" 또는 "new" → Step 3으로
|
|
186
|
+
- "a" 또는 "abort" → 종료
|
|
187
|
+
- 자유 텍스트 (매칭 없음) → "{입력}은 기존 feature가 아닙니다. 새로 시작할까요? (y/n)" 확인
|
|
188
|
+
|
|
189
|
+
Step 3) 빈 시작 (기존 동작)
|
|
190
|
+
"👋 무엇을 만들고 싶으신가요?" 질문 → Phase 1 (interview)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
#### `.last-feature` 포인터 파일 갱신 규칙
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
경로: .claude/vibe/.last-feature
|
|
197
|
+
형식: 한 줄, feature name만 저장
|
|
198
|
+
예: "bean-landing\n"
|
|
199
|
+
|
|
200
|
+
⚠ 이 파일은 **개인 작업 포인터**이므로 git에 커밋하지 않는다.
|
|
201
|
+
`.gitignore` 에 `.claude/vibe/.last-feature` 엔트리 필수.
|
|
202
|
+
|
|
203
|
+
갱신 시점:
|
|
204
|
+
- Phase 1 (interview) 진입 시 → feature name 결정되면 즉시 기록
|
|
205
|
+
- Phase 2 (plan) 진입 시 → 기록 (이미 맞으면 no-op)
|
|
206
|
+
- Phase 3 (spec) 진입 시 → 기록
|
|
207
|
+
- Phase 4 (review) 진입 시 → 기록
|
|
208
|
+
|
|
209
|
+
즉, 어느 Phase에서 멈추든 다음 /vibe.spec 호출 시 이 feature가 1순위로 제안된다.
|
|
210
|
+
|
|
211
|
+
삭제 시점:
|
|
212
|
+
- Phase 7 (trace) 완료 시 → 파일 삭제 (워크플로 완주)
|
|
213
|
+
- 사용자가 명시적으로 종료/abort 선택 시 → 삭제하지 않음 (재개 가능하게)
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**출력 예시:**
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
220
|
+
🔍 Input 분석
|
|
221
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
222
|
+
|
|
223
|
+
입력: "패럴랙스 웹사이트"
|
|
224
|
+
분류: 신규 아이디어
|
|
225
|
+
기존 파일: 없음
|
|
226
|
+
|
|
227
|
+
→ 시작 단계: Phase 1 (vibe-interview)
|
|
228
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Phase 1: Interview (조건부)
|
|
232
|
+
|
|
233
|
+
**진입 조건:** interview 파일이 아직 없음
|
|
234
|
+
|
|
235
|
+
**진입 방식:**
|
|
236
|
+
|
|
237
|
+
1. **인자 있음** (`/vibe.spec "아이디어"`)
|
|
238
|
+
→ `vibe-interview` 스킬 로드 + 아이디어 전달
|
|
239
|
+
|
|
240
|
+
2. **인자 없음** (`/vibe.spec`)
|
|
241
|
+
→ **Smart Resume Fallback 먼저** (Phase 0.5 참조):
|
|
242
|
+
- `.last-feature` 있고 사용자가 "이어서" 선택 → 해당 feature로 진입 (이 Phase 1 건너뛸 수 있음)
|
|
243
|
+
- 진행 중 작업 목록에서 선택 → 해당 feature로 진입
|
|
244
|
+
- "new" 선택 or 진행 중 작업 없음 → 아래 질문으로 빈 시작
|
|
245
|
+
→ 빈 시작 질문:
|
|
246
|
+
```
|
|
247
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
248
|
+
👋 무엇을 만들고 싶으신가요?
|
|
249
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
250
|
+
|
|
251
|
+
예:
|
|
252
|
+
- "패럴랙스 웹사이트"
|
|
253
|
+
- "할 일 관리 앱"
|
|
254
|
+
- "Stripe 결제 연동 API"
|
|
255
|
+
- 또는 자유롭게 설명
|
|
256
|
+
|
|
257
|
+
(파일/이미지 첨부도 가능)
|
|
258
|
+
```
|
|
259
|
+
→ 사용자 응답 → `vibe-interview` 스킬 로드
|
|
260
|
+
|
|
261
|
+
**스킬 로드:**
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
Load skill `vibe-interview` with input: {user_idea}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
> **`.last-feature` 갱신**: vibe-interview 스킬이 feature name을 확정하는 즉시 `.claude/vibe/.last-feature` 에 한 줄로 기록. 이후 Phase 2/3/4 진입 시에도 동일 기록 유지 (값이 같으면 no-op).
|
|
268
|
+
|
|
269
|
+
`vibe-interview` 스킬이 자체적으로:
|
|
270
|
+
- 프로젝트 타입 감지 (website/webapp/mobile/api/library/feature)
|
|
271
|
+
- 타입별 체크리스트 로드 (`skills/vibe-interview/checklists/{type}.md`)
|
|
272
|
+
- 반복 인터뷰 실행 (사용자 "그만"까지)
|
|
273
|
+
- `.claude/vibe/interviews/{feature-name}.md` 저장
|
|
274
|
+
|
|
275
|
+
**Stop Gate 1**: Interview 완료 후 (ultrawork 모드 스킵)
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
279
|
+
✅ Interview 완료
|
|
280
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
281
|
+
|
|
282
|
+
📄 .claude/vibe/interviews/{feature}.md
|
|
283
|
+
Required: N/M | Optional: K/L | Discovered: X
|
|
284
|
+
|
|
285
|
+
다음 단계: 기획서 작성
|
|
286
|
+
1. 계속 진행 (기본)
|
|
287
|
+
2. Interview만 저장하고 종료
|
|
288
|
+
3. Interview 수정 후 다시 (vibe-interview 재실행)
|
|
289
|
+
|
|
290
|
+
Enter → 계속
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Phase 2: Plan (조건부)
|
|
294
|
+
|
|
295
|
+
**진입 조건:** plan 파일이 아직 없음
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
Load skill `vibe-plan` with input: .claude/vibe/interviews/{feature}.md
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
`vibe-plan` 스킬이 자체적으로:
|
|
302
|
+
- 템플릿 로드 (`~/.claude/vibe/templates/plan-template.md`)
|
|
303
|
+
- Interview 섹션별 정제
|
|
304
|
+
- UI 섹션 조건부 포함 (type 기반)
|
|
305
|
+
- `.claude/vibe/plans/{feature}.md` 저장
|
|
306
|
+
|
|
307
|
+
**Stop Gate 2**: 기획서 완료 후 + 분기 판단 (ultrawork 모드 스킵)
|
|
308
|
+
|
|
309
|
+
```
|
|
310
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
311
|
+
✅ 기획서 완성
|
|
312
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
313
|
+
|
|
314
|
+
📄 .claude/vibe/plans/{feature}.md
|
|
315
|
+
Type: {type}
|
|
316
|
+
|
|
317
|
+
{type ∈ UI}:
|
|
318
|
+
자동 경로: SPEC 작성 → Review → Logic Track + UI Track 병렬 실행
|
|
319
|
+
1. 계속 (권장)
|
|
320
|
+
2. Logic Track만 (SPEC만)
|
|
321
|
+
3. UI Track만 (/vibe.figma 바로)
|
|
322
|
+
4. 여기서 종료
|
|
323
|
+
|
|
324
|
+
{type ∈ non-UI}:
|
|
325
|
+
자동 경로: SPEC 작성 → Review → Logic Track
|
|
326
|
+
1. 계속 (권장)
|
|
327
|
+
2. 여기서 종료
|
|
328
|
+
|
|
329
|
+
Enter → 계속
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Phase 3: SPEC 작성
|
|
333
|
+
|
|
334
|
+
**진입 조건:** spec 파일이 아직 없음 (또는 재작성 요청)
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
Load skill `vibe-spec` with input: .claude/vibe/plans/{feature}.md
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
`vibe-spec` 스킬이 PTCF 구조 SPEC 문서 + Feature(BDD) 파일 생성.
|
|
341
|
+
|
|
342
|
+
**핵심 단계** (상세는 `skills/vibe-spec/SKILL.md` 참조):
|
|
343
|
+
|
|
344
|
+
1. Project analysis (explorer agent)
|
|
345
|
+
2. config.json references 로드
|
|
346
|
+
3. Parallel research (GPT + Gemini + Claude agents, 8개 병렬)
|
|
347
|
+
4. UI/UX Design Intelligence (UI 키워드 시 자동)
|
|
348
|
+
5. PTCF SPEC 작성 (Large scope 자동 분할)
|
|
349
|
+
6. Feature file (BDD) 생성
|
|
350
|
+
7. Ambiguity scan
|
|
351
|
+
8. Quality gate (100점, 수렴까지 루프)
|
|
352
|
+
|
|
353
|
+
**출력:**
|
|
354
|
+
|
|
355
|
+
- `.claude/vibe/specs/{feature-name}.md` (또는 split folder)
|
|
356
|
+
- `.claude/vibe/features/{feature-name}.feature` (또는 split folder)
|
|
357
|
+
|
|
358
|
+
### Phase 4: SPEC Review
|
|
359
|
+
|
|
360
|
+
```
|
|
361
|
+
Load skill `vibe-spec-review` with feature: {feature-name}
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
`vibe-spec-review` 스킬이 Race Review + 품질 검증 + 사용자 체크포인트 실행.
|
|
365
|
+
|
|
366
|
+
**핵심 단계** (상세는 `skills/vibe-spec-review/SKILL.md` 참조):
|
|
367
|
+
|
|
368
|
+
1. SPEC/Feature 파일 로드 (single/split 자동 감지)
|
|
369
|
+
2. Quality Validation (100점 게이트, 수렴까지 auto-fix 루프)
|
|
370
|
+
3. Race Review (GPT + Gemini parallel, 라운드 수 캡 없음, P1=0 + 수렴 시 종료)
|
|
371
|
+
4. (옵션) Codex adversarial review
|
|
372
|
+
5. Review Debate Team (2+ P1/P2 이슈 시)
|
|
373
|
+
6. 사용자 최종 체크포인트
|
|
374
|
+
|
|
375
|
+
### Phase 5a: Logic Track
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
/vibe.run "{feature-name}"
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
SPEC → 코드 구현.
|
|
382
|
+
|
|
383
|
+
### Phase 5b: UI Track (type ∈ {website, webapp, mobile}일 때만)
|
|
384
|
+
|
|
385
|
+
**5a와 병렬 실행** (또는 순차 — 사용자 선택):
|
|
386
|
+
|
|
387
|
+
```
|
|
388
|
+
/vibe.figma
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
**`/vibe.figma`에 전달할 컨텍스트:**
|
|
392
|
+
|
|
393
|
+
- `.claude/vibe/plans/{feature}.md` 경로
|
|
394
|
+
- 기획서의 §7 Look & Feel, §8 레이아웃, §9 반응형 섹션을 Phase 1 스토리보드 입력으로 사용
|
|
395
|
+
|
|
396
|
+
### Phase 6: Verify
|
|
397
|
+
|
|
398
|
+
```
|
|
399
|
+
/vibe.verify "{feature-name}"
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
UI + 로직 + 연결 검증 (후속 PR에서 3축 확장 예정).
|
|
403
|
+
|
|
404
|
+
### Phase 7: Trace
|
|
405
|
+
|
|
406
|
+
```
|
|
407
|
+
/vibe.trace "{feature-name}"
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
SPEC ↔ 구현 추적.
|
|
411
|
+
|
|
412
|
+
> **Phase 7 완료 시**: `.claude/vibe/.last-feature` 삭제 (워크플로 완주 — 다음 `/vibe.spec` 호출은 빈 시작 또는 진행 중 작업 목록에서 시작).
|
|
413
|
+
|
|
414
|
+
## ultrawork 모드
|
|
415
|
+
|
|
416
|
+
`ultrawork` (또는 `ulw`)가 인자에 포함되면:
|
|
417
|
+
|
|
418
|
+
- **모든 Stop Gate 스킵**
|
|
419
|
+
- interview → plan → spec → review → run → (figma 병렬) 전체 자동 실행
|
|
420
|
+
- askUser 체크포인트 스킵, 기본값 사용
|
|
421
|
+
- 수동 개입 없이 완주
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
/vibe.spec "패럴랙스 웹사이트" ultrawork
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
## Smart Resume 예시
|
|
428
|
+
|
|
429
|
+
### 예시 1: 신규 프로젝트
|
|
430
|
+
```
|
|
431
|
+
User: /vibe.spec "원두 브랜드 랜딩"
|
|
432
|
+
|
|
433
|
+
Claude: 🔍 Input 분석
|
|
434
|
+
입력: "원두 브랜드 랜딩"
|
|
435
|
+
분류: 신규 아이디어
|
|
436
|
+
기존 파일: 없음
|
|
437
|
+
→ 시작 단계: Phase 1 (vibe-interview)
|
|
438
|
+
|
|
439
|
+
[vibe-interview 스킬 로드]
|
|
440
|
+
Type: website 감지 → checklists/website.md 로드
|
|
441
|
+
...
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### 예시 2: 기획서에서 시작
|
|
445
|
+
```
|
|
446
|
+
User: /vibe.spec ".claude/vibe/plans/bean-landing.md"
|
|
447
|
+
|
|
448
|
+
Claude: 🔍 Input 분석
|
|
449
|
+
입력: plan 파일 경로
|
|
450
|
+
분류: 기존 기획서
|
|
451
|
+
Feature: bean-landing
|
|
452
|
+
→ 시작 단계: Phase 3 (vibe-spec)
|
|
453
|
+
|
|
454
|
+
[vibe-spec 스킬 로드]
|
|
455
|
+
기획서 읽기 → research → PTCF 작성 ...
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
### 예시 3: 기존 feature 재개
|
|
459
|
+
```
|
|
460
|
+
User: /vibe.spec "bean-landing"
|
|
461
|
+
|
|
462
|
+
Claude: 🔍 Input 분석
|
|
463
|
+
입력: feature name
|
|
464
|
+
기존 파일 검색...
|
|
465
|
+
✅ interview: .claude/vibe/interviews/bean-landing.md
|
|
466
|
+
✅ plan: .claude/vibe/plans/bean-landing.md
|
|
467
|
+
❌ spec: 없음
|
|
468
|
+
→ 시작 단계: Phase 3 (vibe-spec)
|
|
469
|
+
|
|
470
|
+
[vibe-spec 스킬 로드]
|
|
471
|
+
...
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### 예시 4: SPEC 리뷰 재실행
|
|
475
|
+
```
|
|
476
|
+
User: /vibe.spec "bean-landing"
|
|
477
|
+
|
|
478
|
+
Claude: 🔍 Input 분석
|
|
479
|
+
기존 파일:
|
|
480
|
+
✅ spec: .claude/vibe/specs/bean-landing.md
|
|
481
|
+
✅ feature: .claude/vibe/features/bean-landing.feature
|
|
482
|
+
|
|
483
|
+
이미 SPEC이 존재합니다. 어떻게 진행할까요?
|
|
484
|
+
1. SPEC 리뷰 (Phase 4: vibe-spec-review 스킬 로드)
|
|
485
|
+
2. /vibe.run 실행 (구현)
|
|
486
|
+
3. SPEC 재작성 (기존 백업 후 새로 작성)
|
|
487
|
+
4. 종료
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### 예시 5: feature 이름을 잊고 인자 없이 호출 (Smart Resume Fallback)
|
|
491
|
+
```
|
|
492
|
+
User: /vibe.spec
|
|
493
|
+
|
|
494
|
+
Claude: (.last-feature 읽기 → "bean-landing" 발견)
|
|
495
|
+
|
|
496
|
+
🔄 마지막 작업: bean-landing
|
|
497
|
+
✅ interview: .claude/vibe/interviews/bean-landing.md (status: partial, 2일 전)
|
|
498
|
+
❌ plan: 없음
|
|
499
|
+
❌ spec: 없음
|
|
500
|
+
→ 다음 단계: Phase 2 (vibe-plan — 기획서 작성)
|
|
501
|
+
|
|
502
|
+
이어서 진행할까요?
|
|
503
|
+
Enter / yes → 이어서 진행
|
|
504
|
+
list → 다른 진행 중 작업 목록 보기
|
|
505
|
+
new → 새 아이디어로 시작
|
|
506
|
+
abort → 종료
|
|
507
|
+
|
|
508
|
+
User: yes
|
|
509
|
+
|
|
510
|
+
Claude: [Phase 2 진입]
|
|
511
|
+
.last-feature = bean-landing
|
|
512
|
+
[vibe-plan 스킬 로드]
|
|
513
|
+
...
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
### 예시 6: 여러 feature 중 선택 (Fallback list 모드)
|
|
517
|
+
```
|
|
518
|
+
User: /vibe.spec
|
|
519
|
+
|
|
520
|
+
Claude: (.last-feature 없음 → 디렉토리 스캔)
|
|
521
|
+
|
|
522
|
+
🔍 진행 중인 작업
|
|
523
|
+
|
|
524
|
+
1. bean-landing [interview: partial] 2일 전
|
|
525
|
+
2. todo-app [plan: complete] 어제
|
|
526
|
+
3. payment-api [spec: complete] 방금 전
|
|
527
|
+
─────────────────────────────────────────────
|
|
528
|
+
n. ➕ 새로 시작
|
|
529
|
+
a. 종료
|
|
530
|
+
|
|
531
|
+
선택 번호 또는 feature 이름을 입력하세요:
|
|
532
|
+
|
|
533
|
+
User: 2
|
|
534
|
+
|
|
535
|
+
Claude: Feature: todo-app 선택
|
|
536
|
+
✅ plan 완성 → Phase 3 (vibe-spec) 진입
|
|
537
|
+
.last-feature = todo-app
|
|
538
|
+
...
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
## Rollback / Resume
|
|
542
|
+
|
|
543
|
+
- 각 Phase 종료 시 상태가 `.claude/vibe/{interviews,plans,specs,features}/`에 저장됨
|
|
544
|
+
- **`.claude/vibe/.last-feature` pointer**가 각 Phase 진입 시 갱신되어 "가장 최근에 작업한 feature" 추적 (Phase 7 완주 시 삭제)
|
|
545
|
+
- 중단 시 다시 `/vibe.spec`으로 돌아오면 Smart Resume Fallback 동작:
|
|
546
|
+
- 인자 있음 (`/vibe.spec "feature-name"` 또는 파일 경로) → 해당 feature의 가장 진행된 단계 다음으로 바로 진입
|
|
547
|
+
- 인자 없음 → `.last-feature` 우선 제안 → 거부하면 진행 중 작업 목록 제시 → 또 거부하면 빈 시작
|
|
548
|
+
- 수동 개입 필요시 스킬 직접 호출 가능 (`Load skill vibe-interview` 등)
|
|
549
|
+
|
|
550
|
+
## Next Step
|
|
551
|
+
|
|
552
|
+
```
|
|
553
|
+
# 전형적인 사용
|
|
554
|
+
/vibe.spec "프로젝트 아이디어"
|
|
555
|
+
|
|
556
|
+
# 중간 단계 재개
|
|
557
|
+
/vibe.spec "feature-name"
|
|
558
|
+
|
|
559
|
+
# ultrawork 자동 완주
|
|
560
|
+
/vibe.spec "feature-name" ultrawork
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
---
|
|
564
|
+
|
|
565
|
+
ARGUMENTS: $ARGUMENTS
|