@su-record/vibe 2.0.9 → 2.0.11
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/agents/research/best-practices-agent.md +139 -0
- package/.claude/agents/research/codebase-patterns-agent.md +147 -0
- package/.claude/agents/research/framework-docs-agent.md +181 -0
- package/.claude/agents/research/security-advisory-agent.md +167 -0
- package/.claude/agents/review/architecture-reviewer.md +107 -0
- package/.claude/agents/review/complexity-reviewer.md +116 -0
- package/.claude/agents/review/data-integrity-reviewer.md +88 -0
- package/.claude/agents/review/git-history-reviewer.md +103 -0
- package/.claude/agents/review/performance-reviewer.md +86 -0
- package/.claude/agents/review/python-reviewer.md +152 -0
- package/.claude/agents/review/rails-reviewer.md +139 -0
- package/.claude/agents/review/react-reviewer.md +144 -0
- package/.claude/agents/review/security-reviewer.md +80 -0
- package/.claude/agents/review/simplicity-reviewer.md +140 -0
- package/.claude/agents/review/test-coverage-reviewer.md +116 -0
- package/.claude/agents/review/typescript-reviewer.md +127 -0
- package/.claude/commands/vibe.compound.md +261 -0
- package/.claude/commands/vibe.e2e.md +266 -0
- package/.claude/commands/vibe.review.md +324 -0
- package/.claude/commands/vibe.spec.md +48 -4
- package/.claude/settings.json +152 -152
- package/.claude/skills/git-worktree.md +178 -0
- package/.claude/skills/priority-todos.md +236 -0
- package/CLAUDE.md +150 -10
- package/README.md +145 -10
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +88 -6
- package/dist/cli/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# Priority-Based Todo Management Skill
|
|
2
|
+
|
|
3
|
+
우선순위 기반 TODO 관리 시스템
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
P1/P2/P3 우선순위로 태스크를 분류하여 중요한 것 먼저 처리
|
|
8
|
+
|
|
9
|
+
## Priority Levels
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
13
|
+
│ Priority Levels │
|
|
14
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
15
|
+
│ │
|
|
16
|
+
│ 🔴 P1 (Critical) │
|
|
17
|
+
│ ├── 보안 취약점 │
|
|
18
|
+
│ ├── 데이터 손실 위험 │
|
|
19
|
+
│ ├── 프로덕션 장애 │
|
|
20
|
+
│ └── 머지 차단 이슈 │
|
|
21
|
+
│ │
|
|
22
|
+
│ 🟡 P2 (Important) │
|
|
23
|
+
│ ├── 성능 문제 │
|
|
24
|
+
│ ├── 테스트 누락 │
|
|
25
|
+
│ ├── 아키텍처 위반 │
|
|
26
|
+
│ └── 기술 부채 │
|
|
27
|
+
│ │
|
|
28
|
+
│ 🔵 P3 (Nice-to-have) │
|
|
29
|
+
│ ├── 코드 스타일 │
|
|
30
|
+
│ ├── 리팩토링 제안 │
|
|
31
|
+
│ ├── 문서화 │
|
|
32
|
+
│ └── 최적화 기회 │
|
|
33
|
+
│ │
|
|
34
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## File-Based Todo System
|
|
38
|
+
|
|
39
|
+
### Directory Structure
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
.vibe/todos/
|
|
43
|
+
├── P1-security-sql-injection.md
|
|
44
|
+
├── P1-data-transaction-missing.md
|
|
45
|
+
├── P2-perf-n1-query.md
|
|
46
|
+
├── P2-test-missing-edge-case.md
|
|
47
|
+
├── P2-arch-circular-dependency.md
|
|
48
|
+
├── P3-style-extract-helper.md
|
|
49
|
+
├── P3-docs-add-readme.md
|
|
50
|
+
└── index.md
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Todo File Format
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
# [P1] SQL Injection Vulnerability
|
|
57
|
+
|
|
58
|
+
## Summary
|
|
59
|
+
User input directly concatenated in SQL query without sanitization.
|
|
60
|
+
|
|
61
|
+
## Priority Justification
|
|
62
|
+
- 🔴 P1 (Critical)
|
|
63
|
+
- Category: Security
|
|
64
|
+
- Impact: High (data breach risk)
|
|
65
|
+
- Effort: Low (simple fix)
|
|
66
|
+
|
|
67
|
+
## Location
|
|
68
|
+
- **File**: src/api/users.py
|
|
69
|
+
- **Line**: 42-45
|
|
70
|
+
- **Function**: `get_user_by_email()`
|
|
71
|
+
|
|
72
|
+
## Current Code
|
|
73
|
+
```python
|
|
74
|
+
def get_user_by_email(email: str):
|
|
75
|
+
query = f"SELECT * FROM users WHERE email = '{email}'"
|
|
76
|
+
return db.execute(query)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Suggested Fix
|
|
80
|
+
```python
|
|
81
|
+
def get_user_by_email(email: str):
|
|
82
|
+
query = "SELECT * FROM users WHERE email = %s"
|
|
83
|
+
return db.execute(query, (email,))
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Checklist
|
|
87
|
+
- [ ] Fix implemented
|
|
88
|
+
- [ ] Unit test added
|
|
89
|
+
- [ ] Security test added
|
|
90
|
+
- [ ] Code reviewed
|
|
91
|
+
- [ ] Merged
|
|
92
|
+
|
|
93
|
+
## References
|
|
94
|
+
- OWASP SQL Injection: https://owasp.org/www-community/attacks/SQL_Injection
|
|
95
|
+
- Project Security Guide: docs/security.md
|
|
96
|
+
|
|
97
|
+
## Metadata
|
|
98
|
+
- Created: 2026-01-11
|
|
99
|
+
- Author: Claude
|
|
100
|
+
- Review: /vibe.review PR#123
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Index File
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
# Todo Index
|
|
107
|
+
|
|
108
|
+
## Summary
|
|
109
|
+
| Priority | Count | Status |
|
|
110
|
+
|----------|-------|--------|
|
|
111
|
+
| 🔴 P1 | 2 | 🚨 Blocks merge |
|
|
112
|
+
| 🟡 P2 | 5 | ⚠️ Should fix |
|
|
113
|
+
| 🔵 P3 | 3 | 💡 Backlog |
|
|
114
|
+
|
|
115
|
+
## 🔴 P1 Critical (Blocks Merge)
|
|
116
|
+
|
|
117
|
+
| # | Title | Location | Status |
|
|
118
|
+
|---|-------|----------|--------|
|
|
119
|
+
| 1 | SQL Injection | users.py:42 | ❌ Open |
|
|
120
|
+
| 2 | Missing Rollback | payment.py:128 | ❌ Open |
|
|
121
|
+
|
|
122
|
+
## 🟡 P2 Important
|
|
123
|
+
|
|
124
|
+
| # | Title | Location | Status |
|
|
125
|
+
|---|-------|----------|--------|
|
|
126
|
+
| 3 | N+1 Query | orders.py:78 | ❌ Open |
|
|
127
|
+
| 4 | Missing Tests | auth.py | ❌ Open |
|
|
128
|
+
| 5 | Circular Dep | services/ | ❌ Open |
|
|
129
|
+
|
|
130
|
+
## 🔵 P3 Nice-to-have
|
|
131
|
+
|
|
132
|
+
| # | Title | Location | Status |
|
|
133
|
+
|---|-------|----------|--------|
|
|
134
|
+
| 6 | Extract Helper | utils.py:45 | 💤 Backlog |
|
|
135
|
+
| 7 | Add README | /payment | 💤 Backlog |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
Last updated: 2026-01-11 10:30
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Workflow Commands
|
|
143
|
+
|
|
144
|
+
### Create Todo
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# /vibe.review 결과에서 자동 생성
|
|
148
|
+
/vibe.review PR#123
|
|
149
|
+
# → .vibe/todos/ 에 파일 생성
|
|
150
|
+
|
|
151
|
+
# 수동 생성
|
|
152
|
+
vibe todo add "SQL Injection in users.py" --priority P1 --category security
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### List Todos
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# 전체 목록
|
|
159
|
+
vibe todo list
|
|
160
|
+
|
|
161
|
+
# 우선순위별
|
|
162
|
+
vibe todo list --priority P1
|
|
163
|
+
vibe todo list --priority P2
|
|
164
|
+
|
|
165
|
+
# 카테고리별
|
|
166
|
+
vibe todo list --category security
|
|
167
|
+
vibe todo list --category performance
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Complete Todo
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# 완료 처리
|
|
174
|
+
vibe todo done P1-security-sql-injection
|
|
175
|
+
|
|
176
|
+
# 파일에 체크 표시 + index 업데이트
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Clean Up
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# 완료된 항목 아카이브
|
|
183
|
+
vibe todo archive
|
|
184
|
+
|
|
185
|
+
# 결과:
|
|
186
|
+
# .vibe/todos/P1-security-sql-injection.md
|
|
187
|
+
# → .vibe/todos/done/2026-01-11-P1-security-sql-injection.md
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Integration with TodoWrite
|
|
191
|
+
|
|
192
|
+
기존 TodoWrite 도구와 연동:
|
|
193
|
+
|
|
194
|
+
```javascript
|
|
195
|
+
TodoWrite({
|
|
196
|
+
todos: [
|
|
197
|
+
{
|
|
198
|
+
content: "[P1] Fix SQL injection in users.py:42",
|
|
199
|
+
status: "in_progress",
|
|
200
|
+
activeForm: "Fixing SQL injection vulnerability",
|
|
201
|
+
priority: "P1", // 확장 필드
|
|
202
|
+
category: "security" // 확장 필드
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
content: "[P2] Add missing tests for auth",
|
|
206
|
+
status: "pending",
|
|
207
|
+
activeForm: "Adding auth tests",
|
|
208
|
+
priority: "P2",
|
|
209
|
+
category: "testing"
|
|
210
|
+
}
|
|
211
|
+
]
|
|
212
|
+
})
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Auto-Blocking Rules
|
|
216
|
+
|
|
217
|
+
```yaml
|
|
218
|
+
# .vibe/config.yaml
|
|
219
|
+
merge_blocking:
|
|
220
|
+
P1: true # P1 있으면 머지 차단
|
|
221
|
+
P2: false # P2는 경고만
|
|
222
|
+
P3: false # P3는 무시
|
|
223
|
+
|
|
224
|
+
notifications:
|
|
225
|
+
P1: immediate # 즉시 알림
|
|
226
|
+
P2: daily # 일일 요약
|
|
227
|
+
P3: weekly # 주간 요약
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Best Practices
|
|
231
|
+
|
|
232
|
+
1. **P1은 즉시 처리**: 다른 작업 중단하고 수정
|
|
233
|
+
2. **P2는 PR 전 처리**: 머지 전 해결 권장
|
|
234
|
+
3. **P3는 백로그**: 시간 날 때 처리
|
|
235
|
+
4. **정기 정리**: 주 1회 todo 리뷰
|
|
236
|
+
5. **완료 기록**: 해결 방법 문서화
|
package/CLAUDE.md
CHANGED
|
@@ -19,12 +19,6 @@ SPEC 주도 AI 코딩 프레임워크 (Claude Code 전용)
|
|
|
19
19
|
| 매개변수 | 5개 이하 |
|
|
20
20
|
| 순환 복잡도 | 10 이하 |
|
|
21
21
|
|
|
22
|
-
### TypeScript 필수 규칙
|
|
23
|
-
- `any` 타입 사용 금지 → `unknown` + 타입 가드 사용
|
|
24
|
-
- `as any` 캐스팅 금지 → 적절한 인터페이스 정의
|
|
25
|
-
- `@ts-ignore` 금지 → 타입 문제 근본 해결
|
|
26
|
-
- 모든 함수에 반환 타입 명시
|
|
27
|
-
|
|
28
22
|
### 에러 처리 필수
|
|
29
23
|
- try-catch 또는 error state 필수
|
|
30
24
|
- 로딩 상태 처리
|
|
@@ -39,7 +33,7 @@ SPEC 주도 AI 코딩 프레임워크 (Claude Code 전용)
|
|
|
39
33
|
## Workflow
|
|
40
34
|
|
|
41
35
|
```
|
|
42
|
-
/vibe.spec → /vibe.run → /vibe.verify
|
|
36
|
+
/vibe.spec → /vibe.run → /vibe.verify → /vibe.compound
|
|
43
37
|
```
|
|
44
38
|
|
|
45
39
|
## ULTRAWORK Mode (권장)
|
|
@@ -62,16 +56,83 @@ SPEC 주도 AI 코딩 프레임워크 (Claude Code 전용)
|
|
|
62
56
|
|
|
63
57
|
| 명령어 | 설명 |
|
|
64
58
|
|--------|------|
|
|
65
|
-
| `/vibe.spec "기능명"` | SPEC 작성 (PTCF 구조) |
|
|
59
|
+
| `/vibe.spec "기능명"` | SPEC 작성 (PTCF 구조) + 병렬 리서치 |
|
|
66
60
|
| `/vibe.run "기능명"` | 구현 실행 |
|
|
67
61
|
| `/vibe.run "기능명" ultrawork` | **최대 성능 모드** |
|
|
68
62
|
| `/vibe.verify "기능명"` | 검증 |
|
|
63
|
+
| `/vibe.review` | **병렬 코드 리뷰** (13+ 에이전트) |
|
|
64
|
+
| `/vibe.compound` | **지식 문서화** (해결책 아카이브) |
|
|
65
|
+
| `/vibe.e2e` | **E2E 테스트** (Playwright) |
|
|
69
66
|
| `/vibe.reason "문제"` | 체계적 추론 |
|
|
70
67
|
| `/vibe.analyze` | 프로젝트 분석 |
|
|
71
68
|
| `/vibe.diagram` | 다이어그램 생성 |
|
|
72
69
|
| `/vibe.ui "설명"` | UI 미리보기 |
|
|
73
70
|
| `/vibe.continue` | **세션 복원** (이전 컨텍스트 로드) |
|
|
74
71
|
|
|
72
|
+
## 새로운 기능 (v2.1.0)
|
|
73
|
+
|
|
74
|
+
### 병렬 코드 리뷰 (/vibe.review)
|
|
75
|
+
|
|
76
|
+
13+ 전문 에이전트가 동시에 코드 리뷰:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
80
|
+
│ 🚀 PARALLEL REVIEW AGENTS │
|
|
81
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
82
|
+
│ Security │ security-reviewer, data-integrity-reviewer │
|
|
83
|
+
│ Performance │ performance-reviewer, complexity-reviewer │
|
|
84
|
+
│ Architecture │ architecture-reviewer, simplicity-reviewer │
|
|
85
|
+
│ Language-Specific │ python, typescript, rails, react reviewers │
|
|
86
|
+
│ Context │ git-history, test-coverage reviewers │
|
|
87
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**우선순위 시스템:**
|
|
91
|
+
- 🔴 P1 (Critical): 머지 차단
|
|
92
|
+
- 🟡 P2 (Important): 수정 권장
|
|
93
|
+
- 🔵 P3 (Nice-to-have): 백로그
|
|
94
|
+
|
|
95
|
+
### 지식 복리 (/vibe.compound)
|
|
96
|
+
|
|
97
|
+
해결한 문제를 자동 문서화:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
.vibe/solutions/
|
|
101
|
+
├── security/ # 보안 해결책
|
|
102
|
+
├── performance/ # 성능 최적화
|
|
103
|
+
├── database/ # DB 관련
|
|
104
|
+
└── integration/ # 외부 연동
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
트리거: "it's fixed", "해결됨", PR 머지 후
|
|
108
|
+
|
|
109
|
+
### E2E 테스트 (/vibe.e2e)
|
|
110
|
+
|
|
111
|
+
Playwright 기반 자동화 테스트:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
/vibe.e2e "login flow" # 시나리오 테스트
|
|
115
|
+
/vibe.e2e --visual # 시각적 회귀 테스트
|
|
116
|
+
/vibe.e2e --record # 비디오 녹화
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 리서치 에이전트 강화
|
|
120
|
+
|
|
121
|
+
`/vibe.spec` 실행 시 **요구사항 확정 후** 4개 병렬 리서치:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
문답으로 요구사항 확정 → 병렬 리서치 실행 → SPEC 작성
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
| 에이전트 | 역할 |
|
|
128
|
+
|----------|------|
|
|
129
|
+
| best-practices-agent | 확정된 기능+스택 베스트 프랙티스 |
|
|
130
|
+
| framework-docs-agent | 확정된 스택 최신 문서 (context7) |
|
|
131
|
+
| codebase-patterns-agent | 기존 유사 패턴 분석 |
|
|
132
|
+
| security-advisory-agent | 확정된 기능 보안 권고 |
|
|
133
|
+
|
|
134
|
+
**⚠️ 리서치는 요구사항 확정 후 실행** (VIBE 원칙: 요구사항 먼저)
|
|
135
|
+
|
|
75
136
|
## PTCF Structure
|
|
76
137
|
|
|
77
138
|
SPEC 문서는 AI가 바로 실행 가능한 프롬프트 형태:
|
|
@@ -102,6 +163,52 @@ SPEC 문서는 AI가 바로 실행 가능한 프롬프트 형태:
|
|
|
102
163
|
| `vibe_auto_save_context` | 현재 상태 저장 |
|
|
103
164
|
| `vibe_save_memory` | 중요 결정사항 저장 |
|
|
104
165
|
|
|
166
|
+
## 에이전트
|
|
167
|
+
|
|
168
|
+
### Review 에이전트 (12개)
|
|
169
|
+
```
|
|
170
|
+
.claude/agents/review/
|
|
171
|
+
├── security-reviewer.md # 보안 취약점
|
|
172
|
+
├── performance-reviewer.md # 성능 병목
|
|
173
|
+
├── architecture-reviewer.md # 아키텍처 위반
|
|
174
|
+
├── complexity-reviewer.md # 복잡도 초과
|
|
175
|
+
├── simplicity-reviewer.md # 과도한 추상화
|
|
176
|
+
├── data-integrity-reviewer.md # 데이터 무결성
|
|
177
|
+
├── test-coverage-reviewer.md # 테스트 누락
|
|
178
|
+
├── git-history-reviewer.md # 위험 패턴
|
|
179
|
+
├── python-reviewer.md # Python 전문
|
|
180
|
+
├── typescript-reviewer.md # TypeScript 전문
|
|
181
|
+
├── rails-reviewer.md # Rails 전문
|
|
182
|
+
└── react-reviewer.md # React 전문
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Research 에이전트 (4개)
|
|
186
|
+
```
|
|
187
|
+
.claude/agents/research/
|
|
188
|
+
├── best-practices-agent.md # 베스트 프랙티스
|
|
189
|
+
├── framework-docs-agent.md # 프레임워크 문서
|
|
190
|
+
├── codebase-patterns-agent.md # 코드 패턴 분석
|
|
191
|
+
└── security-advisory-agent.md # 보안 권고
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## 스킬
|
|
195
|
+
|
|
196
|
+
### Git Worktree
|
|
197
|
+
```bash
|
|
198
|
+
# PR 리뷰용 격리 환경
|
|
199
|
+
git worktree add ../review-123 origin/pr/123
|
|
200
|
+
cd ../review-123 && npm test
|
|
201
|
+
git worktree remove ../review-123
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Priority Todos
|
|
205
|
+
```
|
|
206
|
+
.vibe/todos/
|
|
207
|
+
├── P1-security-sql-injection.md # 🔴 머지 차단
|
|
208
|
+
├── P2-perf-n1-query.md # 🟡 수정 권장
|
|
209
|
+
└── P3-style-extract-helper.md # 🔵 백로그
|
|
210
|
+
```
|
|
211
|
+
|
|
105
212
|
## 컨텍스트 관리 전략
|
|
106
213
|
|
|
107
214
|
### 모델 선택
|
|
@@ -157,8 +264,8 @@ vibe는 자체 메모리 시스템으로 세션 간 컨텍스트를 유지합니
|
|
|
157
264
|
## Git Commit 규칙
|
|
158
265
|
|
|
159
266
|
**반드시 포함:**
|
|
160
|
-
- `.claude/` 폴더 전체 (commands, agents, settings.json)
|
|
161
|
-
- `.vibe/rules/`, `.vibe/specs/`, `.vibe/features/`
|
|
267
|
+
- `.claude/` 폴더 전체 (commands, agents, skills, settings.json)
|
|
268
|
+
- `.vibe/rules/`, `.vibe/specs/`, `.vibe/features/`, `.vibe/solutions/`, `.vibe/todos/`
|
|
162
269
|
- `CLAUDE.md`
|
|
163
270
|
|
|
164
271
|
**제외:**
|
|
@@ -171,3 +278,36 @@ vibe는 자체 메모리 시스템으로 세션 간 컨텍스트를 유지합니
|
|
|
171
278
|
vibe init
|
|
172
279
|
/vibe.spec "로그인 기능"
|
|
173
280
|
```
|
|
281
|
+
|
|
282
|
+
## 전체 워크플로우
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
286
|
+
│ VIBE Complete Workflow │
|
|
287
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
288
|
+
│ │
|
|
289
|
+
│ 1. /vibe.spec "기능명" │
|
|
290
|
+
│ ├── 문답으로 요구사항 수집 │
|
|
291
|
+
│ ├── 요구사항 확정 후 4개 병렬 리서치 │
|
|
292
|
+
│ └── SPEC 문서 생성 │
|
|
293
|
+
│ │
|
|
294
|
+
│ 2. /vibe.run "기능명" ultrawork │
|
|
295
|
+
│ ├── 구현 │
|
|
296
|
+
│ ├── 테스트 │
|
|
297
|
+
│ └── 자동 진행 │
|
|
298
|
+
│ │
|
|
299
|
+
│ 3. /vibe.verify "기능명" │
|
|
300
|
+
│ └── BDD 시나리오 검증 │
|
|
301
|
+
│ │
|
|
302
|
+
│ 4. /vibe.review │
|
|
303
|
+
│ ├── 13+ 병렬 리뷰 에이전트 │
|
|
304
|
+
│ └── P1/P2/P3 우선순위 분류 │
|
|
305
|
+
│ │
|
|
306
|
+
│ 5. /vibe.e2e │
|
|
307
|
+
│ └── Playwright E2E 테스트 │
|
|
308
|
+
│ │
|
|
309
|
+
│ 6. /vibe.compound │
|
|
310
|
+
│ └── 해결책 문서화 → .vibe/solutions/ │
|
|
311
|
+
│ │
|
|
312
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
313
|
+
```
|
package/README.md
CHANGED
|
@@ -24,6 +24,13 @@ SPEC 문서 하나로 AI가 바로 구현하고, **시나리오별 자동 검증
|
|
|
24
24
|
- **자동 컨텍스트 관리**: 80%+ 시 자동 저장, 세션 자동 복원
|
|
25
25
|
- **36개 내장 도구**: 코드 분석, 품질 검증, 세션 메모리 (MCP 오버헤드 제거)
|
|
26
26
|
|
|
27
|
+
### v2.1.0 신규 기능
|
|
28
|
+
|
|
29
|
+
- **🔍 병렬 코드 리뷰**: 13+ 전문 에이전트가 동시 리뷰 (P1/P2/P3 우선순위)
|
|
30
|
+
- **🎭 E2E 테스트**: Playwright 기반 브라우저 자동화 (시각적 회귀, 비디오 녹화)
|
|
31
|
+
- **📚 지식 복리**: 해결책 자동 문서화 → `.vibe/solutions/`
|
|
32
|
+
- **🔬 병렬 리서치**: 요구사항 확정 후 4개 에이전트 동시 조사
|
|
33
|
+
|
|
27
34
|
---
|
|
28
35
|
|
|
29
36
|
## Installation
|
|
@@ -65,17 +72,24 @@ cd my-project
|
|
|
65
72
|
┌─────────────────────────────────────────────────────┐
|
|
66
73
|
│ /vibe.spec "기능명" │
|
|
67
74
|
│ ↓ 대화형 요구사항 수집 │
|
|
68
|
-
│ ↓ .
|
|
69
|
-
│ ↓ .vibe/
|
|
75
|
+
│ ↓ 요구사항 확정 후 4개 병렬 리서치 (v2.1.0) │
|
|
76
|
+
│ ↓ .vibe/specs/{기능명}.md + .feature │
|
|
70
77
|
├─────────────────────────────────────────────────────┤
|
|
71
78
|
│ /vibe.run "기능명" ultrawork │
|
|
72
79
|
│ ↓ 시나리오별 구현 + 즉시 검증 (SDD) │
|
|
73
|
-
│ ↓ Scenario 1 →
|
|
74
|
-
│ ↓ 실패 시 자동 재시도 (최대 3회) │
|
|
80
|
+
│ ↓ Scenario 1 → ✅ → Scenario 2 → ... │
|
|
75
81
|
├─────────────────────────────────────────────────────┤
|
|
76
82
|
│ /vibe.verify "기능명" │
|
|
77
83
|
│ ↓ Given/When/Then 단계별 검증 │
|
|
78
|
-
|
|
84
|
+
├─────────────────────────────────────────────────────┤
|
|
85
|
+
│ /vibe.review ← NEW (v2.1.0) │
|
|
86
|
+
│ ↓ 13+ 병렬 리뷰 에이전트 (P1/P2/P3) │
|
|
87
|
+
├─────────────────────────────────────────────────────┤
|
|
88
|
+
│ /vibe.e2e ← NEW (v2.1.0) │
|
|
89
|
+
│ ↓ Playwright E2E 테스트 │
|
|
90
|
+
├─────────────────────────────────────────────────────┤
|
|
91
|
+
│ /vibe.compound ← NEW (v2.1.0) │
|
|
92
|
+
│ ↓ 해결책 문서화 → .vibe/solutions/ │
|
|
79
93
|
└─────────────────────────────────────────────────────┘
|
|
80
94
|
```
|
|
81
95
|
|
|
@@ -129,12 +143,16 @@ Feature 로드 → Scenario 1 [구현→검증] → Scenario 2 [구현→검증]
|
|
|
129
143
|
|
|
130
144
|
| 명령어 | 설명 |
|
|
131
145
|
|--------|------|
|
|
132
|
-
| `/vibe.spec "기능명"` | SPEC 작성 (PTCF 구조) |
|
|
146
|
+
| `/vibe.spec "기능명"` | SPEC 작성 (PTCF 구조) + 병렬 리서치 |
|
|
133
147
|
| `/vibe.run "기능명"` | 구현 실행 |
|
|
134
148
|
| `/vibe.run "기능명" ultrawork` | 🚀 **최대 성능 모드** (권장) |
|
|
135
149
|
| `/vibe.run "기능명" ulw` | ultrawork 단축어 |
|
|
136
150
|
| `/vibe.run "기능명" --phase N` | 특정 Phase만 실행 |
|
|
137
151
|
| `/vibe.verify "기능명"` | 검증 |
|
|
152
|
+
| `/vibe.review` | 🆕 **병렬 코드 리뷰** (13+ 에이전트) |
|
|
153
|
+
| `/vibe.e2e` | 🆕 **E2E 테스트** (Playwright) |
|
|
154
|
+
| `/vibe.compound` | 🆕 **지식 문서화** (해결책 아카이브) |
|
|
155
|
+
| `/vibe.continue` | 🆕 **세션 복원** (이전 컨텍스트 로드) |
|
|
138
156
|
|
|
139
157
|
#### 분석 & 도구
|
|
140
158
|
|
|
@@ -243,6 +261,101 @@ When: "비밀번호 찾기" 클릭
|
|
|
243
261
|
|
|
244
262
|
---
|
|
245
263
|
|
|
264
|
+
## New in v2.1.0
|
|
265
|
+
|
|
266
|
+
### 병렬 코드 리뷰 (/vibe.review)
|
|
267
|
+
|
|
268
|
+
13+ 전문 에이전트가 동시에 코드 리뷰:
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
┌─────────────────────────────────────────────────────┐
|
|
272
|
+
│ 🚀 PARALLEL REVIEW AGENTS │
|
|
273
|
+
├─────────────────────────────────────────────────────┤
|
|
274
|
+
│ Security │ OWASP Top 10, SQL injection, XSS │
|
|
275
|
+
│ Performance │ N+1 queries, memory leaks │
|
|
276
|
+
│ Architecture │ SOLID violations, layer breaches │
|
|
277
|
+
│ Language │ Python, TypeScript, Rails, React │
|
|
278
|
+
│ Quality │ Complexity, test coverage, git │
|
|
279
|
+
└─────────────────────────────────────────────────────┘
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**우선순위 시스템:**
|
|
283
|
+
- 🔴 **P1 (Critical)**: 머지 차단 - 보안 취약점, 데이터 손실
|
|
284
|
+
- 🟡 **P2 (Important)**: 수정 권장 - 성능 문제, 테스트 누락
|
|
285
|
+
- 🔵 **P3 (Nice-to-have)**: 백로그 - 코드 스타일, 리팩토링
|
|
286
|
+
|
|
287
|
+
### E2E 테스트 (/vibe.e2e)
|
|
288
|
+
|
|
289
|
+
Playwright 기반 브라우저 자동화 테스트:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
/vibe.e2e "login flow" # 시나리오 테스트
|
|
293
|
+
/vibe.e2e --visual # 시각적 회귀 테스트
|
|
294
|
+
/vibe.e2e --record # 비디오 녹화
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**기능:**
|
|
298
|
+
- 스크린샷 캡처 및 비교
|
|
299
|
+
- 콘솔 에러 자동 수집
|
|
300
|
+
- 접근성(a11y) 검사
|
|
301
|
+
- 버그 재현 자동화
|
|
302
|
+
|
|
303
|
+
### 지식 복리 (/vibe.compound)
|
|
304
|
+
|
|
305
|
+
해결한 문제를 자동 문서화하여 지식 축적:
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
.vibe/solutions/
|
|
309
|
+
├── security/ # 보안 해결책
|
|
310
|
+
├── performance/ # 성능 최적화
|
|
311
|
+
├── database/ # DB 관련
|
|
312
|
+
└── integration/ # 외부 연동
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**트리거**: "버그 해결됨", "bug fixed", "PR merged" 등
|
|
316
|
+
|
|
317
|
+
### 리서치 에이전트 강화
|
|
318
|
+
|
|
319
|
+
`/vibe.spec` 실행 시 **요구사항 확정 후** 4개 병렬 리서치:
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
문답으로 요구사항 확정 → 병렬 리서치 → SPEC 작성
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
| 에이전트 | 역할 | 외부 LLM 강화 |
|
|
326
|
+
|----------|------|--------------|
|
|
327
|
+
| best-practices-agent | 확정된 기능+스택 베스트 프랙티스 | - |
|
|
328
|
+
| framework-docs-agent | 확정된 스택 최신 문서 (context7) | Gemini (웹 검색) |
|
|
329
|
+
| codebase-patterns-agent | 기존 유사 패턴 분석 | - |
|
|
330
|
+
| security-advisory-agent | 확정된 기능 보안 권고 | GPT (CVE 지식) |
|
|
331
|
+
|
|
332
|
+
> ⚠️ **리서치는 요구사항 확정 후 실행** (VIBE 원칙: 요구사항 먼저)
|
|
333
|
+
|
|
334
|
+
### 외부 LLM 통합 (선택적)
|
|
335
|
+
|
|
336
|
+
GPT/Gemini가 활성화되어 있으면 특정 에이전트가 자동으로 활용합니다:
|
|
337
|
+
|
|
338
|
+
| 에이전트 | 외부 LLM | 용도 |
|
|
339
|
+
|----------|----------|------|
|
|
340
|
+
| framework-docs-agent | Gemini | context7 문서 부재 시 웹 검색으로 최신 문서 보강 |
|
|
341
|
+
| security-advisory-agent | GPT | CVE/보안 취약점 DB 지식 보강 |
|
|
342
|
+
| python-reviewer | GPT Codex | Python 코드 리뷰 2nd opinion |
|
|
343
|
+
|
|
344
|
+
**동작 방식:**
|
|
345
|
+
```
|
|
346
|
+
Primary: Task(Haiku) 실행
|
|
347
|
+
↓
|
|
348
|
+
[외부 LLM 활성화?]
|
|
349
|
+
↓ YES
|
|
350
|
+
외부 LLM 호출 → 결과 병합
|
|
351
|
+
↓ NO
|
|
352
|
+
Primary 결과만 사용
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
> **후방 호환성**: GPT/Gemini가 설정되지 않아도 Primary(Haiku)만으로 정상 작동합니다.
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
246
359
|
## Project Structure
|
|
247
360
|
|
|
248
361
|
`vibe init` 실행 후 생성되는 구조:
|
|
@@ -251,16 +364,21 @@ When: "비밀번호 찾기" 클릭
|
|
|
251
364
|
project/
|
|
252
365
|
├── CLAUDE.md # 프로젝트 컨텍스트 ← git 공유
|
|
253
366
|
├── .claude/ # ⚠️ 반드시 git에 커밋 ← git 공유
|
|
254
|
-
│ ├── commands/ # 슬래시 커맨드 (
|
|
367
|
+
│ ├── commands/ # 슬래시 커맨드 (12개)
|
|
255
368
|
│ ├── agents/ # 서브에이전트
|
|
369
|
+
│ │ ├── review/ # 리뷰 에이전트 (12개) ← NEW
|
|
370
|
+
│ │ └── research/ # 리서치 에이전트 (4개) ← NEW
|
|
371
|
+
│ ├── skills/ # 스킬 (2개) ← NEW
|
|
256
372
|
│ ├── settings.json # Hooks 설정
|
|
257
373
|
│ └── settings.local.json # 개인 설정 ← git 제외 (자동)
|
|
258
374
|
└── .vibe/
|
|
259
375
|
├── config.json # 프로젝트 설정 ← git 공유
|
|
260
376
|
├── constitution.md # 프로젝트 원칙 ← git 공유
|
|
261
|
-
├── rules/
|
|
262
|
-
├── specs/
|
|
263
|
-
|
|
377
|
+
├── rules/ # 코딩 규칙 ← git 공유
|
|
378
|
+
├── specs/ # SPEC 문서들 ← git 공유
|
|
379
|
+
├── features/ # BDD Feature 파일들 ← git 공유
|
|
380
|
+
├── solutions/ # 해결책 아카이브 ← NEW
|
|
381
|
+
└── todos/ # 우선순위 TODO ← NEW
|
|
264
382
|
```
|
|
265
383
|
|
|
266
384
|
> **⚠️ 중요**: `.claude/` 폴더는 팀과 공유해야 합니다. 커밋 시 제외하지 마세요.
|
|
@@ -338,6 +456,23 @@ Then: {예상 결과}
|
|
|
338
456
|
|
|
339
457
|
## Coding Rules (.vibe/rules/)
|
|
340
458
|
|
|
459
|
+
### 언어별 규칙 자동 적용
|
|
460
|
+
|
|
461
|
+
`vibe init` / `vibe update` 시 프로젝트의 기술 스택을 감지하여 **해당 언어에 맞는 규칙만** CLAUDE.md에 추가합니다.
|
|
462
|
+
|
|
463
|
+
| 감지 스택 | 적용 규칙 |
|
|
464
|
+
|----------|----------|
|
|
465
|
+
| TypeScript/Node.js | `any` 금지, 반환 타입 명시 등 |
|
|
466
|
+
| Python | 타입 힌트 필수, f-string 권장 등 |
|
|
467
|
+
| Go | 에러 즉시 처리, 인터페이스 사용처 정의 등 |
|
|
468
|
+
| Rust | unwrap() 금지, unsafe 최소화 등 |
|
|
469
|
+
| Java | Optional 활용, 불변 객체 선호 등 |
|
|
470
|
+
| Kotlin | nullable 명시, !! 금지 등 |
|
|
471
|
+
| Dart/Flutter | null safety, const 생성자 등 |
|
|
472
|
+
| Swift/iOS | 옵셔널 강제 언래핑 금지 등 |
|
|
473
|
+
|
|
474
|
+
> Python 프로젝트에는 Python 규칙만, TypeScript 프로젝트에는 TypeScript 규칙만 적용됩니다.
|
|
475
|
+
|
|
341
476
|
### 핵심 원칙
|
|
342
477
|
|
|
343
478
|
- **수술적 정밀도**: 요청받지 않은 코드는 절대 수정하지 않음
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AA4yEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}
|