@su-record/vibe 2.2.2 → 2.2.4

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