@su-record/vibe 0.3.0 → 0.4.1

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 (40) hide show
  1. package/.claude/agents/simplifier.md +120 -0
  2. package/.claude/commands/vibe.run.md +133 -113
  3. package/.claude/commands/vibe.spec.md +143 -218
  4. package/.claude/commands/vibe.verify.md +7 -0
  5. package/.claude/settings.local.json +22 -1
  6. package/CLAUDE.md +41 -0
  7. package/README.md +181 -443
  8. package/bin/vibe +183 -152
  9. package/package.json +3 -6
  10. package/templates/hooks-template.json +26 -0
  11. package/.claude/commands/vibe.plan.md +0 -81
  12. package/.claude/commands/vibe.tasks.md +0 -83
  13. package/agents/backend-python-expert.md +0 -453
  14. package/agents/database-postgres-expert.md +0 -538
  15. package/agents/frontend-flutter-expert.md +0 -487
  16. package/agents/frontend-react-expert.md +0 -424
  17. package/agents/quality-reviewer.md +0 -542
  18. package/agents/reasoning-agent.md +0 -353
  19. package/agents/specification-agent.md +0 -582
  20. package/scripts/install-mcp.js +0 -74
  21. package/scripts/install.sh +0 -70
  22. package/templates/plan-template.md +0 -237
  23. package/templates/tasks-template.md +0 -132
  24. /package/{skills → .agent/rules}/core/communication-guide.md +0 -0
  25. /package/{skills → .agent/rules}/core/development-philosophy.md +0 -0
  26. /package/{skills → .agent/rules}/core/quick-start.md +0 -0
  27. /package/{skills → .agent/rules}/languages/dart-flutter.md +0 -0
  28. /package/{skills → .agent/rules}/languages/python-fastapi.md +0 -0
  29. /package/{skills → .agent/rules}/languages/typescript-nextjs.md +0 -0
  30. /package/{skills → .agent/rules}/languages/typescript-react-native.md +0 -0
  31. /package/{skills → .agent/rules}/languages/typescript-react.md +0 -0
  32. /package/{skills → .agent/rules}/quality/bdd-contract-testing.md +0 -0
  33. /package/{skills → .agent/rules}/quality/checklist.md +0 -0
  34. /package/{skills → .agent/rules}/quality/testing-strategy.md +0 -0
  35. /package/{skills → .agent/rules}/standards/anti-patterns.md +0 -0
  36. /package/{skills → .agent/rules}/standards/code-structure.md +0 -0
  37. /package/{skills → .agent/rules}/standards/complexity-metrics.md +0 -0
  38. /package/{skills → .agent/rules}/standards/naming-conventions.md +0 -0
  39. /package/{skills → .agent/rules}/tools/mcp-hi-ai-guide.md +0 -0
  40. /package/{skills → .agent/rules}/tools/mcp-workflow.md +0 -0
@@ -13,83 +13,144 @@ SPEC 문서를 작성합니다 (Specification Agent).
13
13
  /vibe.spec "기능명"
