@su-record/vibe 2.4.33 → 2.4.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +345 -345
- package/LICENSE +21 -21
- package/README.md +210 -210
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/e2e-tester.md +266 -266
- package/agents/explorer.md +48 -48
- package/agents/implementer.md +53 -53
- package/agents/research/best-practices-agent.md +139 -139
- package/agents/research/codebase-patterns-agent.md +147 -147
- package/agents/research/framework-docs-agent.md +178 -178
- package/agents/research/security-advisory-agent.md +164 -164
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +119 -119
- package/agents/tester.md +49 -49
- package/agents/ui-previewer.md +129 -129
- package/commands/vibe.analyze.md +260 -260
- package/commands/vibe.reason.md +223 -223
- package/commands/vibe.review.md +213 -213
- package/commands/vibe.run.md +931 -931
- package/commands/vibe.spec.md +442 -442
- package/commands/vibe.utils.md +101 -101
- package/commands/vibe.verify.md +282 -282
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +137 -137
- package/dist/cli/llm.js +147 -147
- package/dist/cli/llm.js.map +1 -1
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +11 -17
- package/dist/cli/setup.js.map +1 -1
- package/dist/lib/MemoryManager.d.ts +4 -0
- package/dist/lib/MemoryManager.d.ts.map +1 -1
- package/dist/lib/MemoryManager.js +21 -2
- package/dist/lib/MemoryManager.js.map +1 -1
- package/dist/lib/PythonParser.js +108 -108
- package/dist/lib/gemini-api.d.ts +13 -3
- package/dist/lib/gemini-api.d.ts.map +1 -1
- package/dist/lib/gemini-api.js +198 -7
- package/dist/lib/gemini-api.js.map +1 -1
- package/dist/lib/gpt-api.d.ts +5 -4
- package/dist/lib/gpt-api.d.ts.map +1 -1
- package/dist/lib/gpt-api.js +168 -12
- package/dist/lib/gpt-api.js.map +1 -1
- package/dist/tools/memory/saveMemory.js +1 -1
- package/dist/tools/memory/saveMemory.js.map +1 -1
- package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
- package/hooks/hooks.json +195 -195
- package/languages/dart-flutter.md +509 -0
- package/languages/go.md +396 -0
- package/languages/java-spring.md +586 -0
- package/languages/kotlin-android.md +491 -0
- package/languages/python-django.md +371 -0
- package/languages/python-fastapi.md +386 -0
- package/languages/rust.md +425 -0
- package/languages/swift-ios.md +516 -0
- package/languages/typescript-nextjs.md +441 -0
- package/languages/typescript-node.md +375 -0
- package/languages/typescript-nuxt.md +521 -0
- package/languages/typescript-react-native.md +446 -0
- package/languages/typescript-react.md +525 -0
- package/languages/typescript-vue.md +353 -0
- package/package.json +88 -87
- package/skills/context7-usage.md +82 -82
- package/skills/git-worktree.md +181 -181
- package/skills/multi-llm-orchestration.md +92 -92
- package/skills/parallel-research.md +77 -77
- package/skills/priority-todos.md +239 -239
- package/skills/tool-fallback.md +126 -126
- package/skills/vibe-capabilities.md +129 -129
- package/{.claude/vibe → vibe}/config.json +3 -3
- package/{.claude/vibe → vibe}/constitution.md +184 -184
- package/{.claude/vibe → vibe}/rules/core/communication-guide.md +104 -104
- package/{.claude/vibe → vibe}/rules/core/development-philosophy.md +52 -52
- package/{.claude/vibe → vibe}/rules/core/quick-start.md +120 -120
- package/{.claude/vibe → vibe}/rules/quality/bdd-contract-testing.md +388 -388
- package/{.claude/vibe → vibe}/rules/quality/checklist.md +276 -276
- package/{.claude/vibe → vibe}/rules/quality/testing-strategy.md +437 -437
- package/{.claude/vibe → vibe}/rules/standards/anti-patterns.md +369 -369
- package/{.claude/vibe → vibe}/rules/standards/code-structure.md +291 -291
- package/{.claude/vibe → vibe}/rules/standards/complexity-metrics.md +312 -312
- package/{.claude/vibe → vibe}/rules/standards/naming-conventions.md +198 -198
- package/{.claude/vibe → vibe}/setup.sh +31 -31
- package/{.claude/vibe → vibe}/templates/constitution-template.md +184 -184
- package/{.claude/vibe → vibe}/templates/contract-backend-template.md +517 -517
- package/{.claude/vibe → vibe}/templates/contract-frontend-template.md +594 -594
- package/{.claude/vibe → vibe}/templates/feature-template.md +96 -96
- package/{.claude/vibe → vibe}/templates/spec-template.md +199 -199
package/CLAUDE.md
CHANGED
|
@@ -1,345 +1,345 @@
|
|
|
1
|
-
# VIBE
|
|
2
|
-
|
|
3
|
-
SPEC 주도 AI 코딩 프레임워크 (Claude Code 전용)
|
|
4
|
-
|
|
5
|
-
## 코드 품질 기준 (필수)
|
|
6
|
-
|
|
7
|
-
모든 코드 작성 시 아래 기준을 준수합니다. 상세 규칙은 `.claude/vibe/rules/` 참조.
|
|
8
|
-
|
|
9
|
-
### 핵심 원칙
|
|
10
|
-
- **요청 범위만 수정** - 관련 없는 코드 건드리지 않음
|
|
11
|
-
- **기존 스타일 유지** - 프로젝트 컨벤션 따름
|
|
12
|
-
- **작동하는 코드 보존** - 불필요한 리팩토링 금지
|
|
13
|
-
|
|
14
|
-
### 코드 복잡도 제한
|
|
15
|
-
| 메트릭 | 제한 |
|
|
16
|
-
|--------|------|
|
|
17
|
-
| 함수 길이 | 30줄 이하 (권장), 50줄 이하 (허용) |
|
|
18
|
-
| 중첩 깊이 | 3단계 이하 |
|
|
19
|
-
| 매개변수 | 5개 이하 |
|
|
20
|
-
| 순환 복잡도 | 10 이하 |
|
|
21
|
-
|
|
22
|
-
### TypeScript 규칙
|
|
23
|
-
- `any` 타입 사용 금지 → `unknown` + 타입 가드 사용
|
|
24
|
-
- `as any` 캐스팅 금지 → 적절한 인터페이스 정의
|
|
25
|
-
- `@ts-ignore` 금지 → 타입 문제 근본 해결
|
|
26
|
-
- 모든 함수에 반환 타입 명시
|
|
27
|
-
|
|
28
|
-
### TypeScript 규칙
|
|
29
|
-
- `any` 타입 사용 금지 → `unknown` + 타입 가드 사용
|
|
30
|
-
- `as any` 캐스팅 금지 → 적절한 인터페이스 정의
|
|
31
|
-
- `@ts-ignore` 금지 → 타입 문제 근본 해결
|
|
32
|
-
- 모든 함수에 반환 타입 명시
|
|
33
|
-
|
|
34
|
-
### TypeScript 규칙
|
|
35
|
-
- `any` 타입 사용 금지 → `unknown` + 타입 가드 사용
|
|
36
|
-
- `as any` 캐스팅 금지 → 적절한 인터페이스 정의
|
|
37
|
-
- `@ts-ignore` 금지 → 타입 문제 근본 해결
|
|
38
|
-
- 모든 함수에 반환 타입 명시
|
|
39
|
-
|
|
40
|
-
### 에러 처리 필수
|
|
41
|
-
- try-catch 또는 error state 필수
|
|
42
|
-
- 로딩 상태 처리
|
|
43
|
-
- 사용자 친화적 에러 메시지
|
|
44
|
-
|
|
45
|
-
### 금지 패턴
|
|
46
|
-
- console.log 커밋 금지 (디버깅 후 제거)
|
|
47
|
-
- 하드코딩된 문자열/숫자 → 상수로 추출
|
|
48
|
-
- 주석 처리된 코드 커밋 금지
|
|
49
|
-
- TODO 없이 미완성 코드 커밋 금지
|
|
50
|
-
|
|
51
|
-
## Workflow
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
/vibe.spec → /vibe.run → /vibe.verify → /vibe.review
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Plan Mode vs VIBE (워크플로우 선택)
|
|
58
|
-
|
|
59
|
-
**개발 요청 시 사용자에게 선택권 제공:**
|
|
60
|
-
|
|
61
|
-
| 작업 규모 | 권장 방식 |
|
|
62
|
-
|----------|----------|
|
|
63
|
-
| 간단한 수정 (1-2 파일) | Plan Mode |
|
|
64
|
-
| 복잡한 기능 (3+ 파일, 리서치/검증 필요) | `/vibe.spec` |
|
|
65
|
-
|
|
66
|
-
| 항목 | Plan Mode | VIBE |
|
|
67
|
-
|------|-----------|------|
|
|
68
|
-
| 저장 위치 | `~/.claude/plans/` (전역) | `.claude/vibe/specs/` (프로젝트) |
|
|
69
|
-
| 문서 형식 | 자유 형식 | PTCF 구조 (AI 실행 최적화) |
|
|
70
|
-
| 리서치 | 없음 | 4개 병렬 에이전트 |
|
|
71
|
-
| 검증 | 없음 | `/vibe.verify`로 SPEC 대비 검증 |
|
|
72
|
-
| 히스토리 | 추적 불가 | Git으로 버전 관리 |
|
|
73
|
-
|
|
74
|
-
**규칙:**
|
|
75
|
-
- `/vibe.analyze` 또는 `/vibe.review` 후 개발/수정 요청 시 → **사용자에게 워크플로우 선택 질문**
|
|
76
|
-
- 사용자가 VIBE 선택 → `/vibe.spec` 대기
|
|
77
|
-
- 사용자가 Plan Mode 선택 → EnterPlanMode 진행
|
|
78
|
-
|
|
79
|
-
## ULTRAWORK Mode (권장)
|
|
80
|
-
|
|
81
|
-
`ultrawork` 또는 `ulw` 키워드를 포함하면 최대 성능 모드 활성화:
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
/vibe.run "기능명" ultrawork # 모든 최적화 자동 활성화
|
|
85
|
-
/vibe.run "기능명" ulw # 동일 (단축어)
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
**활성화 기능:**
|
|
89
|
-
- 병렬 서브에이전트 탐색 (3+ 동시)
|
|
90
|
-
- **백그라운드 에이전트** - 구현 중 다음 Phase 준비
|
|
91
|
-
- **Phase 파이프라이닝** - Phase 간 대기 시간 제거
|
|
92
|
-
- Boulder Loop (모든 Phase 완료까지 자동 진행)
|
|
93
|
-
- 에러 자동 재시도 (최대 3회)
|
|
94
|
-
- 컨텍스트 70%+ 시 자동 압축/저장
|
|
95
|
-
- Phase 간 확인 없이 연속 실행
|
|
96
|
-
|
|
97
|
-
**속도 비교:**
|
|
98
|
-
|
|
99
|
-
| Mode | Phase당 | 5 Phase |
|
|
100
|
-
|------|---------|---------|
|
|
101
|
-
| Sequential | ~2분 | ~10분 |
|
|
102
|
-
| Parallel Exploration | ~1.5분 | ~7.5분 |
|
|
103
|
-
| **ULTRAWORK Pipeline** | **~1분** | **~5분** |
|
|
104
|
-
|
|
105
|
-
## Commands
|
|
106
|
-
|
|
107
|
-
| 명령어 | 설명 |
|
|
108
|
-
|--------|------|
|
|
109
|
-
| `/vibe.spec "기능명"` | SPEC 작성 (PTCF 구조) + 병렬 리서치 |
|
|
110
|
-
| `/vibe.run "기능명"` | 구현 실행 |
|
|
111
|
-
| `/vibe.run "기능명" ultrawork` | **최대 성능 모드** |
|
|
112
|
-
| `/vibe.verify "기능명"` | 검증 |
|
|
113
|
-
| `/vibe.review` | **병렬 코드 리뷰** (13+ 에이전트) |
|
|
114
|
-
| `/vibe.reason "문제"` | 체계적 추론 |
|
|
115
|
-
| `/vibe.analyze` | 프로젝트 분석 |
|
|
116
|
-
| `/vibe.utils --e2e` | E2E 테스트 (Playwright) |
|
|
117
|
-
| `/vibe.utils --diagram` | 다이어그램 생성 |
|
|
118
|
-
| `/vibe.utils --ui "설명"` | UI 미리보기 |
|
|
119
|
-
| `/vibe.utils --continue` | **세션 복원** (이전 컨텍스트 로드) |
|
|
120
|
-
|
|
121
|
-
## 새로운 기능 (v2.1.0)
|
|
122
|
-
|
|
123
|
-
### 병렬 코드 리뷰 (/vibe.review)
|
|
124
|
-
|
|
125
|
-
13+ 전문 에이전트가 동시에 코드 리뷰:
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
129
|
-
│ 🚀 PARALLEL REVIEW AGENTS │
|
|
130
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
131
|
-
│ Security │ security-reviewer, data-integrity-reviewer │
|
|
132
|
-
│ Performance │ performance-reviewer, complexity-reviewer │
|
|
133
|
-
│ Architecture │ architecture-reviewer, simplicity-reviewer │
|
|
134
|
-
│ Language-Specific │ python, typescript, rails, react reviewers │
|
|
135
|
-
│ Context │ git-history, test-coverage reviewers │
|
|
136
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**우선순위 시스템:**
|
|
140
|
-
- 🔴 P1 (Critical): 머지 차단
|
|
141
|
-
- 🟡 P2 (Important): 수정 권장
|
|
142
|
-
- 🔵 P3 (Nice-to-have): 백로그
|
|
143
|
-
|
|
144
|
-
### E2E 테스트 (/vibe.utils --e2e)
|
|
145
|
-
|
|
146
|
-
Playwright 기반 자동화 테스트:
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
/vibe.utils --e2e "login flow" # 시나리오 테스트
|
|
150
|
-
/vibe.utils --e2e --visual # 시각적 회귀 테스트
|
|
151
|
-
/vibe.utils --e2e --record # 비디오 녹화
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### 리서치 에이전트 강화
|
|
155
|
-
|
|
156
|
-
`/vibe.spec` 실행 시 **요구사항 확정 후** 4개 병렬 리서치:
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
문답으로 요구사항 확정 → 병렬 리서치 실행 → SPEC 작성
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
| 에이전트 | 역할 |
|
|
163
|
-
|----------|------|
|
|
164
|
-
| best-practices-agent | 확정된 기능+스택 베스트 프랙티스 |
|
|
165
|
-
| framework-docs-agent | 확정된 스택 최신 문서 (context7) |
|
|
166
|
-
| codebase-patterns-agent | 기존 유사 패턴 분석 |
|
|
167
|
-
| security-advisory-agent | 확정된 기능 보안 권고 |
|
|
168
|
-
|
|
169
|
-
**⚠️ 리서치는 요구사항 확정 후 실행** (VIBE 원칙: 요구사항 먼저)
|
|
170
|
-
|
|
171
|
-
## PTCF Structure
|
|
172
|
-
|
|
173
|
-
SPEC 문서는 AI가 바로 실행 가능한 프롬프트 형태:
|
|
174
|
-
|
|
175
|
-
```
|
|
176
|
-
<role> AI 역할 정의
|
|
177
|
-
<context> 배경, 기술 스택, 관련 코드
|
|
178
|
-
<task> Phase별 작업 목록
|
|
179
|
-
<constraints> 제약 조건
|
|
180
|
-
<output_format> 생성/수정할 파일
|
|
181
|
-
<acceptance> 검증 기준
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## 내장 도구
|
|
185
|
-
|
|
186
|
-
### 시맨틱 코드 분석
|
|
187
|
-
| 도구 | 용도 |
|
|
188
|
-
|------|------|
|
|
189
|
-
| `vibe_find_symbol` | 심볼 정의 찾기 |
|
|
190
|
-
| `vibe_find_references` | 참조 찾기 |
|
|
191
|
-
| `vibe_analyze_complexity` | 복잡도 분석 |
|
|
192
|
-
| `vibe_validate_code_quality` | 품질 검증 |
|
|
193
|
-
|
|
194
|
-
### 컨텍스트 관리
|
|
195
|
-
| 도구 | 용도 |
|
|
196
|
-
|------|------|
|
|
197
|
-
| `vibe_start_session` | 세션 시작 (이전 컨텍스트 복원) |
|
|
198
|
-
| `vibe_auto_save_context` | 현재 상태 저장 |
|
|
199
|
-
| `vibe_save_memory` | 중요 결정사항 저장 |
|
|
200
|
-
|
|
201
|
-
## 에이전트
|
|
202
|
-
|
|
203
|
-
### Review 에이전트 (12개)
|
|
204
|
-
```
|
|
205
|
-
.claude/agents/review/
|
|
206
|
-
├── security-reviewer.md # 보안 취약점
|
|
207
|
-
├── performance-reviewer.md # 성능 병목
|
|
208
|
-
├── architecture-reviewer.md # 아키텍처 위반
|
|
209
|
-
├── complexity-reviewer.md # 복잡도 초과
|
|
210
|
-
├── simplicity-reviewer.md # 과도한 추상화
|
|
211
|
-
├── data-integrity-reviewer.md # 데이터 무결성
|
|
212
|
-
├── test-coverage-reviewer.md # 테스트 누락
|
|
213
|
-
├── git-history-reviewer.md # 위험 패턴
|
|
214
|
-
├── python-reviewer.md # Python 전문
|
|
215
|
-
├── typescript-reviewer.md # TypeScript 전문
|
|
216
|
-
├── rails-reviewer.md # Rails 전문
|
|
217
|
-
└── react-reviewer.md # React 전문
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
### Research 에이전트 (4개)
|
|
221
|
-
```
|
|
222
|
-
.claude/agents/research/
|
|
223
|
-
├── best-practices-agent.md # 베스트 프랙티스
|
|
224
|
-
├── framework-docs-agent.md # 프레임워크 문서
|
|
225
|
-
├── codebase-patterns-agent.md # 코드 패턴 분석
|
|
226
|
-
└── security-advisory-agent.md # 보안 권고
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
## 스킬
|
|
230
|
-
|
|
231
|
-
### Git Worktree
|
|
232
|
-
```bash
|
|
233
|
-
# PR 리뷰용 격리 환경
|
|
234
|
-
git worktree add ../review-123 origin/pr/123
|
|
235
|
-
cd ../review-123 && npm test
|
|
236
|
-
git worktree remove ../review-123
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### Priority Todos
|
|
240
|
-
```
|
|
241
|
-
.claude/vibe/todos/
|
|
242
|
-
├── P1-security-sql-injection.md # 🔴 머지 차단
|
|
243
|
-
├── P2-perf-n1-query.md # 🟡 수정 권장
|
|
244
|
-
└── P3-style-extract-helper.md # 🔵 백로그
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
## 컨텍스트 관리 전략
|
|
248
|
-
|
|
249
|
-
### 모델 선택
|
|
250
|
-
- **탐색/검색**: Haiku (서브에이전트 기본값)
|
|
251
|
-
- **구현/디버깅**: Sonnet
|
|
252
|
-
- **아키텍처/복잡한 로직**: Opus
|
|
253
|
-
|
|
254
|
-
### 컨텍스트 70%+ 시 (⚠️ 중요)
|
|
255
|
-
```
|
|
256
|
-
❌ /compact 사용 금지 (정보 손실/왜곡 위험)
|
|
257
|
-
✅ save_memory로 중요 결정사항 저장 → /new로 새 세션
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
vibe는 자체 메모리 시스템으로 세션 간 컨텍스트를 유지합니다:
|
|
261
|
-
1. `save_memory` - 중요 결정사항 명시적 저장
|
|
262
|
-
2. `/new` - 새 세션 시작
|
|
263
|
-
3. `start_session` - 이전 세션 자동 복원
|
|
264
|
-
|
|
265
|
-
### 세션 복원
|
|
266
|
-
새 세션에서 이전 작업을 이어가려면:
|
|
267
|
-
```
|
|
268
|
-
/vibe.utils --continue
|
|
269
|
-
```
|
|
270
|
-
이 명령어가 `vibe_start_session`을 호출하여 프로젝트별 메모리에서 이전 컨텍스트를 복원합니다.
|
|
271
|
-
|
|
272
|
-
### 기타 명령어
|
|
273
|
-
- `/rewind` - 이전 시점으로 되돌리기
|
|
274
|
-
- `/context` - 현재 사용량 확인
|
|
275
|
-
|
|
276
|
-
### context7 활용
|
|
277
|
-
최신 라이브러리 문서가 필요할 때 context7 MCP 사용:
|
|
278
|
-
```
|
|
279
|
-
"React 19 use() 훅을 context7으로 검색해줘"
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
## 문서 작성 규칙
|
|
283
|
-
|
|
284
|
-
### 다이어그램/구조 표현
|
|
285
|
-
- 아스키 박스 (┌─┐) 사용 금지 → 한글 폭 문제로 정렬 깨짐
|
|
286
|
-
- 대안 사용:
|
|
287
|
-
- Mermaid 다이어그램 (GitHub/노션 지원)
|
|
288
|
-
- 마크다운 테이블
|
|
289
|
-
- 들여쓰기 + 구분선
|
|
290
|
-
|
|
291
|
-
### 선호 형식
|
|
292
|
-
| 용도 | 권장 방식 |
|
|
293
|
-
|------|----------|
|
|
294
|
-
| 흐름도 | Mermaid flowchart |
|
|
295
|
-
| 구조/계층 | 들여쓰기 리스트 |
|
|
296
|
-
| 비교/목록 | 마크다운 테이블 |
|
|
297
|
-
| 시퀀스 | Mermaid sequenceDiagram |
|
|
298
|
-
|
|
299
|
-
## Git Commit 규칙
|
|
300
|
-
|
|
301
|
-
**반드시 포함:**
|
|
302
|
-
- `.claude/` 폴더 전체 (commands, agents, skills, settings.json)
|
|
303
|
-
- `.claude/vibe/rules/`, `.claude/vibe/specs/`, `.claude/vibe/features/`, `.claude/vibe/solutions/`, `.claude/vibe/todos/`
|
|
304
|
-
- `CLAUDE.md`
|
|
305
|
-
|
|
306
|
-
**제외:**
|
|
307
|
-
- `.claude/settings.local.json` (개인 설정, 자동 제외)
|
|
308
|
-
- `.claude/vibe/mcp/` (node_modules, 자동 제외)
|
|
309
|
-
|
|
310
|
-
## Getting Started
|
|
311
|
-
|
|
312
|
-
```bash
|
|
313
|
-
vibe init
|
|
314
|
-
/vibe.spec "로그인 기능"
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
## 전체 워크플로우
|
|
318
|
-
|
|
319
|
-
```
|
|
320
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
321
|
-
│ VIBE Complete Workflow │
|
|
322
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
323
|
-
│ │
|
|
324
|
-
│ 1. /vibe.spec "기능명" │
|
|
325
|
-
│ ├── 문답으로 요구사항 수집 │
|
|
326
|
-
│ ├── 요구사항 확정 후 4개 병렬 리서치 │
|
|
327
|
-
│ └── SPEC 문서 생성 │
|
|
328
|
-
│ │
|
|
329
|
-
│ 2. /vibe.run "기능명" ultrawork │
|
|
330
|
-
│ ├── 구현 │
|
|
331
|
-
│ ├── 테스트 │
|
|
332
|
-
│ └── 자동 진행 │
|
|
333
|
-
│ │
|
|
334
|
-
│ 3. /vibe.verify "기능명" │
|
|
335
|
-
│ └── BDD 시나리오 검증 │
|
|
336
|
-
│ │
|
|
337
|
-
│ 4. /vibe.review │
|
|
338
|
-
│ ├── 13+ 병렬 리뷰 에이전트 │
|
|
339
|
-
│ └── P1/P2/P3 우선순위 분류 │
|
|
340
|
-
│ │
|
|
341
|
-
│ 5. /vibe.utils --e2e │
|
|
342
|
-
│ └── Playwright E2E 테스트 │
|
|
343
|
-
│ │
|
|
344
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
345
|
-
```
|
|
1
|
+
# VIBE
|
|
2
|
+
|
|
3
|
+
SPEC 주도 AI 코딩 프레임워크 (Claude Code 전용)
|
|
4
|
+
|
|
5
|
+
## 코드 품질 기준 (필수)
|
|
6
|
+
|
|
7
|
+
모든 코드 작성 시 아래 기준을 준수합니다. 상세 규칙은 `.claude/vibe/rules/` 참조.
|
|
8
|
+
|
|
9
|
+
### 핵심 원칙
|
|
10
|
+
- **요청 범위만 수정** - 관련 없는 코드 건드리지 않음
|
|
11
|
+
- **기존 스타일 유지** - 프로젝트 컨벤션 따름
|
|
12
|
+
- **작동하는 코드 보존** - 불필요한 리팩토링 금지
|
|
13
|
+
|
|
14
|
+
### 코드 복잡도 제한
|
|
15
|
+
| 메트릭 | 제한 |
|
|
16
|
+
|--------|------|
|
|
17
|
+
| 함수 길이 | 30줄 이하 (권장), 50줄 이하 (허용) |
|
|
18
|
+
| 중첩 깊이 | 3단계 이하 |
|
|
19
|
+
| 매개변수 | 5개 이하 |
|
|
20
|
+
| 순환 복잡도 | 10 이하 |
|
|
21
|
+
|
|
22
|
+
### TypeScript 규칙
|
|
23
|
+
- `any` 타입 사용 금지 → `unknown` + 타입 가드 사용
|
|
24
|
+
- `as any` 캐스팅 금지 → 적절한 인터페이스 정의
|
|
25
|
+
- `@ts-ignore` 금지 → 타입 문제 근본 해결
|
|
26
|
+
- 모든 함수에 반환 타입 명시
|
|
27
|
+
|
|
28
|
+
### TypeScript 규칙
|
|
29
|
+
- `any` 타입 사용 금지 → `unknown` + 타입 가드 사용
|
|
30
|
+
- `as any` 캐스팅 금지 → 적절한 인터페이스 정의
|
|
31
|
+
- `@ts-ignore` 금지 → 타입 문제 근본 해결
|
|
32
|
+
- 모든 함수에 반환 타입 명시
|
|
33
|
+
|
|
34
|
+
### TypeScript 규칙
|
|
35
|
+
- `any` 타입 사용 금지 → `unknown` + 타입 가드 사용
|
|
36
|
+
- `as any` 캐스팅 금지 → 적절한 인터페이스 정의
|
|
37
|
+
- `@ts-ignore` 금지 → 타입 문제 근본 해결
|
|
38
|
+
- 모든 함수에 반환 타입 명시
|
|
39
|
+
|
|
40
|
+
### 에러 처리 필수
|
|
41
|
+
- try-catch 또는 error state 필수
|
|
42
|
+
- 로딩 상태 처리
|
|
43
|
+
- 사용자 친화적 에러 메시지
|
|
44
|
+
|
|
45
|
+
### 금지 패턴
|
|
46
|
+
- console.log 커밋 금지 (디버깅 후 제거)
|
|
47
|
+
- 하드코딩된 문자열/숫자 → 상수로 추출
|
|
48
|
+
- 주석 처리된 코드 커밋 금지
|
|
49
|
+
- TODO 없이 미완성 코드 커밋 금지
|
|
50
|
+
|
|
51
|
+
## Workflow
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
/vibe.spec → /vibe.run → /vibe.verify → /vibe.review
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Plan Mode vs VIBE (워크플로우 선택)
|
|
58
|
+
|
|
59
|
+
**개발 요청 시 사용자에게 선택권 제공:**
|
|
60
|
+
|
|
61
|
+
| 작업 규모 | 권장 방식 |
|
|
62
|
+
|----------|----------|
|
|
63
|
+
| 간단한 수정 (1-2 파일) | Plan Mode |
|
|
64
|
+
| 복잡한 기능 (3+ 파일, 리서치/검증 필요) | `/vibe.spec` |
|
|
65
|
+
|
|
66
|
+
| 항목 | Plan Mode | VIBE |
|
|
67
|
+
|------|-----------|------|
|
|
68
|
+
| 저장 위치 | `~/.claude/plans/` (전역) | `.claude/vibe/specs/` (프로젝트) |
|
|
69
|
+
| 문서 형식 | 자유 형식 | PTCF 구조 (AI 실행 최적화) |
|
|
70
|
+
| 리서치 | 없음 | 4개 병렬 에이전트 |
|
|
71
|
+
| 검증 | 없음 | `/vibe.verify`로 SPEC 대비 검증 |
|
|
72
|
+
| 히스토리 | 추적 불가 | Git으로 버전 관리 |
|
|
73
|
+
|
|
74
|
+
**규칙:**
|
|
75
|
+
- `/vibe.analyze` 또는 `/vibe.review` 후 개발/수정 요청 시 → **사용자에게 워크플로우 선택 질문**
|
|
76
|
+
- 사용자가 VIBE 선택 → `/vibe.spec` 대기
|
|
77
|
+
- 사용자가 Plan Mode 선택 → EnterPlanMode 진행
|
|
78
|
+
|
|
79
|
+
## ULTRAWORK Mode (권장)
|
|
80
|
+
|
|
81
|
+
`ultrawork` 또는 `ulw` 키워드를 포함하면 최대 성능 모드 활성화:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
/vibe.run "기능명" ultrawork # 모든 최적화 자동 활성화
|
|
85
|
+
/vibe.run "기능명" ulw # 동일 (단축어)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**활성화 기능:**
|
|
89
|
+
- 병렬 서브에이전트 탐색 (3+ 동시)
|
|
90
|
+
- **백그라운드 에이전트** - 구현 중 다음 Phase 준비
|
|
91
|
+
- **Phase 파이프라이닝** - Phase 간 대기 시간 제거
|
|
92
|
+
- Boulder Loop (모든 Phase 완료까지 자동 진행)
|
|
93
|
+
- 에러 자동 재시도 (최대 3회)
|
|
94
|
+
- 컨텍스트 70%+ 시 자동 압축/저장
|
|
95
|
+
- Phase 간 확인 없이 연속 실행
|
|
96
|
+
|
|
97
|
+
**속도 비교:**
|
|
98
|
+
|
|
99
|
+
| Mode | Phase당 | 5 Phase |
|
|
100
|
+
|------|---------|---------|
|
|
101
|
+
| Sequential | ~2분 | ~10분 |
|
|
102
|
+
| Parallel Exploration | ~1.5분 | ~7.5분 |
|
|
103
|
+
| **ULTRAWORK Pipeline** | **~1분** | **~5분** |
|
|
104
|
+
|
|
105
|
+
## Commands
|
|
106
|
+
|
|
107
|
+
| 명령어 | 설명 |
|
|
108
|
+
|--------|------|
|
|
109
|
+
| `/vibe.spec "기능명"` | SPEC 작성 (PTCF 구조) + 병렬 리서치 |
|
|
110
|
+
| `/vibe.run "기능명"` | 구현 실행 |
|
|
111
|
+
| `/vibe.run "기능명" ultrawork` | **최대 성능 모드** |
|
|
112
|
+
| `/vibe.verify "기능명"` | 검증 |
|
|
113
|
+
| `/vibe.review` | **병렬 코드 리뷰** (13+ 에이전트) |
|
|
114
|
+
| `/vibe.reason "문제"` | 체계적 추론 |
|
|
115
|
+
| `/vibe.analyze` | 프로젝트 분석 |
|
|
116
|
+
| `/vibe.utils --e2e` | E2E 테스트 (Playwright) |
|
|
117
|
+
| `/vibe.utils --diagram` | 다이어그램 생성 |
|
|
118
|
+
| `/vibe.utils --ui "설명"` | UI 미리보기 |
|
|
119
|
+
| `/vibe.utils --continue` | **세션 복원** (이전 컨텍스트 로드) |
|
|
120
|
+
|
|
121
|
+
## 새로운 기능 (v2.1.0)
|
|
122
|
+
|
|
123
|
+
### 병렬 코드 리뷰 (/vibe.review)
|
|
124
|
+
|
|
125
|
+
13+ 전문 에이전트가 동시에 코드 리뷰:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
129
|
+
│ 🚀 PARALLEL REVIEW AGENTS │
|
|
130
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
131
|
+
│ Security │ security-reviewer, data-integrity-reviewer │
|
|
132
|
+
│ Performance │ performance-reviewer, complexity-reviewer │
|
|
133
|
+
│ Architecture │ architecture-reviewer, simplicity-reviewer │
|
|
134
|
+
│ Language-Specific │ python, typescript, rails, react reviewers │
|
|
135
|
+
│ Context │ git-history, test-coverage reviewers │
|
|
136
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**우선순위 시스템:**
|
|
140
|
+
- 🔴 P1 (Critical): 머지 차단
|
|
141
|
+
- 🟡 P2 (Important): 수정 권장
|
|
142
|
+
- 🔵 P3 (Nice-to-have): 백로그
|
|
143
|
+
|
|
144
|
+
### E2E 테스트 (/vibe.utils --e2e)
|
|
145
|
+
|
|
146
|
+
Playwright 기반 자동화 테스트:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
/vibe.utils --e2e "login flow" # 시나리오 테스트
|
|
150
|
+
/vibe.utils --e2e --visual # 시각적 회귀 테스트
|
|
151
|
+
/vibe.utils --e2e --record # 비디오 녹화
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 리서치 에이전트 강화
|
|
155
|
+
|
|
156
|
+
`/vibe.spec` 실행 시 **요구사항 확정 후** 4개 병렬 리서치:
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
문답으로 요구사항 확정 → 병렬 리서치 실행 → SPEC 작성
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
| 에이전트 | 역할 |
|
|
163
|
+
|----------|------|
|
|
164
|
+
| best-practices-agent | 확정된 기능+스택 베스트 프랙티스 |
|
|
165
|
+
| framework-docs-agent | 확정된 스택 최신 문서 (context7) |
|
|
166
|
+
| codebase-patterns-agent | 기존 유사 패턴 분석 |
|
|
167
|
+
| security-advisory-agent | 확정된 기능 보안 권고 |
|
|
168
|
+
|
|
169
|
+
**⚠️ 리서치는 요구사항 확정 후 실행** (VIBE 원칙: 요구사항 먼저)
|
|
170
|
+
|
|
171
|
+
## PTCF Structure
|
|
172
|
+
|
|
173
|
+
SPEC 문서는 AI가 바로 실행 가능한 프롬프트 형태:
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
<role> AI 역할 정의
|
|
177
|
+
<context> 배경, 기술 스택, 관련 코드
|
|
178
|
+
<task> Phase별 작업 목록
|
|
179
|
+
<constraints> 제약 조건
|
|
180
|
+
<output_format> 생성/수정할 파일
|
|
181
|
+
<acceptance> 검증 기준
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## 내장 도구
|
|
185
|
+
|
|
186
|
+
### 시맨틱 코드 분석
|
|
187
|
+
| 도구 | 용도 |
|
|
188
|
+
|------|------|
|
|
189
|
+
| `vibe_find_symbol` | 심볼 정의 찾기 |
|
|
190
|
+
| `vibe_find_references` | 참조 찾기 |
|
|
191
|
+
| `vibe_analyze_complexity` | 복잡도 분석 |
|
|
192
|
+
| `vibe_validate_code_quality` | 품질 검증 |
|
|
193
|
+
|
|
194
|
+
### 컨텍스트 관리
|
|
195
|
+
| 도구 | 용도 |
|
|
196
|
+
|------|------|
|
|
197
|
+
| `vibe_start_session` | 세션 시작 (이전 컨텍스트 복원) |
|
|
198
|
+
| `vibe_auto_save_context` | 현재 상태 저장 |
|
|
199
|
+
| `vibe_save_memory` | 중요 결정사항 저장 |
|
|
200
|
+
|
|
201
|
+
## 에이전트
|
|
202
|
+
|
|
203
|
+
### Review 에이전트 (12개)
|
|
204
|
+
```
|
|
205
|
+
.claude/agents/review/
|
|
206
|
+
├── security-reviewer.md # 보안 취약점
|
|
207
|
+
├── performance-reviewer.md # 성능 병목
|
|
208
|
+
├── architecture-reviewer.md # 아키텍처 위반
|
|
209
|
+
├── complexity-reviewer.md # 복잡도 초과
|
|
210
|
+
├── simplicity-reviewer.md # 과도한 추상화
|
|
211
|
+
├── data-integrity-reviewer.md # 데이터 무결성
|
|
212
|
+
├── test-coverage-reviewer.md # 테스트 누락
|
|
213
|
+
├── git-history-reviewer.md # 위험 패턴
|
|
214
|
+
├── python-reviewer.md # Python 전문
|
|
215
|
+
├── typescript-reviewer.md # TypeScript 전문
|
|
216
|
+
├── rails-reviewer.md # Rails 전문
|
|
217
|
+
└── react-reviewer.md # React 전문
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Research 에이전트 (4개)
|
|
221
|
+
```
|
|
222
|
+
.claude/agents/research/
|
|
223
|
+
├── best-practices-agent.md # 베스트 프랙티스
|
|
224
|
+
├── framework-docs-agent.md # 프레임워크 문서
|
|
225
|
+
├── codebase-patterns-agent.md # 코드 패턴 분석
|
|
226
|
+
└── security-advisory-agent.md # 보안 권고
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## 스킬
|
|
230
|
+
|
|
231
|
+
### Git Worktree
|
|
232
|
+
```bash
|
|
233
|
+
# PR 리뷰용 격리 환경
|
|
234
|
+
git worktree add ../review-123 origin/pr/123
|
|
235
|
+
cd ../review-123 && npm test
|
|
236
|
+
git worktree remove ../review-123
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Priority Todos
|
|
240
|
+
```
|
|
241
|
+
.claude/vibe/todos/
|
|
242
|
+
├── P1-security-sql-injection.md # 🔴 머지 차단
|
|
243
|
+
├── P2-perf-n1-query.md # 🟡 수정 권장
|
|
244
|
+
└── P3-style-extract-helper.md # 🔵 백로그
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## 컨텍스트 관리 전략
|
|
248
|
+
|
|
249
|
+
### 모델 선택
|
|
250
|
+
- **탐색/검색**: Haiku (서브에이전트 기본값)
|
|
251
|
+
- **구현/디버깅**: Sonnet
|
|
252
|
+
- **아키텍처/복잡한 로직**: Opus
|
|
253
|
+
|
|
254
|
+
### 컨텍스트 70%+ 시 (⚠️ 중요)
|
|
255
|
+
```
|
|
256
|
+
❌ /compact 사용 금지 (정보 손실/왜곡 위험)
|
|
257
|
+
✅ save_memory로 중요 결정사항 저장 → /new로 새 세션
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
vibe는 자체 메모리 시스템으로 세션 간 컨텍스트를 유지합니다:
|
|
261
|
+
1. `save_memory` - 중요 결정사항 명시적 저장
|
|
262
|
+
2. `/new` - 새 세션 시작
|
|
263
|
+
3. `start_session` - 이전 세션 자동 복원
|
|
264
|
+
|
|
265
|
+
### 세션 복원
|
|
266
|
+
새 세션에서 이전 작업을 이어가려면:
|
|
267
|
+
```
|
|
268
|
+
/vibe.utils --continue
|
|
269
|
+
```
|
|
270
|
+
이 명령어가 `vibe_start_session`을 호출하여 프로젝트별 메모리에서 이전 컨텍스트를 복원합니다.
|
|
271
|
+
|
|
272
|
+
### 기타 명령어
|
|
273
|
+
- `/rewind` - 이전 시점으로 되돌리기
|
|
274
|
+
- `/context` - 현재 사용량 확인
|
|
275
|
+
|
|
276
|
+
### context7 활용
|
|
277
|
+
최신 라이브러리 문서가 필요할 때 context7 MCP 사용:
|
|
278
|
+
```
|
|
279
|
+
"React 19 use() 훅을 context7으로 검색해줘"
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## 문서 작성 규칙
|
|
283
|
+
|
|
284
|
+
### 다이어그램/구조 표현
|
|
285
|
+
- 아스키 박스 (┌─┐) 사용 금지 → 한글 폭 문제로 정렬 깨짐
|
|
286
|
+
- 대안 사용:
|
|
287
|
+
- Mermaid 다이어그램 (GitHub/노션 지원)
|
|
288
|
+
- 마크다운 테이블
|
|
289
|
+
- 들여쓰기 + 구분선
|
|
290
|
+
|
|
291
|
+
### 선호 형식
|
|
292
|
+
| 용도 | 권장 방식 |
|
|
293
|
+
|------|----------|
|
|
294
|
+
| 흐름도 | Mermaid flowchart |
|
|
295
|
+
| 구조/계층 | 들여쓰기 리스트 |
|
|
296
|
+
| 비교/목록 | 마크다운 테이블 |
|
|
297
|
+
| 시퀀스 | Mermaid sequenceDiagram |
|
|
298
|
+
|
|
299
|
+
## Git Commit 규칙
|
|
300
|
+
|
|
301
|
+
**반드시 포함:**
|
|
302
|
+
- `.claude/` 폴더 전체 (commands, agents, skills, settings.json)
|
|
303
|
+
- `.claude/vibe/rules/`, `.claude/vibe/specs/`, `.claude/vibe/features/`, `.claude/vibe/solutions/`, `.claude/vibe/todos/`
|
|
304
|
+
- `CLAUDE.md`
|
|
305
|
+
|
|
306
|
+
**제외:**
|
|
307
|
+
- `.claude/settings.local.json` (개인 설정, 자동 제외)
|
|
308
|
+
- `.claude/vibe/mcp/` (node_modules, 자동 제외)
|
|
309
|
+
|
|
310
|
+
## Getting Started
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
vibe init
|
|
314
|
+
/vibe.spec "로그인 기능"
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## 전체 워크플로우
|
|
318
|
+
|
|
319
|
+
```
|
|
320
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
321
|
+
│ VIBE Complete Workflow │
|
|
322
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
323
|
+
│ │
|
|
324
|
+
│ 1. /vibe.spec "기능명" │
|
|
325
|
+
│ ├── 문답으로 요구사항 수집 │
|
|
326
|
+
│ ├── 요구사항 확정 후 4개 병렬 리서치 │
|
|
327
|
+
│ └── SPEC 문서 생성 │
|
|
328
|
+
│ │
|
|
329
|
+
│ 2. /vibe.run "기능명" ultrawork │
|
|
330
|
+
│ ├── 구현 │
|
|
331
|
+
│ ├── 테스트 │
|
|
332
|
+
│ └── 자동 진행 │
|
|
333
|
+
│ │
|
|
334
|
+
│ 3. /vibe.verify "기능명" │
|
|
335
|
+
│ └── BDD 시나리오 검증 │
|
|
336
|
+
│ │
|
|
337
|
+
│ 4. /vibe.review │
|
|
338
|
+
│ ├── 13+ 병렬 리뷰 에이전트 │
|
|
339
|
+
│ └── P1/P2/P3 우선순위 분류 │
|
|
340
|
+
│ │
|
|
341
|
+
│ 5. /vibe.utils --e2e │
|
|
342
|
+
│ └── Playwright E2E 테스트 │
|
|
343
|
+
│ │
|
|
344
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
345
|
+
```
|