@su-record/vibe 2.6.17 → 2.6.18
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 +681 -681
- package/LICENSE +21 -21
- package/README.md +235 -239
- 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/e2e-tester.md +266 -266
- 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/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/tester.md +49 -49
- package/agents/ui-previewer.md +268 -268
- package/commands/vibe.analyze.md +356 -356
- package/commands/vibe.reason.md +329 -329
- package/commands/vibe.review.md +412 -412
- package/commands/vibe.run.md +1266 -1266
- package/commands/vibe.spec.md +1054 -1054
- package/commands/vibe.spec.review.md +319 -319
- package/commands/vibe.trace.md +161 -161
- package/commands/vibe.utils.md +376 -376
- package/commands/vibe.verify.md +375 -375
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/detect.js +32 -32
- package/dist/cli/hud.js +20 -20
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +120 -118
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm.js +144 -144
- package/dist/cli/postinstall.d.ts +1 -0
- package/dist/cli/postinstall.d.ts.map +1 -1
- package/dist/cli/postinstall.js +859 -859
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts +2 -2
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +51 -17
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/lib/DeepInit.js +24 -24
- package/dist/lib/IterationTracker.js +11 -11
- package/dist/lib/PythonParser.js +108 -108
- package/dist/lib/ReviewRace.js +96 -96
- package/dist/lib/SkillFrontmatter.js +28 -28
- package/dist/lib/SkillQualityGate.js +9 -9
- package/dist/lib/SkillRepository.js +159 -159
- package/dist/lib/UltraQA.js +77 -77
- package/dist/lib/gemini-api.js +5 -5
- package/dist/lib/gpt-api.js +4 -4
- package/dist/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/lib/memory/MemorySearch.js +20 -20
- package/dist/lib/memory/MemoryStorage.js +64 -64
- package/dist/orchestrator/AgentManager.js +12 -12
- package/dist/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/orchestrator/SmartRouter.js +11 -11
- package/dist/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/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/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/hooks.json +222 -222
- package/hooks/scripts/code-check.js +22 -22
- package/hooks/scripts/code-review.js +22 -22
- package/hooks/scripts/complexity.js +22 -22
- package/hooks/scripts/compound.js +23 -23
- package/hooks/scripts/context-save.js +33 -33
- package/hooks/scripts/gemini-ui-gen.js +281 -281
- package/hooks/scripts/generate-brand-assets.js +474 -474
- package/hooks/scripts/hud-multiline.js +262 -262
- package/hooks/scripts/hud-status.js +291 -291
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +171 -171
- package/hooks/scripts/post-edit.js +97 -97
- package/hooks/scripts/post-tool-verify.js +210 -210
- package/hooks/scripts/pre-tool-guard.js +125 -125
- package/hooks/scripts/recall.js +22 -22
- package/hooks/scripts/session-start.js +30 -30
- package/hooks/scripts/skill-injector.js +191 -191
- package/hooks/scripts/utils.js +97 -97
- 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 +84 -84
- package/skills/brand-assets.md +141 -141
- package/skills/commerce-patterns.md +361 -361
- package/skills/context7-usage.md +102 -102
- package/skills/e2e-commerce.md +304 -304
- package/skills/frontend-design.md +92 -92
- package/skills/git-worktree.md +181 -181
- package/skills/parallel-research.md +77 -77
- package/skills/priority-todos.md +239 -239
- package/skills/seo-checklist.md +244 -244
- package/skills/tool-fallback.md +190 -190
- package/skills/vibe-capabilities.md +161 -161
- package/vibe/constitution.md +227 -227
- package/vibe/rules/core/communication-guide.md +98 -98
- package/vibe/rules/core/development-philosophy.md +52 -52
- package/vibe/rules/core/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/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/naming-conventions.md +198 -198
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- 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/spec-template.md +221 -221
- package/dist/cli/mcp.d.ts +0 -49
- package/dist/cli/mcp.d.ts.map +0 -1
- package/dist/cli/mcp.js +0 -169
- package/dist/cli/mcp.js.map +0 -1
- package/dist/lib/gemini-mcp.d.ts +0 -10
- package/dist/lib/gemini-mcp.d.ts.map +0 -1
- package/dist/lib/gemini-mcp.js +0 -353
- package/dist/lib/gemini-mcp.js.map +0 -1
- package/dist/lib/gpt-mcp.d.ts +0 -10
- package/dist/lib/gpt-mcp.d.ts.map +0 -1
- package/dist/lib/gpt-mcp.js +0 -352
- package/dist/lib/gpt-mcp.js.map +0 -1
- package/dist/tools/analytics/getUsageAnalytics.d.ts +0 -10
- package/dist/tools/analytics/getUsageAnalytics.d.ts.map +0 -1
- package/dist/tools/analytics/getUsageAnalytics.js +0 -246
- package/dist/tools/analytics/getUsageAnalytics.js.map +0 -1
- package/dist/tools/analytics/index.d.ts +0 -5
- package/dist/tools/analytics/index.d.ts.map +0 -1
- package/dist/tools/analytics/index.js +0 -5
- package/dist/tools/analytics/index.js.map +0 -1
- package/dist/tools/convention/getCodingGuide.d.ts +0 -7
- package/dist/tools/convention/getCodingGuide.d.ts.map +0 -1
- package/dist/tools/convention/getCodingGuide.js +0 -69
- package/dist/tools/convention/getCodingGuide.js.map +0 -1
- package/dist/tools/planning/analyzeRequirements.d.ts +0 -9
- package/dist/tools/planning/analyzeRequirements.d.ts.map +0 -1
- package/dist/tools/planning/analyzeRequirements.js +0 -171
- package/dist/tools/planning/analyzeRequirements.js.map +0 -1
- package/dist/tools/planning/createUserStories.d.ts +0 -9
- package/dist/tools/planning/createUserStories.d.ts.map +0 -1
- package/dist/tools/planning/createUserStories.js +0 -124
- package/dist/tools/planning/createUserStories.js.map +0 -1
- package/dist/tools/planning/featureRoadmap.d.ts +0 -10
- package/dist/tools/planning/featureRoadmap.d.ts.map +0 -1
- package/dist/tools/planning/featureRoadmap.js +0 -207
- package/dist/tools/planning/featureRoadmap.js.map +0 -1
- package/dist/tools/planning/generatePrd.d.ts +0 -11
- package/dist/tools/planning/generatePrd.d.ts.map +0 -1
- package/dist/tools/planning/generatePrd.js +0 -161
- package/dist/tools/planning/generatePrd.js.map +0 -1
- package/dist/tools/planning/index.d.ts +0 -8
- package/dist/tools/planning/index.d.ts.map +0 -1
- package/dist/tools/planning/index.js +0 -8
- package/dist/tools/planning/index.js.map +0 -1
- package/dist/tools/prompt/analyzePrompt.d.ts +0 -7
- package/dist/tools/prompt/analyzePrompt.d.ts.map +0 -1
- package/dist/tools/prompt/analyzePrompt.js +0 -150
- package/dist/tools/prompt/analyzePrompt.js.map +0 -1
- package/dist/tools/prompt/enhancePrompt.d.ts +0 -8
- package/dist/tools/prompt/enhancePrompt.d.ts.map +0 -1
- package/dist/tools/prompt/enhancePrompt.js +0 -110
- package/dist/tools/prompt/enhancePrompt.js.map +0 -1
- package/dist/tools/prompt/enhancePromptGemini.d.ts +0 -8
- package/dist/tools/prompt/enhancePromptGemini.d.ts.map +0 -1
- package/dist/tools/prompt/enhancePromptGemini.js +0 -332
- package/dist/tools/prompt/enhancePromptGemini.js.map +0 -1
- package/dist/tools/prompt/index.d.ts +0 -7
- package/dist/tools/prompt/index.d.ts.map +0 -1
- package/dist/tools/prompt/index.js +0 -7
- package/dist/tools/prompt/index.js.map +0 -1
- package/dist/tools/reasoning/applyReasoningFramework.d.ts +0 -8
- package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +0 -1
- package/dist/tools/reasoning/applyReasoningFramework.js +0 -266
- package/dist/tools/reasoning/applyReasoningFramework.js.map +0 -1
- package/dist/tools/reasoning/index.d.ts +0 -5
- package/dist/tools/reasoning/index.d.ts.map +0 -1
- package/dist/tools/reasoning/index.js +0 -5
- package/dist/tools/reasoning/index.js.map +0 -1
- package/dist/tools/thinking/analyzeProblem.d.ts +0 -7
- package/dist/tools/thinking/analyzeProblem.d.ts.map +0 -1
- package/dist/tools/thinking/analyzeProblem.js +0 -55
- package/dist/tools/thinking/analyzeProblem.js.map +0 -1
- package/dist/tools/thinking/breakDownProblem.d.ts +0 -8
- package/dist/tools/thinking/breakDownProblem.d.ts.map +0 -1
- package/dist/tools/thinking/breakDownProblem.js +0 -145
- package/dist/tools/thinking/breakDownProblem.js.map +0 -1
- package/dist/tools/thinking/createThinkingChain.d.ts +0 -7
- package/dist/tools/thinking/createThinkingChain.d.ts.map +0 -1
- package/dist/tools/thinking/createThinkingChain.js +0 -44
- package/dist/tools/thinking/createThinkingChain.js.map +0 -1
- package/dist/tools/thinking/formatAsPlan.d.ts +0 -9
- package/dist/tools/thinking/formatAsPlan.d.ts.map +0 -1
- package/dist/tools/thinking/formatAsPlan.js +0 -78
- package/dist/tools/thinking/formatAsPlan.js.map +0 -1
- package/dist/tools/thinking/index.d.ts +0 -10
- package/dist/tools/thinking/index.d.ts.map +0 -1
- package/dist/tools/thinking/index.js +0 -10
- package/dist/tools/thinking/index.js.map +0 -1
- package/dist/tools/thinking/stepByStepAnalysis.d.ts +0 -8
- package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +0 -1
- package/dist/tools/thinking/stepByStepAnalysis.js +0 -63
- package/dist/tools/thinking/stepByStepAnalysis.js.map +0 -1
- package/dist/tools/thinking/thinkAloudProcess.d.ts +0 -8
- package/dist/tools/thinking/thinkAloudProcess.d.ts.map +0 -1
- package/dist/tools/thinking/thinkAloudProcess.js +0 -80
- package/dist/tools/thinking/thinkAloudProcess.js.map +0 -1
|
@@ -1,319 +1,319 @@
|
|
|
1
|
-
# /vibe.spec.review - SPEC Quality Review
|
|
2
|
-
|
|
3
|
-
Review and enhance SPEC with GPT/Gemini cross-validation.
|
|
4
|
-
|
|
5
|
-
**Purpose:** Run this command in a NEW session after `/vibe.spec` to ensure accurate review execution.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
/vibe.spec.review "feature-name"
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
**Prerequisites:**
|
|
16
|
-
- SPEC file exists: `.claude/vibe/specs/{feature-name}.spec.md`
|
|
17
|
-
- Feature file exists: `.claude/vibe/features/{feature-name}.feature`
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Workflow
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
/vibe.spec "feature" → SPEC 생성 완료
|
|
25
|
-
↓
|
|
26
|
-
/new (새 세션)
|
|
27
|
-
↓
|
|
28
|
-
/vibe.spec.review "feature" → 품질 검증 + GPT/Gemini 리뷰
|
|
29
|
-
↓
|
|
30
|
-
/vibe.run "feature"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Step 1: Load SPEC Files
|
|
36
|
-
|
|
37
|
-
Read the existing SPEC and Feature files:
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
.claude/vibe/specs/{feature-name}.spec.md
|
|
41
|
-
.claude/vibe/features/{feature-name}.feature
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**Output:**
|
|
45
|
-
```
|
|
46
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
47
|
-
📋 SPEC REVIEW: {feature-name}
|
|
48
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
49
|
-
|
|
50
|
-
Loading files...
|
|
51
|
-
✅ SPEC: .claude/vibe/specs/{feature-name}.spec.md
|
|
52
|
-
✅ Feature: .claude/vibe/features/{feature-name}.feature
|
|
53
|
-
|
|
54
|
-
Extracted info:
|
|
55
|
-
- Feature: {feature description}
|
|
56
|
-
- Stack: {tech stack}
|
|
57
|
-
- Phases: {number of phases}
|
|
58
|
-
- Scenarios: {number of scenarios}
|
|
59
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Step 2: Quality Validation (95-Point Gate)
|
|
65
|
-
|
|
66
|
-
**🚨 MANDATORY: Score must be ≥ 95 to proceed**
|
|
67
|
-
|
|
68
|
-
### 2.1 Quality Checklist
|
|
69
|
-
|
|
70
|
-
| Category | Check Item | Weight |
|
|
71
|
-
|----------|------------|--------|
|
|
72
|
-
| **Completeness** | All user flows included in Task | 15% |
|
|
73
|
-
| **Completeness** | All ACs converted to Feature scenarios | 10% |
|
|
74
|
-
| **Completeness** | Error handling scenarios defined | 10% |
|
|
75
|
-
| **Specificity** | All numbers specified (timeout, limits, etc.) | 15% |
|
|
76
|
-
| **Specificity** | No ambiguous terms ("appropriate", "proper", etc.) | 10% |
|
|
77
|
-
| **Testability** | Each AC is verifiable | 10% |
|
|
78
|
-
| **Testability** | Feature scenarios have concrete Given/When/Then | 10% |
|
|
79
|
-
| **Security** | Auth/permission requirements specified | 10% |
|
|
80
|
-
| **Performance** | Response time/load requirements specified | 10% |
|
|
81
|
-
|
|
82
|
-
### 2.2 Quality Gate Loop
|
|
83
|
-
|
|
84
|
-
```python
|
|
85
|
-
max_iterations = 3
|
|
86
|
-
iteration = 0
|
|
87
|
-
|
|
88
|
-
while iteration < max_iterations:
|
|
89
|
-
iteration += 1
|
|
90
|
-
score = calculate_quality_score(spec, feature)
|
|
91
|
-
|
|
92
|
-
print(f"━━━ Quality Check [{iteration}/{max_iterations}] ━━━")
|
|
93
|
-
print(f"Score: {score}/100")
|
|
94
|
-
|
|
95
|
-
if score >= 95:
|
|
96
|
-
print("✅ Quality Gate PASSED")
|
|
97
|
-
break
|
|
98
|
-
|
|
99
|
-
# Auto-fix missing items
|
|
100
|
-
missing_items = identify_missing_items(spec)
|
|
101
|
-
for item in missing_items:
|
|
102
|
-
auto_fix(item)
|
|
103
|
-
update_spec()
|
|
104
|
-
update_feature()
|
|
105
|
-
|
|
106
|
-
print(f"✅ Applied {len(missing_items)} fixes - Re-evaluating...")
|
|
107
|
-
|
|
108
|
-
if score < 95:
|
|
109
|
-
print(f"❌ BLOCKED: Score {score} < 95 after {max_iterations} iterations")
|
|
110
|
-
print("Manual intervention required.")
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
**Output format:**
|
|
114
|
-
```
|
|
115
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
116
|
-
📊 QUALITY GATE [1/3]
|
|
117
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
-
Score: 87/100 ⚠️ BELOW THRESHOLD (95)
|
|
119
|
-
|
|
120
|
-
Missing items:
|
|
121
|
-
❌ Error handling scenarios (10%)
|
|
122
|
-
❌ Performance targets (5%)
|
|
123
|
-
|
|
124
|
-
Auto-fixing...
|
|
125
|
-
✅ Added network error handling scenario
|
|
126
|
-
✅ Added response time targets (<500ms)
|
|
127
|
-
|
|
128
|
-
Re-evaluating...
|
|
129
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
130
|
-
|
|
131
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
132
|
-
📊 QUALITY GATE [2/3]
|
|
133
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
134
|
-
Score: 96/100 ✅ PASSED
|
|
135
|
-
|
|
136
|
-
✅ Quality Gate PASSED - proceeding to GPT/Gemini review
|
|
137
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### 2.3 Auto-Fix Rules
|
|
141
|
-
|
|
142
|
-
| Missing Item | Auto-Fix Method |
|
|
143
|
-
|--------------|-----------------|
|
|
144
|
-
| Missing AC | Auto-generate AC based on Task |
|
|
145
|
-
| Numbers not specified | Apply project defaults (timeout 30s, etc.) |
|
|
146
|
-
| Missing error handling | Add common error scenarios |
|
|
147
|
-
| Missing performance targets | Apply industry standard criteria |
|
|
148
|
-
| Missing security | Add auth/data protection requirements |
|
|
149
|
-
| Ambiguous terms | Replace with specific values |
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## Step 3: Race Review (GPT + Gemini Cross-Validation) - 3 Rounds (v2.6.9)
|
|
154
|
-
|
|
155
|
-
**🚨 CRITICAL: Execute ALL 3 rounds with cross-validation. DO NOT skip.**
|
|
156
|
-
|
|
157
|
-
> Race Mode reviews SPEC with both GPT and Gemini in parallel, then cross-validates findings for higher confidence.
|
|
158
|
-
|
|
159
|
-
### 3.1 Race Review Invocation
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
# Via vibe tools (recommended)
|
|
163
|
-
node -e "import('@su-record/vibe/tools').then(t => t.raceReview({reviewType: 'general', code: '[SPEC content]', context: 'SPEC review round N/3'}).then(r => console.log(t.formatRaceResult(r))))"
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### 3.2 Review Loop (3 Rounds with Cross-Validation)
|
|
167
|
-
|
|
168
|
-
For each round (1 to 3):
|
|
169
|
-
|
|
170
|
-
**Run GPT and Gemini in PARALLEL with cross-validation:**
|
|
171
|
-
|
|
172
|
-
```javascript
|
|
173
|
-
// Race review - both models run simultaneously
|
|
174
|
-
import('@su-record/vibe/tools').then(async t => {
|
|
175
|
-
const result = await t.raceReview({
|
|
176
|
-
reviewType: 'general',
|
|
177
|
-
code: specContent,
|
|
178
|
-
context: `SPEC review for ${featureName}. Stack: ${stack}. Round ${N}/3.`
|
|
179
|
-
});
|
|
180
|
-
console.log(t.formatRaceResult(result));
|
|
181
|
-
});
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
**Cross-validation rules:**
|
|
185
|
-
|
|
186
|
-
| Agreement | Priority | Action |
|
|
187
|
-
|-----------|----------|--------|
|
|
188
|
-
| Both agree (100%) | P1 | Auto-apply immediately |
|
|
189
|
-
| One model (50%) | P2 | Auto-apply with note |
|
|
190
|
-
|
|
191
|
-
**After each round:**
|
|
192
|
-
|
|
193
|
-
1. Cross-validate findings (issues found by both → P1, single model → P2)
|
|
194
|
-
2. Merge feedback with confidence scores
|
|
195
|
-
3. Auto-apply P1/P2 improvements to SPEC and Feature files
|
|
196
|
-
4. Continue to next round
|
|
197
|
-
|
|
198
|
-
**Output format:**
|
|
199
|
-
```
|
|
200
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
201
|
-
🏁 SPEC RACE REVIEW - Round 1/3
|
|
202
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
203
|
-
|
|
204
|
-
Model Results:
|
|
205
|
-
| Model | Issues | Duration |
|
|
206
|
-
|--------|--------|----------|
|
|
207
|
-
| GPT | 2 | 1823ms |
|
|
208
|
-
| Gemini | 2 | 2156ms |
|
|
209
|
-
|
|
210
|
-
Cross-Validated Issues:
|
|
211
|
-
| Issue | GPT | Gemini | Confidence |
|
|
212
|
-
|--------------------------|-----|--------|------------|
|
|
213
|
-
| Missing retry logic | ✅ | ✅ | 100% → P1 |
|
|
214
|
-
| Missing rate limiting | ✅ | ✅ | 100% → P1 |
|
|
215
|
-
| Token refresh unclear | ✅ | ❌ | 50% → P2 |
|
|
216
|
-
|
|
217
|
-
Auto-applying...
|
|
218
|
-
✅ [P1] Added retry logic (3 attempts, exponential backoff)
|
|
219
|
-
✅ [P1] Added rate limiting (100 req/min)
|
|
220
|
-
✅ [P2] Added token refresh flow
|
|
221
|
-
|
|
222
|
-
✅ Round 1 complete - 3 improvements (2 P1, 1 P2)
|
|
223
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
224
|
-
|
|
225
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
226
|
-
🏁 SPEC RACE REVIEW - Round 2/3
|
|
227
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
228
|
-
|
|
229
|
-
Cross-Validated Issues:
|
|
230
|
-
| Issue | GPT | Gemini | Confidence |
|
|
231
|
-
|-----------------------------|-----|--------|------------|
|
|
232
|
-
| Concurrent session unclear | ✅ | ❌ | 50% → P2 |
|
|
233
|
-
|
|
234
|
-
Auto-applying...
|
|
235
|
-
✅ [P2] Added concurrent session policy
|
|
236
|
-
|
|
237
|
-
✅ Round 2 complete - 1 improvement
|
|
238
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
239
|
-
|
|
240
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
241
|
-
🏁 SPEC RACE REVIEW - Round 3/3
|
|
242
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
243
|
-
|
|
244
|
-
Cross-Validated Issues: None
|
|
245
|
-
|
|
246
|
-
✅ No changes needed - SPEC is complete
|
|
247
|
-
✅ Consensus Rate: 100%
|
|
248
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
---
|
|
252
|
-
|
|
253
|
-
## Step 4: Final Summary
|
|
254
|
-
|
|
255
|
-
```
|
|
256
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
257
|
-
✅ SPEC REVIEW COMPLETE: {feature-name}
|
|
258
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
259
|
-
|
|
260
|
-
Quality Score: 96/100 ✅
|
|
261
|
-
Review Rounds: 3/3 ✅
|
|
262
|
-
Total Improvements: 4
|
|
263
|
-
|
|
264
|
-
Updated files:
|
|
265
|
-
📋 .claude/vibe/specs/{feature-name}.spec.md
|
|
266
|
-
📋 .claude/vibe/features/{feature-name}.feature
|
|
267
|
-
|
|
268
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
269
|
-
|
|
270
|
-
## Next Step
|
|
271
|
-
|
|
272
|
-
/vibe.run "{feature-name}"
|
|
273
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
278
|
-
## Error Handling
|
|
279
|
-
|
|
280
|
-
### SPEC Not Found
|
|
281
|
-
```
|
|
282
|
-
❌ ERROR: SPEC file not found
|
|
283
|
-
|
|
284
|
-
Expected: .claude/vibe/specs/{feature-name}.spec.md
|
|
285
|
-
|
|
286
|
-
Please run /vibe.spec "{feature-name}" first to create the SPEC.
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### Feature Not Found
|
|
290
|
-
```
|
|
291
|
-
❌ ERROR: Feature file not found
|
|
292
|
-
|
|
293
|
-
Expected: .claude/vibe/features/{feature-name}.feature
|
|
294
|
-
|
|
295
|
-
Please run /vibe.spec "{feature-name}" first to create the Feature file.
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
### GPT/Gemini Call Failed
|
|
299
|
-
```
|
|
300
|
-
⚠️ WARNING: {GPT|Gemini} call failed
|
|
301
|
-
|
|
302
|
-
Error: {error message}
|
|
303
|
-
|
|
304
|
-
Continuing with {other model} results only...
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
## Quick Mode
|
|
310
|
-
|
|
311
|
-
For faster iteration (1 round only):
|
|
312
|
-
|
|
313
|
-
```bash
|
|
314
|
-
/vibe.spec.review "feature-name" --quick
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
ARGUMENTS: $ARGUMENTS
|
|
1
|
+
# /vibe.spec.review - SPEC Quality Review
|
|
2
|
+
|
|
3
|
+
Review and enhance SPEC with GPT/Gemini cross-validation.
|
|
4
|
+
|
|
5
|
+
**Purpose:** Run this command in a NEW session after `/vibe.spec` to ensure accurate review execution.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
/vibe.spec.review "feature-name"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**Prerequisites:**
|
|
16
|
+
- SPEC file exists: `.claude/vibe/specs/{feature-name}.spec.md`
|
|
17
|
+
- Feature file exists: `.claude/vibe/features/{feature-name}.feature`
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Workflow
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
/vibe.spec "feature" → SPEC 생성 완료
|
|
25
|
+
↓
|
|
26
|
+
/new (새 세션)
|
|
27
|
+
↓
|
|
28
|
+
/vibe.spec.review "feature" → 품질 검증 + GPT/Gemini 리뷰
|
|
29
|
+
↓
|
|
30
|
+
/vibe.run "feature"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Step 1: Load SPEC Files
|
|
36
|
+
|
|
37
|
+
Read the existing SPEC and Feature files:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
.claude/vibe/specs/{feature-name}.spec.md
|
|
41
|
+
.claude/vibe/features/{feature-name}.feature
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Output:**
|
|
45
|
+
```
|
|
46
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
47
|
+
📋 SPEC REVIEW: {feature-name}
|
|
48
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
49
|
+
|
|
50
|
+
Loading files...
|
|
51
|
+
✅ SPEC: .claude/vibe/specs/{feature-name}.spec.md
|
|
52
|
+
✅ Feature: .claude/vibe/features/{feature-name}.feature
|
|
53
|
+
|
|
54
|
+
Extracted info:
|
|
55
|
+
- Feature: {feature description}
|
|
56
|
+
- Stack: {tech stack}
|
|
57
|
+
- Phases: {number of phases}
|
|
58
|
+
- Scenarios: {number of scenarios}
|
|
59
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Step 2: Quality Validation (95-Point Gate)
|
|
65
|
+
|
|
66
|
+
**🚨 MANDATORY: Score must be ≥ 95 to proceed**
|
|
67
|
+
|
|
68
|
+
### 2.1 Quality Checklist
|
|
69
|
+
|
|
70
|
+
| Category | Check Item | Weight |
|
|
71
|
+
|----------|------------|--------|
|
|
72
|
+
| **Completeness** | All user flows included in Task | 15% |
|
|
73
|
+
| **Completeness** | All ACs converted to Feature scenarios | 10% |
|
|
74
|
+
| **Completeness** | Error handling scenarios defined | 10% |
|
|
75
|
+
| **Specificity** | All numbers specified (timeout, limits, etc.) | 15% |
|
|
76
|
+
| **Specificity** | No ambiguous terms ("appropriate", "proper", etc.) | 10% |
|
|
77
|
+
| **Testability** | Each AC is verifiable | 10% |
|
|
78
|
+
| **Testability** | Feature scenarios have concrete Given/When/Then | 10% |
|
|
79
|
+
| **Security** | Auth/permission requirements specified | 10% |
|
|
80
|
+
| **Performance** | Response time/load requirements specified | 10% |
|
|
81
|
+
|
|
82
|
+
### 2.2 Quality Gate Loop
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
max_iterations = 3
|
|
86
|
+
iteration = 0
|
|
87
|
+
|
|
88
|
+
while iteration < max_iterations:
|
|
89
|
+
iteration += 1
|
|
90
|
+
score = calculate_quality_score(spec, feature)
|
|
91
|
+
|
|
92
|
+
print(f"━━━ Quality Check [{iteration}/{max_iterations}] ━━━")
|
|
93
|
+
print(f"Score: {score}/100")
|
|
94
|
+
|
|
95
|
+
if score >= 95:
|
|
96
|
+
print("✅ Quality Gate PASSED")
|
|
97
|
+
break
|
|
98
|
+
|
|
99
|
+
# Auto-fix missing items
|
|
100
|
+
missing_items = identify_missing_items(spec)
|
|
101
|
+
for item in missing_items:
|
|
102
|
+
auto_fix(item)
|
|
103
|
+
update_spec()
|
|
104
|
+
update_feature()
|
|
105
|
+
|
|
106
|
+
print(f"✅ Applied {len(missing_items)} fixes - Re-evaluating...")
|
|
107
|
+
|
|
108
|
+
if score < 95:
|
|
109
|
+
print(f"❌ BLOCKED: Score {score} < 95 after {max_iterations} iterations")
|
|
110
|
+
print("Manual intervention required.")
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Output format:**
|
|
114
|
+
```
|
|
115
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
116
|
+
📊 QUALITY GATE [1/3]
|
|
117
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
+
Score: 87/100 ⚠️ BELOW THRESHOLD (95)
|
|
119
|
+
|
|
120
|
+
Missing items:
|
|
121
|
+
❌ Error handling scenarios (10%)
|
|
122
|
+
❌ Performance targets (5%)
|
|
123
|
+
|
|
124
|
+
Auto-fixing...
|
|
125
|
+
✅ Added network error handling scenario
|
|
126
|
+
✅ Added response time targets (<500ms)
|
|
127
|
+
|
|
128
|
+
Re-evaluating...
|
|
129
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
130
|
+
|
|
131
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
132
|
+
📊 QUALITY GATE [2/3]
|
|
133
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
134
|
+
Score: 96/100 ✅ PASSED
|
|
135
|
+
|
|
136
|
+
✅ Quality Gate PASSED - proceeding to GPT/Gemini review
|
|
137
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 2.3 Auto-Fix Rules
|
|
141
|
+
|
|
142
|
+
| Missing Item | Auto-Fix Method |
|
|
143
|
+
|--------------|-----------------|
|
|
144
|
+
| Missing AC | Auto-generate AC based on Task |
|
|
145
|
+
| Numbers not specified | Apply project defaults (timeout 30s, etc.) |
|
|
146
|
+
| Missing error handling | Add common error scenarios |
|
|
147
|
+
| Missing performance targets | Apply industry standard criteria |
|
|
148
|
+
| Missing security | Add auth/data protection requirements |
|
|
149
|
+
| Ambiguous terms | Replace with specific values |
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Step 3: Race Review (GPT + Gemini Cross-Validation) - 3 Rounds (v2.6.9)
|
|
154
|
+
|
|
155
|
+
**🚨 CRITICAL: Execute ALL 3 rounds with cross-validation. DO NOT skip.**
|
|
156
|
+
|
|
157
|
+
> Race Mode reviews SPEC with both GPT and Gemini in parallel, then cross-validates findings for higher confidence.
|
|
158
|
+
|
|
159
|
+
### 3.1 Race Review Invocation
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Via vibe tools (recommended)
|
|
163
|
+
node -e "import('@su-record/vibe/tools').then(t => t.raceReview({reviewType: 'general', code: '[SPEC content]', context: 'SPEC review round N/3'}).then(r => console.log(t.formatRaceResult(r))))"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 3.2 Review Loop (3 Rounds with Cross-Validation)
|
|
167
|
+
|
|
168
|
+
For each round (1 to 3):
|
|
169
|
+
|
|
170
|
+
**Run GPT and Gemini in PARALLEL with cross-validation:**
|
|
171
|
+
|
|
172
|
+
```javascript
|
|
173
|
+
// Race review - both models run simultaneously
|
|
174
|
+
import('@su-record/vibe/tools').then(async t => {
|
|
175
|
+
const result = await t.raceReview({
|
|
176
|
+
reviewType: 'general',
|
|
177
|
+
code: specContent,
|
|
178
|
+
context: `SPEC review for ${featureName}. Stack: ${stack}. Round ${N}/3.`
|
|
179
|
+
});
|
|
180
|
+
console.log(t.formatRaceResult(result));
|
|
181
|
+
});
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Cross-validation rules:**
|
|
185
|
+
|
|
186
|
+
| Agreement | Priority | Action |
|
|
187
|
+
|-----------|----------|--------|
|
|
188
|
+
| Both agree (100%) | P1 | Auto-apply immediately |
|
|
189
|
+
| One model (50%) | P2 | Auto-apply with note |
|
|
190
|
+
|
|
191
|
+
**After each round:**
|
|
192
|
+
|
|
193
|
+
1. Cross-validate findings (issues found by both → P1, single model → P2)
|
|
194
|
+
2. Merge feedback with confidence scores
|
|
195
|
+
3. Auto-apply P1/P2 improvements to SPEC and Feature files
|
|
196
|
+
4. Continue to next round
|
|
197
|
+
|
|
198
|
+
**Output format:**
|
|
199
|
+
```
|
|
200
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
201
|
+
🏁 SPEC RACE REVIEW - Round 1/3
|
|
202
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
203
|
+
|
|
204
|
+
Model Results:
|
|
205
|
+
| Model | Issues | Duration |
|
|
206
|
+
|--------|--------|----------|
|
|
207
|
+
| GPT | 2 | 1823ms |
|
|
208
|
+
| Gemini | 2 | 2156ms |
|
|
209
|
+
|
|
210
|
+
Cross-Validated Issues:
|
|
211
|
+
| Issue | GPT | Gemini | Confidence |
|
|
212
|
+
|--------------------------|-----|--------|------------|
|
|
213
|
+
| Missing retry logic | ✅ | ✅ | 100% → P1 |
|
|
214
|
+
| Missing rate limiting | ✅ | ✅ | 100% → P1 |
|
|
215
|
+
| Token refresh unclear | ✅ | ❌ | 50% → P2 |
|
|
216
|
+
|
|
217
|
+
Auto-applying...
|
|
218
|
+
✅ [P1] Added retry logic (3 attempts, exponential backoff)
|
|
219
|
+
✅ [P1] Added rate limiting (100 req/min)
|
|
220
|
+
✅ [P2] Added token refresh flow
|
|
221
|
+
|
|
222
|
+
✅ Round 1 complete - 3 improvements (2 P1, 1 P2)
|
|
223
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
224
|
+
|
|
225
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
226
|
+
🏁 SPEC RACE REVIEW - Round 2/3
|
|
227
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
228
|
+
|
|
229
|
+
Cross-Validated Issues:
|
|
230
|
+
| Issue | GPT | Gemini | Confidence |
|
|
231
|
+
|-----------------------------|-----|--------|------------|
|
|
232
|
+
| Concurrent session unclear | ✅ | ❌ | 50% → P2 |
|
|
233
|
+
|
|
234
|
+
Auto-applying...
|
|
235
|
+
✅ [P2] Added concurrent session policy
|
|
236
|
+
|
|
237
|
+
✅ Round 2 complete - 1 improvement
|
|
238
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
239
|
+
|
|
240
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
241
|
+
🏁 SPEC RACE REVIEW - Round 3/3
|
|
242
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
243
|
+
|
|
244
|
+
Cross-Validated Issues: None
|
|
245
|
+
|
|
246
|
+
✅ No changes needed - SPEC is complete
|
|
247
|
+
✅ Consensus Rate: 100%
|
|
248
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Step 4: Final Summary
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
257
|
+
✅ SPEC REVIEW COMPLETE: {feature-name}
|
|
258
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
259
|
+
|
|
260
|
+
Quality Score: 96/100 ✅
|
|
261
|
+
Review Rounds: 3/3 ✅
|
|
262
|
+
Total Improvements: 4
|
|
263
|
+
|
|
264
|
+
Updated files:
|
|
265
|
+
📋 .claude/vibe/specs/{feature-name}.spec.md
|
|
266
|
+
📋 .claude/vibe/features/{feature-name}.feature
|
|
267
|
+
|
|
268
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
269
|
+
|
|
270
|
+
## Next Step
|
|
271
|
+
|
|
272
|
+
/vibe.run "{feature-name}"
|
|
273
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Error Handling
|
|
279
|
+
|
|
280
|
+
### SPEC Not Found
|
|
281
|
+
```
|
|
282
|
+
❌ ERROR: SPEC file not found
|
|
283
|
+
|
|
284
|
+
Expected: .claude/vibe/specs/{feature-name}.spec.md
|
|
285
|
+
|
|
286
|
+
Please run /vibe.spec "{feature-name}" first to create the SPEC.
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### Feature Not Found
|
|
290
|
+
```
|
|
291
|
+
❌ ERROR: Feature file not found
|
|
292
|
+
|
|
293
|
+
Expected: .claude/vibe/features/{feature-name}.feature
|
|
294
|
+
|
|
295
|
+
Please run /vibe.spec "{feature-name}" first to create the Feature file.
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### GPT/Gemini Call Failed
|
|
299
|
+
```
|
|
300
|
+
⚠️ WARNING: {GPT|Gemini} call failed
|
|
301
|
+
|
|
302
|
+
Error: {error message}
|
|
303
|
+
|
|
304
|
+
Continuing with {other model} results only...
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## Quick Mode
|
|
310
|
+
|
|
311
|
+
For faster iteration (1 round only):
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
/vibe.spec.review "feature-name" --quick
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
ARGUMENTS: $ARGUMENTS
|