14
14
  ```
15
15
 
16
+ ## Rules Reference
17
+
18
+ **반드시 `.agent/rules/` 규칙을 따릅니다:**
19
+ - `core/development-philosophy.md` - 수술적 정밀도, 단순함
20
+ - `core/quick-start.md` - 한국어 우선, DRY, SRP
21
+ - `core/communication-guide.md` - 커뮤니케이션 원칙
22
+
16
23
  ## Description
17
24
 
18
- 사용자와 질의응답을 통해 요구사항을 수집하고 EARS 형식의 SPEC 문서를 작성합니다.
25
+ 사용자와 대화를 통해 요구사항을 수집하고, AI가 바로 실행 가능한 **PTCF 구조의 SPEC 문서**를 작성합니다.
26
+
27
+ > **PTCF**: Persona, Task, Context, Format - Google Gemini 프롬프트 최적화 프레임워크
19
28
 
20
29
  ## Process
21
30
 
22
- 1. **프로젝트 타입 확인**:
23
- - **신규 프로젝트**: `vibe init <프로젝트명>`으로 생성된 경우
24
- - 소스코드 없음, 기술 스택 선택 필요
25
- - **기존 프로젝트**: `vibe init`으로 현재 디렉토리에 추가된 경우
26
- - 소스코드 분석 필요: `package.json`, `pyproject.toml`, `pubspec.yaml`, `go.mod` 확인
27
- - `CLAUDE.md` 파일 있으면 참조 (기술 스택 명시되어 있음)
28
- - 파일 구조 분석: `src/`, `lib/`, `app/` 등으로 프레임워크 추정
29
-
30
- 2. **언어 설정 확인**: `.vibe/config.json`의 `language` 확인 (ko/en, 없으면 ko 기본)
31
-
32
- 3. **자유로운 대화로 요구사항 수집**:
33
- - 사용자의 요청을 이해하고 **능동적으로** 필요한 질문 진행
34
- - **질문은 한 번에 하나씩** - 여러 질문을 동시에 던지지 말 것
35
- - **선택지는 번호로 제시** - 사용자가 번호로 빠르게 선택 가능
36
- - **선택지 끝에 안내 문구 추가**: "또는 직접 설명해주셔도 됩니다"
37
- - 고정된 질문 순서 없이, 기능에 맞는 **자연스러운 대화**로 진행
38
- - 사용자 답변을 받은 후 다음 질문 진행
39
-
40
- **필수 포함 사항 (반드시 질문해야 함):**
41
- - **기술 스택 확인 및 제안**
42
- - **기존 프로젝트인 경우 (`vibe init`):**
43
- 1. 소스코드 분석:
44
- - `package.json` Node.js 프로젝트 (React, Vue, Express 등 확인)
45
- - `pyproject.toml` / `requirements.txt` → Python (FastAPI, Django 등)
46
- - `pubspec.yaml` Flutter/Dart
47
- - `go.mod` → Go
48
- - `pom.xml` / `build.gradle` → Java/Kotlin
49
- 2. CLAUDE.md 파일 확인 (있으면 우선 참조)
50
- 3. 파일 구조로 프레임워크 추정:
51
- - `src/components/` → React
52
- - `lib/screens/` → Flutter
53
- - `app/models/` → Rails, Django
54
- 4. 확인한 스택 제시: "현재 [Backend: FastAPI, Frontend: Flutter]를 사용 중이시네요"
55
- 5. 기능에 필요한 추가 기술 있으면 제안
56
- - **신규 프로젝트인 경우 (`vibe init <프로젝트명>`):**
57
- - 기능에 적합한 기술 스택을 구체적으로 제안 (2-3가지 옵션)
58
- - 기술의 장단점과 선택 근거 설명
59
- - **디자인 레퍼런스 요청 및 제안**
60
- - 참고할 UI/UX 디자인이 있는지 확인
61
- - 유사한 앱/서비스의 디자인 레퍼런스 2-3개 제시
62
- - 디자인 스타일, 컬러, 레이아웃 방향 제안
63
-
64
- **일반적으로 확인할 사항:**
65
- - 목적 (Why): 왜 필요한가?
66
- - 사용자 (Who): 누가 사용하는가?
67
- - 기능 범위 (What): 어떤 기능들이 필요한가?
68
- - 제약사항 (Constraints): 기술적/비즈니스적 제약이 있는가?
69
- - 성공 기준 (Acceptance): 어떻게 되면 성공인가?
70
-
71
- 3. **SPEC 문서 작성**: `.vibe/specs/{기능명}.md` 생성 (EARS 형식)
72
-
73
- 4. **Gherkin Feature 파일 생성** (BDD):
74
- - `.vibe/features/{기능명}.feature` 생성
75
- - SPEC의 각 요구사항(REQ-XXX)을 Scenario로 변환
76
- - Given-When-Then 형식으로 작성
77
- - Acceptance Criteria를 테스트 케이스로 변환
78
-
79
- 5. **품질 검증**: TRUST 5 기준 자체 평가
80
-
81
- ## Agent
82
-
83
- `~/.vibe/agents/specification-agent.md`
31
+ ### 1. 프로젝트 분석
32
+
33
+ **기존 프로젝트** (`vibe init`):
34
+ - 소스코드 분석: `package.json`, `pyproject.toml`, `pubspec.yaml`, `go.mod`
35
+ - `CLAUDE.md` 파일 참조 (기술 스택)
36
+ - 파일 구조로 프레임워크 추정
37
+
38
+ **신규 프로젝트** (`vibe init <프로젝트명>`):
39
+ - 기술 스택 제안 (2-3가지 옵션)
40
+
41
+ ### 2. 대화로 요구사항 수집
42
+
43
+ **원칙:**
44
+ - 질문은 **한 번에 하나씩**
45
+ - 선택지는 **번호로 제시** + "직접 설명해주셔도 됩니다"
46
+ - 고정된 순서 없이 **자연스러운 대화**
47
+
48
+ **필수 확인 사항:**
49
+ - 목적 (Why): 필요한가?
50
+ - 사용자 (Who): 누가 사용하는가?
51
+ - 기능 범위 (What): 어떤 기능들이 필요한가?
52
+ - 기술 스택: 기존 스택 확인 또는 새로 제안
53
+ - 디자인 레퍼런스: 참고할 UI/UX
54
+
55
+ ### 3. SPEC 문서 작성 (PTCF 구조)
56
+
57
+ `.vibe/specs/{기능명}.md` 생성:
58
+
59
+ ```markdown
60
+ # SPEC: {기능명}
61
+
62
+ ## Persona
63
+ <role>
64
+ 구현을 담당할 AI의 역할과 전문성 정의
65
+ - 프로젝트의 시니어 개발자
66
+ - 기존 코드 패턴 준수
67
+ - 테스트 가능한 코드 작성
68
+ </role>
69
+
70
+ ## Context
71
+ <context>
72
+ ### 배경
73
+ - 이 기능이 필요한가
74
+ - 누가 사용하는가
75
+
76
+ ### 기술 스택
77
+ - Backend: {기술}
78
+ - Frontend: {기술}
79
+ - Database: {기술}
80
+
81
+ ### 관련 코드
82
+ - `src/xxx/`: 참조할 기존 구현
83
+ - `src/yyy/`: 수정할 파일들
84
+
85
+ ### 디자인 레퍼런스
86
+ - {참고 앱/서비스}
87
+ </context>
88
+
89
+ ## Task
90
+ <task>
91
+ ### Phase 1: {단계명}
92
+ 1. [ ] {구체적 작업}
93
+ - 파일: `path/to/file`
94
+ - 검증: `command`
95
+ 2. [ ] {구체적 작업}
96
+
97
+ ### Phase 2: {단계명}
98
+ 1. [ ] {구체적 작업}
99
+ 2. [ ] {구체적 작업}
100
+
101
+ ### Phase 3: 테스트 및 검증
102
+ 1. [ ] Unit Tests
103
+ 2. [ ] Integration Tests
104
+ </task>
105
+
106
+ ## Constraints
107
+ <constraints>
108
+ - 기존 코드 패턴 준수
109
+ - 에러 메시지 한글화
110
+ - 환경변수로 설정 분리
111
+ - {기타 제약 조건}
112
+ </constraints>
113
+
114
+ ## Output Format
115
+ <output_format>
116
+ ### 생성할 파일
117
+ - `path/to/new/file.ts`
118
+ - `path/to/new/file.test.ts`
119
+
120
+ ### 수정할 파일
121
+ - `path/to/existing/file.ts`
122
+
123
+ ### 검증 명령어
124
+ - `npm test`
125
+ - `npm run build`
126
+ </output_format>
127
+
128
+ ## Acceptance Criteria
129
+ <acceptance>
130
+ - [ ] {검증 가능한 기준 1}
131
+ - [ ] {검증 가능한 기준 2}
132
+ - [ ] 모든 테스트 통과
133
+ - [ ] 빌드 성공
134
+ </acceptance>
135
+ ```
136
+
137
+ ### 4. Feature 파일 생성 (BDD)
138
+
139
+ `.vibe/features/{기능명}.feature` 생성:
140
+ - SPEC의 Acceptance Criteria를 Scenario로 변환
141
+ - Given-When-Then 형식
142
+
143
+ ### 5. 품질 검증
144
+
145
+ `.agent/rules/quality/checklist.md` 기준 자체 평가 (0-100점)
84
146
 
85
147
  ## Output
86
148
 
87
- - `.vibe/specs/{기능명}.md` - SPEC 문서 (EARS 형식)
88
- - `.vibe/features/{기능명}.feature` - Gherkin Feature 파일 (BDD)
89
- - 품질 점수 (0-100점)
90
- - 개선 제안 사항
149
+ - `.vibe/specs/{기능명}.md` - PTCF 구조 SPEC
150
+ - `.vibe/features/{기능명}.feature` - BDD Feature 파일
151
+ - 품질 점수 및 개선 제안
91
152
 
92
- ## Example 1: 벽돌게임
153
+ ## Example
93
154
 
94
155
  ```
