@su-record/vibe 2.3.0 → 2.3.2

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.
Files changed (98) hide show
  1. package/.claude/settings.json +35 -35
  2. package/.claude/settings.local.json +24 -25
  3. package/.claude/vibe/constitution.md +184 -184
  4. package/.claude/vibe/rules/core/communication-guide.md +104 -104
  5. package/.claude/vibe/rules/core/development-philosophy.md +52 -52
  6. package/.claude/vibe/rules/core/quick-start.md +120 -120
  7. package/.claude/vibe/rules/languages/dart-flutter.md +509 -509
  8. package/.claude/vibe/rules/languages/go.md +396 -396
  9. package/.claude/vibe/rules/languages/java-spring.md +586 -586
  10. package/.claude/vibe/rules/languages/kotlin-android.md +491 -491
  11. package/.claude/vibe/rules/languages/python-django.md +371 -371
  12. package/.claude/vibe/rules/languages/python-fastapi.md +386 -386
  13. package/.claude/vibe/rules/languages/rust.md +425 -425
  14. package/.claude/vibe/rules/languages/swift-ios.md +516 -516
  15. package/.claude/vibe/rules/languages/typescript-nextjs.md +441 -441
  16. package/.claude/vibe/rules/languages/typescript-node.md +375 -375
  17. package/.claude/vibe/rules/languages/typescript-nuxt.md +521 -521
  18. package/.claude/vibe/rules/languages/typescript-react-native.md +446 -446
  19. package/.claude/vibe/rules/languages/typescript-react.md +525 -525
  20. package/.claude/vibe/rules/languages/typescript-vue.md +353 -353
  21. package/.claude/vibe/rules/quality/bdd-contract-testing.md +388 -388
  22. package/.claude/vibe/rules/quality/checklist.md +276 -276
  23. package/.claude/vibe/rules/quality/testing-strategy.md +437 -437
  24. package/.claude/vibe/rules/standards/anti-patterns.md +369 -369
  25. package/.claude/vibe/rules/standards/code-structure.md +291 -291
  26. package/.claude/vibe/rules/standards/complexity-metrics.md +312 -312
  27. package/.claude/vibe/rules/standards/naming-conventions.md +198 -198
  28. package/.claude/vibe/setup.sh +31 -31
  29. package/.claude/vibe/templates/constitution-template.md +184 -184
  30. package/.claude/vibe/templates/contract-backend-template.md +517 -517
  31. package/.claude/vibe/templates/contract-frontend-template.md +594 -594
  32. package/.claude/vibe/templates/feature-template.md +96 -96
  33. package/.claude/vibe/templates/spec-template.md +199 -199
  34. package/CLAUDE.md +345 -323
  35. package/LICENSE +21 -21
  36. package/README.md +744 -724
  37. package/agents/compounder.md +261 -261
  38. package/agents/diagrammer.md +178 -178
  39. package/agents/e2e-tester.md +266 -266
  40. package/agents/explorer.md +48 -48
  41. package/agents/implementer.md +53 -53
  42. package/agents/research/best-practices-agent.md +139 -139
  43. package/agents/research/codebase-patterns-agent.md +147 -147
  44. package/agents/research/framework-docs-agent.md +181 -181
  45. package/agents/research/security-advisory-agent.md +167 -167
  46. package/agents/review/architecture-reviewer.md +107 -107
  47. package/agents/review/complexity-reviewer.md +116 -116
  48. package/agents/review/data-integrity-reviewer.md +88 -88
  49. package/agents/review/git-history-reviewer.md +103 -103
  50. package/agents/review/performance-reviewer.md +86 -86
  51. package/agents/review/python-reviewer.md +152 -152
  52. package/agents/review/rails-reviewer.md +139 -139
  53. package/agents/review/react-reviewer.md +144 -144
  54. package/agents/review/security-reviewer.md +80 -80
  55. package/agents/review/simplicity-reviewer.md +140 -140
  56. package/agents/review/test-coverage-reviewer.md +116 -116
  57. package/agents/review/typescript-reviewer.md +127 -127
  58. package/agents/searcher.md +54 -54
  59. package/agents/simplifier.md +119 -119
  60. package/agents/tester.md +49 -49
  61. package/agents/ui-previewer.md +137 -137
  62. package/commands/vibe.analyze.md +245 -180
  63. package/commands/vibe.reason.md +223 -183
  64. package/commands/vibe.review.md +200 -136
  65. package/commands/vibe.run.md +838 -836
  66. package/commands/vibe.spec.md +419 -383
  67. package/commands/vibe.utils.md +101 -101
  68. package/commands/vibe.verify.md +282 -241
  69. package/dist/cli/index.js +385 -385
  70. package/dist/lib/MemoryManager.d.ts.map +1 -1
  71. package/dist/lib/MemoryManager.js +119 -114
  72. package/dist/lib/MemoryManager.js.map +1 -1
  73. package/dist/lib/PythonParser.js +108 -108
  74. package/dist/lib/gemini-mcp.js +15 -15
  75. package/dist/lib/gemini-oauth.js +35 -35
  76. package/dist/lib/gpt-mcp.js +17 -17
  77. package/dist/lib/gpt-oauth.js +44 -44
  78. package/dist/tools/analytics/getUsageAnalytics.js +12 -12
  79. package/dist/tools/index.d.ts +50 -0
  80. package/dist/tools/index.d.ts.map +1 -0
  81. package/dist/tools/index.js +61 -0
  82. package/dist/tools/index.js.map +1 -0
  83. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  84. package/dist/tools/memory/getMemoryGraph.js +12 -12
  85. package/dist/tools/memory/getSessionContext.js +9 -9
  86. package/dist/tools/memory/linkMemories.js +14 -14
  87. package/dist/tools/memory/listMemories.js +4 -4
  88. package/dist/tools/memory/recallMemory.js +4 -4
  89. package/dist/tools/memory/saveMemory.js +4 -4
  90. package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
  91. package/dist/tools/planning/generatePrd.js +46 -46
  92. package/dist/tools/prompt/enhancePromptGemini.js +160 -160
  93. package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
  94. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  95. package/hooks/hooks.json +121 -103
  96. package/package.json +73 -69
  97. package/skills/git-worktree.md +178 -178
  98. package/skills/priority-todos.md +236 -236
