@su-record/vibe 2.5.19 → 2.5.20
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 +10 -6
- package/commands/vibe.spec.md +23 -169
- package/commands/vibe.spec.review.md +300 -0
- package/hooks/scripts/generate-brand-assets.js +3 -1
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -40,14 +40,17 @@ Follow these standards when writing code. See `~/.claude/vibe/rules/` (global) f
|
|
|
40
40
|
## Workflow
|
|
41
41
|
|
|
42
42
|
```
|
|
43
|
-
/vibe.spec →
|
|
43
|
+
/vibe.spec → /new → /vibe.spec.review → /vibe.run → (auto) code review → ✅ Done
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
**Flow:**
|
|
47
|
+
|
|
48
|
+
1. `/vibe.spec` - Write SPEC (requirements + research + draft)
|
|
49
|
+
2. `/new` - Start new session (clean context)
|
|
50
|
+
3. `/vibe.spec.review` - GPT/Gemini review (3-round mandatory)
|
|
51
|
+
4. `/vibe.run` - Implementation + Gemini review
|
|
52
|
+
5. **(auto)** 13+ agent parallel review
|
|
53
|
+
6. **(auto)** P1/P2 issue auto-fix
|
|
51
54
|
|
|
52
55
|
## Plan Mode vs VIBE (Workflow Selection)
|
|
53
56
|
|
|
@@ -102,6 +105,7 @@ Include `ultrawork` or `ulw` keyword to activate maximum performance mode:
|
|
|
102
105
|
| Command | Description |
|
|
103
106
|
|---------|-------------|
|
|
104
107
|
| `/vibe.spec "feature-name"` | Write SPEC (PTCF structure) + parallel research |
|
|
108
|
+
| `/vibe.spec.review "feature-name"` | **GPT/Gemini review** (run in new session) |
|
|
105
109
|
| `/vibe.run "feature-name"` | Execute implementation |
|
|
106
110
|
| `/vibe.run "feature-name" ultrawork` | **Maximum performance mode** |
|
|
107
111
|
| `/vibe.verify "feature-name"` | Verification |
|
package/commands/vibe.spec.md
CHANGED
|
@@ -280,8 +280,11 @@ Read ~/.claude/vibe/languages/typescript-react.md
|
|
|
280
280
|
|
|
281
281
|
**→ IMMEDIATELY run these 4 Bash commands IN PARALLEL (all at once):**
|
|
282
282
|
|
|
283
|
+
**🚨 MANDATORY: Copy the EXACT path below. DO NOT modify or use alternative paths.**
|
|
284
|
+
|
|
283
285
|
```bash
|
|
284
286
|
# Cross-platform path (works on Windows/macOS/Linux)
|
|
287
|
+
# ⚠️ COPY THIS EXACTLY - DO NOT USE ~/.claude/ or any other path!
|
|
285
288
|
VIBE_SCRIPTS="$(node -p "process.env.APPDATA || require('os').homedir() + '/.config'")/vibe/hooks/scripts"
|
|
286
289
|
|
|
287
290
|
# 1. GPT: Best practices
|
|
@@ -705,7 +708,7 @@ Grades:
|
|
|
705
708
|
|
|
706
709
|
#### 7.3 Quality Gate (Auto-verification)
|
|
707
710
|
|
|
708
|
-
**Minimum 95 points required to
|
|
711
|
+
**Minimum 95 points required to complete SPEC draft**
|
|
709
712
|
|
|
710
713
|
```
|
|
711
714
|
SPEC writing complete
|
|
@@ -714,7 +717,7 @@ SPEC writing complete
|
|
|
714
717
|
↓
|
|
715
718
|
Score < 95? → Show missing items → Attempt auto-fix → Re-evaluate
|
|
716
719
|
↓
|
|
717
|
-
Score ≥ 95 →
|
|
720
|
+
Score ≥ 95 → SPEC Draft Complete → Handoff to /vibe.spec.review
|
|
718
721
|
```
|
|
719
722
|
|
|
720
723
|
#### 7.4 Auto-Fix for Low Score
|
|
@@ -728,182 +731,33 @@ If score is below 95, attempt automatic fixes:
|
|
|
728
731
|
| Missing error handling | Add common error scenarios |
|
|
729
732
|
| Missing performance targets | Apply industry standard criteria |
|
|
730
733
|
|
|
731
|
-
### 8. SPEC
|
|
732
|
-
|
|
733
|
-
**🚨 CRITICAL: YOU MUST EXECUTE ALL 3 ROUNDS. DO NOT SKIP.**
|
|
734
|
-
|
|
735
|
-
```bash
|
|
736
|
-
/vibe.spec "feature" # Default: 3 rounds (MANDATORY)
|
|
737
|
-
/vibe.spec "feature" --quick # Quick mode: 1 round only
|
|
738
|
-
```
|
|
739
|
-
|
|
740
|
-
**3-Round Review Process (MANDATORY):**
|
|
741
|
-
|
|
742
|
-
```
|
|
743
|
-
# 🚨 CRITICAL: This is a FOR loop, NOT a WHILE loop with early exit
|
|
744
|
-
# You MUST complete all 3 rounds regardless of feedback
|
|
745
|
-
|
|
746
|
-
FOR round_count IN [1, 2, 3]: # EXACTLY 3 rounds, NO early exit
|
|
747
|
-
|
|
748
|
-
print(f"━━━ Round {round_count}/3 ━━━")
|
|
749
|
-
|
|
750
|
-
# 1. Call GPT + Gemini in parallel (Bash)
|
|
751
|
-
gpt_result = Bash("node llm-orchestrate.js gpt ...")
|
|
752
|
-
gemini_result = Bash("node llm-orchestrate.js gemini ...")
|
|
753
|
-
|
|
754
|
-
# 2. Merge and apply feedback (even if "no issues", still run next round)
|
|
755
|
-
apply_feedback(gpt_result, gemini_result)
|
|
756
|
-
update_spec()
|
|
757
|
-
|
|
758
|
-
# 3. Show progress
|
|
759
|
-
print(f"✅ Round {round_count}/3 complete")
|
|
760
|
-
|
|
761
|
-
# 4. NO EARLY EXIT - continue to next round
|
|
762
|
-
# Even if both say "no issues", proceed to next round for verification
|
|
734
|
+
### 8. SPEC Draft Complete - Handoff to Review
|
|
763
735
|
|
|
764
|
-
|
|
765
|
-
print(f"🎉 Review complete! All 3 rounds finished.")
|
|
766
|
-
```
|
|
767
|
-
|
|
768
|
-
**🚨 ABSOLUTE RULES (NO EXCEPTIONS):**
|
|
769
|
-
1. **MUST complete Round 1** - never skip
|
|
770
|
-
2. **MUST complete Round 2** - even if Round 1 had no issues
|
|
771
|
-
3. **MUST complete Round 3** - even if Round 1 and 2 had no issues
|
|
772
|
-
4. **MUST show "Round X/3"** in output for EACH round
|
|
773
|
-
5. **NO EARLY EXIT** - all 3 rounds are mandatory for quality assurance
|
|
774
|
-
6. **VIOLATION = SPEC NOT COMPLETE** - if less than 3 rounds, SPEC is invalid
|
|
736
|
+
**🚨 IMPORTANT: GPT/Gemini review is now a SEPARATE command**
|
|
775
737
|
|
|
776
|
-
|
|
738
|
+
After SPEC draft is complete (score ≥ 95), output the handoff message:
|
|
777
739
|
|
|
778
740
|
```
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
[GPT] 3 issues found: ...
|
|
783
|
-
[Gemini] 2 issues found: ...
|
|
784
|
-
✅ Applied 5 improvements
|
|
785
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
786
|
-
|
|
787
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
788
|
-
🔍 SPEC REVIEW - Round 2/3
|
|
789
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
790
|
-
[GPT] 1 issue found: ...
|
|
791
|
-
[Gemini] 0 issues found
|
|
792
|
-
✅ Applied 1 improvement
|
|
793
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
741
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
742
|
+
✅ SPEC DRAFT COMPLETE: {feature-name}
|
|
743
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
794
744
|
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
[GPT] 0 issues found
|
|
799
|
-
[Gemini] 0 issues found
|
|
800
|
-
✅ No changes needed
|
|
801
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
802
|
-
|
|
803
|
-
🎉 SPEC Review complete! 3 rounds, 6 total improvements
|
|
804
|
-
```
|
|
745
|
+
📋 SPEC: .claude/vibe/specs/{feature-name}.spec.md
|
|
746
|
+
📋 Feature: .claude/vibe/features/{feature-name}.feature
|
|
747
|
+
📊 Quality Score: {score}/100
|
|
805
748
|
|
|
806
|
-
|
|
749
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
750
|
+
⚠️ NEXT STEP: Run GPT/Gemini review in a NEW session
|
|
807
751
|
|
|
752
|
+
1. Start new session: /new
|
|
753
|
+
2. Run review: /vibe.spec.review "{feature-name}"
|
|
754
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
808
755
|
```
|
|
809
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
810
|
-
🔍 SPEC REVIEW
|
|
811
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
812
|
-
|
|
813
|
-
[Step 1] Sending SPEC to Gemini/GPT...
|
|
814
|
-
- Full SPEC content
|
|
815
|
-
- Feature file (scenarios)
|
|
816
|
-
- Project context
|
|
817
|
-
|
|
818
|
-
[Step 2] Review feedback:
|
|
819
|
-
┌─────────────────────────────────────────┐
|
|
820
|
-
│ 📝 SPEC Review Feedback │
|
|
821
|
-
│ │
|
|
822
|
-
│ 1. [Missing] Error handling scenarios │
|
|
823
|
-
│ → Recommend adding "retry on network │
|
|
824
|
-
│ error" │
|
|
825
|
-
│ │
|
|
826
|
-
│ 2. [Security] Auth token expiry │
|
|
827
|
-
│ handling undefined │
|
|
828
|
-
│ → Recommend adding refresh token │
|
|
829
|
-
│ flow │
|
|
830
|
-
│ │
|
|
831
|
-
│ 3. [Edge] Concurrent login policy │
|
|
832
|
-
│ undefined │
|
|
833
|
-
│ → Need to specify existing session │
|
|
834
|
-
│ handling method │
|
|
835
|
-
└─────────────────────────────────────────┘
|
|
836
|
-
|
|
837
|
-
[Step 3] Auto-applying...
|
|
838
|
-
✅ Added error handling Phase to SPEC Task
|
|
839
|
-
✅ Added token expiry scenario to Feature
|
|
840
|
-
✅ Added concurrent login policy to Constraints
|
|
841
|
-
|
|
842
|
-
[Step 4] Re-verifying...
|
|
843
|
-
✅ Ambiguity Scan: 0 issues
|
|
844
|
-
✅ Quality Score: 95/100
|
|
845
|
-
|
|
846
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
847
|
-
✅ SPEC Review complete! 3 improvements applied
|
|
848
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
849
|
-
```
|
|
850
|
-
|
|
851
|
-
**MUST: SPEC Review (Required) - GPT + Gemini Parallel Execution**
|
|
852
|
-
|
|
853
|
-
🚨 **Run GPT and Gemini in parallel for cross-validation to ensure quality**
|
|
854
|
-
|
|
855
|
-
**Parallel execution (2 Bash calls simultaneously):**
|
|
856
|
-
|
|
857
|
-
```bash
|
|
858
|
-
# Cross-platform path (works on Windows/macOS/Linux)
|
|
859
|
-
VIBE_SCRIPTS="$(node -p "process.env.APPDATA || require('os').homedir() + '/.config'")/vibe/hooks/scripts"
|
|
860
|
-
|
|
861
|
-
# GPT review (code patterns, architecture perspective)
|
|
862
|
-
node "$VIBE_SCRIPTS/llm-orchestrate.js" gpt orchestrate-json "Review SPEC for [feature-name]. Stack: [stack]. Summary: [summary]. Check: completeness, error handling, security, edge cases."
|
|
863
|
-
|
|
864
|
-
# Gemini review (latest docs, best practices perspective)
|
|
865
|
-
node "$VIBE_SCRIPTS/llm-orchestrate.js" gemini orchestrate-json "Review SPEC for [feature-name]. Stack: [stack]. Summary: [summary]. Check: completeness, error handling, security, edge cases."
|
|
866
|
-
```
|
|
867
|
-
|
|
868
|
-
**Important:**
|
|
869
|
-
|
|
870
|
-
- **Must call both GPT and Gemini** (parallel execution)
|
|
871
|
-
- Merge feedback from both models and apply to SPEC
|
|
872
|
-
- If one model fails, apply only the remaining result
|
|
873
|
-
- Don't send full SPEC, send only **key summary** (save tokens)
|
|
874
|
-
- Parse JSON response and auto-apply to SPEC
|
|
875
|
-
|
|
876
|
-
**Why parallel execution:**
|
|
877
|
-
|
|
878
|
-
| Model | Strengths |
|
|
879
|
-
|-------|-----------|
|
|
880
|
-
| GPT | Code patterns, architecture, logic validation |
|
|
881
|
-
| Gemini | Latest web info, doc search, best practices |
|
|
882
|
-
|
|
883
|
-
**Result merge:** Combine feedback from both models for more thorough review
|
|
884
|
-
|
|
885
|
-
**Review items:**
|
|
886
|
-
|
|
887
|
-
| Category | Check Point |
|
|
888
|
-
|----------|-------------|
|
|
889
|
-
| Completeness | All user flows covered? |
|
|
890
|
-
| Error Handling | Failure scenarios defined? |
|
|
891
|
-
| Security | Auth/authorization/data protection? |
|
|
892
|
-
| Edge Cases | Boundary conditions handled? |
|
|
893
|
-
| Testability | ACs verifiable? |
|
|
894
|
-
|
|
895
|
-
**Auto-apply rules:**
|
|
896
|
-
|
|
897
|
-
| Feedback Type | Action |
|
|
898
|
-
|---------------|--------|
|
|
899
|
-
| Missing scenario | Auto-add to Feature |
|
|
900
|
-
| Security considerations | Auto-add to Constraints |
|
|
901
|
-
| Edge cases | Auto-add to Task Phase |
|
|
902
|
-
| Lack of clarity | Supplement the section |
|
|
903
756
|
|
|
904
|
-
**
|
|
905
|
-
-
|
|
906
|
-
-
|
|
757
|
+
**Why separate session?**
|
|
758
|
+
- Prevents context bloat from affecting review accuracy
|
|
759
|
+
- Ensures GPT/Gemini paths and instructions are followed correctly
|
|
760
|
+
- Review command is short and focused
|
|
907
761
|
|
|
908
762
|
## Output (MANDATORY File Creation)
|
|
909
763
|
|
|
@@ -0,0 +1,300 @@
|
|
|
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: GPT/Gemini Review (3-Round Mandatory)
|
|
154
|
+
|
|
155
|
+
**🚨 CRITICAL: Execute ALL 3 rounds. DO NOT skip.**
|
|
156
|
+
|
|
157
|
+
### 3.1 Path Configuration
|
|
158
|
+
|
|
159
|
+
**🚨 MANDATORY: Copy the EXACT path below. DO NOT modify or use alternative paths.**
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Cross-platform path (works on Windows/macOS/Linux)
|
|
163
|
+
# ⚠️ COPY THIS EXACTLY - DO NOT USE ~/.claude/ or any other path!
|
|
164
|
+
VIBE_SCRIPTS="$(node -p "process.env.APPDATA || require('os').homedir() + '/.config'")/vibe/hooks/scripts"
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### 3.2 Review Loop (3 Rounds)
|
|
168
|
+
|
|
169
|
+
For each round (1 to 3):
|
|
170
|
+
|
|
171
|
+
**Run GPT and Gemini in PARALLEL (2 Bash calls simultaneously):**
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# GPT review
|
|
175
|
+
node "$VIBE_SCRIPTS/llm-orchestrate.js" gpt orchestrate-json "Review SPEC for {feature-name}. Stack: {stack}. Summary: {spec-summary}. Round {N}/3. Check: completeness, error handling, security, edge cases, performance."
|
|
176
|
+
|
|
177
|
+
# Gemini review
|
|
178
|
+
node "$VIBE_SCRIPTS/llm-orchestrate.js" gemini orchestrate-json "Review SPEC for {feature-name}. Stack: {stack}. Summary: {spec-summary}. Round {N}/3. Check: completeness, error handling, security, edge cases, performance."
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**After each round:**
|
|
182
|
+
1. Parse JSON responses from both GPT and Gemini
|
|
183
|
+
2. Merge feedback (deduplicate, prioritize)
|
|
184
|
+
3. Auto-apply improvements to SPEC and Feature files
|
|
185
|
+
4. Continue to next round
|
|
186
|
+
|
|
187
|
+
**Output format:**
|
|
188
|
+
```
|
|
189
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
190
|
+
🔍 SPEC REVIEW - Round 1/3
|
|
191
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
192
|
+
[GPT] 2 issues found:
|
|
193
|
+
1. Missing retry logic for API calls
|
|
194
|
+
2. Token refresh flow not specified
|
|
195
|
+
|
|
196
|
+
[Gemini] 1 issue found:
|
|
197
|
+
1. Missing rate limiting specification
|
|
198
|
+
|
|
199
|
+
Merged: 3 unique issues
|
|
200
|
+
Auto-applying...
|
|
201
|
+
✅ Added retry logic (3 attempts, exponential backoff)
|
|
202
|
+
✅ Added token refresh flow to auth section
|
|
203
|
+
✅ Added rate limiting (100 req/min)
|
|
204
|
+
|
|
205
|
+
✅ Round 1 complete - 3 improvements applied
|
|
206
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
207
|
+
|
|
208
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
209
|
+
🔍 SPEC REVIEW - Round 2/3
|
|
210
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
211
|
+
[GPT] 1 issue found:
|
|
212
|
+
1. Concurrent session handling unclear
|
|
213
|
+
|
|
214
|
+
[Gemini] 0 issues found
|
|
215
|
+
|
|
216
|
+
Auto-applying...
|
|
217
|
+
✅ Added concurrent session policy
|
|
218
|
+
|
|
219
|
+
✅ Round 2 complete - 1 improvement applied
|
|
220
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
221
|
+
|
|
222
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
223
|
+
🔍 SPEC REVIEW - Round 3/3
|
|
224
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
225
|
+
[GPT] 0 issues found
|
|
226
|
+
[Gemini] 0 issues found
|
|
227
|
+
|
|
228
|
+
✅ No changes needed - SPEC is complete
|
|
229
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Step 4: Final Summary
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
238
|
+
✅ SPEC REVIEW COMPLETE: {feature-name}
|
|
239
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
240
|
+
|
|
241
|
+
Quality Score: 96/100 ✅
|
|
242
|
+
Review Rounds: 3/3 ✅
|
|
243
|
+
Total Improvements: 4
|
|
244
|
+
|
|
245
|
+
Updated files:
|
|
246
|
+
📋 .claude/vibe/specs/{feature-name}.spec.md
|
|
247
|
+
📋 .claude/vibe/features/{feature-name}.feature
|
|
248
|
+
|
|
249
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
250
|
+
|
|
251
|
+
## Next Step
|
|
252
|
+
|
|
253
|
+
/vibe.run "{feature-name}"
|
|
254
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Error Handling
|
|
260
|
+
|
|
261
|
+
### SPEC Not Found
|
|
262
|
+
```
|
|
263
|
+
❌ ERROR: SPEC file not found
|
|
264
|
+
|
|
265
|
+
Expected: .claude/vibe/specs/{feature-name}.spec.md
|
|
266
|
+
|
|
267
|
+
Please run /vibe.spec "{feature-name}" first to create the SPEC.
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### Feature Not Found
|
|
271
|
+
```
|
|
272
|
+
❌ ERROR: Feature file not found
|
|
273
|
+
|
|
274
|
+
Expected: .claude/vibe/features/{feature-name}.feature
|
|
275
|
+
|
|
276
|
+
Please run /vibe.spec "{feature-name}" first to create the Feature file.
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### GPT/Gemini Call Failed
|
|
280
|
+
```
|
|
281
|
+
⚠️ WARNING: {GPT|Gemini} call failed
|
|
282
|
+
|
|
283
|
+
Error: {error message}
|
|
284
|
+
|
|
285
|
+
Continuing with {other model} results only...
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Quick Mode
|
|
291
|
+
|
|
292
|
+
For faster iteration (1 round only):
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
/vibe.spec.review "feature-name" --quick
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
ARGUMENTS: $ARGUMENTS
|
|
@@ -52,7 +52,9 @@ function getGeminiApiKey() {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
async function generateImageWithGemini(prompt, apiKey) {
|
|
55
|
-
|
|
55
|
+
// Nano Banana (Gemini 2.5 Flash Image) - fast image generation for icons/logos
|
|
56
|
+
// For professional assets, use gemini-3-pro-image-preview (Nano Banana Pro)
|
|
57
|
+
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent?key=${apiKey}`;
|
|
56
58
|
|
|
57
59
|
const requestBody = {
|
|
58
60
|
contents: [{
|