95
156
  User: /vibe.spec "벽돌게임"
@@ -105,176 +166,40 @@ Claude:
105
166
 
106
167
  User: 1
107
168
 
108
- Claude:
109
- 싱글플레이인가요, 멀티플레이인가요?
110
-
111
- 1. 싱글플레이
112
- 2. 멀티플레이
113
- 3. 둘 다
114
-
115
- 또는 직접 설명해주셔도 됩니다.
116
-
117
- User: 1
118
-
119
- Claude:
120
- 어떤 플랫폼에서 실행하시겠어요?
169
+ Claude: 어떤 플랫폼에서 실행하시겠어요?
121
170
 
122
171
  1. 웹 (브라우저)
123
172
  2. 모바일 (iOS/Android)
124
- 3. 데스크톱 (Windows/Mac)
125
-
126
- 또는 직접 설명해주셔도 됩니다.
173
+ 3. 데스크톱
127
174
 
128
175
  User: 1
129
176
 
130
177
  Claude:
131
178
  웹 게임 개발에 적합한 기술 스택을 제안드립니다:
132
179
 
133
- 1. **Phaser.js** (추천)
134
- - 장점: 게임 프레임워크, 물리엔진 내장, 쉬운 시작
135
- - 단점: 번들 크기가
136
- 2. **Canvas + JavaScript**
137
- - 장점: 가볍고, 세밀한 제어 가능
138
- - 단점: 물리엔진 직접 구현 필요
139
- 3. **PixiJS + Matter.js**
140
- - 장점: 고성능 렌더링, 물리엔진 분리
141
- - 단점: 학습 곡선 있음
142
-
143
- 어떤 걸로 하시겠어요?
144
-
145
- User: Phaser.js로 할게요
180
+ 1. **Phaser.js** (추천) - 게임 프레임워크, 물리엔진 내장
181
+ 2. **Canvas + JavaScript** - 가볍고 세밀한 제어
182
+ 3. **PixiJS + Matter.js** - 고성능 렌더링
146
183
 