package/README.md CHANGED
@@ -1,724 +1,744 @@
1
- # Vibe
2
-
3
- **SPEC-driven AI coding framework (Claude Code 전용)**
4
-
5
- SPEC 문서 하나로 AI가 바로 구현하고, **시나리오별 자동 검증**으로 품질을 보장하는 프레임워크.
6
-
7
- > **품질은 사용자가 신경 쓰는 게 아니라, 시스템이 보장하는 것.**
8
-
9
- [![npm version](https://img.shields.io/npm/v/@su-record/vibe.svg)](https://www.npmjs.com/package/@su-record/vibe)
10
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
- [![Built-in Tools](https://img.shields.io/badge/Built--in_Tools-36-blue.svg)](https://github.com/su-record/vibe)
12
-
13
- ---
14
-
15
- ## Features
16
-
17
- - **🤖 멀티모델 AI 오케스트레이션**: Claude + GPT + Gemini를 서브에이전트로 통합 (OAuth 인증)
18
- - **시나리오 주도 개발 (SDD)**: 각 시나리오 = 구현 단위 = 검증 단위
19
- - **BDD 자동 검증**: Given/When/Then 단계별 자동 품질 검증
20
- - **품질 보장 시스템**: 비개발자도 품질을 신뢰할 수 있는 자동화
21
- - **ULTRAWORK Mode**: `ulw` 한 단어로 모든 최적화 자동 활성화
22
- - **Boulder Loop**: 모든 시나리오 완료까지 자동 진행
23
- - **병렬 서브에이전트**: Haiku 3+ 동시 탐색으로 ~3배 속도 향상
24
- - **자동 컨텍스트 관리**: 80%+ 시 자동 저장, 세션 자동 복원
25
- - **36개 내장 도구**: 코드 분석, 품질 검증, 세션 메모리 (MCP 오버헤드 제거)
26
-
27
- ### v2.3.0 신규 기능
28
-
29
- - **📦 14개 프레임워크별 언어 룰**: Next.js, React, Vue, Nuxt, React Native 등 프레임워크별 최적화 규칙
30
- - **🔄 모노레포 완벽 지원**: packages/*, apps/* 하위 패키지별 자동 감지 및 룰 적용
31
- - **🧹 레거시 자동 정리**: `vibe update` 시 이전 버전 파일 자동 정리
32
- - **⚙️ 명령어 구조 개선**: 7개 core 명령어 + `/vibe.utils` 유틸리티 통합
33
-
34
- ### v2.2.0 기능
35
-
36
- - **⚡ ULTRAWORK Pipeline**: 구현 중 백그라운드 에이전트로 다음 Phase 준비
37
- - **🔄 Phase 파이프라이닝**: Phase 간 대기 시간 제거 (~50% 속도 향상)
38
-
39
- ### v2.1.0 기능
40
-
41
- - **🔍 병렬 코드 리뷰**: 13+ 전문 에이전트가 동시 리뷰 (P1/P2/P3 우선순위)
42
- - **🎭 E2E 테스트**: Playwright 기반 브라우저 자동화 (시각적 회귀, 비디오 녹화)
43
- - **📚 지식 복리**: 해결책 자동 문서화 → `.claude/vibe/solutions/`
44
- - **🔬 병렬 리서치**: 요구사항 확정 후 4개 에이전트 동시 조사
45
-
46
- ---
47
-
48
- ## Installation
49
-
50
- ### CLI 설치
51
-
52
- ```bash
53
- npm install -g @su-record/vibe
54
- vibe init
55
- ```
56
-
57
- CLI 설치 시 생성되는 구조:
58
-
59
- ```text
60
- project/
61
- ├── CLAUDE.md # 프로젝트 컨텍스트
62
- └── .claude/
63
- ├── commands/ # 슬래시 커맨드 (7개)
64
- ├── agents/ # 서브에이전트
65
- │ ├── review/ # 리뷰 에이전트 (12개)
66
- │ └── research/ # 리서치 에이전트 (4개)
67
- ├── settings.json # Hooks 설정
68
- └── vibe/
69
- ├── rules/ # 코딩 규칙
70
- ├── specs/ # SPEC 문서
71
- ├── features/ # BDD Feature 파일
72
- └── config.json # 프로젝트 설정
73
- ```
74
-
75
- ---
76
-
77
- ## Quick Start
78
-
79
- ```bash
80
- # 기존 프로젝트에서
81
- vibe init
82
- # → 커맨드/에이전트 설치 + MCP 서버 등록 (context7, vibe-gemini, vibe-gpt)
83
-
84
- # 새 프로젝트 생성
85
- vibe init my-project
86
- cd my-project
87
- ```
88
-
89
- ### 슬래시 커맨드 사용 (Claude Code)
90
-
91
- ```
92
- /vibe.spec "로그인 기능" # SPEC 작성 (대화형)
93
- /vibe.run "로그인 기능" # 구현 실행
94
- /vibe.run "로그인 기능" ultrawork # 🚀 최대 성능 모드 (권장)
95
- /vibe.verify "로그인 기능" # 검증
96
- ```
97
-
98
- ---
99
-
100
- ## Workflow
101
-
102
- ```
103
- /vibe.spec "기능명"
104
- ↓ 대화형 요구사항 수집
105
- ↓ 요구사항 확정 후 4개 병렬 리서치
106
- ↓ .claude/vibe/specs/{기능명}.md + .feature
107
-
108
- /vibe.run "기능명" ultrawork
109
- ↓ 시나리오별 구현 + 즉시 검증 (SDD)
110
- ↓ Scenario 1 → Scenario 2 → ...
111
-
112
- /vibe.verify "기능명"
113
- ↓ Given/When/Then 단계별 검증
114
-
115
- /vibe.review
116
- ↓ 13+ 병렬 리뷰 에이전트 (P1/P2/P3)
117
-
118
- /vibe.analyze "기능명"
119
- ↓ 코드 탐색/구조 분석
120
-
121
- /vibe.reason "문제"
122
- ↓ 9단계 체계적 추론
123
-
124
- /vibe.utils --옵션
125
- ↓ 유틸리티 (--ui, --diagram, --e2e, --compound)
126
- ```
127
-
128
- ### 시나리오 주도 개발 (SDD)
129
-
130
- > **각 시나리오가 곧 구현 단위이자 검증 단위입니다.**
131
-
132
- ```
133
- Feature 로드 → Scenario 1 [구현→검증] → Scenario 2 [구현→검증] → ... → 품질 리포트
134
- ↓ ↓
135
- ✅ 통과 시 다음 ❌ 실패 시 수정 후 재검증
136
- ```
137
-
138
- 비개발자도 시나리오 통과율만 보면 품질을 알 수 있습니다:
139
- - ✅ 4/4 시나리오 통과 = 품질 보장
140
- - 📈 품질 점수: 94/100
141
-
142
- ---
143
-
144
- ## Commands
145
-
146
- ### 터미널 명령어
147
-
148
- | 명령어 | 설명 |
149
- |--------|------|
150
- | `vibe init` | 현재 폴더에 vibe 초기화 |
151
- | `vibe init <name>` | 프로젝트 생성 |
152
- | `vibe update` | 설정 업데이트 (커맨드, 규칙, Hooks) |
153
- | `vibe remove` | vibe 완전 제거 |
154
- | `vibe status` | 현재 설정 상태 |
155
- | `vibe help` | 도움말 |
156
- | `vibe version` | 버전 정보 |
157
-
158
- ### 외부 LLM 연동 (선택적)
159
-
160
- | 명령어 | 설명 |
161
- |--------|------|
162
- | `vibe auth gpt` | GPT OAuth 인증 (ChatGPT Plus/Pro 구독자용, 권장) |
163
- | `vibe auth gpt --key <key>` | GPT API 키 방식 |
164
- | `vibe auth gemini` | Gemini OAuth 인증 (구독자용, 권장) |
165
- | `vibe auth gemini --key <key>` | Gemini API 키 방식 |
166
- | `vibe status gpt` / `vibe status gemini` | 인증 상태 확인 |
167
- | `vibe logout gpt` / `vibe logout gemini` | 로그아웃 |
168
- | `vibe remove gpt` / `vibe remove gemini` | 비활성화 |
169
-
170
- > **OAuth 인증** 또는 API 키를 등록해서 사용할 수 있습니다.
171
-
172
- ### Claude Code 슬래시 커맨드
173
-
174
- | 명령어 | 설명 |
175
- |--------|------|
176
- | `/vibe.spec "기능명"` | SPEC 작성 (PTCF 구조) + 병렬 리서치 |
177
- | `/vibe.run "기능명"` | 구현 실행 |
178
- | `/vibe.run "기능명" ultrawork` | 🚀 **최대 성능 모드** (권장) |
179
- | `/vibe.verify "기능명"` | 검증 |
180
- | `/vibe.review` | **병렬 코드 리뷰** (13+ 에이전트) |
181
- | `/vibe.analyze "기능명"` | 코드 탐색/분석 |
182
- | `/vibe.reason "문제"` | 체계적 추론 (9단계) |
183
- | `/vibe.utils --옵션` | 유틸리티 (--ui, --diagram, --e2e) |
184
-
185
- ---
186
-
187
- ## ULTRAWORK Mode
188
-
189
- > `ultrawork` 또는 `ulw` 키워드 하나로 **모든 최적화가 자동 활성화**됩니다.
190
-
191
- ```bash
192
- /vibe.run "기능명" ultrawork # 최대 성능 모드
193
- /vibe.run "기능명" ulw # 동일 (단축어)
194
- ```
195
-
196
- ### 활성화 기능
197
-
198
- | 기능 | 설명 |
199
- |------|------|
200
- | **병렬 탐색** | 3+ Task(haiku) 에이전트 동시 실행 |
201
- | **Boulder Loop** | 모든 Phase 완료까지 자동 진행 (멈추지 않음) |
202
- | **자동 재시도** | 에러 발생 최대 3회 자동 재시도 |
203
- | **컨텍스트 관리** | 80%+ 자동 저장 |
204
- | **무중단 실행** | Phase 간 확인 없이 연속 진행 |
205
- | **외부 LLM** | GPT/Gemini 활성화 시 자동 참조 |
206
-
207
- ### Boulder Loop
208
-
209
- 시지푸스처럼 바위를 굴리듯, **모든 시나리오가 통과될 때까지** 자동으로 진행:
210
-
211
- ```
212
- Scenario 1 Scenario 2 → Scenario 3 → ... → Scenario N
213
- ↓ ↓ ↓ ↓
214
- [탐색+구현] [탐색+구현] [탐색+구현] [탐색+구현]
215
- [즉시 검증] [즉시 검증] [즉시 검증] [즉시 검증]
216
- ✅ ✅ ✅ ✅
217
-
218
- 🎉 품질 보장 완료!
219
- ```
220
-
221
- ### 일반 모드 vs ULTRAWORK
222
-
223
- | 항목 | 일반 모드 | ULTRAWORK |
224
- |------|----------|-----------|
225
- | 시나리오 전환 | 일시정지 가능 | 자동 진행 |
226
- | 검증 실패 | 보고 후 중단 | 자동 재시도 (3회) |
227
- | 컨텍스트 80%+ | 경고만 | 자동 저장 |
228
- | 탐색 방식 | 순차 가능 | **강제 병렬** |
229
- | 완료 조건 | 시나리오별 | 전체 시나리오 통과까지 |
230
-
231
- ---
232
-
233
- ## BDD 자동 검증
234
-
235
- ### 품질 리포트 예시
236
-
237
- `/vibe.verify` 실행 시 자동 생성되는 품질 리포트:
238
-
239
- **VERIFICATION REPORT: login**
240
-
241
- 시나리오: 4/4 통과 (100%)
242
-
243
- | # | Scenario | Given | When | Then | Status |
244
- |---|----------|-------|------|------|--------|
245
- | 1 | 유효한 로그인 성공 | | | | |
246
- | 2 | 잘못된 비밀번호 에러 | | | | |
247
- | 3 | 이메일 형식 검증 | | | | ✅ |
248
- | 4 | 비밀번호 찾기 링크 | | | | |
249
-
250
- 품질 점수: **94/100**
251
-
252
- ### 검증 실패 시
253
-
254
- ```
255
- Scenario 4: 비밀번호 찾기 링크
256
-
257
- When: "비밀번호 찾기" 클릭
258
- ❌ 문제: 링크가 구현되지 않음
259
- 📍 위치: LoginForm.tsx line 42
260
- 💡 수정: "Forgot password" 링크 추가 필요
261
-
262
- 🔧 자동 수정: /vibe.run "login" --fix
263
- ```
264
-
265
- 비개발자가 알아야 것:
266
- -시나리오 4/4 통과 **품질 보장됨**
267
- - 시나리오 3/4 통과 **수정 필요** (자동 수정 가능)
268
-
269
- ---
270
-
271
- ## New in v2.1.0
272
-
273
- ### 병렬 코드 리뷰 (/vibe.review)
274
-
275
- 13+ 전문 에이전트가 동시에 코드 리뷰:
276
-
277
- | 분야 | 검토 항목 |
278
- |------|----------|
279
- | Security | OWASP Top 10, SQL injection, XSS |
280
- | Performance | N+1 queries, memory leaks |
281
- | Architecture | SOLID violations, layer breaches |
282
- | Language | Python, TypeScript, Rails, React |
283
- | Quality | Complexity, test coverage, git |
284
-
285
- **우선순위 시스템:**
286
- - 🔴 **P1 (Critical)**: 머지 차단 - 보안 취약점, 데이터 손실
287
- - 🟡 **P2 (Important)**: 수정 권장 - 성능 문제, 테스트 누락
288
- - 🔵 **P3 (Nice-to-have)**: 백로그 - 코드 스타일, 리팩토링
289
-
290
- ### E2E 테스트 (/vibe.utils --e2e)
291
-
292
- Playwright 기반 브라우저 자동화 테스트:
293
-
294
- ```bash
295
- /vibe.utils --e2e "login flow" # 시나리오 테스트
296
- /vibe.utils --e2e --visual # 시각적 회귀 테스트
297
- /vibe.utils --e2e --record # 비디오 녹화
298
- ```
299
-
300
- **기능:**
301
- - 스크린샷 캡처 비교
302
- - 콘솔 에러 자동 수집
303
- - 접근성(a11y) 검사
304
- - 버그 재현 자동화
305
-
306
- ### 지식 복리 (자동 트리거)
307
-
308
- 해결한 문제를 자동 문서화하여 지식 축적:
309
-
310
- ```
311
- .claude/vibe/solutions/
312
- ├── security/ # 보안 해결책
313
- ├── performance/ # 성능 최적화
314
- ├── database/ # DB 관련
315
- └── integration/ # 외부 연동
316
- ```
317
-
318
- **자동 트리거**: "버그 해결됨", "bug fixed", "PR merged" 등 (Hooks에서 자동 감지)
319
-
320
- ### 리서치 에이전트 강화
321
-
322
- `/vibe.spec` 실행 **요구사항 확정 후** 4개 병렬 리서치:
323
-
324
- ```
325
- 문답으로 요구사항 확정 → 병렬 리서치 → SPEC 작성
326
- ```
327
-
328
- | 에이전트 | 역할 | 외부 LLM 강화 |
329
- |----------|------|--------------|
330
- | best-practices-agent | 확정된 기능+스택 베스트 프랙티스 | - |
331
- | framework-docs-agent | 확정된 스택 최신 문서 (context7) | Gemini (웹 검색) |
332
- | codebase-patterns-agent | 기존 유사 패턴 분석 | - |
333
- | security-advisory-agent | 확정된 기능 보안 권고 | GPT (CVE 지식) |
334
-
335
- > ⚠️ **리서치는 요구사항 확정 후 실행** (VIBE 원칙: 요구사항 먼저)
336
-
337
- ### 외부 LLM 통합 (선택적)
338
-
339
- GPT/Gemini가 활성화되어 있으면 특정 에이전트가 자동으로 활용합니다:
340
-
341
- | 에이전트 | 외부 LLM | 용도 |
342
- |----------|----------|------|
343
- | framework-docs-agent | Gemini | context7 문서 부재 시 웹 검색으로 최신 문서 보강 |
344
- | security-advisory-agent | GPT | CVE/보안 취약점 DB 지식 보강 |
345
- | python-reviewer | GPT Codex | Python 코드 리뷰 2nd opinion |
346
-
347
- **동작 방식:**
348
- ```
349
- Primary: Task(Haiku) 실행
350
-
351
- [외부 LLM 활성화?]
352
- YES
353
- 외부 LLM 호출 결과 병합
354
- ↓ NO
355
- Primary 결과만 사용
356
- ```
357
-
358
- > **후방 호환성**: GPT/Gemini가 설정되지 않아도 Primary(Haiku)만으로 정상 작동합니다.
359
-
360
- ---
361
-
362
- ## Project Structure
363
-
364
- `vibe init` 실행 생성되는 구조:
365
-
366
- ```
367
- project/
368
- ├── CLAUDE.md # 프로젝트 컨텍스트 ← git 공유
369
- └── .claude/ # ⚠️ 반드시 git에 커밋 ← git 공유
370
- ├── commands/ # 슬래시 커맨드 (7개)
371
- ├── agents/ # 서브에이전트
372
- │ ├── review/ # 리뷰 에이전트 (12개)
373
- │ └── research/ # 리서치 에이전트 (4개)
374
- ├── settings.json # Hooks 설정
375
- ├── settings.local.json # 개인 설정 ← git 제외 (자동)
376
- └── vibe/
377
- ├── config.json # 프로젝트 설정
378
- ├── constitution.md # 프로젝트 원칙
379
- ├── rules/ # 코딩 규칙
380
- ├── specs/ # SPEC 문서들
381
- ├── features/ # BDD Feature 파일들
382
- ├── solutions/ # 해결책 아카이브
383
- └── todos/ # 우선순위 TODO
384
- ```
385
-
386
- > **⚠️ 중요**: `.claude/` 폴더는 팀과 공유해야 합니다. 커밋 시 제외하지 마세요.
387
- > `settings.local.json`만 개인 설정이므로 자동으로 git에서 제외됩니다.
388
-
389
- ---
390
-
391
- ## Feature 파일 (BDD 시나리오)
392
-
393
- ```gherkin
394
- # .claude/vibe/features/login.feature
395
-
396
- Feature: 로그인
397
-
398
- Scenario: 유효한 로그인 성공
399
- Given 사용자가 등록되어 있다
400
- # 검증: 사용자 생성 API 존재
401
- When 유효한 이메일과 비밀번호로 로그인
402
- # 검증: POST /login 엔드포인트
403
- Then 로그인 성공 + JWT 토큰 반환
404
- # 검증: 200 응답 + 토큰 포함
405
-
406
- Scenario: 잘못된 비밀번호 에러
407
- Given 사용자가 등록되어 있다
408
- When 잘못된 비밀번호로 로그인
409
- Then 401 에러 + "비밀번호가 틀립니다" 메시지
410
- ```
411
-
412
- 각 시나리오의 Given/When/Then이 자동 검증 포인트가 됩니다.
413
-
414
- ---
415
-
416
- ## SPEC Document (PTCF Structure)
417
-
418
- ```markdown
419
- # SPEC: {기능명}
420
-
421
- ## Persona
422
- <role>
423
- AI의 역할과 전문성 정의
424
- </role>
425
-
426
- ## Context
427
- <context>
428
- - 배경, 목적
429
- - 기술 스택
430
- - 관련 코드
431
- </context>
432
-
433
- ## Task
434
- <task>
435
- ### Scenario 1: {시나리오명}
436
- Given: {전제 조건}
437
- When: {사용자 행동}
438
- Then: {예상 결과}
439
-
440
- ### Scenario 2: {시나리오명}
441
- ...
442
- </task>
443
-
444
- ## Constraints
445
- <constraints>
446
- - 기존 코드 패턴 준수
447
- - 에러 메시지 한글화
448
- </constraints>
449
-
450
- ## Acceptance Criteria
451
- <acceptance>
452
- - [ ] Scenario 1 통과
453
- - [ ] Scenario 2 통과
454
- </acceptance>
455
- ```
456
-
457
- ---
458
-
459
- ## Coding Rules (.claude/vibe/rules/)
460
-
461
- ### 14개 프레임워크별 언어 룰 (v2.3.0)
462
-
463
- `vibe init` / `vibe update` 시 프로젝트의 기술 스택을 감지하여 **프레임워크별 최적화 규칙**을 자동 설치합니다.
464
-
465
- | 감지 스택 | 룰 파일 | 주요 내용 |
466
- |----------|---------|----------|
467
- | Next.js | `typescript-nextjs.md` | App Router, Server Components, Server Actions |
468
- | React | `typescript-react.md` | Hooks, 컴포넌트 패턴, 상태관리 |
469
- | Vue.js | `typescript-vue.md` | Composition API, Pinia, script setup |
470
- | Nuxt 3 | `typescript-nuxt.md` | useFetch, Server API, Auto-imports |
471
- | React Native | `typescript-react-native.md` | 네이티브 모듈, 성능 최적화 |
472
- | Node.js | `typescript-node.md` | Express/Fastify/NestJS 패턴 |
473
- | FastAPI | `python-fastapi.md` | Pydantic, 비동기 처리, 의존성 주입 |
474
- | Django | `python-django.md` | ORM, 뷰 패턴, 시그널 |
475
- | Flutter | `dart-flutter.md` | Riverpod/BLoC, 위젯 트리 |
476
- | Go | `go.md` | 에러 처리, 고루틴, 인터페이스 |
477
- | Rust | `rust.md` | Result/Option, 소유권, unsafe |
478
- | Spring Boot | `java-spring.md` | DI, JPA, 트랜잭션 |
479
- | Android | `kotlin-android.md` | Compose, ViewModel, Coroutines |
480
- | iOS | `swift-ios.md` | SwiftUI, Combine, 프로토콜 |
481
-
482
- ### 모노레포 지원
483
-
484
- `packages/*`, `apps/*` 하위 패키지별로 각각 감지하여 필요한 룰만 설치:
485
-
486
- ```bash
487
- # 모노레포 예시
488
- monorepo/
489
- ├── packages/
490
- │ ├── web/ → typescript-nextjs.md 설치
491
- │ ├── mobile/ → typescript-react-native.md 설치
492
- │ └── api/ → python-fastapi.md 설치
493
- ```
494
-
495
- > 패키지에 맞는 프레임워크 규칙이 자동 적용됩니다.
496
-
497
- ### 핵심 원칙
498
-
499
- - **수술적 정밀도**: 요청받지 않은 코드는 절대 수정하지 않음
500
- - **한국어 우선**: 모든 커뮤니케이션은 한국어로
501
- - **DRY**: 반복하지 말고 재사용
502
- - **SRP**: 하나의 함수는 하나의 목적만
503
- - **YAGNI**: 필요하지 않으면 만들지 않음
504
-
505
- ### 복잡도 기준
506
-
507
- | 메트릭 | 기준 |
508
- |--------|------|
509
- | 순환 복잡도 | ≤ 10 |
510
- | 함수 길이 | ≤ 20줄 |
511
- | 중첩 깊이 | ≤ 3단계 |
512
- | 매개변수 | ≤ 5개 |
513
- | 컴포넌트 JSX | ≤ 50줄 |
514
-
515
- ### 품질 등급
516
-
517
- | 등급 | 점수 | 설명 |
518
- |------|------|------|
519
- | A+ | 95-100 | 완벽 |
520
- | A | 90-94 | 우수 |
521
- | B+ | 85-89 | 양호 |
522
- | B | 80-84 | 개선 권장 |
523
- | C | 70-79 | 개선 필요 |
524
- | F | < 70 | 리팩토링 필요 |
525
-
526
- ---
527
-
528
- ## 내장 도구 & MCP
529
-
530
- ### 내장 도구 (v2.0+)
531
-
532
- vibe는 36개의 도구를 **내장**하여 MCP 프로토콜 오버헤드 없이 직접 실행합니다.
533
-
534
- | 도구 | 설명 |
535
- |------|------|
536
- | `vibe_find_symbol` | 심볼 정의 찾기 |
537
- | `vibe_find_references` | 참조 찾기 |
538
- | `vibe_analyze_complexity` | 복잡도 분석 |
539
- | `vibe_validate_code_quality` | 품질 검증 |
540
- | `vibe_start_session` | 세션 시작 (이전 컨텍스트 자동 복원) |
541
- | `vibe_auto_save_context` | 현재 상태 저장 |
542
- | `vibe_save_memory` | 중요 결정사항 저장 |
543
-
544
- ### MCP 서버 (외부 LLM)
545
-
546
- | MCP 서버 | 설명 | 등록 방식 |
547
- |----------|------|----------|
548
- | `vibe-gemini` | Gemini 3 Flash/Pro 서브에이전트 | 전역 (`-s user`) |
549
- | `vibe-gpt` | GPT-5.2 Codex 서브에이전트 | 전역 (`-s user`) |
550
- | `context7` | 라이브러리 문서 실시간 검색 | 전역 (`-s user`) |
551
-
552
- > **Note**: MCP 서버들은 전역 등록되어 모든 프로젝트에서 사용 가능합니다.
553
- > OAuth 인증 후 Claude Code에서 GPT/Gemini를 서브에이전트로 호출할 수 있습니다.
554
-
555
- ### Hooks (자동 설정)
556
-
557
- | Hook | 트리거 | 동작 |
558
- |------|--------|------|
559
- | `SessionStart` | 세션 시작 | `vibe_start_session` 자동 호출 → 이전 컨텍스트 복원 |
560
- | `UserPromptSubmit` | `ultrawork`/`ulw` 감지 | 🚀 ULTRAWORK 모드 활성화 |
561
- | `PostToolUse` | Write/Edit | 품질 체크 (멈추지 않음) |
562
- | `Notification` | 컨텍스트 80% | **MANDATORY** `vibe_auto_save_context` 호출 |
563
- | `Notification` | 컨텍스트 90% | **MANDATORY** 즉시 저장 (urgency=high) |
564
- | `Notification` | 컨텍스트 95% | **MANDATORY** 긴급 저장 + 세션 전환 준비 |
565
-
566
- ### 선택적 연동 (외부 LLM)
567
-
568
- | MCP 서버 | 명령어 | 설명 |
569
- |----------|--------|------|
570
- | GPT-5.2 Codex | `vibe auth gpt` | OAuth 인증 (ChatGPT Plus/Pro, 권장) |
571
- | GPT-5.2 Codex | `vibe auth gpt --key <key>` | API 키 방식 |
572
- | Gemini 3 Flash/Pro | `vibe auth gemini` | OAuth 인증 (구독자용, 권장) |
573
- | Gemini 3 Flash/Pro | `vibe auth gemini --key <key>` | API 키 방식 |
574
-
575
- > **OAuth 인증** 또는 API 키를 등록해서 사용할 수 있습니다.
576
-
577
- ### 주요 내장 도구
578
-
579
- - **코드 분석**: `vibe_analyze_complexity`, `vibe_validate_code_quality`
580
- - **시맨틱 검색**: `vibe_find_symbol`, `vibe_find_references`
581
- - **추론**: `vibe_create_thinking_chain`, `vibe_analyze_problem`
582
- - **메모리**: `vibe_save_memory`, `vibe_recall_memory`, `vibe_auto_save_context`
583
- - **UI**: `vibe_preview_ui_ascii`
584
-
585
- ### context7 사용법
586
-
587
- 최신 라이브러리 문서가 필요할 때:
588
-
589
- ```
590
- "React 19의 use() 사용법을 context7으로 검색해줘"
591
- "Next.js 15 App Router 문서를 확인해줘"
592
- ```
593
-
594
- ---
595
-
596
- ## 컨텍스트 관리 팁
597
-
598
- ### 모델 선택 전략
599
-
600
- | 작업 유형 | 권장 모델 | 이유 |
601
- |----------|----------|------|
602
- | 탐색/검색 | Haiku | 빠르고 저비용 |
603
- | 구현/디버깅 | Sonnet | 균형잡힌 성능 |
604
- | 아키텍처/복잡한 로직 | Opus | 최고 성능 |
605
-
606
- > vibe의 서브에이전트는 기본적으로 Haiku를 사용합니다. 고비용 모델이 필요 없는 탐색 작업을 저비용 모델에게 위임하는 전략입니다.
607
-
608
- ### Claude Code 기본 명령어
609
-
610
- | 명령어 | 용도 |
611
- |--------|------|
612
- | `/context` | 현재 컨텍스트 사용량 확인 |
613
- | `/rewind` | 이전 시점으로 되돌리기 |
614
- | `/new` | 새 세션 시작 |
615
- | `Shift + Tab` | 플랜 모드 진입 |
616
-
617
- > **⚠️ `/compact` 사용 금지**: 정보 손실/왜곡 위험. vibe 메모리 시스템 사용 권장.
618
-
619
- ### 컨텍스트 80%+ 시 자동 처리
620
-
621
- ```
622
- 80% 도달 vibe_auto_save_context 자동 호출 (MANDATORY)
623
- 90% 도달 즉시 저장 (urgency=high)
624
- 95% 도달 긴급 저장 + 세션 전환 준비
625
-
626
- 세션 시작 vibe_start_session 자동 호출 이전 컨텍스트 복원
627
- ```
628
-
629
- > **⚠️ `/compact` 사용 금지**: 정보 손실/왜곡 위험. vibe 메모리 시스템이 자동으로 관리합니다.
630
-
631
- ### 가치 밀도 높은 컨텍스트 유지
632
-
633
- 1. **계획 먼저** - `/vibe.spec`으로 명확한 계획 수립
634
- 2. **필요한 정보만** - 서브에이전트가 탐색하고 요약만 전달
635
- 3. **자동 저장** - 80%+ `vibe_auto_save_context` 자동 호출
636
- 4. **Just-in-Time** - context7로 필요할 때만 문서 검색
637
-
638
- ---
639
-
640
- ## Example
641
-
642
- ```
643
- User: /vibe.spec "벽돌게임"
644
-
645
- Claude:
646
- 벽돌게임을 만드시는군요! 어떤 스타일을 생각하고 계신가요?
647
-
648
- 1. 클래식 벽돌깨기 (Breakout)
649
- 2. 아르카노이드 (파워업 포함)
650
- 3. 커스텀 스타일
651
-
652
- 또는 직접 설명해주셔도 됩니다.
653
-
654
- User: 1
655
-
656
- Claude: 어떤 플랫폼에서 실행하시겠어요?
657
-
658
- 1. 웹 (브라우저)
659
- 2. 모바일
660
- 3. 데스크톱
661
-
662
- User: 1
663
-
664
- Claude: 기술 스택을 제안드립니다:
665
-
666
- 1. Phaser.js (추천) - 게임 프레임워크
667
- 2. Canvas + JavaScript
668
- 3. PixiJS + Matter.js
669
-
670
- User: 1
671
-
672
- [대화 계속...]
673
-
674
- SPEC 문서 작성 완료!
675
- 📄 .claude/vibe/specs/brick-game.md
676
- 📄 .claude/vibe/features/brick-game.feature
677
-
678
- 다음 단계: /vibe.run "벽돌게임"
679
- ```
680
-
681
- ---
682
-
683
- ## Requirements
684
-
685
- - **Node.js**: 18.0.0+
686
- - **Claude Code**: 필수
687
-
688
- ---
689
-
690
- ## Links
691
-
692
- - **Repository**: [github.com/su-record/vibe](https://github.com/su-record/vibe)
693
- - **Issues**: [GitHub Issues](https://github.com/su-record/vibe/issues)
694
-
695
- ---
696
-
697
- ## License
698
-
699
- MIT License
700
-
701
- ---
702
-
703
- **Built with ❤️ by Su & Claude**
704
-
705
- ## Vibe Setup (AI Coding)
706
-
707
- 이 프로젝트는 [Vibe](https://github.com/su-record/vibe) AI 코딩 프레임워크를 사용합니다.
708
-
709
- ### 협업자 설치
710
-
711
- ```bash
712
- # 전역 설치 (권장)
713
- npm install -g @su-record/vibe
714
- vibe update
715
-
716
- # 또는 setup 스크립트 실행
717
- ./.claude/vibe/setup.sh
718
- ```
719
-
720
- ### 사용법
721
-
722
- Claude Code에서 슬래시 커맨드 사용:
723
- - `/vibe.spec "기능명"` - SPEC 문서 작성
724
- - `/vibe.run "기능명"` - 구현 실행
1
+ # Vibe
2
+
3
+ **SPEC-driven AI coding framework (Claude Code 전용)**
4
+
5
+ SPEC 문서 하나로 AI가 바로 구현하고, **시나리오별 자동 검증**으로 품질을 보장하는 프레임워크.
6
+
7
+ > **품질은 사용자가 신경 쓰는 게 아니라, 시스템이 보장하는 것.**
8
+
9
+ [![npm version](https://img.shields.io/npm/v/@su-record/vibe.svg)](https://www.npmjs.com/package/@su-record/vibe)
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ [![Built-in Tools](https://img.shields.io/badge/Built--in_Tools-36-blue.svg)](https://github.com/su-record/vibe)
12
+
13
+ ---
14
+
15
+ ## Features
16
+
17
+ - **🤖 멀티모델 AI 오케스트레이션**: Claude + GPT + Gemini를 서브에이전트로 통합 (OAuth 인증)
18
+ - **시나리오 주도 개발 (SDD)**: 각 시나리오 = 구현 단위 = 검증 단위
19
+ - **BDD 자동 검증**: Given/When/Then 단계별 자동 품질 검증
20
+ - **품질 보장 시스템**: 비개발자도 품질을 신뢰할 수 있는 자동화
21
+ - **ULTRAWORK Mode**: `ulw` 한 단어로 모든 최적화 자동 활성화
22
+ - **Boulder Loop**: 모든 시나리오 완료까지 자동 진행
23
+ - **병렬 서브에이전트**: Haiku 3+ 동시 탐색으로 ~3배 속도 향상
24
+ - **자동 컨텍스트 관리**: 80%+ 시 자동 저장, 세션 자동 복원
25
+ - **36개 내장 도구**: 코드 분석, 품질 검증, 세션 메모리 (MCP 오버헤드 제거)
26
+
27
+ ### v2.3.0 신규 기능
28
+
29
+ - **📦 14개 프레임워크별 언어 룰**: Next.js, React, Vue, Nuxt, React Native 등 프레임워크별 최적화 규칙
30
+ - **🔄 모노레포 완벽 지원**: packages/*, apps/* 하위 패키지별 자동 감지 및 룰 적용
31
+ - **🧹 레거시 자동 정리**: `vibe update` 시 이전 버전 파일 자동 정리
32
+ - **⚙️ 명령어 구조 개선**: 7개 core 명령어 + `/vibe.utils` 유틸리티 통합
33
+
34
+ ### v2.2.0 기능
35
+
36
+ - **⚡ ULTRAWORK Pipeline**: 구현 중 백그라운드 에이전트로 다음 Phase 준비
37
+ - **🔄 Phase 파이프라이닝**: Phase 간 대기 시간 제거 (~50% 속도 향상)
38
+
39
+ ### v2.1.0 기능
40
+
41
+ - **🔍 병렬 코드 리뷰**: 13+ 전문 에이전트가 동시 리뷰 (P1/P2/P3 우선순위)
42
+ - **🎭 E2E 테스트**: Playwright 기반 브라우저 자동화 (시각적 회귀, 비디오 녹화)
43
+ - **📚 지식 복리**: 해결책 자동 문서화 → `.claude/vibe/solutions/`
44
+ - **🔬 병렬 리서치**: 요구사항 확정 후 4개 에이전트 동시 조사
45
+
46
+ ---
47
+
48
+ ## Installation
49
+
50
+ ### CLI 설치
51
+
52
+ ```bash
53
+ npm install -g @su-record/vibe
54
+ vibe init
55
+ ```
56
+
57
+ CLI 설치 시 생성되는 구조:
58
+
59
+ ```text
60
+ project/
61
+ ├── CLAUDE.md # 프로젝트 컨텍스트
62
+ └── .claude/
63
+ ├── commands/ # 슬래시 커맨드 (7개)
64
+ ├── agents/ # 서브에이전트
65
+ │ ├── review/ # 리뷰 에이전트 (12개)
66
+ │ └── research/ # 리서치 에이전트 (4개)
67
+ ├── settings.json # Hooks 설정
68
+ └── vibe/
69
+ ├── rules/ # 코딩 규칙
70
+ ├── specs/ # SPEC 문서
71
+ ├── features/ # BDD Feature 파일
72
+ └── config.json # 프로젝트 설정
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Quick Start
78
+
79
+ ```bash
80
+ # 기존 프로젝트에서
81
+ vibe init
82
+ # → 커맨드/에이전트 설치 + MCP 서버 등록 (context7, vibe-gemini, vibe-gpt)
83
+
84
+ # 새 프로젝트 생성
85
+ vibe init my-project
86
+ cd my-project
87
+ ```
88
+
89
+ ### 슬래시 커맨드 사용 (Claude Code)
90
+
91
+ ```
92
+ /vibe.spec "로그인 기능" # SPEC 작성 (대화형)
93
+ /vibe.run "로그인 기능" # 구현 실행
94
+ /vibe.run "로그인 기능" ultrawork # 🚀 최대 성능 모드 (권장)
95
+ /vibe.verify "로그인 기능" # 검증
96
+ ```
97
+
98
+ ---
99
+
100
+ ## Workflow
101
+
102
+ ```
103
+ /vibe.spec "기능명"
104
+ ↓ 대화형 요구사항 수집
105
+ ↓ 요구사항 확정 후 4개 병렬 리서치
106
+ ↓ .claude/vibe/specs/{기능명}.md + .feature
107
+
108
+ /vibe.run "기능명" ultrawork
109
+ ↓ 시나리오별 구현 + 즉시 검증 (SDD)
110
+ ↓ Scenario 1 → Scenario 2 → ...
111
+
112
+ /vibe.verify "기능명"
113
+ ↓ Given/When/Then 단계별 검증
114
+
115
+ /vibe.review
116
+ ↓ 13+ 병렬 리뷰 에이전트 (P1/P2/P3)
117
+
118
+ /vibe.analyze "기능명"
119
+ ↓ 코드 탐색/구조 분석
120
+
121
+ /vibe.reason "문제"
122
+ ↓ 9단계 체계적 추론
123
+
124
+ /vibe.utils --옵션
125
+ ↓ 유틸리티 (--ui, --diagram, --e2e, --compound)
126
+ ```
127
+
128
+ ### 시나리오 주도 개발 (SDD)
129
+
130
+ > **각 시나리오가 곧 구현 단위이자 검증 단위입니다.**
131
+
132
+ ```
133
+ Feature 로드 → Scenario 1 [구현→검증] → Scenario 2 [구현→검증] → ... → 품질 리포트
134
+ ↓ ↓
135
+ ✅ 통과 시 다음 ❌ 실패 시 수정 후 재검증
136
+ ```
137
+
138
+ 비개발자도 시나리오 통과율만 보면 품질을 알 수 있습니다:
139
+ - ✅ 4/4 시나리오 통과 = 품질 보장
140
+ - 📈 품질 점수: 94/100
141
+
142
+ ### Plan Mode vs VIBE
143
+
144
+ > **작업 규모에 따라 적합한 워크플로우를 선택하세요.**
145
+
146
+ | 작업 규모 | 권장 방식 |
147
+ |----------|----------|
148
+ | 간단한 수정 (1-2 파일) | Plan Mode |
149
+ | 복잡한 기능 (3+ 파일, 리서치/검증 필요) | `/vibe.spec` |
150
+
151
+ | 항목 | Plan Mode | VIBE |
152
+ |------|-----------|------|
153
+ | 저장 위치 | `~/.claude/plans/` (전역) | `.claude/vibe/specs/` (프로젝트) |
154
+ | 문서 형식 | 자유 형식 | PTCF 구조 (AI 실행 최적화) |
155
+ | 리서치 | 없음 | 4개 병렬 에이전트 |
156
+ | 검증 | 없음 | `/vibe.verify`로 SPEC 대비 검증 |
157
+ | 히스토리 | 추적 불가 | Git으로 버전 관리 |
158
+
159
+ **워크플로우 연계:**
160
+ - `/vibe.analyze` 또는 `/vibe.review` 후 개발/수정 요청 시 → 사용자에게 워크플로우 선택 질문
161
+
162
+ ---
163
+
164
+ ## Commands
165
+
166
+ ### 터미널 명령어
167
+
168
+ | 명령어 | 설명 |
169
+ |--------|------|
170
+ | `vibe init` | 현재 폴더에 vibe 초기화 |
171
+ | `vibe init <name>` | 새 프로젝트 생성 |
172
+ | `vibe update` | 설정 업데이트 (커맨드, 규칙, Hooks) |
173
+ | `vibe remove` | vibe 완전 제거 |
174
+ | `vibe status` | 현재 설정 상태 |
175
+ | `vibe help` | 도움말 |
176
+ | `vibe version` | 버전 정보 |
177
+
178
+ ### 외부 LLM 연동 (선택적)
179
+
180
+ | 명령어 | 설명 |
181
+ |--------|------|
182
+ | `vibe auth gpt` | GPT OAuth 인증 (ChatGPT Plus/Pro 구독자용, 권장) |
183
+ | `vibe auth gpt --key <key>` | GPT API 방식 |
184
+ | `vibe auth gemini` | Gemini OAuth 인증 (구독자용, 권장) |
185
+ | `vibe auth gemini --key <key>` | Gemini API 키 방식 |
186
+ | `vibe status gpt` / `vibe status gemini` | 인증 상태 확인 |
187
+ | `vibe logout gpt` / `vibe logout gemini` | 로그아웃 |
188
+ | `vibe remove gpt` / `vibe remove gemini` | 비활성화 |
189
+
190
+ > **OAuth 인증** 또는 API 키를 등록해서 사용할 수 있습니다.
191
+
192
+ ### Claude Code 슬래시 커맨드
193
+
194
+ | 명령어 | 설명 |
195
+ |--------|------|
196
+ | `/vibe.spec "기능명"` | SPEC 작성 (PTCF 구조) + 병렬 리서치 |
197
+ | `/vibe.run "기능명"` | 구현 실행 |
198
+ | `/vibe.run "기능명" ultrawork` | 🚀 **최대 성능 모드** (권장) |
199
+ | `/vibe.verify "기능명"` | 검증 |
200
+ | `/vibe.review` | **병렬 코드 리뷰** (13+ 에이전트) |
201
+ | `/vibe.analyze "기능명"` | 코드 탐색/분석 |
202
+ | `/vibe.reason "문제"` | 체계적 추론 (9단계) |
203
+ | `/vibe.utils --옵션` | 유틸리티 (--ui, --diagram, --e2e) |
204
+
205
+ ---
206
+
207
+ ## ULTRAWORK Mode
208
+
209
+ > `ultrawork` 또는 `ulw` 키워드 하나로 **모든 최적화가 자동 활성화**됩니다.
210
+
211
+ ```bash
212
+ /vibe.run "기능명" ultrawork # 최대 성능 모드
213
+ /vibe.run "기능명" ulw # 동일 (단축어)
214
+ ```
215
+
216
+ ### 활성화 기능
217
+
218
+ | 기능 | 설명 |
219
+ |------|------|
220
+ | **병렬 탐색** | 3+ Task(haiku) 에이전트 동시 실행 |
221
+ | **Boulder Loop** | 모든 Phase 완료까지 자동 진행 (멈추지 않음) |
222
+ | **자동 재시도** | 에러 발생 시 최대 3회 자동 재시도 |
223
+ | **컨텍스트 관리** | 80%+ 자동 저장 |
224
+ | **무중단 실행** | Phase 간 확인 없이 연속 진행 |
225
+ | **외부 LLM** | GPT/Gemini 활성화 자동 참조 |
226
+
227
+ ### Boulder Loop
228
+
229
+ 시지푸스처럼 바위를 굴리듯, **모든 시나리오가 통과될 때까지** 자동으로 진행:
230
+
231
+ ```
232
+ Scenario 1 → Scenario 2 → Scenario 3 → ... → Scenario N
233
+ ↓ ↓ ↓ ↓
234
+ [탐색+구현] [탐색+구현] [탐색+구현] [탐색+구현]
235
+ [즉시 검증] [즉시 검증] [즉시 검증] [즉시 검증]
236
+ ✅ ✅ ✅ ✅
237
+
238
+ 🎉 품질 보장 완료!
239
+ ```
240
+
241
+ ### 일반 모드 vs ULTRAWORK
242
+
243
+ | 항목 | 일반 모드 | ULTRAWORK |
244
+ |------|----------|-----------|
245
+ | 시나리오 전환 | 일시정지 가능 | 자동 진행 |
246
+ | 검증 실패 | 보고 중단 | 자동 재시도 (3회) |
247
+ | 컨텍스트 80%+ | 경고만 | 자동 저장 |
248
+ | 탐색 방식 | 순차 가능 | **강제 병렬** |
249
+ | 완료 조건 | 시나리오별 | 전체 시나리오 통과까지 |
250
+
251
+ ---
252
+
253
+ ## BDD 자동 검증
254
+
255
+ ### 품질 리포트 예시
256
+
257
+ `/vibe.verify` 실행 자동 생성되는 품질 리포트:
258
+
259
+ **VERIFICATION REPORT: login**
260
+
261
+ 시나리오: 4/4 통과 (100%)
262
+
263
+ | # | Scenario | Given | When | Then | Status |
264
+ |---|----------|-------|------|------|--------|
265
+ | 1 | 유효한 로그인 성공 | ✅ | ✅ | ✅ | ✅ |
266
+ | 2 | 잘못된 비밀번호 에러 | | | | ✅ |
267
+ | 3 | 이메일 형식 검증 | | | ✅ | ✅ |
268
+ | 4 | 비밀번호 찾기 링크 | ✅ | ✅ | ✅ | ✅ |
269
+
270
+ 품질 점수: **94/100**
271
+
272
+ ### 검증 실패 시
273
+
274
+ ```
275
+ Scenario 4: 비밀번호 찾기 링크
276
+
277
+ When: "비밀번호 찾기" 클릭
278
+ ❌ 문제: 링크가 구현되지 않음
279
+ 📍 위치: LoginForm.tsx line 42
280
+ 💡 수정: "Forgot password" 링크 추가 필요
281
+
282
+ 🔧 자동 수정: /vibe.run "login" --fix
283
+ ```
284
+
285
+ 비개발자가 알아야 할 것:
286
+ - 시나리오 4/4 통과 **품질 보장됨**
287
+ - 시나리오 3/4 통과 **수정 필요** (자동 수정 가능)
288
+
289
+ ---
290
+
291
+ ## New in v2.1.0
292
+
293
+ ### 병렬 코드 리뷰 (/vibe.review)
294
+
295
+ 13+ 전문 에이전트가 동시에 코드 리뷰:
296
+
297
+ | 분야 | 검토 항목 |
298
+ |------|----------|
299
+ | Security | OWASP Top 10, SQL injection, XSS |
300
+ | Performance | N+1 queries, memory leaks |
301
+ | Architecture | SOLID violations, layer breaches |
302
+ | Language | Python, TypeScript, Rails, React |
303
+ | Quality | Complexity, test coverage, git |
304
+
305
+ **우선순위 시스템:**
306
+ - 🔴 **P1 (Critical)**: 머지 차단 - 보안 취약점, 데이터 손실
307
+ - 🟡 **P2 (Important)**: 수정 권장 - 성능 문제, 테스트 누락
308
+ - 🔵 **P3 (Nice-to-have)**: 백로그 - 코드 스타일, 리팩토링
309
+
310
+ ### E2E 테스트 (/vibe.utils --e2e)
311
+
312
+ Playwright 기반 브라우저 자동화 테스트:
313
+
314
+ ```bash
315
+ /vibe.utils --e2e "login flow" # 시나리오 테스트
316
+ /vibe.utils --e2e --visual # 시각적 회귀 테스트
317
+ /vibe.utils --e2e --record # 비디오 녹화
318
+ ```
319
+
320
+ **기능:**
321
+ - 스크린샷 캡처 및 비교
322
+ - 콘솔 에러 자동 수집
323
+ - 접근성(a11y) 검사
324
+ - 버그 재현 자동화
325
+
326
+ ### 지식 복리 (자동 트리거)
327
+
328
+ 해결한 문제를 자동 문서화하여 지식 축적:
329
+
330
+ ```
331
+ .claude/vibe/solutions/
332
+ ├── security/ # 보안 해결책
333
+ ├── performance/ # 성능 최적화
334
+ ├── database/ # DB 관련
335
+ └── integration/ # 외부 연동
336
+ ```
337
+
338
+ **자동 트리거**: "버그 해결됨", "bug fixed", "PR merged" 등 (Hooks에서 자동 감지)
339
+
340
+ ### 리서치 에이전트 강화
341
+
342
+ `/vibe.spec` 실행 시 **요구사항 확정 후** 4개 병렬 리서치:
343
+
344
+ ```
345
+ 문답으로 요구사항 확정 병렬 리서치 SPEC 작성
346
+ ```
347
+
348
+ | 에이전트 | 역할 | 외부 LLM 강화 |
349
+ |----------|------|--------------|
350
+ | best-practices-agent | 확정된 기능+스택 베스트 프랙티스 | - |
351
+ | framework-docs-agent | 확정된 스택 최신 문서 (context7) | Gemini (웹 검색) |
352
+ | codebase-patterns-agent | 기존 유사 패턴 분석 | - |
353
+ | security-advisory-agent | 확정된 기능 보안 권고 | GPT (CVE 지식) |
354
+
355
+ > ⚠️ **리서치는 요구사항 확정 후 실행** (VIBE 원칙: 요구사항 먼저)
356
+
357
+ ### 외부 LLM 통합 (선택적)
358
+
359
+ GPT/Gemini가 활성화되어 있으면 특정 에이전트가 자동으로 활용합니다:
360
+
361
+ | 에이전트 | 외부 LLM | 용도 |
362
+ |----------|----------|------|
363
+ | framework-docs-agent | Gemini | context7 문서 부재 시 웹 검색으로 최신 문서 보강 |
364
+ | security-advisory-agent | GPT | CVE/보안 취약점 DB 지식 보강 |
365
+ | python-reviewer | GPT Codex | Python 코드 리뷰 2nd opinion |
366
+
367
+ **동작 방식:**
368
+ ```
369
+ Primary: Task(Haiku) 실행
370
+
371
+ [외부 LLM 활성화?]
372
+ YES
373
+ 외부 LLM 호출 결과 병합
374
+ NO
375
+ Primary 결과만 사용
376
+ ```
377
+
378
+ > **후방 호환성**: GPT/Gemini가 설정되지 않아도 Primary(Haiku)만으로 정상 작동합니다.
379
+
380
+ ---
381
+
382
+ ## Project Structure
383
+
384
+ `vibe init` 실행 후 생성되는 구조:
385
+
386
+ ```
387
+ project/
388
+ ├── CLAUDE.md # 프로젝트 컨텍스트 ← git 공유
389
+ └── .claude/ # ⚠️ 반드시 git에 커밋 ← git 공유
390
+ ├── commands/ # 슬래시 커맨드 (7개)
391
+ ├── agents/ # 서브에이전트
392
+ │ ├── review/ # 리뷰 에이전트 (12개)
393
+ │ └── research/ # 리서치 에이전트 (4개)
394
+ ├── settings.json # Hooks 설정
395
+ ├── settings.local.json # 개인 설정 ← git 제외 (자동)
396
+ └── vibe/
397
+ ├── config.json # 프로젝트 설정
398
+ ├── constitution.md # 프로젝트 원칙
399
+ ├── rules/ # 코딩 규칙
400
+ ├── specs/ # SPEC 문서들
401
+ ├── features/ # BDD Feature 파일들
402
+ ├── solutions/ # 해결책 아카이브
403
+ └── todos/ # 우선순위 TODO
404
+ ```
405
+
406
+ > **⚠️ 중요**: `.claude/` 폴더는 팀과 공유해야 합니다. 커밋 시 제외하지 마세요.
407
+ > `settings.local.json`만 개인 설정이므로 자동으로 git에서 제외됩니다.
408
+
409
+ ---
410
+
411
+ ## Feature 파일 (BDD 시나리오)
412
+
413
+ ```gherkin
414
+ # .claude/vibe/features/login.feature
415
+
416
+ Feature: 로그인
417
+
418
+ Scenario: 유효한 로그인 성공
419
+ Given 사용자가 등록되어 있다
420
+ # 검증: 사용자 생성 API 존재
421
+ When 유효한 이메일과 비밀번호로 로그인
422
+ # 검증: POST /login 엔드포인트
423
+ Then 로그인 성공 + JWT 토큰 반환
424
+ # 검증: 200 응답 + 토큰 포함
425
+
426
+ Scenario: 잘못된 비밀번호 에러
427
+ Given 사용자가 등록되어 있다
428
+ When 잘못된 비밀번호로 로그인
429
+ Then 401 에러 + "비밀번호가 틀립니다" 메시지
430
+ ```
431
+
432
+ 각 시나리오의 Given/When/Then이 자동 검증 포인트가 됩니다.
433
+
434
+ ---
435
+
436
+ ## SPEC Document (PTCF Structure)
437
+
438
+ ```markdown
439
+ # SPEC: {기능명}
440
+
441
+ ## Persona
442
+ <role>
443
+ AI의 역할과 전문성 정의
444
+ </role>
445
+
446
+ ## Context
447
+ <context>
448
+ - 배경, 목적
449
+ - 기술 스택
450
+ - 관련 코드
451
+ </context>
452
+
453
+ ## Task
454
+ <task>
455
+ ### Scenario 1: {시나리오명}
456
+ Given: {전제 조건}
457
+ When: {사용자 행동}
458
+ Then: {예상 결과}
459
+
460
+ ### Scenario 2: {시나리오명}
461
+ ...
462
+ </task>
463
+
464
+ ## Constraints
465
+ <constraints>
466
+ - 기존 코드 패턴 준수
467
+ - 에러 메시지 한글화
468
+ </constraints>
469
+
470
+ ## Acceptance Criteria
471
+ <acceptance>
472
+ - [ ] Scenario 1 통과
473
+ - [ ] Scenario 2 통과
474
+ </acceptance>
475
+ ```
476
+
477
+ ---
478
+
479
+ ## Coding Rules (.claude/vibe/rules/)
480
+
481
+ ### 14개 프레임워크별 언어 룰 (v2.3.0)
482
+
483
+ `vibe init` / `vibe update` 시 프로젝트의 기술 스택을 감지하여 **프레임워크별 최적화 규칙**을 자동 설치합니다.
484
+
485
+ | 감지 스택 | 룰 파일 | 주요 내용 |
486
+ |----------|---------|----------|
487
+ | Next.js | `typescript-nextjs.md` | App Router, Server Components, Server Actions |
488
+ | React | `typescript-react.md` | Hooks, 컴포넌트 패턴, 상태관리 |
489
+ | Vue.js | `typescript-vue.md` | Composition API, Pinia, script setup |
490
+ | Nuxt 3 | `typescript-nuxt.md` | useFetch, Server API, Auto-imports |
491
+ | React Native | `typescript-react-native.md` | 네이티브 모듈, 성능 최적화 |
492
+ | Node.js | `typescript-node.md` | Express/Fastify/NestJS 패턴 |
493
+ | FastAPI | `python-fastapi.md` | Pydantic, 비동기 처리, 의존성 주입 |
494
+ | Django | `python-django.md` | ORM, 뷰 패턴, 시그널 |
495
+ | Flutter | `dart-flutter.md` | Riverpod/BLoC, 위젯 트리 |
496
+ | Go | `go.md` | 에러 처리, 고루틴, 인터페이스 |
497
+ | Rust | `rust.md` | Result/Option, 소유권, unsafe |
498
+ | Spring Boot | `java-spring.md` | DI, JPA, 트랜잭션 |
499
+ | Android | `kotlin-android.md` | Compose, ViewModel, Coroutines |
500
+ | iOS | `swift-ios.md` | SwiftUI, Combine, 프로토콜 |
501
+
502
+ ### 모노레포 지원
503
+
504
+ `packages/*`, `apps/*` 하위 패키지별로 각각 감지하여 필요한 룰만 설치:
505
+
506
+ ```bash
507
+ # 모노레포 예시
508
+ monorepo/
509
+ ├── packages/
510
+ │ ├── web/ → typescript-nextjs.md 설치
511
+ │ ├── mobile/ → typescript-react-native.md 설치
512
+ │ └── api/ → python-fastapi.md 설치
513
+ ```
514
+
515
+ > 패키지에 맞는 프레임워크 규칙이 자동 적용됩니다.
516
+
517
+ ### 핵심 원칙
518
+
519
+ - **수술적 정밀도**: 요청받지 않은 코드는 절대 수정하지 않음
520
+ - **한국어 우선**: 모든 커뮤니케이션은 한국어로
521
+ - **DRY**: 반복하지 말고 재사용
522
+ - **SRP**: 하나의 함수는 하나의 목적만
523
+ - **YAGNI**: 필요하지 않으면 만들지 않음
524
+
525
+ ### 복잡도 기준
526
+
527
+ | 메트릭 | 기준 |
528
+ |--------|------|
529
+ | 순환 복잡도 | ≤ 10 |
530
+ | 함수 길이 | ≤ 20줄 |
531
+ | 중첩 깊이 | ≤ 3단계 |
532
+ | 매개변수 | 5개 |
533
+ | 컴포넌트 JSX | ≤ 50줄 |
534
+
535
+ ### 품질 등급
536
+
537
+ | 등급 | 점수 | 설명 |
538
+ |------|------|------|
539
+ | A+ | 95-100 | 완벽 |
540
+ | A | 90-94 | 우수 |
541
+ | B+ | 85-89 | 양호 |
542
+ | B | 80-84 | 개선 권장 |
543
+ | C | 70-79 | 개선 필요 |
544
+ | F | < 70 | 리팩토링 필요 |
545
+
546
+ ---
547
+
548
+ ## 내장 도구 & MCP
549
+
550
+ ### 내장 도구 (v2.0+)
551
+
552
+ vibe는 36개의 도구를 **내장**하여 MCP 프로토콜 오버헤드 없이 직접 실행합니다.
553
+
554
+ | 도구 | 설명 |
555
+ |------|------|
556
+ | `vibe_find_symbol` | 심볼 정의 찾기 |
557
+ | `vibe_find_references` | 참조 찾기 |
558
+ | `vibe_analyze_complexity` | 복잡도 분석 |
559
+ | `vibe_validate_code_quality` | 품질 검증 |
560
+ | `vibe_start_session` | 세션 시작 (이전 컨텍스트 자동 복원) |
561
+ | `vibe_auto_save_context` | 현재 상태 저장 |
562
+ | `vibe_save_memory` | 중요 결정사항 저장 |
563
+
564
+ ### MCP 서버 (외부 LLM)
565
+
566
+ | MCP 서버 | 설명 | 등록 방식 |
567
+ |----------|------|----------|
568
+ | `vibe-gemini` | Gemini 3 Flash/Pro 서브에이전트 | 전역 (`-s user`) |
569
+ | `vibe-gpt` | GPT-5.2 Codex 서브에이전트 | 전역 (`-s user`) |
570
+ | `context7` | 라이브러리 문서 실시간 검색 | 전역 (`-s user`) |
571
+
572
+ > **Note**: MCP 서버들은 전역 등록되어 모든 프로젝트에서 사용 가능합니다.
573
+ > OAuth 인증 Claude Code에서 GPT/Gemini를 서브에이전트로 호출할 있습니다.
574
+
575
+ ### Hooks (자동 설정)
576
+
577
+ | Hook | 트리거 | 동작 |
578
+ |------|--------|------|
579
+ | `SessionStart` | 세션 시작 | `vibe_start_session` 자동 호출 → 이전 컨텍스트 복원 |
580
+ | `UserPromptSubmit` | `ultrawork`/`ulw` 감지 | 🚀 ULTRAWORK 모드 활성화 |
581
+ | `PostToolUse` | Write/Edit 후 | 품질 체크 (멈추지 않음) |
582
+ | `Notification` | 컨텍스트 80% | **MANDATORY** `vibe_auto_save_context` 호출 |
583
+ | `Notification` | 컨텍스트 90% | **MANDATORY** 즉시 저장 (urgency=high) |
584
+ | `Notification` | 컨텍스트 95% | **MANDATORY** 긴급 저장 + 세션 전환 준비 |
585
+
586
+ ### 선택적 연동 (외부 LLM)
587
+
588
+ | MCP 서버 | 명령어 | 설명 |
589
+ |----------|--------|------|
590
+ | GPT-5.2 Codex | `vibe auth gpt` | OAuth 인증 (ChatGPT Plus/Pro, 권장) |
591
+ | GPT-5.2 Codex | `vibe auth gpt --key <key>` | API 키 방식 |
592
+ | Gemini 3 Flash/Pro | `vibe auth gemini` | OAuth 인증 (구독자용, 권장) |
593
+ | Gemini 3 Flash/Pro | `vibe auth gemini --key <key>` | API 키 방식 |
594
+
595
+ > **OAuth 인증** 또는 API 키를 등록해서 사용할 수 있습니다.
596
+
597
+ ### 주요 내장 도구
598
+
599
+ - **코드 분석**: `vibe_analyze_complexity`, `vibe_validate_code_quality`
600
+ - **시맨틱 검색**: `vibe_find_symbol`, `vibe_find_references`
601
+ - **추론**: `vibe_create_thinking_chain`, `vibe_analyze_problem`
602
+ - **메모리**: `vibe_save_memory`, `vibe_recall_memory`, `vibe_auto_save_context`
603
+ - **UI**: `vibe_preview_ui_ascii`
604
+
605
+ ### context7 사용법
606
+
607
+ 최신 라이브러리 문서가 필요할 때:
608
+
609
+ ```
610
+ "React 19의 use() 사용법을 context7으로 검색해줘"
611
+ "Next.js 15 App Router 문서를 확인해줘"
612
+ ```
613
+
614
+ ---
615
+
616
+ ## 컨텍스트 관리 팁
617
+
618
+ ### 모델 선택 전략
619
+
620
+ | 작업 유형 | 권장 모델 | 이유 |
621
+ |----------|----------|------|
622
+ | 탐색/검색 | Haiku | 빠르고 저비용 |
623
+ | 구현/디버깅 | Sonnet | 균형잡힌 성능 |
624
+ | 아키텍처/복잡한 로직 | Opus | 최고 성능 |
625
+
626
+ > vibe의 서브에이전트는 기본적으로 Haiku를 사용합니다. 고비용 모델이 필요 없는 탐색 작업을 저비용 모델에게 위임하는 전략입니다.
627
+
628
+ ### Claude Code 기본 명령어
629
+
630
+ | 명령어 | 용도 |
631
+ |--------|------|
632
+ | `/context` | 현재 컨텍스트 사용량 확인 |
633
+ | `/rewind` | 이전 시점으로 되돌리기 |
634
+ | `/new` | 세션 시작 |
635
+ | `Shift + Tab` | 플랜 모드 진입 |
636
+
637
+ > **⚠️ `/compact` 사용 금지**: 정보 손실/왜곡 위험. vibe 메모리 시스템 사용 권장.
638
+
639
+ ### 컨텍스트 80%+ 시 자동 처리
640
+
641
+ ```
642
+ 80% 도달 → vibe_auto_save_context 자동 호출 (MANDATORY)
643
+ 90% 도달 → 즉시 저장 (urgency=high)
644
+ 95% 도달 → 긴급 저장 + 세션 전환 준비
645
+
646
+ 세션 시작 vibe_start_session 자동 호출 → 이전 컨텍스트 복원
647
+ ```
648
+
649
+ > **⚠️ `/compact` 사용 금지**: 정보 손실/왜곡 위험. vibe 메모리 시스템이 자동으로 관리합니다.
650
+
651
+ ### 가치 밀도 높은 컨텍스트 유지
652
+
653
+ 1. **계획 먼저** - `/vibe.spec`으로 명확한 계획 수립
654
+ 2. **필요한 정보만** - 서브에이전트가 탐색하고 요약만 전달
655
+ 3. **자동 저장** - 80%+ 시 `vibe_auto_save_context` 자동 호출
656
+ 4. **Just-in-Time** - context7로 필요할 때만 문서 검색
657
+
658
+ ---
659
+
660
+ ## Example
661
+
662
+ ```
663
+ User: /vibe.spec "벽돌게임"
664
+
665
+ Claude:
666
+ 벽돌게임을 만드시는군요! 어떤 스타일을 생각하고 계신가요?
667
+
668
+ 1. 클래식 벽돌깨기 (Breakout)
669
+ 2. 아르카노이드 (파워업 포함)
670
+ 3. 커스텀 스타일
671
+
672
+ 또는 직접 설명해주셔도 됩니다.
673
+
674
+ User: 1
675
+
676
+ Claude: 어떤 플랫폼에서 실행하시겠어요?
677
+
678
+ 1. (브라우저)
679
+ 2. 모바일
680
+ 3. 데스크톱
681
+
682
+ User: 1
683
+
684
+ Claude: 기술 스택을 제안드립니다:
685
+
686
+ 1. Phaser.js (추천) - 게임 프레임워크
687
+ 2. Canvas + JavaScript
688
+ 3. PixiJS + Matter.js
689
+
690
+ User: 1
691
+
692
+ [대화 계속...]
693
+
694
+ ✅ SPEC 문서 작성 완료!
695
+ 📄 .claude/vibe/specs/brick-game.md
696
+ 📄 .claude/vibe/features/brick-game.feature
697
+
698
+ 다음 단계: /vibe.run "벽돌게임"
699
+ ```
700
+
701
+ ---
702
+
703
+ ## Requirements
704
+
705
+ - **Node.js**: 18.0.0+
706
+ - **Claude Code**: 필수
707
+
708
+ ---
709
+
710
+ ## Links
711
+
712
+ - **Repository**: [github.com/su-record/vibe](https://github.com/su-record/vibe)
713
+ - **Issues**: [GitHub Issues](https://github.com/su-record/vibe/issues)
714
+
715
+ ---
716
+
717
+ ## License
718
+
719
+ MIT License
720
+
721
+ ---
722
+
723
+ **Built with ❤️ by Su & Claude**
724
+
725
+ ## Vibe Setup (AI Coding)
726
+
727
+ 이 프로젝트는 [Vibe](https://github.com/su-record/vibe) AI 코딩 프레임워크를 사용합니다.
728
+
729
+ ### 협업자 설치
730
+
731
+ ```bash
732
+ # 전역 설치 (권장)
733
+ npm install -g @su-record/vibe
734
+ vibe update
735
+
736
+ # 또는 setup 스크립트 실행
737
+ ./.claude/vibe/setup.sh
738
+ ```
739
+
740
+ ### 사용법
741
+
742
+ Claude Code에서 슬래시 커맨드 사용:
743
+ - `/vibe.spec "기능명"` - SPEC 문서 작성
744
+ - `/vibe.run "기능명"` - 구현 실행