@su-record/vibe 2.2.2 β 2.2.3
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/settings.json +152 -152
- package/.claude/vibe/constitution.md +184 -184
- package/.claude/vibe/rules/core/communication-guide.md +104 -104
- package/.claude/vibe/rules/core/development-philosophy.md +52 -52
- package/.claude/vibe/rules/core/quick-start.md +120 -120
- package/.claude/vibe/rules/quality/bdd-contract-testing.md +388 -388
- package/.claude/vibe/rules/quality/checklist.md +276 -276
- package/.claude/vibe/rules/quality/testing-strategy.md +437 -437
- package/.claude/vibe/rules/standards/anti-patterns.md +369 -369
- package/.claude/vibe/rules/standards/code-structure.md +291 -291
- package/.claude/vibe/rules/standards/complexity-metrics.md +312 -312
- package/.claude/vibe/rules/standards/naming-conventions.md +198 -198
- package/.claude/vibe/setup.sh +31 -31
- package/CLAUDE.md +323 -323
- package/LICENSE +21 -21
- package/README.md +724 -721
- package/agents/explorer.md +48 -0
- package/agents/implementer.md +53 -0
- package/agents/research/best-practices-agent.md +139 -0
- package/agents/research/codebase-patterns-agent.md +147 -0
- package/agents/research/framework-docs-agent.md +181 -0
- package/agents/research/security-advisory-agent.md +167 -0
- package/agents/review/architecture-reviewer.md +107 -0
- package/agents/review/complexity-reviewer.md +116 -0
- package/agents/review/data-integrity-reviewer.md +88 -0
- package/agents/review/git-history-reviewer.md +103 -0
- package/agents/review/performance-reviewer.md +86 -0
- package/agents/review/python-reviewer.md +152 -0
- package/agents/review/rails-reviewer.md +139 -0
- package/agents/review/react-reviewer.md +144 -0
- package/agents/review/security-reviewer.md +80 -0
- package/agents/review/simplicity-reviewer.md +140 -0
- package/agents/review/test-coverage-reviewer.md +116 -0
- package/agents/review/typescript-reviewer.md +127 -0
- package/agents/searcher.md +54 -0
- package/agents/simplifier.md +119 -0
- package/agents/tester.md +49 -0
- package/commands/vibe.analyze.md +239 -0
- package/commands/vibe.compound.md +261 -0
- package/commands/vibe.continue.md +88 -0
- package/commands/vibe.diagram.md +178 -0
- package/commands/vibe.e2e.md +266 -0
- package/commands/vibe.reason.md +306 -0
- package/commands/vibe.review.md +324 -0
- package/commands/vibe.run.md +836 -0
- package/commands/vibe.setup.md +97 -0
- package/commands/vibe.spec.md +383 -0
- package/commands/vibe.ui.md +137 -0
- package/commands/vibe.verify.md +238 -0
- package/dist/cli/index.js +389 -389
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/MemoryManager.js +92 -92
- package/dist/lib/PythonParser.js +108 -108
- package/dist/lib/gemini-mcp.js +15 -15
- package/dist/lib/gemini-oauth.js +35 -35
- package/dist/lib/gpt-mcp.js +17 -17
- package/dist/lib/gpt-oauth.js +44 -44
- package/dist/tools/analytics/getUsageAnalytics.js +12 -12
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
- package/dist/tools/planning/generatePrd.js +46 -46
- package/dist/tools/prompt/enhancePromptGemini.js +160 -160
- package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/package.json +69 -66
- package/skills/git-worktree.md +178 -0
- package/skills/priority-todos.md +236 -0
- package/templates/constitution-template.md +184 -184
- package/templates/contract-backend-template.md +517 -517
- package/templates/contract-frontend-template.md +594 -594
- package/templates/feature-template.md +96 -96
- package/templates/hooks-template.json +103 -103
- package/templates/spec-template.md +199 -199
- package/.claude/vibe/rules/tools/mcp-hi-ai-guide.md +0 -665
- package/.claude/vibe/rules/tools/mcp-workflow.md +0 -51
|
@@ -0,0 +1,836 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Execute implementation from SPEC
|
|
3
|
+
argument-hint: "feature name" or --phase N
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /vibe.run
|
|
7
|
+
|
|
8
|
+
Execute **Scenario-Driven Implementation** with automatic quality verification.
|
|
9
|
+
|
|
10
|
+
> **ν΅μ¬ μμΉ**: μλ리μ€κ° κ³§ ꡬν λ¨μμ΄μ κ²μ¦ κΈ°μ€. λͺ¨λ μλλ¦¬μ€ ν΅κ³Ό = νμ§ λ³΄μ₯.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/vibe.run "feature-name" # Full implementation
|
|
16
|
+
/vibe.run "feature-name" --phase 1 # Specific Phase only
|
|
17
|
+
/vibe.run "feature-name" ultrawork # ULTRAWORK mode (recommended)
|
|
18
|
+
/vibe.run "feature-name" ulw # Short alias for ultrawork
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## **Scenario-Driven Development (SDD)**
|
|
24
|
+
|
|
25
|
+
> λΉκ°λ°μλ νμ§μ μ λ’°ν μ μλλ‘, **μλλ¦¬μ€ = ꡬν = κ²μ¦**μ μλν
|
|
26
|
+
|
|
27
|
+
### ν΅μ¬ νλ¦
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
31
|
+
β SCENARIO-DRIVEN IMPLEMENTATION β
|
|
32
|
+
β β
|
|
33
|
+
β Feature νμΌ λ‘λ β
|
|
34
|
+
β β β
|
|
35
|
+
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
36
|
+
β β Scenario 1: Happy Path β β
|
|
37
|
+
β β Given β When β Then β β
|
|
38
|
+
β β β β β
|
|
39
|
+
β β [ꡬν] β [μ¦μ κ²μ¦] β β
Pass β β
|
|
40
|
+
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
41
|
+
β β β
|
|
42
|
+
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
43
|
+
β β Scenario 2: Edge Case β β
|
|
44
|
+
β β Given β When β Then β β
|
|
45
|
+
β β β β β
|
|
46
|
+
β β [ꡬν] β [μ¦μ κ²μ¦] β β Fail β [μμ ] β β
Pass β β
|
|
47
|
+
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
48
|
+
β β β
|
|
49
|
+
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
50
|
+
β β Scenario N: ... β β
|
|
51
|
+
β β [ꡬν] β [μ¦μ κ²μ¦] β β
Pass β β
|
|
52
|
+
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
53
|
+
β β β
|
|
54
|
+
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
55
|
+
β β π QUALITY REPORT β β
|
|
56
|
+
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
|
|
57
|
+
β β μλ리μ€: 5/5 ν΅κ³Ό β
β β
|
|
58
|
+
β β νμ§ μ μ: 94/100 β β
|
|
59
|
+
β β λΉλ: β
| ν
μ€νΈ: β
β β
|
|
60
|
+
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
61
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### μλλ¦¬μ€ = ꡬν λ¨μ
|
|
65
|
+
|
|
66
|
+
**κΈ°μ‘΄ λ°©μ (Phase κΈ°λ°)**:
|
|
67
|
+
```
|
|
68
|
+
Phase 1 β Phase 2 β Phase 3 β ... β λ§μ§λ§μ κ²μ¦
|
|
69
|
+
β
|
|
70
|
+
"μ΄λμ μλͺ»λμ§?"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**SDD λ°©μ (Scenario κΈ°λ°)**:
|
|
74
|
+
```
|
|
75
|
+
Scenario 1 β ꡬν β κ²μ¦ β
|
|
76
|
+
Scenario 2 β ꡬν β κ²μ¦ β
|
|
77
|
+
Scenario 3 β ꡬν β κ²μ¦ β β μμ β β
|
|
78
|
+
...
|
|
79
|
+
μ 체 ν΅κ³Ό = νμ§ λ³΄μ₯
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### κ²μ¦ μλν
|
|
83
|
+
|
|
84
|
+
κ° μλλ¦¬μ€ κ΅¬ν ν **μλ κ²μ¦**:
|
|
85
|
+
|
|
86
|
+
| κ²μ¦ νλͺ© | μλ μ²΄ν¬ |
|
|
87
|
+
|-----------|-----------|
|
|
88
|
+
| Given (μ μ 쑰건) | μν/λ°μ΄ν° μ€λΉ νμΈ |
|
|
89
|
+
| When (νλ) | κΈ°λ₯ μ€ν κ°λ₯ μ¬λΆ |
|
|
90
|
+
| Then (κ²°κ³Ό) | μμ κ²°κ³Ό μΌμΉ μ¬λΆ |
|
|
91
|
+
| μ½λ νμ§ | 볡μ‘λ, μ€νμΌ, 보μ |
|
|
92
|
+
|
|
93
|
+
### μ€ν¨ μ μλ μμ
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Scenario κ²μ¦ μ€ν¨
|
|
97
|
+
β
|
|
98
|
+
[μμΈ λΆμ] - μ΄λ€ Then μ‘°κ±΄μ΄ μ€ν¨?
|
|
99
|
+
β
|
|
100
|
+
[μμ ꡬν] - ν΄λΉ λΆλΆλ§ μμ
|
|
101
|
+
β
|
|
102
|
+
[μ¬κ²μ¦] - λ€μ 체ν¬
|
|
103
|
+
β
|
|
104
|
+
ν΅κ³Όν λκΉμ§ λ°λ³΅ (μ΅λ 3ν)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## **ULTRAWORK Mode** (ulw)
|
|
110
|
+
|
|
111
|
+
> Include `ultrawork` or `ulw` in your command to activate **maximum performance mode**.
|
|
112
|
+
|
|
113
|
+
### What ULTRAWORK Enables
|
|
114
|
+
|
|
115
|
+
When you include `ultrawork` (or `ulw`), ALL of these activate automatically:
|
|
116
|
+
|
|
117
|
+
| Feature | Description |
|
|
118
|
+
|---------|-------------|
|
|
119
|
+
| **Parallel Exploration** | 3+ Task(haiku) agents run simultaneously |
|
|
120
|
+
| **Boulder Loop** | Auto-continues until ALL phases complete |
|
|
121
|
+
| **Context Compression** | Aggressive auto-save at 70%+ context |
|
|
122
|
+
| **No Pause** | Doesn't wait for confirmation between phases |
|
|
123
|
+
| **External LLMs** | Auto-consults GPT/Gemini if enabled |
|
|
124
|
+
| **Error Recovery** | Auto-retries on failure (up to 3 times) |
|
|
125
|
+
|
|
126
|
+
### Boulder Loop (Inspired by Sisyphus)
|
|
127
|
+
|
|
128
|
+
Like Sisyphus rolling the boulder, ULTRAWORK **keeps going until done**:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
132
|
+
β BOULDER LOOP (ultrawork) β
|
|
133
|
+
β β
|
|
134
|
+
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
|
|
135
|
+
β β Phase 1 ββββββ Phase 2 ββββββ Phase 3 ββββββ Phase N β β
|
|
136
|
+
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
|
|
137
|
+
β β β β β β
|
|
138
|
+
β β β β β β
|
|
139
|
+
β [Parallel] [Parallel] [Parallel] [Parallel] β
|
|
140
|
+
β [Implement] [Implement] [Implement] [Implement] β
|
|
141
|
+
β [Test] [Test] [Test] [Test] β
|
|
142
|
+
β β β β β β
|
|
143
|
+
β βββββββββββββββββ΄ββββββββββββββββ΄ββββββββββββββββ β
|
|
144
|
+
β β β
|
|
145
|
+
β β β
|
|
146
|
+
β ββββββββββββββββ β
|
|
147
|
+
β β ALL DONE? β β
|
|
148
|
+
β ββββββββββββββββ β
|
|
149
|
+
β β β β
|
|
150
|
+
β NO YES β
|
|
151
|
+
β β β β
|
|
152
|
+
β β β β
|
|
153
|
+
β [Continue] [π Complete!] β
|
|
154
|
+
β β
|
|
155
|
+
β NO STOPPING until acceptance criteria met or error limit hit β
|
|
156
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### ULTRAWORK Example
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
User: /vibe.run "brick-game" ultrawork
|
|
163
|
+
|
|
164
|
+
Claude:
|
|
165
|
+
π ULTRAWORK MODE ACTIVATED
|
|
166
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
167
|
+
|
|
168
|
+
π SPEC: .claude/vibe/specs/brick-game.md
|
|
169
|
+
π― 4 Phases detected
|
|
170
|
+
β‘ Boulder Loop: ENABLED (will continue until all phases complete)
|
|
171
|
+
π Auto-retry: ON (max 3 per phase)
|
|
172
|
+
πΎ Context compression: AGGRESSIVE
|
|
173
|
+
|
|
174
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
175
|
+
ποΈ BOULDER ROLLING... Phase 1/4
|
|
176
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
177
|
+
|
|
178
|
+
β‘ [PARALLEL] Launching 3 exploration agents...
|
|
179
|
+
β
Exploration complete (7.2s)
|
|
180
|
+
π¨ Implementing...
|
|
181
|
+
β
Phase 1 complete
|
|
182
|
+
|
|
183
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
184
|
+
ποΈ BOULDER ROLLING... Phase 2/4
|
|
185
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
186
|
+
|
|
187
|
+
β‘ [PARALLEL] Launching 3 exploration agents...
|
|
188
|
+
β
Exploration complete (6.8s)
|
|
189
|
+
π¨ Implementing...
|
|
190
|
+
β Test failed: collision detection
|
|
191
|
+
π Auto-retry 1/3...
|
|
192
|
+
π¨ Fixing...
|
|
193
|
+
β
Phase 2 complete
|
|
194
|
+
|
|
195
|
+
[...continues automatically...]
|
|
196
|
+
|
|
197
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
198
|
+
π BOULDER REACHED THE TOP!
|
|
199
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
200
|
+
|
|
201
|
+
β
All 4 phases complete
|
|
202
|
+
β
All acceptance criteria passed
|
|
203
|
+
β
Build succeeded
|
|
204
|
+
β
Tests passed
|
|
205
|
+
|
|
206
|
+
β±οΈ Total: 8m 24s
|
|
207
|
+
π Retries: 2
|
|
208
|
+
πΎ Context saved: 3 checkpoints
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Normal vs ULTRAWORK Comparison
|
|
212
|
+
|
|
213
|
+
| Aspect | Normal | ULTRAWORK |
|
|
214
|
+
|--------|--------|-----------|
|
|
215
|
+
| Phase transition | May pause | Auto-continues |
|
|
216
|
+
| On error | Reports and stops | Auto-retries (3x) |
|
|
217
|
+
| Context 70%+ | Warning only | Auto-compress + save |
|
|
218
|
+
| Exploration | Sequential possible | FORCED parallel |
|
|
219
|
+
| Completion | Phase-by-phase | Until ALL done |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Rules Reference
|
|
224
|
+
|
|
225
|
+
**Must follow `.claude/vibe/rules/`:**
|
|
226
|
+
- `core/development-philosophy.md` - Surgical precision, modify only requested scope
|
|
227
|
+
- `core/quick-start.md` - Korean, DRY, SRP, YAGNI
|
|
228
|
+
- `standards/complexity-metrics.md` - Functions β€20 lines, nesting β€3 levels
|
|
229
|
+
- `quality/checklist.md` - Code quality checklist
|
|
230
|
+
|
|
231
|
+
## Description
|
|
232
|
+
|
|
233
|
+
Read PTCF structured SPEC document and execute implementation immediately.
|
|
234
|
+
|
|
235
|
+
> **PLAN, TASKS documents unnecessary** - SPEC is the executable prompt
|
|
236
|
+
|
|
237
|
+
## Model Orchestration
|
|
238
|
+
|
|
239
|
+
Automatically select optimal model based on task type:
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
243
|
+
β Opus 4.5 (Orchestrator) β
|
|
244
|
+
β - Coordinate overall flow β
|
|
245
|
+
β - Final decisions/review β
|
|
246
|
+
βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
|
|
247
|
+
β
|
|
248
|
+
βββββββββββββββββββββββΌββββββββββββββββββββββ
|
|
249
|
+
β β β
|
|
250
|
+
βββββββββββ βββββββββββ βββββββββββ
|
|
251
|
+
β Haiku β β Sonnet β β Haiku β
|
|
252
|
+
β(Explore)β β (Impl) β β (Test) β
|
|
253
|
+
βββββββββββ βββββββββββ βββββββββββ
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Task Calls by Role
|
|
257
|
+
|
|
258
|
+
| Task Type | Model | Task Parameter |
|
|
259
|
+
|-----------|-------|----------------|
|
|
260
|
+
| Codebase exploration | Haiku 4.5 | `model: "haiku"` |
|
|
261
|
+
| Core implementation | Sonnet 4 | `model: "sonnet"` |
|
|
262
|
+
| Test writing | Haiku 4.5 | `model: "haiku"` |
|
|
263
|
+
| Architecture decisions | Opus 4.5 | Main session |
|
|
264
|
+
| Final review | Opus 4.5 | Main session |
|
|
265
|
+
|
|
266
|
+
### External LLM Usage (When Enabled)
|
|
267
|
+
|
|
268
|
+
When external LLMs are enabled in `.claude/vibe/config.json`:
|
|
269
|
+
|
|
270
|
+
| Role | Model | Condition |
|
|
271
|
+
|------|-------|-----------|
|
|
272
|
+
| Architecture/Debugging | GPT 5.2 | When `vibe gpt <key>` executed |
|
|
273
|
+
| UI/UX Design, Exploration | Gemini 2.5/3 | When `vibe gemini --auth` executed |
|
|
274
|
+
|
|
275
|
+
When external LLM enabled, automatically called via MCP:
|
|
276
|
+
- `mcp__vibe-gpt__chat` - GPT 5.2 architecture consultation
|
|
277
|
+
- `mcp__vibe-gemini__gemini_chat` - Gemini μ§λ¬Έ/μλ΄
|
|
278
|
+
- `mcp__vibe-gemini__gemini_analyze_code` - μ½λ λΆμ
|
|
279
|
+
- `mcp__vibe-gemini__gemini_review_ui` - UI/UX 리뷰
|
|
280
|
+
- `mcp__vibe-gemini__gemini_quick_ask` - λΉ λ₯Έ μ§λ¬Έ (νμμ©)
|
|
281
|
+
|
|
282
|
+
### External LLM Fallback
|
|
283
|
+
|
|
284
|
+
**IMPORTANT**: When Gemini/GPT MCP returns `"status": "fallback"`, Claude MUST handle the task directly:
|
|
285
|
+
|
|
286
|
+
```json
|
|
287
|
+
{
|
|
288
|
+
"status": "fallback",
|
|
289
|
+
"reason": "rate_limit", // or "auth_error"
|
|
290
|
+
"message": "Gemini API ν λΉλ μ΄κ³Ό. Claudeκ° μ§μ μ²λ¦¬ν΄μ£ΌμΈμ."
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**Fallback behavior**:
|
|
295
|
+
- Do NOT retry the external LLM call
|
|
296
|
+
- Claude handles the task using its own capabilities
|
|
297
|
+
- Continue with the implementation without interruption
|
|
298
|
+
- Log the fallback but don't block progress
|
|
299
|
+
|
|
300
|
+
## Semantic Code Analysis (hi-ai MCP)
|
|
301
|
+
|
|
302
|
+
Use hi-ai MCP semantic tools to accurately understand codebase before implementation:
|
|
303
|
+
|
|
304
|
+
| MCP Tool | Purpose | When Used |
|
|
305
|
+
|----------|---------|-----------|
|
|
306
|
+
| `vibe_find_symbol` | Find symbol definitions | Locate class/function |
|
|
307
|
+
| `vibe_find_references` | Find references | Analyze impact scope |
|
|
308
|
+
| `vibe_analyze_complexity` | Analyze complexity | Determine refactoring need |
|
|
309
|
+
| `vibe_validate_code_quality` | Validate quality | Verify post-implementation quality |
|
|
310
|
+
|
|
311
|
+
### Semantic Analysis Flow
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
Start Implementation
|
|
315
|
+
β
|
|
316
|
+
βββ find_symbol: Locate exact position of function/class to modify
|
|
317
|
+
β
|
|
318
|
+
βββ find_references: Check all places using that symbol
|
|
319
|
+
β
|
|
320
|
+
βββ analyze_complexity: Check existing code complexity
|
|
321
|
+
β
|
|
322
|
+
β
|
|
323
|
+
Implementation (with accurate understanding of impact scope)
|
|
324
|
+
β
|
|
325
|
+
β
|
|
326
|
+
validate_code_quality: Verify quality after implementation
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Context Management (Session Continuity)
|
|
330
|
+
|
|
331
|
+
| MCP Tool | Purpose |
|
|
332
|
+
|----------|---------|
|
|
333
|
+
| `vibe_start_session` | Start session, restore previous context |
|
|
334
|
+
| `vibe_auto_save_context` | Auto-save current state |
|
|
335
|
+
| `vibe_restore_session_context` | Restore previous session context |
|
|
336
|
+
| `vibe_save_memory` | Save important decisions/patterns |
|
|
337
|
+
|
|
338
|
+
**On session start**: `vibe_start_session` auto-restores previous context
|
|
339
|
+
**On session end**: Hook auto-executes `vibe_auto_save_context`
|
|
340
|
+
|
|
341
|
+
## Process
|
|
342
|
+
|
|
343
|
+
### 1. Load SPEC + Feature
|
|
344
|
+
|
|
345
|
+
```
|
|
346
|
+
π .claude/vibe/specs/{feature-name}.md β SPEC (ꡬ쑰, μ μ½, 컨ν
μ€νΈ)
|
|
347
|
+
π .claude/vibe/features/{feature-name}.feature β Feature (μλλ¦¬μ€ = ꡬν λ¨μ)
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
**Feature νμΌμ΄ μμΌλ©΄ μλ¬**:
|
|
351
|
+
```
|
|
352
|
+
β Feature νμΌμ΄ μμ΅λλ€.
|
|
353
|
+
λ¨Όμ /vibe.spec "{feature-name}"μ μ€ννμΈμ.
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### 2. Scenario λͺ©λ‘ μΆμΆ
|
|
357
|
+
|
|
358
|
+
Feature νμΌμμ λͺ¨λ Scenario μΆμΆ:
|
|
359
|
+
|
|
360
|
+
```markdown
|
|
361
|
+
## Scenarios to Implement
|
|
362
|
+
|
|
363
|
+
| # | Scenario | Status |
|
|
364
|
+
|---|----------|--------|
|
|
365
|
+
| 1 | μ ν¨ν λ‘κ·ΈμΈ μ±κ³΅ | β¬ |
|
|
366
|
+
| 2 | μλͺ»λ λΉλ°λ²νΈ μλ¬ | β¬ |
|
|
367
|
+
| 3 | μ΄λ©μΌ νμ κ²μ¦ | β¬ |
|
|
368
|
+
| 4 | λΉλ°λ²νΈ μ°ΎκΈ° λ§ν¬ | β¬ |
|
|
369
|
+
|
|
370
|
+
Total: 4 scenarios
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
### 3. Scenario-by-Scenario Implementation (ν΅μ¬)
|
|
374
|
+
|
|
375
|
+
**κ° μλ리μ€λ§λ€**:
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
ββββββββββββββββββββββββββββββββββββββββββββ
|
|
379
|
+
π― Scenario 1/4: μ ν¨ν λ‘κ·ΈμΈ μ±κ³΅
|
|
380
|
+
ββββββββββββββββββββββββββββββββββββββββββββ
|
|
381
|
+
|
|
382
|
+
Given: μ¬μ©μκ° λ±λ‘λμ΄ μλ€
|
|
383
|
+
When: μ ν¨ν μ΄λ©μΌκ³Ό λΉλ°λ²νΈλ‘ λ‘κ·ΈμΈ
|
|
384
|
+
Then: λ‘κ·ΈμΈ μ±κ³΅ + JWT ν ν° λ°ν
|
|
385
|
+
|
|
386
|
+
[Step 1] ꡬν λΆμ...
|
|
387
|
+
- νμν νμΌ: auth.service.ts, login.controller.ts
|
|
388
|
+
- κ΄λ ¨ μ½λ νμ μ€...
|
|
389
|
+
|
|
390
|
+
[Step 2] ꡬν μ€...
|
|
391
|
+
β
auth.service.ts - login() λ©μλ μΆκ°
|
|
392
|
+
β
login.controller.ts - POST /login μλν¬μΈνΈ
|
|
393
|
+
|
|
394
|
+
[Step 3] κ²μ¦ μ€...
|
|
395
|
+
β
Given: ν
μ€νΈ μ¬μ©μ μμ± κ°λ₯
|
|
396
|
+
β
When: λ‘κ·ΈμΈ API νΈμΆ μ±κ³΅
|
|
397
|
+
β
Then: JWT ν ν° λ°ν νμΈ
|
|
398
|
+
|
|
399
|
+
β
Scenario 1 ν΅κ³Ό!
|
|
400
|
+
ββββββββββββββββββββββββββββββββββββββββββββ
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
**μ€ν¨ μ**:
|
|
404
|
+
|
|
405
|
+
```
|
|
406
|
+
ββββββββββββββββββββββββββββββββββββββββββββ
|
|
407
|
+
π― Scenario 2/4: μλͺ»λ λΉλ°λ²νΈ μλ¬
|
|
408
|
+
ββββββββββββββββββββββββββββββββββββββββββββ
|
|
409
|
+
|
|
410
|
+
[Step 3] κ²μ¦ μ€...
|
|
411
|
+
β
Given: ν
μ€νΈ μ¬μ©μ μ‘΄μ¬
|
|
412
|
+
β
When: μλͺ»λ λΉλ°λ²νΈλ‘ λ‘κ·ΈμΈ μλ
|
|
413
|
+
β Then: "Invalid credentials" μλ¬ λ©μμ§
|
|
414
|
+
μ€μ : "Error occurred" λ°νλ¨
|
|
415
|
+
|
|
416
|
+
[μλ μμ 1/3]
|
|
417
|
+
μμΈ: μλ¬ λ©μμ§ νλμ½λ© μλ¨
|
|
418
|
+
μμ : auth.service.ts line 42
|
|
419
|
+
|
|
420
|
+
[μ¬κ²μ¦]
|
|
421
|
+
β
Then: "Invalid credentials" μλ¬ λ©μμ§
|
|
422
|
+
|
|
423
|
+
β
Scenario 2 ν΅κ³Ό! (μμ 1ν)
|
|
424
|
+
ββββββββββββββββββββββββββββββββββββββββββββ
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## **CRITICAL: Parallel Sub-Agent Execution**
|
|
430
|
+
|
|
431
|
+
> **MUST USE PARALLEL TASK CALLS** - This is REQUIRED, not optional.
|
|
432
|
+
> Sequential execution when parallel is possible = VIOLATION of this workflow.
|
|
433
|
+
|
|
434
|
+
### Mandatory Parallel Exploration (Phase Start)
|
|
435
|
+
|
|
436
|
+
**BEFORE any implementation, you MUST launch these Task calls IN PARALLEL (single message, multiple tool calls):**
|
|
437
|
+
|
|
438
|
+
```
|
|
439
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
440
|
+
β STEP 1: PARALLEL EXPLORATION (REQUIRED) β
|
|
441
|
+
β β
|
|
442
|
+
β Launch ALL of these in ONE message: β
|
|
443
|
+
β β
|
|
444
|
+
β Task(haiku) ββ¬ββ "Analyze related files in <context>" β
|
|
445
|
+
β β β
|
|
446
|
+
β Task(haiku) ββΌββ "Check dependencies and imports" β
|
|
447
|
+
β β β
|
|
448
|
+
β Task(haiku) ββ΄ββ "Find existing patterns and conventions" β
|
|
449
|
+
β β
|
|
450
|
+
β [If GPT enabled] + MCP(vibe-gpt): Architecture review β
|
|
451
|
+
β [If Gemini enabled] + MCP(vibe-gemini): UI/UX consultation β
|
|
452
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
453
|
+
β
|
|
454
|
+
β (wait for all to complete)
|
|
455
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
456
|
+
β STEP 2: SYNTHESIZE (Opus) β
|
|
457
|
+
β - Review all exploration results β
|
|
458
|
+
β - Decide implementation approach β
|
|
459
|
+
β - Identify files to modify/create β
|
|
460
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
461
|
+
β
|
|
462
|
+
β
|
|
463
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
464
|
+
β STEP 3: IMPLEMENT + BACKGROUND AGENTS (PARALLEL) β
|
|
465
|
+
β β
|
|
466
|
+
β Main Agent (sonnet): β
|
|
467
|
+
β βββ Execute current phase implementation β
|
|
468
|
+
β β
|
|
469
|
+
β Background Agents (haiku, run_in_background=true): β
|
|
470
|
+
β βββ Task: "Prepare Phase N+1 - analyze required files" β
|
|
471
|
+
β βββ Task: "Pre-generate test cases for current implementation" β
|
|
472
|
+
β βββ Task: "Search for related types/interfaces needed" β
|
|
473
|
+
β β
|
|
474
|
+
β [ULTRAWORK] All 4 agents run simultaneously! β
|
|
475
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
476
|
+
β
|
|
477
|
+
β (main completes, check backgrounds)
|
|
478
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
479
|
+
β STEP 4: TEST + PHASE PIPELINING β
|
|
480
|
+
β β
|
|
481
|
+
β Current Phase: β
|
|
482
|
+
β βββ Task(haiku): Write tests using pre-generated cases β
|
|
483
|
+
β β
|
|
484
|
+
β Next Phase Prep (from background results): β
|
|
485
|
+
β βββ Already have file analysis, ready to start immediately β
|
|
486
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
### Parallel Task Call Pattern (MUST FOLLOW)
|
|
490
|
+
|
|
491
|
+
**Correct - Single message with multiple parallel Tasks:**
|
|
492
|
+
```
|
|
493
|
+
<message>
|
|
494
|
+
Task(haiku, "Analyze src/components/ for existing patterns")
|
|
495
|
+
Task(haiku, "Check package.json dependencies")
|
|
496
|
+
Task(haiku, "Find usage of similar features in codebase")
|
|
497
|
+
</message>
|
|
498
|
+
β All 3 run simultaneously, ~3x faster
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
**WRONG - Sequential calls (DO NOT DO THIS):**
|
|
502
|
+
```
|
|
503
|
+
<message>Task(haiku, "Analyze...")</message>
|
|
504
|
+
<message>Task(haiku, "Check...")</message>
|
|
505
|
+
<message>Task(haiku, "Find...")</message>
|
|
506
|
+
β 3x slower, wastes time
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
### Background Agent Pattern (ULTRAWORK)
|
|
510
|
+
|
|
511
|
+
**During implementation, launch background agents for next phase:**
|
|
512
|
+
```
|
|
513
|
+
<message>
|
|
514
|
+
// Main agent - blocks until complete
|
|
515
|
+
Task(sonnet, "Implement Phase 1: Create login form component")
|
|
516
|
+
|
|
517
|
+
// Background agents - run simultaneously, don't block
|
|
518
|
+
Task(haiku, run_in_background=true, "Phase 2 prep: Analyze auth API endpoints")
|
|
519
|
+
Task(haiku, run_in_background=true, "Pre-generate test cases for login form")
|
|
520
|
+
Task(haiku, run_in_background=true, "Find existing validation patterns")
|
|
521
|
+
</message>
|
|
522
|
+
β Main completes in ~60s, backgrounds ready when needed
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
**Checking background results:**
|
|
526
|
+
```
|
|
527
|
+
// After main implementation completes
|
|
528
|
+
TaskOutput(task_id, block=false) // Check if ready
|
|
529
|
+
// OR
|
|
530
|
+
Read(output_file) // Read background agent's findings
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
**Why Background Agents Matter:**
|
|
534
|
+
|
|
535
|
+
| Without Background | With Background |
|
|
536
|
+
|--------------------|-----------------|
|
|
537
|
+
| Phase 1: 60s | Phase 1: 60s (+ backgrounds running) |
|
|
538
|
+
| Phase 2 prep: 20s | Phase 2 prep: 0s (already done!) |
|
|
539
|
+
| Phase 2: 60s | Phase 2: 60s |
|
|
540
|
+
| **Total: 140s** | **Total: 120s** |
|
|
541
|
+
|
|
542
|
+
For 5 phases: 4 Γ 20s saved = **80s faster**
|
|
543
|
+
|
|
544
|
+
### Why Parallel Matters
|
|
545
|
+
|
|
546
|
+
| Approach | Time | Cache Benefit |
|
|
547
|
+
|----------|------|---------------|
|
|
548
|
+
| Sequential (3 Tasks) | ~30s | Cache cold on each |
|
|
549
|
+
| **Parallel (3 Tasks)** | **~10s** | **Cache warmed once, shared** |
|
|
550
|
+
|
|
551
|
+
hi-ai ProjectCache (LRU) caches ts-morph parsing results. Parallel calls share the warmed cache.
|
|
552
|
+
|
|
553
|
+
### Phase Execution Flow (ULTRAWORK Pipeline)
|
|
554
|
+
|
|
555
|
+
```
|
|
556
|
+
Phase N Start
|
|
557
|
+
β
|
|
558
|
+
βββ [PARALLEL] Task(haiku) Γ 3: Exploration
|
|
559
|
+
β - Related code analysis
|
|
560
|
+
β - Dependency check
|
|
561
|
+
β - Pattern discovery
|
|
562
|
+
β
|
|
563
|
+
β (all complete)
|
|
564
|
+
β
|
|
565
|
+
βββ Opus: Synthesize and decide
|
|
566
|
+
β
|
|
567
|
+
βββ [PARALLEL PIPELINE] βββ KEY SPEED OPTIMIZATION
|
|
568
|
+
β β
|
|
569
|
+
β βββ Main: Task(sonnet) Implementation
|
|
570
|
+
β β
|
|
571
|
+
β βββ Background (run_in_background=true):
|
|
572
|
+
β βββ Task(haiku): Phase N+1 file analysis
|
|
573
|
+
β βββ Task(haiku): Test case preparation
|
|
574
|
+
β βββ Task(haiku): Type/interface lookup
|
|
575
|
+
β
|
|
576
|
+
β (main completes)
|
|
577
|
+
β
|
|
578
|
+
βββ Task(haiku): Tests (uses pre-generated cases)
|
|
579
|
+
β
|
|
580
|
+
β
|
|
581
|
+
Phase N Complete
|
|
582
|
+
β
|
|
583
|
+
β (Background results ready - NO WAIT for Phase N+1 exploration!)
|
|
584
|
+
β
|
|
585
|
+
Phase N+1 Start (IMMEDIATE - exploration already done!)
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
**Speed Comparison:**
|
|
589
|
+
|
|
590
|
+
| Mode | Phase Time | 5 Phases Total |
|
|
591
|
+
|------|------------|----------------|
|
|
592
|
+
| Sequential | ~2min/phase | ~10min |
|
|
593
|
+
| Parallel Exploration | ~1.5min/phase | ~7.5min |
|
|
594
|
+
| **ULTRAWORK Pipeline** | **~1min/phase** | **~5min** |
|
|
595
|
+
|
|
596
|
+
**Why Pipeline is Faster:**
|
|
597
|
+
- Background agents prepare next phase WHILE current phase implements
|
|
598
|
+
- No idle time between phases
|
|
599
|
+
- Test cases pre-generated during implementation
|
|
600
|
+
- Cache stays warm across parallel tasks
|
|
601
|
+
|
|
602
|
+
---
|
|
603
|
+
|
|
604
|
+
1. **Related code analysis**: Task(haiku) explores `<context>` related code
|
|
605
|
+
2. **File creation/modification**: Task(sonnet) implements per `<output_format>`
|
|
606
|
+
3. **Constraint compliance**: Check `<constraints>`
|
|
607
|
+
4. **Run verification**: Execute verification commands
|
|
608
|
+
|
|
609
|
+
### 4. Quality Report (μλ μμ±)
|
|
610
|
+
|
|
611
|
+
λͺ¨λ μλλ¦¬μ€ μλ£ ν **νμ§ λ¦¬ν¬νΈ μλ μμ±**:
|
|
612
|
+
|
|
613
|
+
```
|
|
614
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
615
|
+
β π QUALITY REPORT: login β
|
|
616
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
|
|
617
|
+
β β
|
|
618
|
+
β β
μλ리μ€: 4/4 ν΅κ³Ό β
|
|
619
|
+
β β
|
|
620
|
+
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
621
|
+
β β # β Scenario β Status β Retries β β β
|
|
622
|
+
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
|
|
623
|
+
β β 1 β μ ν¨ν λ‘κ·ΈμΈ μ±κ³΅ β β
β 0 β β β
|
|
624
|
+
β β 2 β μλͺ»λ λΉλ°λ²νΈ μλ¬ β β
β 1 β β β
|
|
625
|
+
β β 3 β μ΄λ©μΌ νμ κ²μ¦ β β
β 0 β β β
|
|
626
|
+
β β 4 β λΉλ°λ²νΈ μ°ΎκΈ° λ§ν¬ β β
β 0 β β β
|
|
627
|
+
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
628
|
+
β β
|
|
629
|
+
β π νμ§ μ μ: 94/100 β
|
|
630
|
+
β β
|
|
631
|
+
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
632
|
+
β β νλͺ© β κ²°κ³Ό β λΉκ³ β β
|
|
633
|
+
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
634
|
+
β β λΉλ β β
β npm run build μ±κ³΅ β β
|
|
635
|
+
β β ν
μ€νΈ β β
β 12/12 ν΅κ³Ό β β
|
|
636
|
+
β β νμ
κ²μ¬ β β
β μλ¬ 0κ° β β
|
|
637
|
+
β β 볡μ‘λ β β
β λͺ¨λ ν¨μ β€20μ€ β β
|
|
638
|
+
β β 보μ β β
β μ·¨μ½μ 0κ° β β
|
|
639
|
+
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
|
|
640
|
+
β β
|
|
641
|
+
β β±οΈ μ΄ μμ: 3m 42s β
|
|
642
|
+
β β
|
|
643
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
**μ¬μ©μκ° νμΈν κ²**:
|
|
647
|
+
- μλλ¦¬μ€ ν΅κ³Όμ¨ (4/4 = 100%)
|
|
648
|
+
- νμ§ μ μ (94/100)
|
|
649
|
+
- λΉλ/ν
μ€νΈ μν
|
|
650
|
+
|
|
651
|
+
**μ΄κ²λ§ 보면 νμ§μ μ λ’°ν μ μμ.**
|
|
652
|
+
|
|
653
|
+
### 5. Update Feature File
|
|
654
|
+
|
|
655
|
+
μλλ¦¬μ€ μν μλ μ
λ°μ΄νΈ:
|
|
656
|
+
|
|
657
|
+
```markdown
|
|
658
|
+
## Coverage
|
|
659
|
+
|
|
660
|
+
| Scenario | SPEC AC | Status |
|
|
661
|
+
|----------|---------|--------|
|
|
662
|
+
| μ ν¨ν λ‘κ·ΈμΈ μ±κ³΅ | AC-1 | β
|
|
|
663
|
+
| μλͺ»λ λΉλ°λ²νΈ μλ¬ | AC-2 | β
|
|
|
664
|
+
| μ΄λ©μΌ νμ κ²μ¦ | AC-3 | β
|
|
|
665
|
+
| λΉλ°λ²νΈ μ°ΎκΈ° λ§ν¬ | AC-4 | β
|
|
|
666
|
+
|
|
667
|
+
**Last verified**: 2024-01-15 14:32
|
|
668
|
+
**Quality score**: 94/100
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
## TRUST 5 Principles
|
|
672
|
+
|
|
673
|
+
Follow during implementation:
|
|
674
|
+
|
|
675
|
+
| Principle | Description |
|
|
676
|
+
|-----------|-------------|
|
|
677
|
+
| **T**est-first | Write tests first |
|
|
678
|
+
| **R**eadable | Clear code |
|
|
679
|
+
| **U**nified | Consistent style |
|
|
680
|
+
| **S**ecured | Consider security |
|
|
681
|
+
| **T**rackable | Logging, monitoring |
|
|
682
|
+
|
|
683
|
+
## Input
|
|
684
|
+
|
|
685
|
+
- `.claude/vibe/specs/{feature-name}.md` (PTCF SPEC)
|
|
686
|
+
- `.claude/vibe/features/{feature-name}.feature` (BDD)
|
|
687
|
+
- `CLAUDE.md` (project context)
|
|
688
|
+
|
|
689
|
+
## Output
|
|
690
|
+
|
|
691
|
+
- Implemented code files
|
|
692
|
+
- Test files
|
|
693
|
+
- Updated SPEC document (checkmarks)
|
|
694
|
+
|
|
695
|
+
## Example
|
|
696
|
+
|
|
697
|
+
```
|
|
698
|
+
User: /vibe.run "login"
|
|
699
|
+
|
|
700
|
+
Claude:
|
|
701
|
+
π Loading SPEC: .claude/vibe/specs/login.md
|
|
702
|
+
π Loading Feature: .claude/vibe/features/login.feature
|
|
703
|
+
|
|
704
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
705
|
+
π Scenarios to Implement
|
|
706
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
707
|
+
|
|
708
|
+
| # | Scenario | Status |
|
|
709
|
+
|---|----------|--------|
|
|
710
|
+
| 1 | μ ν¨ν λ‘κ·ΈμΈ μ±κ³΅ | β¬ |
|
|
711
|
+
| 2 | μλͺ»λ λΉλ°λ²νΈ μλ¬ | β¬ |
|
|
712
|
+
| 3 | μ΄λ©μΌ νμ κ²μ¦ | β¬ |
|
|
713
|
+
| 4 | λΉλ°λ²νΈ μ°ΎκΈ° λ§ν¬ | β¬ |
|
|
714
|
+
|
|
715
|
+
Total: 4 scenarios
|
|
716
|
+
|
|
717
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
718
|
+
π― Scenario 1/4: μ ν¨ν λ‘κ·ΈμΈ μ±κ³΅
|
|
719
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
720
|
+
|
|
721
|
+
Given: μ¬μ©μκ° λ±λ‘λμ΄ μλ€
|
|
722
|
+
When: μ ν¨ν μ΄λ©μΌκ³Ό λΉλ°λ²νΈλ‘ λ‘κ·ΈμΈ
|
|
723
|
+
Then: λ‘κ·ΈμΈ μ±κ³΅ + JWT ν ν° λ°ν
|
|
724
|
+
|
|
725
|
+
β‘ [PARALLEL] νμ μ€...
|
|
726
|
+
β
νμ μλ£ (2.1s)
|
|
727
|
+
|
|
728
|
+
π¨ ꡬν μ€...
|
|
729
|
+
β
auth.service.ts - login() μΆκ°
|
|
730
|
+
β
auth.controller.ts - POST /login
|
|
731
|
+
|
|
732
|
+
π κ²μ¦ μ€...
|
|
733
|
+
β
Given: OK
|
|
734
|
+
β
When: OK
|
|
735
|
+
β
Then: OK
|
|
736
|
+
|
|
737
|
+
β
Scenario 1 ν΅κ³Ό!
|
|
738
|
+
|
|
739
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
740
|
+
π― Scenario 2/4: μλͺ»λ λΉλ°λ²νΈ μλ¬
|
|
741
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
742
|
+
|
|
743
|
+
π¨ ꡬν μ€...
|
|
744
|
+
β
auth.service.ts - λΉλ°λ²νΈ κ²μ¦ λ‘μ§
|
|
745
|
+
|
|
746
|
+
π κ²μ¦ μ€...
|
|
747
|
+
β
Given: OK
|
|
748
|
+
β
When: OK
|
|
749
|
+
β Then: "Invalid credentials" μλ¬ λ©μμ§
|
|
750
|
+
μ€μ : "Error" λ°ν
|
|
751
|
+
|
|
752
|
+
π μλ μμ 1/3...
|
|
753
|
+
μμ : auth.service.ts line 42
|
|
754
|
+
|
|
755
|
+
π μ¬κ²μ¦...
|
|
756
|
+
β
Then: OK
|
|
757
|
+
|
|
758
|
+
β
Scenario 2 ν΅κ³Ό! (μμ 1ν)
|
|
759
|
+
|
|
760
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
761
|
+
π― Scenario 3/4: μ΄λ©μΌ νμ κ²μ¦
|
|
762
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
763
|
+
|
|
764
|
+
π¨ ꡬν μ€...
|
|
765
|
+
π κ²μ¦ μ€...
|
|
766
|
+
β
Scenario 3 ν΅κ³Ό!
|
|
767
|
+
|
|
768
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
769
|
+
π― Scenario 4/4: λΉλ°λ²νΈ μ°ΎκΈ° λ§ν¬
|
|
770
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
771
|
+
|
|
772
|
+
π¨ ꡬν μ€...
|
|
773
|
+
π κ²μ¦ μ€...
|
|
774
|
+
β
Scenario 4 ν΅κ³Ό!
|
|
775
|
+
|
|
776
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
777
|
+
β π QUALITY REPORT: login β
|
|
778
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
|
|
779
|
+
β β
|
|
780
|
+
β β
μλ리μ€: 4/4 ν΅κ³Ό β
|
|
781
|
+
β β
|
|
782
|
+
β | # | Scenario | Status | Retries | β
|
|
783
|
+
β |---|βββββββββββββββββββββββ|βββββββ|βββββββββ| β
|
|
784
|
+
β | 1 | μ ν¨ν λ‘κ·ΈμΈ μ±κ³΅ | β
| 0 | β
|
|
785
|
+
β | 2 | μλͺ»λ λΉλ°λ²νΈ μλ¬ | β
| 1 | β
|
|
786
|
+
β | 3 | μ΄λ©μΌ νμ κ²μ¦ | β
| 0 | β
|
|
787
|
+
β | 4 | λΉλ°λ²νΈ μ°ΎκΈ° λ§ν¬ | β
| 0 | β
|
|
788
|
+
β β
|
|
789
|
+
β π νμ§ μ μ: 94/100 β
|
|
790
|
+
β λΉλ: β
| ν
μ€νΈ: β
| νμ
: β
β
|
|
791
|
+
β β
|
|
792
|
+
β β±οΈ μ΄ μμ: 3m 42s β
|
|
793
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
794
|
+
|
|
795
|
+
π ꡬν μλ£! λͺ¨λ μλλ¦¬μ€ ν΅κ³Ό.
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
### Phase-specific Execution
|
|
799
|
+
|
|
800
|
+
```
|
|
801
|
+
User: /vibe.run "brick-game" --phase 2
|
|
802
|
+
|
|
803
|
+
Claude:
|
|
804
|
+
π Reading SPEC: .claude/vibe/specs/brick-game.md
|
|
805
|
+
π― Executing Phase 2 only.
|
|
806
|
+
|
|
807
|
+
Phase 2: Game Logic
|
|
808
|
+
1. [ ] Paddle movement implementation
|
|
809
|
+
2. [ ] Ball physics engine
|
|
810
|
+
3. [ ] Brick collision handling
|
|
811
|
+
4. [ ] Score system
|
|
812
|
+
5. [ ] Game over conditions
|
|
813
|
+
|
|
814
|
+
β‘ Launching parallel exploration...
|
|
815
|
+
[Task(haiku) Γ 3 launched in parallel]
|
|
816
|
+
|
|
817
|
+
π Starting implementation...
|
|
818
|
+
```
|
|
819
|
+
|
|
820
|
+
## Error Handling
|
|
821
|
+
|
|
822
|
+
On failure:
|
|
823
|
+
1. Check error message
|
|
824
|
+
2. Review `<constraints>`
|
|
825
|
+
3. Fix code and retry
|
|
826
|
+
4. If continues to fail, report to user
|
|
827
|
+
|
|
828
|
+
## Next Step
|
|
829
|
+
|
|
830
|
+
```
|
|
831
|
+
/vibe.verify "brick-game"
|
|
832
|
+
```
|
|
833
|
+
|
|
834
|
+
---
|
|
835
|
+
|
|
836
|
+
ARGUMENTS: $ARGUMENTS
|