@su-record/vibe 2.16.4 → 3.1.0
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/CLAUDE.md +8 -8
- package/README.en.md +46 -29
- package/README.md +41 -24
- package/agents/acceptance-tester.md +56 -0
- package/agents/architect.md +25 -67
- package/agents/build-error-resolver.md +28 -97
- package/agents/code-reviewer.md +89 -0
- package/agents/diagrammer.md +34 -169
- package/agents/documenter.md +43 -0
- package/agents/e2e-tester.md +46 -281
- package/agents/event/event-ops.md +54 -77
- package/agents/event/event-planner.md +63 -0
- package/agents/figma/figma-engineer.md +76 -0
- package/agents/implementer.md +26 -41
- package/agents/security-reviewer.md +56 -0
- package/agents/tester.md +37 -33
- package/agents/ui/design-reviewer.md +62 -0
- package/agents/ui/design-system-gen.md +63 -0
- package/dist/cli/commands/remove.d.ts.map +1 -1
- package/dist/cli/commands/remove.js +8 -10
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/cli/index.d.ts +0 -4
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +0 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/model-refresh.js +1 -1
- package/dist/cli/llm/model-refresh.js.map +1 -1
- package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/claude-agents.js +16 -77
- package/dist/cli/postinstall/claude-agents.js.map +1 -1
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +80 -296
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-agents.d.ts +5 -0
- package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -1
- package/dist/cli/postinstall/cursor-agents.js +26 -68
- package/dist/cli/postinstall/cursor-agents.js.map +1 -1
- package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -1
- package/dist/cli/postinstall/cursor-skills.js +26 -30
- package/dist/cli/postinstall/cursor-skills.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +0 -2
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/setup/Provisioner.d.ts.map +1 -1
- package/dist/cli/setup/Provisioner.js +19 -21
- package/dist/cli/setup/Provisioner.js.map +1 -1
- package/dist/cli/utils.d.ts +4 -1
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +4 -1
- package/dist/cli/utils.js.map +1 -1
- package/dist/infra/lib/FrameworkDetector.js +4 -4
- package/dist/infra/lib/FrameworkDetector.js.map +1 -1
- package/dist/infra/lib/OrchestrateWorkflow.js +2 -2
- package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
- package/dist/infra/lib/browser/launch.js +1 -1
- package/dist/infra/lib/browser/launch.js.map +1 -1
- package/dist/infra/lib/browser/types.d.ts +1 -1
- package/dist/infra/lib/browser/types.js +1 -1
- package/dist/infra/lib/constants.d.ts +1 -1
- package/dist/infra/lib/constants.d.ts.map +1 -1
- package/dist/infra/lib/constants.js +4 -5
- package/dist/infra/lib/constants.js.map +1 -1
- package/dist/infra/lib/evolution/__tests__/integration.test.js +7 -7
- package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -1
- package/dist/infra/lib/memory/index.d.ts +0 -2
- package/dist/infra/lib/memory/index.d.ts.map +1 -1
- package/dist/infra/lib/memory/index.js +0 -2
- package/dist/infra/lib/memory/index.js.map +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
- package/dist/tools/index.d.ts +0 -4
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory/autoSaveContext.d.ts +0 -1
- package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
- package/dist/tools/memory/autoSaveContext.js +13 -27
- package/dist/tools/memory/autoSaveContext.js.map +1 -1
- package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -78
- package/hooks/scripts/__tests__/.vibe/memories/memories.db +0 -0
- package/hooks/scripts/__tests__/.vibe/memories/memories.db-shm +0 -0
- package/hooks/scripts/__tests__/.vibe/memories/memories.db-wal +0 -0
- package/hooks/scripts/__tests__/clone-behaviors.test.js +64 -0
- package/hooks/scripts/__tests__/clone-merge-responsive.test.js +106 -0
- package/hooks/scripts/__tests__/code-check-detectors.test.js +2 -2
- package/hooks/scripts/__tests__/run-ledger.test.js +1 -1
- package/hooks/scripts/__tests__/scope-from-spec.test.js +12 -12
- package/hooks/scripts/__tests__/step-counter.test.js +1 -1
- package/hooks/scripts/clone-extract.js +242 -28
- package/hooks/scripts/clone-merge-responsive.js +184 -0
- package/hooks/scripts/clone-spec.js +33 -8
- package/hooks/scripts/clone-validate.js +15 -9
- package/hooks/scripts/code-check.js +16 -203
- package/hooks/scripts/context-save.js +0 -11
- package/hooks/scripts/lib/scope-from-spec.js +9 -6
- package/hooks/scripts/post-edit-dispatcher.js +1 -1
- package/hooks/scripts/prompt-dispatcher.js +7 -18
- package/hooks/scripts/session-start.js +25 -35
- package/package.json +6 -5
- package/skills/agents-md/SKILL.md +62 -15
- package/skills/arch-guard/SKILL.md +1 -1
- package/skills/brand-assets/SKILL.md +2 -2
- package/skills/capability-loop/SKILL.md +1 -1
- package/skills/chub-usage/SKILL.md +1 -1
- package/skills/clone/SKILL.md +132 -55
- package/skills/commerce-patterns/SKILL.md +2 -2
- package/skills/commit-push-pr/SKILL.md +0 -1
- package/skills/context7-usage/SKILL.md +1 -1
- package/skills/design-refine/SKILL.md +140 -0
- package/skills/{design-polish → design-refine}/templates/polish-report.md +1 -1
- package/skills/{design-normalize → design-refine}/templates/token-audit.md +3 -3
- package/skills/design-review/SKILL.md +143 -0
- package/skills/{design-audit → design-review}/agents/a11y-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/performance-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/responsive-auditor.md +1 -1
- package/skills/{design-audit → design-review}/agents/slop-detector.md +1 -1
- package/skills/{design-audit → design-review}/frameworks/core-web-vitals.md +1 -1
- package/skills/{design-audit → design-review}/frameworks/wcag-checklist.md +1 -1
- package/skills/{design-audit → design-review}/orchestrator.md +3 -3
- package/skills/{design-critique → design-review}/templates/critique-report.md +3 -3
- package/skills/{design-audit → design-review}/templates/report.md +3 -3
- package/skills/design-teach/SKILL.md +11 -11
- package/skills/docs/SKILL.md +14 -16
- package/skills/e2e-commerce/SKILL.md +1 -1
- package/skills/event-comms/SKILL.md +1 -1
- package/skills/event-ops/SKILL.md +2 -2
- package/skills/event-planning/SKILL.md +1 -1
- package/skills/exec-plan/SKILL.md +2 -2
- package/skills/figma/SKILL.md +240 -148
- package/skills/figma/rubrics/css-mapping.md +125 -0
- package/skills/git-worktree/SKILL.md +1 -1
- package/skills/handoff/SKILL.md +1 -1
- package/skills/parallel-research/SKILL.md +14 -28
- package/skills/priority-todos/SKILL.md +1 -1
- package/skills/regress/SKILL.md +11 -0
- package/skills/restraint/SKILL.md +72 -0
- package/skills/seo-checklist/SKILL.md +2 -2
- package/skills/spec/SKILL.md +65 -836
- package/skills/test/SKILL.md +3 -3
- package/skills/tool-fallback/SKILL.md +2 -2
- package/skills/vercel-react-best-practices/SKILL.md +1 -1
- package/skills/vibe/SKILL.md +20 -35
- package/skills/vibe.analyze/SKILL.md +7 -9
- package/skills/vibe.clone/SKILL.md +39 -19
- package/skills/vibe.docs/SKILL.md +1 -1
- package/skills/vibe.event/SKILL.md +27 -27
- package/skills/vibe.figma/SKILL.md +14 -18
- package/skills/vibe.harness/SKILL.md +5 -5
- package/skills/vibe.reason/SKILL.md +0 -2
- package/skills/vibe.review/SKILL.md +45 -49
- package/skills/vibe.run/SKILL.md +2 -5
- package/skills/vibe.run/references/parallel-agents.md +33 -98
- package/skills/vibe.spec/SKILL.md +38 -535
- package/skills/vibe.utils/SKILL.md +3 -3
- package/skills/vibe.verify/SKILL.md +70 -542
- package/skills/video-production/SKILL.md +1 -1
- package/vibe/rules/orchestrator-contract.md +5 -4
- package/vibe/rules/quality/performance.md +1 -1
- package/vibe/templates/claudemd-template.md +1 -1
- package/vibe/templates/spec-template.md +35 -185
- package/agents/architect-low.md +0 -41
- package/agents/architect-medium.md +0 -59
- package/agents/compounder.md +0 -265
- package/agents/docs/api-documenter.md +0 -99
- package/agents/docs/changelog-writer.md +0 -93
- package/agents/event/event-comms.md +0 -78
- package/agents/event/event-content.md +0 -68
- package/agents/event/event-image.md +0 -95
- package/agents/event/event-scheduler.md +0 -69
- package/agents/event/event-speaker.md +0 -86
- package/agents/explorer-low.md +0 -42
- package/agents/explorer-medium.md +0 -59
- package/agents/explorer.md +0 -48
- package/agents/figma/figma-analyst.md +0 -56
- package/agents/figma/figma-architect.md +0 -116
- package/agents/figma/figma-auditor.md +0 -86
- package/agents/figma/figma-builder.md +0 -104
- package/agents/implementer-low.md +0 -43
- package/agents/implementer-medium.md +0 -52
- package/agents/junior-mentor.md +0 -141
- package/agents/planning/requirements-analyst.md +0 -84
- package/agents/planning/ux-advisor.md +0 -83
- package/agents/qa/acceptance-tester.md +0 -86
- package/agents/qa/edge-case-finder.md +0 -93
- package/agents/qa/qa-coordinator.md +0 -131
- package/agents/refactor-cleaner.md +0 -143
- package/agents/research/best-practices.md +0 -199
- package/agents/research/codebase-patterns.md +0 -157
- package/agents/research/framework-docs.md +0 -188
- package/agents/research/security-advisory.md +0 -213
- package/agents/review/architecture-reviewer.md +0 -107
- package/agents/review/complexity-reviewer.md +0 -116
- package/agents/review/data-integrity-reviewer.md +0 -88
- package/agents/review/git-history-reviewer.md +0 -103
- package/agents/review/performance-reviewer.md +0 -86
- package/agents/review/python-reviewer.md +0 -150
- package/agents/review/rails-reviewer.md +0 -139
- package/agents/review/react-reviewer.md +0 -144
- package/agents/review/security-reviewer.md +0 -80
- package/agents/review/simplicity-reviewer.md +0 -140
- package/agents/review/test-coverage-reviewer.md +0 -116
- package/agents/review/typescript-reviewer.md +0 -127
- package/agents/searcher.md +0 -54
- package/agents/simplifier.md +0 -124
- package/agents/teams/debug-team.md +0 -74
- package/agents/teams/dev-team.md +0 -92
- package/agents/teams/docs-team.md +0 -84
- package/agents/teams/figma-team.md +0 -89
- package/agents/teams/fullstack-team.md +0 -87
- package/agents/teams/lite-team.md +0 -73
- package/agents/teams/migration-team.md +0 -82
- package/agents/teams/refactor-team.md +0 -98
- package/agents/teams/research-team.md +0 -90
- package/agents/teams/review-debate-team.md +0 -129
- package/agents/teams/security-team.md +0 -85
- package/agents/ui/ui-a11y-auditor.md +0 -93
- package/agents/ui/ui-antipattern-detector.md +0 -102
- package/agents/ui/ui-dataviz-advisor.md +0 -69
- package/agents/ui/ui-design-system-gen.md +0 -57
- package/agents/ui/ui-industry-analyzer.md +0 -49
- package/agents/ui/ui-layout-architect.md +0 -65
- package/agents/ui/ui-stack-implementer.md +0 -68
- package/agents/ui/ux-compliance-reviewer.md +0 -81
- package/agents/ui-previewer.md +0 -262
- package/dist/cli/llm/gemini-commands.d.ts +0 -25
- package/dist/cli/llm/gemini-commands.d.ts.map +0 -1
- package/dist/cli/llm/gemini-commands.js +0 -143
- package/dist/cli/llm/gemini-commands.js.map +0 -1
- package/dist/cli/postinstall/codex-agents.d.ts +0 -24
- package/dist/cli/postinstall/codex-agents.d.ts.map +0 -1
- package/dist/cli/postinstall/codex-agents.js +0 -114
- package/dist/cli/postinstall/codex-agents.js.map +0 -1
- package/dist/cli/postinstall/codex-instruction.d.ts +0 -10
- package/dist/cli/postinstall/codex-instruction.d.ts.map +0 -1
- package/dist/cli/postinstall/codex-instruction.js +0 -56
- package/dist/cli/postinstall/codex-instruction.js.map +0 -1
- package/dist/cli/postinstall/gemini-agents.d.ts +0 -12
- package/dist/cli/postinstall/gemini-agents.d.ts.map +0 -1
- package/dist/cli/postinstall/gemini-agents.js +0 -80
- package/dist/cli/postinstall/gemini-agents.js.map +0 -1
- package/dist/cli/postinstall/gemini-instruction.d.ts +0 -10
- package/dist/cli/postinstall/gemini-instruction.d.ts.map +0 -1
- package/dist/cli/postinstall/gemini-instruction.js +0 -59
- package/dist/cli/postinstall/gemini-instruction.js.map +0 -1
- package/dist/infra/lib/ContextCompressor.d.ts +0 -104
- package/dist/infra/lib/ContextCompressor.d.ts.map +0 -1
- package/dist/infra/lib/ContextCompressor.js +0 -297
- package/dist/infra/lib/ContextCompressor.js.map +0 -1
- package/dist/infra/lib/ContextCompressor.test.d.ts +0 -2
- package/dist/infra/lib/ContextCompressor.test.d.ts.map +0 -1
- package/dist/infra/lib/ContextCompressor.test.js +0 -25
- package/dist/infra/lib/ContextCompressor.test.js.map +0 -1
- package/dist/infra/lib/ProgressTracker.d.ts +0 -73
- package/dist/infra/lib/ProgressTracker.d.ts.map +0 -1
- package/dist/infra/lib/ProgressTracker.js +0 -267
- package/dist/infra/lib/ProgressTracker.js.map +0 -1
- package/dist/infra/lib/TokenBudgetTracker.d.ts +0 -68
- package/dist/infra/lib/TokenBudgetTracker.d.ts.map +0 -1
- package/dist/infra/lib/TokenBudgetTracker.js +0 -191
- package/dist/infra/lib/TokenBudgetTracker.js.map +0 -1
- package/dist/infra/lib/autonomy/AuditStore.d.ts +0 -63
- package/dist/infra/lib/autonomy/AuditStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AuditStore.js +0 -185
- package/dist/infra/lib/autonomy/AuditStore.js.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +0 -84
- package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyConfig.js +0 -49
- package/dist/infra/lib/autonomy/AutonomyConfig.js.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +0 -78
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +0 -246
- package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +0 -1
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +0 -36
- package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/BackgroundMonitor.js +0 -138
- package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +0 -1
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +0 -56
- package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/CollaborationProtocol.js +0 -122
- package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +0 -42
- package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationManager.js +0 -200
- package/dist/infra/lib/autonomy/ConfirmationManager.js.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +0 -55
- package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ConfirmationStore.js +0 -130
- package/dist/infra/lib/autonomy/ConfirmationStore.js.map +0 -1
- package/dist/infra/lib/autonomy/EventBus.d.ts +0 -20
- package/dist/infra/lib/autonomy/EventBus.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/EventBus.js +0 -119
- package/dist/infra/lib/autonomy/EventBus.js.map +0 -1
- package/dist/infra/lib/autonomy/EventOutbox.d.ts +0 -32
- package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/EventOutbox.js +0 -152
- package/dist/infra/lib/autonomy/EventOutbox.js.map +0 -1
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +0 -24
- package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/NotificationDispatcher.js +0 -112
- package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +0 -1
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts +0 -76
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/PolicyEngine.js +0 -208
- package/dist/infra/lib/autonomy/PolicyEngine.js.map +0 -1
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +0 -61
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +0 -236
- package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +0 -1
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts +0 -35
- package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/RiskClassifier.js +0 -147
- package/dist/infra/lib/autonomy/RiskClassifier.js.map +0 -1
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +0 -51
- package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/SecuritySentinel.js +0 -162
- package/dist/infra/lib/autonomy/SecuritySentinel.js.map +0 -1
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts +0 -54
- package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +0 -144
- package/dist/infra/lib/autonomy/SuggestionStore.js.map +0 -1
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +0 -38
- package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/TaskDecomposer.js +0 -175
- package/dist/infra/lib/autonomy/TaskDecomposer.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +0 -198
- package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +0 -225
- package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js +0 -194
- package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/governance.test.js +0 -540
- package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/integration.test.js +0 -480
- package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js +0 -410
- package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +0 -2
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +0 -486
- package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +0 -1
- package/dist/infra/lib/autonomy/index.d.ts +0 -18
- package/dist/infra/lib/autonomy/index.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/index.js +0 -22
- package/dist/infra/lib/autonomy/index.js.map +0 -1
- package/dist/infra/lib/autonomy/schemas.d.ts +0 -317
- package/dist/infra/lib/autonomy/schemas.d.ts.map +0 -1
- package/dist/infra/lib/autonomy/schemas.js +0 -90
- package/dist/infra/lib/autonomy/schemas.js.map +0 -1
- package/dist/infra/lib/claude/index.d.ts +0 -5
- package/dist/infra/lib/claude/index.d.ts.map +0 -1
- package/dist/infra/lib/claude/index.js +0 -5
- package/dist/infra/lib/claude/index.js.map +0 -1
- package/dist/infra/lib/claude/storage.d.ts +0 -12
- package/dist/infra/lib/claude/storage.d.ts.map +0 -1
- package/dist/infra/lib/claude/storage.js +0 -54
- package/dist/infra/lib/claude/storage.js.map +0 -1
- package/dist/infra/lib/gemini/auth.d.ts +0 -18
- package/dist/infra/lib/gemini/auth.d.ts.map +0 -1
- package/dist/infra/lib/gemini/auth.js +0 -32
- package/dist/infra/lib/gemini/auth.js.map +0 -1
- package/dist/infra/lib/gemini/capabilities.d.ts +0 -28
- package/dist/infra/lib/gemini/capabilities.d.ts.map +0 -1
- package/dist/infra/lib/gemini/capabilities.js +0 -178
- package/dist/infra/lib/gemini/capabilities.js.map +0 -1
- package/dist/infra/lib/gemini/chat.d.ts +0 -35
- package/dist/infra/lib/gemini/chat.d.ts.map +0 -1
- package/dist/infra/lib/gemini/chat.js +0 -161
- package/dist/infra/lib/gemini/chat.js.map +0 -1
- package/dist/infra/lib/gemini/completion.d.ts +0 -12
- package/dist/infra/lib/gemini/completion.d.ts.map +0 -1
- package/dist/infra/lib/gemini/completion.js +0 -13
- package/dist/infra/lib/gemini/completion.js.map +0 -1
- package/dist/infra/lib/gemini/constants.d.ts +0 -8
- package/dist/infra/lib/gemini/constants.d.ts.map +0 -1
- package/dist/infra/lib/gemini/constants.js +0 -11
- package/dist/infra/lib/gemini/constants.js.map +0 -1
- package/dist/infra/lib/gemini/index.d.ts +0 -13
- package/dist/infra/lib/gemini/index.d.ts.map +0 -1
- package/dist/infra/lib/gemini/index.js +0 -12
- package/dist/infra/lib/gemini/index.js.map +0 -1
- package/dist/infra/lib/gemini/models.d.ts +0 -11
- package/dist/infra/lib/gemini/models.d.ts.map +0 -1
- package/dist/infra/lib/gemini/models.js +0 -38
- package/dist/infra/lib/gemini/models.js.map +0 -1
- package/dist/infra/lib/gemini/orchestration.d.ts +0 -33
- package/dist/infra/lib/gemini/orchestration.d.ts.map +0 -1
- package/dist/infra/lib/gemini/orchestration.js +0 -62
- package/dist/infra/lib/gemini/orchestration.js.map +0 -1
- package/dist/infra/lib/gemini/types.d.ts +0 -115
- package/dist/infra/lib/gemini/types.d.ts.map +0 -1
- package/dist/infra/lib/gemini/types.js +0 -5
- package/dist/infra/lib/gemini/types.js.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts +0 -64
- package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.js +0 -127
- package/dist/infra/orchestrator/AgentAnnouncer.js.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +0 -5
- package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentAnnouncer.test.js +0 -119
- package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +0 -1
- package/dist/infra/orchestrator/AgentExecutor.d.ts +0 -22
- package/dist/infra/orchestrator/AgentExecutor.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentExecutor.js +0 -272
- package/dist/infra/orchestrator/AgentExecutor.js.map +0 -1
- package/dist/infra/orchestrator/AgentManager.d.ts +0 -72
- package/dist/infra/orchestrator/AgentManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentManager.js +0 -183
- package/dist/infra/orchestrator/AgentManager.js.map +0 -1
- package/dist/infra/orchestrator/AgentManifestCache.d.ts +0 -54
- package/dist/infra/orchestrator/AgentManifestCache.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentManifestCache.js +0 -191
- package/dist/infra/orchestrator/AgentManifestCache.js.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.d.ts +0 -76
- package/dist/infra/orchestrator/AgentRegistry.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.js +0 -217
- package/dist/infra/orchestrator/AgentRegistry.js.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts +0 -5
- package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/AgentRegistry.test.js +0 -122
- package/dist/infra/orchestrator/AgentRegistry.test.js.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.d.ts +0 -128
- package/dist/infra/orchestrator/BackgroundManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.js +0 -620
- package/dist/infra/orchestrator/BackgroundManager.js.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.test.d.ts +0 -6
- package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/BackgroundManager.test.js +0 -162
- package/dist/infra/orchestrator/BackgroundManager.test.js.map +0 -1
- package/dist/infra/orchestrator/CheckpointManager.d.ts +0 -54
- package/dist/infra/orchestrator/CheckpointManager.d.ts.map +0 -1
- package/dist/infra/orchestrator/CheckpointManager.js +0 -121
- package/dist/infra/orchestrator/CheckpointManager.js.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +0 -12
- package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.js +0 -94
- package/dist/infra/orchestrator/CodexAgentRuntime.js.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +0 -2
- package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js +0 -37
- package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +0 -1
- package/dist/infra/orchestrator/LLMCluster.d.ts +0 -82
- package/dist/infra/orchestrator/LLMCluster.d.ts.map +0 -1
- package/dist/infra/orchestrator/LLMCluster.js +0 -146
- package/dist/infra/orchestrator/LLMCluster.js.map +0 -1
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts +0 -31
- package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +0 -1
- package/dist/infra/orchestrator/MultiLlmResearch.js +0 -160
- package/dist/infra/orchestrator/MultiLlmResearch.js.map +0 -1
- package/dist/infra/orchestrator/PhasePipeline.d.ts +0 -122
- package/dist/infra/orchestrator/PhasePipeline.d.ts.map +0 -1
- package/dist/infra/orchestrator/PhasePipeline.js +0 -385
- package/dist/infra/orchestrator/PhasePipeline.js.map +0 -1
- package/dist/infra/orchestrator/PhaseResultStore.d.ts +0 -39
- package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +0 -1
- package/dist/infra/orchestrator/PhaseResultStore.js +0 -151
- package/dist/infra/orchestrator/PhaseResultStore.js.map +0 -1
- package/dist/infra/orchestrator/SessionStore.d.ts +0 -40
- package/dist/infra/orchestrator/SessionStore.d.ts.map +0 -1
- package/dist/infra/orchestrator/SessionStore.js +0 -116
- package/dist/infra/orchestrator/SessionStore.js.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.d.ts +0 -90
- package/dist/infra/orchestrator/SmartRouter.d.ts.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.js +0 -277
- package/dist/infra/orchestrator/SmartRouter.js.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.test.d.ts +0 -5
- package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/SmartRouter.test.js +0 -484
- package/dist/infra/orchestrator/SmartRouter.test.js.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +0 -143
- package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.js +0 -378
- package/dist/infra/orchestrator/SwarmOrchestrator.js.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
- package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +0 -95
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +0 -1
- package/dist/infra/orchestrator/agentDiscovery.d.ts +0 -26
- package/dist/infra/orchestrator/agentDiscovery.d.ts.map +0 -1
- package/dist/infra/orchestrator/agentDiscovery.js +0 -175
- package/dist/infra/orchestrator/agentDiscovery.js.map +0 -1
- package/dist/infra/orchestrator/backgroundAgent.d.ts +0 -9
- package/dist/infra/orchestrator/backgroundAgent.d.ts.map +0 -1
- package/dist/infra/orchestrator/backgroundAgent.js +0 -10
- package/dist/infra/orchestrator/backgroundAgent.js.map +0 -1
- package/dist/infra/orchestrator/index.d.ts +0 -207
- package/dist/infra/orchestrator/index.d.ts.map +0 -1
- package/dist/infra/orchestrator/index.js +0 -362
- package/dist/infra/orchestrator/index.js.map +0 -1
- package/dist/infra/orchestrator/orchestrator.d.ts +0 -60
- package/dist/infra/orchestrator/orchestrator.d.ts.map +0 -1
- package/dist/infra/orchestrator/orchestrator.js +0 -214
- package/dist/infra/orchestrator/orchestrator.js.map +0 -1
- package/dist/infra/orchestrator/parallelResearch.d.ts +0 -27
- package/dist/infra/orchestrator/parallelResearch.d.ts.map +0 -1
- package/dist/infra/orchestrator/parallelResearch.js +0 -285
- package/dist/infra/orchestrator/parallelResearch.js.map +0 -1
- package/dist/infra/orchestrator/types.d.ts +0 -205
- package/dist/infra/orchestrator/types.d.ts.map +0 -1
- package/dist/infra/orchestrator/types.js +0 -87
- package/dist/infra/orchestrator/types.js.map +0 -1
- package/dist/infra/orchestrator/types.test.d.ts +0 -2
- package/dist/infra/orchestrator/types.test.d.ts.map +0 -1
- package/dist/infra/orchestrator/types.test.js +0 -57
- package/dist/infra/orchestrator/types.test.js.map +0 -1
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts +0 -12
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +0 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +0 -359
- package/dist/tools/semantic/analyzeDependencyGraph.js.map +0 -1
- package/dist/tools/semantic/astGrep.d.ts +0 -25
- package/dist/tools/semantic/astGrep.d.ts.map +0 -1
- package/dist/tools/semantic/astGrep.js +0 -324
- package/dist/tools/semantic/astGrep.js.map +0 -1
- package/dist/tools/semantic/astGrep.test.d.ts +0 -2
- package/dist/tools/semantic/astGrep.test.d.ts.map +0 -1
- package/dist/tools/semantic/astGrep.test.js +0 -74
- package/dist/tools/semantic/astGrep.test.js.map +0 -1
- package/dist/tools/semantic/findReferences.d.ts +0 -9
- package/dist/tools/semantic/findReferences.d.ts.map +0 -1
- package/dist/tools/semantic/findReferences.js +0 -200
- package/dist/tools/semantic/findReferences.js.map +0 -1
- package/dist/tools/semantic/findSymbol.d.ts +0 -8
- package/dist/tools/semantic/findSymbol.d.ts.map +0 -1
- package/dist/tools/semantic/findSymbol.js +0 -204
- package/dist/tools/semantic/findSymbol.js.map +0 -1
- package/dist/tools/semantic/index.d.ts +0 -9
- package/dist/tools/semantic/index.d.ts.map +0 -1
- package/dist/tools/semantic/index.js +0 -11
- package/dist/tools/semantic/index.js.map +0 -1
- package/dist/tools/semantic/lsp.d.ts +0 -68
- package/dist/tools/semantic/lsp.d.ts.map +0 -1
- package/dist/tools/semantic/lsp.js +0 -561
- package/dist/tools/semantic/lsp.js.map +0 -1
- package/dist/tools/spec/e2eTestGenerator.d.ts +0 -61
- package/dist/tools/spec/e2eTestGenerator.d.ts.map +0 -1
- package/dist/tools/spec/e2eTestGenerator.js +0 -255
- package/dist/tools/spec/e2eTestGenerator.js.map +0 -1
- package/dist/tools/spec/specVersioning.d.ts +0 -76
- package/dist/tools/spec/specVersioning.d.ts.map +0 -1
- package/dist/tools/spec/specVersioning.js +0 -236
- package/dist/tools/spec/specVersioning.js.map +0 -1
- package/hooks/scripts/__tests__/keyword-detector.test.js +0 -242
- package/hooks/scripts/keyword-detector.js +0 -226
- package/skills/characterization-test/SKILL.md +0 -209
- package/skills/characterization-test/agents/behavior-capturer.md +0 -50
- package/skills/characterization-test/agents/coverage-checker.md +0 -54
- package/skills/characterization-test/agents/reporter.md +0 -50
- package/skills/characterization-test/agents/test-writer.md +0 -49
- package/skills/characterization-test/rubrics/coverage-criteria.md +0 -53
- package/skills/characterization-test/templates/test-template.ts +0 -101
- package/skills/claude-md-guide/SKILL.md +0 -353
- package/skills/claude-md-guide/rubrics/anti-patterns.md +0 -88
- package/skills/design-audit/SKILL.md +0 -154
- package/skills/design-critique/SKILL.md +0 -140
- package/skills/design-distill/SKILL.md +0 -131
- package/skills/design-normalize/SKILL.md +0 -135
- package/skills/design-polish/SKILL.md +0 -132
- package/skills/figma-convert/SKILL.md +0 -236
- package/skills/figma-extract/SKILL.md +0 -242
- package/skills/interview/SKILL.md +0 -358
- package/skills/interview/checklists/api.md +0 -101
- package/skills/interview/checklists/feature.md +0 -88
- package/skills/interview/checklists/library.md +0 -95
- package/skills/interview/checklists/mobile.md +0 -89
- package/skills/interview/checklists/webapp.md +0 -97
- package/skills/interview/checklists/website.md +0 -99
- package/skills/plan/SKILL.md +0 -254
- package/skills/rob-pike/SKILL.md +0 -66
- package/skills/spec/references/askuser-examples.md +0 -57
- package/skills/spec/references/example-session.md +0 -87
- package/skills/spec/references/templates.md +0 -194
- package/skills/spec-review/SKILL.md +0 -725
- package/skills/systematic-debugging/SKILL.md +0 -142
- package/skills/techdebt/SKILL.md +0 -126
- package/skills/techdebt/agents/analyzer.md +0 -50
- package/skills/techdebt/agents/fixer.md +0 -41
- package/skills/techdebt/agents/reviewer.md +0 -47
- package/skills/techdebt/agents/scanner.md +0 -44
- package/skills/techdebt/orchestrator.md +0 -72
- package/skills/techdebt/rubrics/severity.md +0 -51
- package/skills/techdebt/scripts/scan.js +0 -90
- package/skills/techdebt/templates/report.md +0 -86
- package/skills/typescript-advanced-types/SKILL.md +0 -68
- package/skills/typescript-advanced-types/rubrics/type-patterns.md +0 -109
- package/skills/yagni-ladder/SKILL.md +0 -90
- /package/skills/{claude-md-guide → agents-md}/templates/claude-md.md +0 -0
- /package/skills/{design-polish → design-refine}/rubrics/polish-checklist.md +0 -0
- /package/skills/{design-normalize → design-refine}/rubrics/token-naming.md +0 -0
- /package/skills/{design-distill → design-refine}/templates/design-system.md +0 -0
- /package/skills/{design-audit → design-review}/agents/scorer.md +0 -0
- /package/skills/{design-audit → design-review}/rubrics/ai-slop-patterns.md +0 -0
- /package/skills/{design-audit → design-review}/rubrics/scoring.md +0 -0
- /package/skills/{design-critique → design-review}/rubrics/ux-heuristics.md +0 -0
- /package/skills/{figma-convert → figma}/rubrics/conversion-rules.md +0 -0
- /package/skills/{figma-extract → figma}/rubrics/image-rules.md +0 -0
- /package/skills/{figma-convert → figma}/templates/component.md +0 -0
|
@@ -1,579 +1,82 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vibe.spec
|
|
3
|
-
description:
|
|
4
|
-
argument-hint: "(선택) feature name,
|
|
3
|
+
description: SPEC 진입점 — 자연어 요구사항(+첨부)을 받아 단일 패스 SPEC 작성 → 1회 승인 → /vibe.run 핸드오프
|
|
4
|
+
argument-hint: "(선택) feature name, requirement, file path, or idea"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# /vibe.spec
|
|
9
9
|
|
|
10
|
-
**
|
|
10
|
+
**SPEC 단계의 얇은 진입점.** 요구사항을 받아 `spec` 스킬(단일 패스)을 실행하고, SPEC 승인(유일한 의무 게이트) 후 `/vibe.run` 으로 넘긴다. interview → plan → spec → review 다단계 파이프라인은 폐지되었다 — 명확화 질문은 spec 패스 안에서 인라인으로, 리뷰는 셀프 리뷰 1회로 흡수됐다.
|
|
11
11
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
/vibe.spec
|
|
16
|
-
/vibe.spec "패럴랙스 웹사이트"
|
|
17
|
-
/vibe.spec "
|
|
18
|
-
/vibe.spec
|
|
19
|
-
/vibe.spec "
|
|
20
|
-
/vibe.spec + 📎 첨부 # 첨부 기반 시작
|
|
21
|
-
/vibe.spec "feature-name" ultrawork # 중단 게이트 없이 자동 전 흐름 실행
|
|
15
|
+
/vibe.spec # 빈 시작 — Smart Resume 또는 "무엇을 만들까요?"
|
|
16
|
+
/vibe.spec "패럴랙스 웹사이트" # 아이디어/요구사항으로 시작
|
|
17
|
+
/vibe.spec "docs/prd.md" # 외부 PRD/아이디어 파일 입력
|
|
18
|
+
/vibe.spec + 📎 첨부 # 첨부 기반 시작
|
|
19
|
+
/vibe.spec "feature-name" # 기존 feature 재개
|
|
22
20
|
```
|
|
23
21
|
|
|
24
|
-
## Philosophy
|
|
25
|
-
|
|
26
|
-
> **사용자는 "무엇을 만들지"만 말하면 된다. 어떤 스킬을 언제 부를지는 vibe가 결정한다.**
|
|
27
|
-
|
|
28
|
-
- **단일 진입점**: `/vibe.spec` 하나로 전체 워크플로 시작. 다른 `/vibe.*` 커맨드 이름 외울 필요 없음.
|
|
29
|
-
- **Smart resume**: 기존 interview/plan/spec 파일 존재 여부로 어느 단계부터 시작할지 자동 판단.
|
|
30
|
-
- **자동 체이닝**: 스킬 `chain-next` 메타데이터 따라 interview → plan → spec → spec-review 진행.
|
|
31
|
-
- **분기 판단**: 기획서의 `type` 필드로 UI 트랙/로직 트랙 여부 결정.
|
|
32
|
-
- **사용자 제어**: 각 단계 사이에 사용자 확인 지점(stop gate) 제공 (ultrawork 모드는 스킵).
|
|
33
|
-
|
|
34
22
|
## Flow
|
|
35
23
|
|
|
36
24
|
```
|
|
37
25
|
/vibe.spec ["input"?]
|
|
38
26
|
↓
|
|
39
|
-
|
|
40
|
-
↓
|
|
41
|
-
Phase 0.5: Input 분석 + Smart resume 결정
|
|
42
|
-
- 첨부/파일/아이디어 감지
|
|
43
|
-
- 기존 .vibe/{interviews,plans,specs}/ 확인
|
|
44
|
-
- 시작 단계 결정: interview | plan | spec | review
|
|
45
|
-
↓
|
|
46
|
-
Phase 1: Interview (skill: interview)
|
|
47
|
-
- 조건: interview 파일 없음
|
|
48
|
-
- 사용자 "그만"까지 반복 인터뷰
|
|
49
|
-
- 출력: .vibe/interviews/{feature}.md
|
|
50
|
-
↓
|
|
51
|
-
[Stop Gate 1] — ultrawork 모드에서는 스킵
|
|
27
|
+
Input 분석 + Smart Resume
|
|
52
28
|
↓
|
|
53
|
-
|
|
54
|
-
- 조건: plan 파일 없음
|
|
55
|
-
- interview → 마크다운 기획서 정제
|
|
56
|
-
- 출력: .vibe/plans/{feature}.md
|
|
29
|
+
Load skill `spec` — 단일 패스: 컨텍스트 수집 → (필요시) 인라인 질문 → SPEC + Feature 작성 → 셀프 리뷰 1회
|
|
57
30
|
↓
|
|
58
|
-
|
|
59
|
-
기획서 type 읽고 경로 결정:
|
|
60
|
-
- website/webapp/mobile → UI + Logic 병렬
|
|
61
|
-
- api/library/feature-data → Logic만
|
|
31
|
+
SPEC 승인 (1회 — automationLevel: autonomous 면 생략)
|
|
62
32
|
↓
|
|
63
|
-
Phase 3: SPEC 작성 (skill: spec)
|
|
64
|
-
- PTCF 구조 SPEC 문서 + Feature(BDD) 파일
|
|
65
|
-
- Parallel research (GPT/Antigravity/Claude agents)
|
|
66
|
-
- Large scope 자동 분할
|
|
67
|
-
- Ambiguity scan + 품질 게이트(100점, 수렴까지 루프)
|
|
68
|
-
- 출력: .vibe/specs/{feature}.md + .vibe/features/{feature}.feature
|
|
69
|
-
↓
|
|
70
|
-
Phase 4: SPEC Review (skill: spec-review)
|
|
71
|
-
- Race Review (GPT + Antigravity, 라운드 수 캡 없음, 수렴까지 루프)
|
|
72
|
-
- (옵션) Codex adversarial review
|
|
73
|
-
- 사용자 최종 체크포인트
|
|
74
|
-
↓
|
|
75
|
-
Phase 5a: Logic Track → /vibe.run
|
|
76
|
-
Phase 5b: UI Track (병렬, UI 프로젝트만) → /vibe.figma
|
|
77
|
-
↓
|
|
78
|
-
Phase 6: Verify (/vibe.verify)
|
|
79
|
-
Phase 7: Trace (/vibe.trace)
|
|
80
|
-
↓
|
|
81
|
-
Done
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Rules Reference
|
|
85
|
-
|
|
86
|
-
**`~/.claude/vibe/rules/` (global) 준수:**
|
|
87
|
-
|
|
88
|
-
- `core/development-philosophy.md`
|
|
89
|
-
- `core/quick-start.md` — Korean first
|
|
90
|
-
- `core/communication-guide.md`
|
|
91
|
-
|
|
92
|
-
## Process
|
|
93
|
-
|
|
94
|
-
> **⏱️ Timer**: 시작 시 `getCurrentTime` 호출, `{start_time}`로 기록.
|
|
95
|
-
|
|
96
|
-
### Phase 0: Git Branch Setup (MANDATORY)
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
git branch --show-current
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
| 현재 | 행동 |
|
|
103
|
-
|-----|-----|
|
|
104
|
-
| `main`/`master` | 임시 이름으로 `git checkout -b vibe/tmp` (이후 feature 이름 확정되면 리네임) |
|
|
105
|
-
| `feature/*`, `plan/*`, `interview/*`, `vibe/*` | 확인: "이 브랜치에서 계속?" |
|
|
106
|
-
| 기타 | 사용자 확인 |
|
|
107
|
-
|
|
108
|
-
### Phase 0.5: Input 분석 + Smart Resume
|
|
109
|
-
|
|
110
|
-
**입력 우선순위:**
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
1. 📎 첨부 파일 있음? → 첨부 분석 → feature name 추출
|
|
114
|
-
2. 인자가 파일 경로? → 파일 위치로 시작 단계 결정:
|
|
115
|
-
.vibe/interviews/*.md → Phase 2 (plan)
|
|
116
|
-
.vibe/plans/*.md → Phase 3 (spec)
|
|
117
|
-
.vibe/specs/*.md → Phase 4 (review)
|
|
118
|
-
기타 (.md/.txt/.pdf) → Phase 2 (plan, 외부 PRD 흡수)
|
|
119
|
-
3. 인자가 feature name? → .vibe/에서 기존 파일 검색
|
|
120
|
-
existing spec → "리뷰 재실행? 이어서? 재작성?" 물음
|
|
121
|
-
existing plan → Phase 3 (spec)
|
|
122
|
-
existing interview → Phase 2 (plan)
|
|
123
|
-
아무것도 없음 → Phase 1 (interview)
|
|
124
|
-
4. 인자 없음 → Smart Resume Fallback 알고리즘 실행 (아래 참조)
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
#### Smart Resume Fallback (인자 없는 `/vibe.spec` 호출 시)
|
|
128
|
-
|
|
129
|
-
**목적**: feature 이름을 기억하지 못해도 진행 중 작업을 자동 발견해서 이어서 진행할 수 있게 한다.
|
|
130
|
-
|
|
131
|
-
```
|
|
132
|
-
알고리즘:
|
|
133
|
-
|
|
134
|
-
Step 1) .vibe/.last-feature 확인 (pointer 파일)
|
|
135
|
-
- 파일 없음 → Step 2로
|
|
136
|
-
- 존재 → 해당 feature의 상태 요약 출력 + 확인 질문:
|
|
137
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138
|
-
🔄 마지막 작업: {feature-name}
|
|
139
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
140
|
-
✅ interview: .vibe/interviews/{feature}.md (status: complete, N일 전)
|
|
141
|
-
✅ plan: .vibe/plans/{feature}.md (N일 전)
|
|
142
|
-
❌ spec: 없음
|
|
143
|
-
→ 다음 단계: Phase 3 (spec 스킬 — SPEC 작성)
|
|
144
|
-
|
|
145
|
-
이어서 진행할까요?
|
|
146
|
-
Enter / yes → 이어서 진행
|
|
147
|
-
list → 다른 진행 중 작업 목록 보기
|
|
148
|
-
new → 새 아이디어로 시작
|
|
149
|
-
abort → 종료"
|
|
150
|
-
|
|
151
|
-
- yes → Phase 0.5의 인자 분석 경로 3번 (feature name)으로 진입
|
|
152
|
-
- list → Step 2로
|
|
153
|
-
- new → Step 3으로
|
|
154
|
-
- abort → 종료
|
|
155
|
-
|
|
156
|
-
Step 2) 진행 중 작업 목록 표시 (.vibe/ 디렉토리 스캔)
|
|
157
|
-
수집:
|
|
158
|
-
features = {} (feature name → {hasInterview, hasPlan, hasSpec, mtime})
|
|
159
|
-
for each file in .vibe/interviews/*.md:
|
|
160
|
-
feature = basename without .md
|
|
161
|
-
features[feature].hasInterview = true
|
|
162
|
-
features[feature].interviewMtime = file.mtime
|
|
163
|
-
features[feature].interviewStatus = frontmatter의 status (complete/partial)
|
|
164
|
-
동일하게 plans/*.md, specs/*.md 스캔
|
|
165
|
-
|
|
166
|
-
정렬: 가장 최근 작업 (max mtime) 순
|
|
167
|
-
최대 10개까지 표시
|
|
168
|
-
|
|
169
|
-
진행 중 작업 0개 → Step 3으로
|
|
170
|
-
1개 이상 → 목록 출력 + 선택 질문:
|
|
171
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
172
|
-
🔍 진행 중인 작업
|
|
173
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
174
|
-
|
|
175
|
-
1. bean-landing [interview: partial] 2일 전
|
|
176
|
-
2. todo-app [plan: complete] 어제
|
|
177
|
-
3. payment-api [spec: complete] 방금 전
|
|
178
|
-
─────────────────────────────────────────────
|
|
179
|
-
n. ➕ 새로 시작
|
|
180
|
-
a. 종료
|
|
181
|
-
|
|
182
|
-
선택 번호 또는 feature 이름을 입력하세요:"
|
|
183
|
-
|
|
184
|
-
사용자 응답 처리:
|
|
185
|
-
- 숫자 (1~N) → 해당 feature 선택 → 인자 분석 경로 3번으로
|
|
186
|
-
- 정확한 feature 이름 → 인자 분석 경로 3번으로
|
|
187
|
-
- "n" 또는 "new" → Step 3으로
|
|
188
|
-
- "a" 또는 "abort" → 종료
|
|
189
|
-
- 자유 텍스트 (매칭 없음) → "{입력}은 기존 feature가 아닙니다. 새로 시작할까요? (y/n)" 확인
|
|
190
|
-
|
|
191
|
-
Step 3) 빈 시작 (기존 동작)
|
|
192
|
-
"👋 무엇을 만들고 싶으신가요?" 질문 → Phase 1 (interview)
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
#### `.last-feature` 포인터 파일 갱신 규칙
|
|
196
|
-
|
|
197
|
-
```
|
|
198
|
-
경로: .vibe/.last-feature
|
|
199
|
-
형식: 한 줄, feature name만 저장
|
|
200
|
-
예: "bean-landing\n"
|
|
201
|
-
|
|
202
|
-
⚠ 이 파일은 **개인 작업 포인터**이므로 git에 커밋하지 않는다.
|
|
203
|
-
`.gitignore` 에 `.vibe/.last-feature` 엔트리 필수.
|
|
204
|
-
|
|
205
|
-
갱신 시점:
|
|
206
|
-
- Phase 1 (interview) 진입 시 → feature name 결정되면 즉시 기록
|
|
207
|
-
- Phase 2 (plan) 진입 시 → 기록 (이미 맞으면 no-op)
|
|
208
|
-
- Phase 3 (spec) 진입 시 → 기록
|
|
209
|
-
- Phase 4 (review) 진입 시 → 기록
|
|
210
|
-
|
|
211
|
-
즉, 어느 Phase에서 멈추든 다음 /vibe.spec 호출 시 이 feature가 1순위로 제안된다.
|
|
212
|
-
|
|
213
|
-
삭제 시점:
|
|
214
|
-
- Phase 7 (trace) 완료 시 → 파일 삭제 (워크플로 완주)
|
|
215
|
-
- 사용자가 명시적으로 종료/abort 선택 시 → 삭제하지 않음 (재개 가능하게)
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
**출력 예시:**
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
222
|
-
🔍 Input 분석
|
|
223
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
224
|
-
|
|
225
|
-
입력: "패럴랙스 웹사이트"
|
|
226
|
-
분류: 신규 아이디어
|
|
227
|
-
기존 파일: 없음
|
|
228
|
-
|
|
229
|
-
→ 시작 단계: Phase 1 (interview)
|
|
230
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### Phase 1: Interview (조건부)
|
|
234
|
-
|
|
235
|
-
**진입 조건:** interview 파일이 아직 없음
|
|
236
|
-
|
|
237
|
-
**진입 방식:**
|
|
238
|
-
|
|
239
|
-
1. **인자 있음** (`/vibe.spec "아이디어"`)
|
|
240
|
-
→ `interview` 스킬 로드 + 아이디어 전달
|
|
241
|
-
|
|
242
|
-
2. **인자 없음** (`/vibe.spec`)
|
|
243
|
-
→ **Smart Resume Fallback 먼저** (Phase 0.5 참조):
|
|
244
|
-
- `.last-feature` 있고 사용자가 "이어서" 선택 → 해당 feature로 진입 (이 Phase 1 건너뛸 수 있음)
|
|
245
|
-
- 진행 중 작업 목록에서 선택 → 해당 feature로 진입
|
|
246
|
-
- "new" 선택 or 진행 중 작업 없음 → 아래 질문으로 빈 시작
|
|
247
|
-
→ 빈 시작 질문:
|
|
248
|
-
```
|
|
249
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
250
|
-
👋 무엇을 만들고 싶으신가요?
|
|
251
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
252
|
-
|
|
253
|
-
예:
|
|
254
|
-
- "패럴랙스 웹사이트"
|
|
255
|
-
- "할 일 관리 앱"
|
|
256
|
-
- "Stripe 결제 연동 API"
|
|
257
|
-
- 또는 자유롭게 설명
|
|
258
|
-
|
|
259
|
-
(파일/이미지 첨부도 가능)
|
|
260
|
-
```
|
|
261
|
-
→ 사용자 응답 → `interview` 스킬 로드
|
|
262
|
-
|
|
263
|
-
**스킬 로드:**
|
|
264
|
-
|
|
265
|
-
```
|
|
266
|
-
Load skill `interview` with input: {user_idea}
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
> **`.last-feature` 갱신**: interview 스킬이 feature name을 확정하는 즉시 `.vibe/.last-feature` 에 한 줄로 기록. 이후 Phase 2/3/4 진입 시에도 동일 기록 유지 (값이 같으면 no-op).
|
|
270
|
-
|
|
271
|
-
`interview` 스킬이 자체적으로:
|
|
272
|
-
- 프로젝트 타입 감지 (website/webapp/mobile/api/library/feature)
|
|
273
|
-
- 타입별 체크리스트 로드 (`skills/interview/checklists/{type}.md`)
|
|
274
|
-
- 반복 인터뷰 실행 (사용자 "그만"까지)
|
|
275
|
-
- `.vibe/interviews/{feature-name}.md` 저장
|
|
276
|
-
|
|
277
|
-
**Stop Gate 1**: Interview 완료 후 (ultrawork 모드 스킵)
|
|
278
|
-
|
|
279
|
-
```
|
|
280
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
281
|
-
✅ Interview 완료
|
|
282
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
283
|
-
|
|
284
|
-
📄 .vibe/interviews/{feature}.md
|
|
285
|
-
Required: N/M | Optional: K/L | Discovered: X
|
|
286
|
-
|
|
287
|
-
다음 단계: 기획서 작성
|
|
288
|
-
1. 계속 진행 (기본)
|
|
289
|
-
2. Interview만 저장하고 종료
|
|
290
|
-
3. Interview 수정 후 다시 (interview 재실행)
|
|
291
|
-
|
|
292
|
-
Enter → 계속
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
### Phase 2: Plan (조건부)
|
|
296
|
-
|
|
297
|
-
**진입 조건:** plan 파일이 아직 없음
|
|
298
|
-
|
|
299
|
-
```
|
|
300
|
-
Load skill `plan` with input: .vibe/interviews/{feature}.md
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
`plan` 스킬이 자체적으로:
|
|
304
|
-
- 템플릿 로드 (`~/.claude/vibe/templates/plan-template.md`)
|
|
305
|
-
- Interview 섹션별 정제
|
|
306
|
-
- UI 섹션 조건부 포함 (type 기반)
|
|
307
|
-
- `.vibe/plans/{feature}.md` 저장
|
|
308
|
-
|
|
309
|
-
**Stop Gate 2**: 기획서 완료 후 + 분기 판단 (ultrawork 모드 스킵)
|
|
310
|
-
|
|
311
|
-
```
|
|
312
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
313
|
-
✅ 기획서 완성
|
|
314
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
315
|
-
|
|
316
|
-
📄 .vibe/plans/{feature}.md
|
|
317
|
-
Type: {type}
|
|
318
|
-
|
|
319
|
-
{type ∈ UI}:
|
|
320
|
-
자동 경로: SPEC 작성 → Review → Logic Track + UI Track 병렬 실행
|
|
321
|
-
1. 계속 (권장)
|
|
322
|
-
2. Logic Track만 (SPEC만)
|
|
323
|
-
3. UI Track만 (/vibe.figma 바로)
|
|
324
|
-
4. 여기서 종료
|
|
325
|
-
|
|
326
|
-
{type ∈ non-UI}:
|
|
327
|
-
자동 경로: SPEC 작성 → Review → Logic Track
|
|
328
|
-
1. 계속 (권장)
|
|
329
|
-
2. 여기서 종료
|
|
330
|
-
|
|
331
|
-
Enter → 계속
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
### Phase 3: SPEC 작성
|
|
335
|
-
|
|
336
|
-
**진입 조건:** spec 파일이 아직 없음 (또는 재작성 요청)
|
|
337
|
-
|
|
338
|
-
```
|
|
339
|
-
Load skill `spec` with input: .vibe/plans/{feature}.md
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
`spec` 스킬이 PTCF 구조 SPEC 문서 + Feature(BDD) 파일 생성.
|
|
343
|
-
|
|
344
|
-
**핵심 단계** (상세는 `skills/spec/SKILL.md` 참조):
|
|
345
|
-
|
|
346
|
-
1. Project analysis (explorer agent)
|
|
347
|
-
2. config.json references 로드
|
|
348
|
-
3. Parallel research (GPT + Antigravity + Claude agents, 8개 병렬)
|
|
349
|
-
4. UI/UX Design Intelligence (UI 키워드 시 자동)
|
|
350
|
-
5. PTCF SPEC 작성 (Large scope 자동 분할)
|
|
351
|
-
6. Feature file (BDD) 생성
|
|
352
|
-
7. Ambiguity scan
|
|
353
|
-
8. Quality gate (100점, 수렴까지 루프)
|
|
354
|
-
|
|
355
|
-
**출력:**
|
|
356
|
-
|
|
357
|
-
- `.vibe/specs/{feature-name}.md` (또는 split folder)
|
|
358
|
-
- `.vibe/features/{feature-name}.feature` (또는 split folder)
|
|
359
|
-
|
|
360
|
-
### Phase 4: SPEC Review
|
|
361
|
-
|
|
362
|
-
```
|
|
363
|
-
Load skill `spec-review` with feature: {feature-name}
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
`spec-review` 스킬이 Race Review + 품질 검증 + 사용자 체크포인트 실행.
|
|
367
|
-
|
|
368
|
-
**핵심 단계** (상세는 `skills/spec-review/SKILL.md` 참조):
|
|
369
|
-
|
|
370
|
-
1. SPEC/Feature 파일 로드 (single/split 자동 감지)
|
|
371
|
-
2. Quality Validation (100점 게이트, 수렴까지 auto-fix 루프)
|
|
372
|
-
3. Race Review (GPT + Antigravity parallel, 라운드 수 캡 없음, P1=0 + 수렴 시 종료)
|
|
373
|
-
4. (옵션) Codex adversarial review
|
|
374
|
-
5. Review Debate Team (2+ P1/P2 이슈 시)
|
|
375
|
-
6. 사용자 최종 체크포인트
|
|
376
|
-
|
|
377
|
-
### Phase 4.5: Contract Extract (auto, only for features with an API)
|
|
378
|
-
|
|
379
|
-
```
|
|
380
|
-
Load skill `contract` with: extract "{feature-name}"
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
If the SPEC has a `## API` / `## Endpoints` / `## Interface` section, extract the contract to `.vibe/contracts/{feature-name}.md`. If the section is absent, exit cleanly (not every feature has an API).
|
|
384
|
-
|
|
385
|
-
The contract is referenced during Phase 5a implementation, and used by `/vibe.verify` for drift detection.
|
|
386
|
-
|
|
387
|
-
### Phase 5a: Logic Track
|
|
388
|
-
|
|
389
|
-
```
|
|
390
33
|
/vibe.run "{feature-name}"
|
|
391
34
|
```
|
|
392
35
|
|
|
393
|
-
|
|
394
|
-
- `/vibe.regress list --feature {feature-name}` — warn if any open regressions exist
|
|
395
|
-
- `.vibe/contracts/{feature-name}.md` — load if present, use as implementation guide
|
|
396
|
-
|
|
397
|
-
### Phase 5b: UI Track (type ∈ {website, webapp, mobile}일 때만)
|
|
398
|
-
|
|
399
|
-
**5a와 병렬 실행** (또는 순차 — 사용자 선택):
|
|
36
|
+
## Input 분석 + Smart Resume
|
|
400
37
|
|
|
401
38
|
```
|
|
402
|
-
|
|
39
|
+
1. 📎 첨부 있음 → 첨부를 spec 입력으로 전달
|
|
40
|
+
2. 인자가 파일 경로 →
|
|
41
|
+
.vibe/specs/*.md → 기존 SPEC: "승인 재확인? 재작성? /vibe.run 진행?" 질문
|
|
42
|
+
기타 (.md/.txt/.pdf) → 외부 PRD 로 spec 입력에 병합
|
|
43
|
+
3. 인자가 feature name → .vibe/ 검색:
|
|
44
|
+
spec 존재 → "재작성? 이어서 /vibe.run?" 질문
|
|
45
|
+
spec 없음 → spec 패스 시작 (레거시 아티팩트가 있으면 입력으로)
|
|
46
|
+
4. 인자 없음 → .vibe/.last-feature 확인 → 있으면 "이어서 진행?" 제안,
|
|
47
|
+
없으면 .vibe/specs/ 스캔해 진행 중 목록 제시, 그것도 없으면
|
|
48
|
+
"👋 무엇을 만들고 싶으신가요?" 로 빈 시작
|
|
403
49
|
```
|
|
404
50
|
|
|
405
|
-
|
|
51
|
+
### 레거시 아티팩트 호환 (구버전 .vibe/interviews/, .vibe/plans/)
|
|
406
52
|
|
|
407
|
-
|
|
408
|
-
- 기획서의 §7 Look & Feel, §8 레이아웃, §9 반응형 섹션을 Phase 1 스토리보드 입력으로 사용
|
|
53
|
+
구버전 vibe 가 남긴 `.vibe/interviews/{feature}.md`, `.vibe/plans/{feature}.md` 가 존재할 수 있다:
|
|
409
54
|
|
|
410
|
-
|
|
55
|
+
- **존재하면**: spec 패스의 **입력 컨텍스트**로 읽어 활용한다 (이미 답한 질문을 다시 묻지 않게).
|
|
56
|
+
- **절대 요구하거나 재생성하지 않는다**: 이 파일들의 부재는 결함이 아니라 정상 상태다. interview/plan 스킬은 더 이상 존재하지 않는다.
|
|
411
57
|
|
|
412
|
-
|
|
413
|
-
/vibe.verify "{feature-name}"
|
|
414
|
-
```
|
|
58
|
+
### `.last-feature` 포인터
|
|
415
59
|
|
|
416
|
-
|
|
60
|
+
- spec 패스에서 feature 이름 확정 시 `.vibe/.last-feature` 에 한 줄 기록 (spec 스킬이 수행).
|
|
61
|
+
- 개인 작업 포인터이므로 git 커밋 금지 (`.gitignore` 에 `.vibe/.last-feature`).
|
|
62
|
+
- 워크플로 완주(verify 통과) 시 삭제.
|
|
417
63
|
|
|
418
|
-
|
|
64
|
+
## 승인과 루프
|
|
419
65
|
|
|
420
|
-
|
|
421
|
-
/vibe.trace "{feature-name}"
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
SPEC ↔ 구현 추적.
|
|
425
|
-
|
|
426
|
-
> **Phase 7 완료 시**: `.vibe/.last-feature` 삭제 (워크플로 완주 — 다음 `/vibe.spec` 호출은 빈 시작 또는 진행 중 작업 목록에서 시작).
|
|
427
|
-
|
|
428
|
-
## ultrawork 모드
|
|
429
|
-
|
|
430
|
-
`ultrawork` (또는 `ulw`)가 인자에 포함되면:
|
|
431
|
-
|
|
432
|
-
- **모든 Stop Gate 스킵**
|
|
433
|
-
- interview → plan → spec → review → run → (figma 병렬) 전체 자동 실행
|
|
434
|
-
- askUser 체크포인트 스킵, 기본값 사용
|
|
435
|
-
- 수동 개입 없이 완주
|
|
436
|
-
|
|
437
|
-
```
|
|
438
|
-
/vibe.spec "패럴랙스 웹사이트" ultrawork
|
|
439
|
-
```
|
|
66
|
+
SPEC 승인이 `vibe/rules/loop-contract.md` 가 정의하는 **유일한 의무적 사람 개입**이다. 승인 후에는 ANCHOR→ACT→JUDGE→RECORD 루프가 게이트 통과까지 자동 반복한다 (`/vibe.run` → `/vibe.verify`). 별도의 파이프라인 승인·단계별 stop gate 는 없다.
|
|
440
67
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
### 예시 1: 신규 프로젝트
|
|
444
|
-
```
|
|
445
|
-
User: /vibe.spec "원두 브랜드 랜딩"
|
|
446
|
-
|
|
447
|
-
Claude: 🔍 Input 분석
|
|
448
|
-
입력: "원두 브랜드 랜딩"
|
|
449
|
-
분류: 신규 아이디어
|
|
450
|
-
기존 파일: 없음
|
|
451
|
-
→ 시작 단계: Phase 1 (interview)
|
|
452
|
-
|
|
453
|
-
[interview 스킬 로드]
|
|
454
|
-
Type: website 감지 → checklists/website.md 로드
|
|
455
|
-
...
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
### 예시 2: 기획서에서 시작
|
|
459
|
-
```
|
|
460
|
-
User: /vibe.spec ".vibe/plans/bean-landing.md"
|
|
461
|
-
|
|
462
|
-
Claude: 🔍 Input 분석
|
|
463
|
-
입력: plan 파일 경로
|
|
464
|
-
분류: 기존 기획서
|
|
465
|
-
Feature: bean-landing
|
|
466
|
-
→ 시작 단계: Phase 3 (spec)
|
|
467
|
-
|
|
468
|
-
[spec 스킬 로드]
|
|
469
|
-
기획서 읽기 → research → PTCF 작성 ...
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
### 예시 3: 기존 feature 재개
|
|
473
|
-
```
|
|
474
|
-
User: /vibe.spec "bean-landing"
|
|
475
|
-
|
|
476
|
-
Claude: 🔍 Input 분석
|
|
477
|
-
입력: feature name
|
|
478
|
-
기존 파일 검색...
|
|
479
|
-
✅ interview: .vibe/interviews/bean-landing.md
|
|
480
|
-
✅ plan: .vibe/plans/bean-landing.md
|
|
481
|
-
❌ spec: 없음
|
|
482
|
-
→ 시작 단계: Phase 3 (spec)
|
|
483
|
-
|
|
484
|
-
[spec 스킬 로드]
|
|
485
|
-
...
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
### 예시 4: SPEC 리뷰 재실행
|
|
489
|
-
```
|
|
490
|
-
User: /vibe.spec "bean-landing"
|
|
491
|
-
|
|
492
|
-
Claude: 🔍 Input 분석
|
|
493
|
-
기존 파일:
|
|
494
|
-
✅ spec: .vibe/specs/bean-landing.md
|
|
495
|
-
✅ feature: .vibe/features/bean-landing.feature
|
|
496
|
-
|
|
497
|
-
이미 SPEC이 존재합니다. 어떻게 진행할까요?
|
|
498
|
-
1. SPEC 리뷰 (Phase 4: spec-review 스킬 로드)
|
|
499
|
-
2. /vibe.run 실행 (구현)
|
|
500
|
-
3. SPEC 재작성 (기존 백업 후 새로 작성)
|
|
501
|
-
4. 종료
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
### 예시 5: feature 이름을 잊고 인자 없이 호출 (Smart Resume Fallback)
|
|
505
|
-
```
|
|
506
|
-
User: /vibe.spec
|
|
507
|
-
|
|
508
|
-
Claude: (.last-feature 읽기 → "bean-landing" 발견)
|
|
509
|
-
|
|
510
|
-
🔄 마지막 작업: bean-landing
|
|
511
|
-
✅ interview: .vibe/interviews/bean-landing.md (status: partial, 2일 전)
|
|
512
|
-
❌ plan: 없음
|
|
513
|
-
❌ spec: 없음
|
|
514
|
-
→ 다음 단계: Phase 2 (plan — 기획서 작성)
|
|
515
|
-
|
|
516
|
-
이어서 진행할까요?
|
|
517
|
-
Enter / yes → 이어서 진행
|
|
518
|
-
list → 다른 진행 중 작업 목록 보기
|
|
519
|
-
new → 새 아이디어로 시작
|
|
520
|
-
abort → 종료
|
|
521
|
-
|
|
522
|
-
User: yes
|
|
523
|
-
|
|
524
|
-
Claude: [Phase 2 진입]
|
|
525
|
-
.last-feature = bean-landing
|
|
526
|
-
[plan 스킬 로드]
|
|
527
|
-
...
|
|
528
|
-
```
|
|
529
|
-
|
|
530
|
-
### 예시 6: 여러 feature 중 선택 (Fallback list 모드)
|
|
531
|
-
```
|
|
532
|
-
User: /vibe.spec
|
|
533
|
-
|
|
534
|
-
Claude: (.last-feature 없음 → 디렉토리 스캔)
|
|
535
|
-
|
|
536
|
-
🔍 진행 중인 작업
|
|
537
|
-
|
|
538
|
-
1. bean-landing [interview: partial] 2일 전
|
|
539
|
-
2. todo-app [plan: complete] 어제
|
|
540
|
-
3. payment-api [spec: complete] 방금 전
|
|
541
|
-
─────────────────────────────────────────────
|
|
542
|
-
n. ➕ 새로 시작
|
|
543
|
-
a. 종료
|
|
544
|
-
|
|
545
|
-
선택 번호 또는 feature 이름을 입력하세요:
|
|
546
|
-
|
|
547
|
-
User: 2
|
|
548
|
-
|
|
549
|
-
Claude: Feature: todo-app 선택
|
|
550
|
-
✅ plan 완성 → Phase 3 (spec) 진입
|
|
551
|
-
.last-feature = todo-app
|
|
552
|
-
...
|
|
553
|
-
```
|
|
554
|
-
|
|
555
|
-
## Rollback / Resume
|
|
556
|
-
|
|
557
|
-
- 각 Phase 종료 시 상태가 `.vibe/{interviews,plans,specs,features}/`에 저장됨
|
|
558
|
-
- **`.vibe/.last-feature` pointer**가 각 Phase 진입 시 갱신되어 "가장 최근에 작업한 feature" 추적 (Phase 7 완주 시 삭제)
|
|
559
|
-
- 중단 시 다시 `/vibe.spec`으로 돌아오면 Smart Resume Fallback 동작:
|
|
560
|
-
- 인자 있음 (`/vibe.spec "feature-name"` 또는 파일 경로) → 해당 feature의 가장 진행된 단계 다음으로 바로 진입
|
|
561
|
-
- 인자 없음 → `.last-feature` 우선 제안 → 거부하면 진행 중 작업 목록 제시 → 또 거부하면 빈 시작
|
|
562
|
-
- 수동 개입 필요시 스킬 직접 호출 가능 (`Load skill interview` 등)
|
|
68
|
+
- `automationLevel: autonomous` (`.vibe/config.json`) 또는 deprecated `ultrawork`/`ulw` 별칭 → SPEC 승인도 생략, 비대화형 완주.
|
|
69
|
+
- `--interactive` → 회전마다 확인 (과거 기본값).
|
|
563
70
|
|
|
564
71
|
## Next Step
|
|
565
72
|
|
|
566
73
|
```
|
|
567
|
-
#
|
|
568
|
-
/vibe.
|
|
569
|
-
|
|
570
|
-
# 중간 단계 재개
|
|
571
|
-
/vibe.spec "feature-name"
|
|
572
|
-
|
|
573
|
-
# ultrawork 자동 완주
|
|
574
|
-
/vibe.spec "feature-name" ultrawork
|
|
74
|
+
/vibe.run "{feature-name}" # 승인된 SPEC 구현 (spec 승인 직후 자동 제안)
|
|
75
|
+
/vibe.verify "{feature-name}" # Done Criteria 판정 → run-ledger 기록
|
|
575
76
|
```
|
|
576
77
|
|
|
78
|
+
trace(`/vibe.trace`)·contract(`/vibe.contract`) 는 사용자가 요청하거나 SPEC 에 API Contract 섹션이 있을 때만 체인한다.
|
|
79
|
+
|
|
577
80
|
---
|
|
578
81
|
|
|
579
82
|
ARGUMENTS: $ARGUMENTS
|
|
@@ -31,7 +31,7 @@ Collection of utility tools. Use with options.
|
|
|
31
31
|
|
|
32
32
|
## --ui (UI Preview)
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
Generate the UI preview directly in the main session (native capability — no dedicated agent).
|
|
35
35
|
|
|
36
36
|
Generate UI preview from description or design folder.
|
|
37
37
|
|
|
@@ -217,7 +217,7 @@ Fix TypeScript/build errors with minimal changes.
|
|
|
217
217
|
|
|
218
218
|
## --clean (Dead Code Removal)
|
|
219
219
|
|
|
220
|
-
|
|
220
|
+
Perform safe dead code removal directly (native capability — the `/simplify` skill covers reuse/simplification cleanups; this mode handles detection + removal with an audit trail).
|
|
221
221
|
|
|
222
222
|
Detect and remove unused code with audit trail.
|
|
223
223
|
|
|
@@ -280,7 +280,7 @@ docs/CODEMAPS/
|
|
|
280
280
|
|
|
281
281
|
## --compound (Solution Documentation)
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
Document the solved problem directly (native capability — no dedicated agent).
|
|
284
284
|
|
|
285
285
|
Document solved problems for knowledge accumulation.
|
|
286
286
|
|