147
- Claude:
148
- 좋은 선택입니다! 디자인 스타일은 어떤 걸 선호하시나요?
149
-
150
- 레퍼런스 제안:
151
- 1. **Atari Breakout** (1976) - 레트로 픽셀 스타일, 단순한 컬러
152
- 2. **Arkanoid** (1986) - 네온 그래픽, 파워업 아이템
153
- 3. **Brick Breaker Hero** (모던) - 3D 효과, 파티클, 생동감
154
-
155
- 참고하실 디자인이 있으신가요?
156
-
157
- User: Arkanoid 스타일로 가고 싶어요
158
-
159
- Claude:
160
- 완벽합니다! 레벨 클리어 조건은 어떻게 하시겠어요?
184
+ User: 1
161
185
 
162
- User: 모든 벽돌을 깨면 다음 레벨로 넘어가요
186
+ Claude: 디자인 스타일은요?
163
187
 
164
- Claude:
165
- 게임 오버 조건은요?
188
+ 1. 레트로 픽셀 (Atari Breakout)
189
+ 2. 네온 그래픽 (Arkanoid)
190
+ 3. 모던 3D 효과
166
191
 
167
- User: 공을 3번 놓치면 게임 오버요
168
-
169
- Claude:
170
- 리더보드가 필요한가요?
192
+ User: 2
171
193
 
172
194
  [대화 계속...]
173
195
 
174
196
  ✅ SPEC 문서 작성 완료!
175
- 📄 .vibe/specs/brick-game.md
176
- ```
177
-
178
- ## Example 2: 푸시 알림 설정 (기존 프로젝트)
179
-
180
- ```
181
- User: /vibe.spec "푸시 알림 설정"
182
-
183
- Claude:
184
- [파일 확인]
185
- - package.json 없음
186
- - pyproject.toml 발견
187
- - pubspec.yaml 발견
188
- - lib/screens/ 폴더 존재
189
-
190
- 기존 프로젝트네요! 소스코드를 분석했습니다:
191
- - Backend: Python (FastAPI로 추정 - pyproject.toml의 fastapi 확인)
192
- - Frontend: Flutter 3.24+ (pubspec.yaml 확인)
193
- - Database: PostgreSQL 17 (pyproject.toml의 sqlalchemy, psycopg2 확인)
194
-
195
- CLAUDE.md도 확인했습니다. 현재 기술 스택이 맞나요?
196
-
197
- User: 네 맞아요
198
-
199
- Claude:
200
- 어떤 종류의 알림들을 관리하고 싶으신가요? (예: 댓글, 좋아요, 팔로우 등)
201
-
202
- User: 댓글, 좋아요, 팔로우, 공지, 이벤트, 마케팅 이렇게 6가지요
203
-
204
- Claude:
205
- 각 카테고리를 ON/OFF만 하면 되나요, 아니면 세부 조정(시간대, 빈도 등)도 필요한가요?
206
-
207
- User: ON/OFF만 하면 돼요
208
-
209
- Claude:
210
- 푸시 알림 전송 서비스는 어떤 걸 사용하시겠어요?
211
-
212
- 옵션:
213
- 1. **Firebase Cloud Messaging (FCM)** (추천)
214
- - 장점: 무료, Flutter와 통합 쉬움
215
- - 단점: Google 종속
216
- 2. **OneSignal**
217
- - 장점: 멀티 플랫폼, 대시보드 제공
218
- - 단점: 무료 플랜 제한
219
-
220
- User: FCM 이미 쓰고 있어요
221
-
222
- Claude:
223
- 좋습니다! 디자인 레퍼런스는 어떤 걸 참고하시겠어요?
224
-
225
- 제안:
226
- 1. **iOS Settings > Notifications** - 토글 스위치 + 그룹핑
227
- 2. **Slack 알림 설정** - 카테고리별 세부 조정
228
- 3. **Twitter 알림 설정** - 심플한 리스트 + 우선순위
229
-
230
- User: iOS Settings 스타일로 할게요
231
-
232
- Claude:
233
- 완벽합니다! 성능 요구사항이 있나요? (예: 설정 저장 응답 시간 등)
234
-
235
- [대화 계속...]
236
- ```
237
-
238
- ## Example 3: 신규 프로젝트 (벽돌게임)
239
-
240
- ```
241
- User: /vibe.spec "벽돌게임"
242
-
243
- Claude:
244
- [파일 확인: .vibe/config.json 없음, CLAUDE.md 없음, package.json 없음]
245
- 신규 프로젝트로 시작하시는군요!
246
-
247
- 벽돌게임을 만드시는군요! 클래식 벽돌깨기(Breakout) 스타일인가요, 아니면 특별한 게임플레이를 생각하고 계신가요?
248
-
249
- User: 클래식 스타일이요
250
-
251
- Claude:
252
- 어떤 플랫폼에서 실행되나요? 웹, 모바일, 데스크톱 중에서요.
253
-
254
- User: 웹이요
255
-
256
- Claude:
257
- 웹 게임 개발에 적합한 기술 스택을 제안드립니다:
258
-
259
- 1. **Phaser.js** (추천)
260
- - 장점: 게임 프레임워크, 물리엔진 내장, 쉬운 시작
261
- - 단점: 번들 크기가 큼
262
- 2. **Canvas + JavaScript**
263
- - 장점: 가볍고, 세밀한 제어 가능
264
- - 단점: 물리엔진 직접 구현 필요
265
- 3. **PixiJS + Matter.js**
266
- - 장점: 고성능 렌더링, 물리엔진 분리
267
- - 단점: 학습 곡선 있음
268
-
269
- 어떤 걸로 하시겠어요?
270
-
271
- User: Phaser.js로 할게요
272
-
273
- [대화 계속...]
197
+ 📄 .vibe/specs/brick-game.md (PTCF 구조)
198
+ 📄 .vibe/features/brick-game.feature
274
199
  ```
275
200
 
276
201
  ## Next Step
277
202
 
278
203
  ```
279
- /vibe.plan "푸시 알림 설정 기능"
204
+ /vibe.run "벽돌게임"
280
205
  ```
@@ -13,6 +13,13 @@ argument-hint: "feature name"
13
13
  /vibe.verify "기능명"
14
14
  ```
15
15
 
16
+ ## Rules Reference
17
+
18
+ **반드시 `.agent/rules/` 규칙을 따릅니다:**
19
+ - `quality/checklist.md` - 코드 품질 체크리스트 (필수)
20
+ - `standards/complexity-metrics.md` - 복잡도 기준
21
+ - `standards/anti-patterns.md` - 안티패턴 검출
22
+
16
23
  ## Description
17
24
 
18
25
  SPEC 문서의 모든 요구사항(REQ-001~N)과 비기능 요구사항(NFR)을 구현된 코드가 만족하는지 검증합니다.
@@ -15,7 +15,28 @@
15
15
  "Bash(npm view:*)",
16
16
  "Bash(gh release create:*)",
17
17
  "Bash(gh release view:*)",
18
- "Bash(npm run build:*)"
18
+ "Bash(npm run build:*)",
19
+ "Bash(pbcopy)",
20
+ "Bash(openskills --help:*)",
21
+ "Bash(mkdir:*)",
22
+ "Bash(openskills sync:*)",
23
+ "Bash(openskills list:*)",
24
+ "Bash(openskills read:*)",
25
+ "Bash(./bin/vibe list:*)",
26
+ "Bash(./bin/vibe read:*)",
27
+ "Bash(./bin/vibe sync:*)",
28
+ "Bash(npm link:*)",
29
+ "Bash(vibe list:*)",
30
+ "Bash(vibe read:*)",
31
+ "Bash(vibe init:*)",
32
+ "SlashCommand(/vibe.spec \"로그인 기능\")",
33
+ "SlashCommand(/vibe.spec:*)",
34
+ "Bash(node bin/vibe:*)",
35
+ "Bash(npm pack:*)",
36
+ "Bash(npm config set:*)",
37
+ "Bash(node:*)",
38
+ "Bash(xargs basename:*)",
39
+ "Bash(git restore:*)"
19
40
  ],
20
41
  "deny": [],
21
42
  "ask": []
package/CLAUDE.md ADDED
@@ -0,0 +1,41 @@
1
+ # VIBE
2
+
3
+ SPEC 주도 AI 코딩 프레임워크 (Claude Code 전용)
4
+
5
+ ## Workflow
6
+
7
+ ```
8
+ /vibe.spec → /vibe.run → /vibe.verify
9
+ ```
10
+
11
+ ## Commands
12
+
13
+ | 명령어 | 설명 |
14
+ |--------|------|
15
+ | `/vibe.spec "기능명"` | SPEC 작성 (PTCF 구조) |
16
+ | `/vibe.run "기능명"` | 구현 실행 |
17
+ | `/vibe.verify "기능명"` | 검증 |
18
+ | `/vibe.reason "문제"` | 체계적 추론 |
19
+ | `/vibe.analyze` | 프로젝트 분석 |
20
+ | `/vibe.diagram` | 다이어그램 생성 |
21
+ | `/vibe.ui "설명"` | UI 미리보기 |
22
+
23
+ ## PTCF Structure
24
+
25
+ SPEC 문서는 AI가 바로 실행 가능한 프롬프트 형태:
26
+
27
+ ```
28
+ <role> AI 역할 정의
29
+ <context> 배경, 기술 스택, 관련 코드
30
+ <task> Phase별 작업 목록
31
+ <constraints> 제약 조건
32
+ <output_format> 생성/수정할 파일
33
+ <acceptance> 검증 기준
34
+ ```
35
+
36
+ ## Getting Started
37
+
38
+ ```bash
39
+ vibe init
40
+ /vibe.spec "로그인 기능"
41
+ ```