@su-record/vibe 0.1.7 → 0.3.0
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/commands/vibe.plan.md +10 -4
- package/.claude/commands/vibe.reason.md +302 -0
- package/.claude/commands/vibe.run.md +16 -9
- package/.claude/commands/vibe.spec.md +8 -1
- package/.claude/commands/vibe.tasks.md +12 -6
- package/.claude/commands/vibe.verify.md +29 -4
- package/.claude/settings.local.json +11 -2
- package/README.md +74 -13
- package/agents/reasoning-agent.md +353 -0
- package/agents/specification-agent.md +77 -0
- package/bin/vibe +2 -0
- package/package.json +1 -1
|
@@ -20,10 +20,11 @@ SPEC 문서를 분석하여 기술 구현 계획(PLAN)을 작성합니다.
|
|
|
20
20
|
## Process
|
|
21
21
|
|
|
22
22
|
1. **SPEC 문서 읽기**: `.vibe/specs/{기능명}.md` 분석
|
|
23
|
-
2.
|
|
23
|
+
2. **Feature 파일 읽기**: `.vibe/features/{기능명}.feature` 확인 (BDD)
|
|
24
|
+
3. **프로젝트 컨텍스트 파악**:
|
|
24
25
|
- `CLAUDE.md` 읽기 (기술 스택 확인)
|
|
25
26
|
- `package.json` / `pyproject.toml` / `pubspec.yaml` 확인
|
|
26
|
-
|
|
27
|
+
4. **PLAN 문서 작성**: 15개 섹션 포함
|
|
27
28
|
- 기술 스택 선정 (기존 스택 재사용 우선)
|
|
28
29
|
- 아키텍처 설계
|
|
29
30
|
- API 설계
|
|
@@ -33,13 +34,17 @@ SPEC 문서를 분석하여 기술 구현 계획(PLAN)을 작성합니다.
|
|
|
33
34
|
- 성능 최적화
|
|
34
35
|
- 에러 처리
|
|
35
36
|
- 모니터링 및 로깅
|
|
36
|
-
-
|
|
37
|
+
- **테스트 전략 (BDD/Contract Testing 포함)**
|
|
38
|
+
- BDD 도구 선정 (pytest-bdd, behave, cucumber 등)
|
|
39
|
+
- Contract Testing 도구 (Pact, Spring Cloud Contract 등)
|
|
40
|
+
- Feature 파일과 SPEC 매핑
|
|
41
|
+
- API Contract 스키마 정의
|
|
37
42
|
- 배포 전략
|
|
38
43
|
- 비용 예측
|
|
39
44
|
- 마일스톤 (Phase별)
|
|
40
45
|
- 리스크 및 완화 방안
|
|
41
46
|
- 다음 단계
|
|
42
|
-
|
|
47
|
+
5. **품질 검증**: 기술 선택 근거, 비용, 일정 현실성, BDD 테스트 전략 타당성
|
|
43
48
|
|
|
44
49
|
## Agent
|
|
45
50
|
|
|
@@ -48,6 +53,7 @@ SPEC 문서를 분석하여 기술 구현 계획(PLAN)을 작성합니다.
|
|
|
48
53
|
## Input
|
|
49
54
|
|
|
50
55
|
- `.vibe/specs/{기능명}.md` (SPEC 문서)
|
|
56
|
+
- `.vibe/features/{기능명}.feature` (BDD Feature 파일)
|
|
51
57
|
- `CLAUDE.md` (프로젝트 기술 스택)
|
|
52
58
|
|
|
53
59
|
## Output
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Apply systematic reasoning framework to complex problems
|
|
3
|
+
argument-hint: "problem description"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /vibe.reason
|
|
7
|
+
|
|
8
|
+
복잡한 문제에 9단계 추론 프레임워크를 적용합니다 (Reasoning Agent).
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/vibe.reason "문제 설명"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Description
|
|
17
|
+
|
|
18
|
+
체계적인 9단계 추론 프레임워크를 사용하여 복잡한 문제를 논리적으로 분석하고 최적의 해결책을 도출합니다.
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
다음과 같은 상황에서 사용하세요:
|
|
23
|
+
|
|
24
|
+
1. **복잡한 버그 디버깅**
|
|
25
|
+
- 근본 원인이 불명확한 경우
|
|
26
|
+
- 여러 가설을 체계적으로 검증해야 할 때
|
|
27
|
+
|
|
28
|
+
2. **아키텍처 설계 결정**
|
|
29
|
+
- 여러 옵션 중 최적의 선택이 필요할 때
|
|
30
|
+
- 제약 조건과 위험을 종합적으로 평가해야 할 때
|
|
31
|
+
|
|
32
|
+
3. **성능 최적화 문제**
|
|
33
|
+
- 병목 지점이 여러 곳일 수 있을 때
|
|
34
|
+
- 단계별 최적화 전략이 필요할 때
|
|
35
|
+
|
|
36
|
+
4. **리팩토링 계획**
|
|
37
|
+
- 레거시 코드의 복잡도를 체계적으로 분석해야 할 때
|
|
38
|
+
- 점진적 리팩토링 전략이 필요할 때
|
|
39
|
+
|
|
40
|
+
5. **요구사항 분석**
|
|
41
|
+
- 상충하는 요구사항을 조율해야 할 때
|
|
42
|
+
- 누락된 요구사항을 발견해야 할 때
|
|
43
|
+
|
|
44
|
+
## Process
|
|
45
|
+
|
|
46
|
+
### 1. 논리적 종속성 및 제약 조건
|
|
47
|
+
- 정책, 규칙, 필수 전제 조건 확인
|
|
48
|
+
- 작업 순서 최적화 (선행 작업 식별)
|
|
49
|
+
- 사용자 제약 조건 우선 적용
|
|
50
|
+
|
|
51
|
+
### 2. 위험 평가
|
|
52
|
+
- 행동의 결과 분석
|
|
53
|
+
- 롤백 가능성 확인
|
|
54
|
+
- 호환성, 보안, 성능 위험 검토
|
|
55
|
+
|
|
56
|
+
### 3. 귀납적 추론 및 가설 탐색
|
|
57
|
+
- 근본 원인에 대한 가설 생성
|
|
58
|
+
- 가능성 기반 우선순위 지정
|
|
59
|
+
- 각 가설의 검증 방법 제시
|
|
60
|
+
|
|
61
|
+
### 4. 결과 평가 및 적응성
|
|
62
|
+
- 관찰 결과에 따른 계획 수정
|
|
63
|
+
- 가설 반증 시 새 가설 생성
|
|
64
|
+
- 백트래킹 필요성 판단
|
|
65
|
+
|
|
66
|
+
### 5. 정보 가용성
|
|
67
|
+
- 사용 가능한 모든 도구 식별
|
|
68
|
+
- 관련 정책/규칙 문서 참조
|
|
69
|
+
- 이전 컨텍스트 복원
|
|
70
|
+
- 사용자 확인 필요 사항 구분
|
|
71
|
+
|
|
72
|
+
### 6. 정밀성 및 근거
|
|
73
|
+
- 정책 인용 시 정확한 출처 명시
|
|
74
|
+
- 코드 참조 시 파일명:라인 포함
|
|
75
|
+
- 메트릭의 정확한 수치 제공
|
|
76
|
+
|
|
77
|
+
### 7. 완전성
|
|
78
|
+
- 모든 요구사항, 옵션, 선호도 통합
|
|
79
|
+
- 조기 결론 지양
|
|
80
|
+
- 여러 대안 탐색
|
|
81
|
+
|
|
82
|
+
### 8. 끈기와 인내
|
|
83
|
+
- 일시적 오류는 지능적으로 재시도
|
|
84
|
+
- 전략 변경을 통한 문제 해결
|
|
85
|
+
- 모든 추론 단계 완료까지 진행
|
|
86
|
+
|
|
87
|
+
### 9. 응답 억제
|
|
88
|
+
- 추론 완료 후에만 행동
|
|
89
|
+
- 복잡한 결정은 추론 과정 문서화
|
|
90
|
+
- 단계별 실행으로 안전성 확보
|
|
91
|
+
|
|
92
|
+
## MCP Tools Integration
|
|
93
|
+
|
|
94
|
+
이 명령은 다음 MCP 도구를 자동으로 활용합니다:
|
|
95
|
+
|
|
96
|
+
- **apply_reasoning_framework**: 9단계 추론 프레임워크 적용
|
|
97
|
+
- **create_thinking_chain**: 순차적 사고 체인 생성
|
|
98
|
+
- **analyze_problem**: 문제의 근본 원인 분석
|
|
99
|
+
- **step_by_step_analysis**: 세부적인 단계별 분석
|
|
100
|
+
- **recall_memory**: 이전 컨텍스트 복원
|
|
101
|
+
- **find_symbol / find_references**: 코드 의존성 파악
|
|
102
|
+
|
|
103
|
+
## Output Format
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
# 추론 프레임워크 분석
|
|
107
|
+
|
|
108
|
+
**문제**: [문제 설명]
|
|
109
|
+
**컨텍스트**: [관련 정보]
|
|
110
|
+
**적용 단계**: 9/9
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 1. 논리적 종속성 및 제약 조건
|
|
115
|
+
|
|
116
|
+
**핵심 질문**:
|
|
117
|
+
- 어떤 정책이나 필수 규칙이 적용되는가?
|
|
118
|
+
- 작업 순서를 재정렬해야 하는가?
|
|
119
|
+
- 필요한 전제 조건이나 정보는?
|
|
120
|
+
- 명시적 사용자 제약 조건이 있는가?
|
|
121
|
+
|
|
122
|
+
**제약 조건 분석**:
|
|
123
|
+
[분석 내용]
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 2. 위험 평가
|
|
128
|
+
|
|
129
|
+
...
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 요약
|
|
134
|
+
|
|
135
|
+
[전체 추론 결과 요약 및 권장 사항]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Examples
|
|
139
|
+
|
|
140
|
+
### Example 1: 복잡한 버그 디버깅
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
사용자: /vibe.reason "사용자 로그인 후 프로필 페이지에서 간헐적으로 500 에러가 발생합니다. 로그에는 'TypeError: Cannot read property id of undefined'만 찍힙니다."
|
|
144
|
+
|
|
145
|
+
AI: 이 문제를 9단계 추론 프레임워크로 분석하겠습니다.
|
|
146
|
+
|
|
147
|
+
# 추론 프레임워크 분석
|
|
148
|
+
|
|
149
|
+
**문제**: 로그인 후 프로필 페이지 간헐적 500 에러 (TypeError: Cannot read property 'id' of undefined)
|
|
150
|
+
**컨텍스트**: 간헐적 발생, 로그인 성공 후 발생
|
|
151
|
+
**적용 단계**: 9/9
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 1. 논리적 종속성 및 제약 조건
|
|
156
|
+
|
|
157
|
+
**제약 조건 분석**:
|
|
158
|
+
- 정책/규칙: 인증/인가 시스템 정책 확인 필요
|
|
159
|
+
- 작업 순서: 로그인 → 세션 생성 → 프로필 조회 순서 확인
|
|
160
|
+
- 전제 조건: 에러 재현을 위한 조건 파악 필요
|
|
161
|
+
- 사용자 제약: 프로덕션 환경이므로 디버깅 도구 사용 제한
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 2. 위험 평가
|
|
166
|
+
|
|
167
|
+
**위험 평가**:
|
|
168
|
+
- 작업 유형: 디버깅 (중간 위험 - 로깅 추가는 낮은 위험, DB 변경은 높은 위험)
|
|
169
|
+
- 롤백 가능성: 로깅 추가는 롤백 쉬움
|
|
170
|
+
- 호환성 위험: 세션 구조 변경 시 기존 사용자 영향
|
|
171
|
+
- 보안 위험: 과도한 로깅으로 민감 정보 노출 가능성
|
|
172
|
+
- 성능 위험: 추가 로깅으로 인한 성능 저하 미미
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 3. 귀납적 추론 및 가설 탐색
|
|
177
|
+
|
|
178
|
+
**가설 생성**:
|
|
179
|
+
1. **가설 1: 세션 데이터 불완전** (가능성: 높음)
|
|
180
|
+
- 근거: 간헐적 발생 = 타이밍 이슈 또는 데이터 일관성 문제
|
|
181
|
+
- 검증: 세션 저장 로직에 로깅 추가, Redis 연결 상태 확인
|
|
182
|
+
|
|
183
|
+
2. **가설 2: 비동기 처리 순서 문제** (가능성: 중간)
|
|
184
|
+
- 근거: undefined = 데이터 로딩 전에 접근
|
|
185
|
+
- 검증: 프로필 조회 API의 Promise 체인 확인, await 누락 검사
|
|
186
|
+
|
|
187
|
+
3. **가설 3: DB 쿼리 결과 null** (가능성: 낮음)
|
|
188
|
+
- 근거: 특정 조건에서만 사용자 정보 조회 실패
|
|
189
|
+
- 검증: 프로필 조회 쿼리 로그 확인, 외래 키 제약 조건 검토
|
|
190
|
+
|
|
191
|
+
**우선순위**: 가능성 높은 순으로 검증하되, 낮은 가능성도 완전히 배제하지 않음
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
[추가 단계 4-9 분석...]
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 요약
|
|
200
|
+
|
|
201
|
+
9단계 추론 프레임워크를 통해 로그인 후 프로필 페이지 500 에러를 분석했습니다.
|
|
202
|
+
|
|
203
|
+
**주요 발견**:
|
|
204
|
+
- 가장 가능성 높은 원인: 세션 데이터 불완전 (Redis 연결 문제 또는 세션 저장 타이밍)
|
|
205
|
+
- 검증 우선순위: 1) 세션 저장 로직 로깅 추가 → 2) 비동기 처리 검토 → 3) DB 쿼리 확인
|
|
206
|
+
|
|
207
|
+
**권장 조치**:
|
|
208
|
+
1. 즉시: 세션 저장/조회 시점에 상세 로깅 추가 (낮은 위험)
|
|
209
|
+
2. 단기: 비동기 처리 코드 리뷰 (Promise, await 누락 확인)
|
|
210
|
+
3. 중기: 세션 저장소 모니터링 강화 (Redis 연결 상태, 메모리)
|
|
211
|
+
|
|
212
|
+
**다음 단계**:
|
|
213
|
+
서버 코드에서 `profile_controller.ts` 확인 → 세션 처리 로직에 try-catch 및 로깅 추가 → 재현 조건 파악
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Example 2: 아키텍처 설계 결정
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
사용자: /vibe.reason "실시간 알림 기능을 추가하려고 합니다. WebSocket, SSE, Long Polling 중 어떤 걸 써야 할까요?"
|
|
220
|
+
|
|
221
|
+
AI: [9단계 프레임워크를 통해 각 옵션의 제약 조건, 위험, 장단점을 체계적으로 분석하고, 프로젝트 상황에 맞는 최적의 선택을 권장]
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## Integration with Other Commands
|
|
225
|
+
|
|
226
|
+
### /vibe.spec과 함께 사용
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
# 1. 요구사항 수집
|
|
230
|
+
/vibe.spec "실시간 알림"
|
|
231
|
+
|
|
232
|
+
# 2. 기술적 결정이 필요한 경우
|
|
233
|
+
/vibe.reason "실시간 알림 구현 시 WebSocket vs SSE vs Long Polling 선택"
|
|
234
|
+
|
|
235
|
+
# 3. SPEC 문서 업데이트 및 계획 수립
|
|
236
|
+
/vibe.plan "실시간 알림"
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### /vibe.analyze와 함께 사용
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
# 1. 코드 분석으로 문제 발견
|
|
243
|
+
/vibe.analyze --code
|
|
244
|
+
|
|
245
|
+
# 2. 발견된 문제를 추론 프레임워크로 분석
|
|
246
|
+
/vibe.reason "users_service.py의 Cyclomatic Complexity 15를 10 이하로 낮추는 리팩토링 전략"
|
|
247
|
+
|
|
248
|
+
# 3. 리팩토링 실행
|
|
249
|
+
/vibe.run "Task: Refactor users_service.py"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Agent Configuration
|
|
253
|
+
|
|
254
|
+
이 명령은 `~/.claude/agents/reasoning-agent.md`를 사용합니다.
|
|
255
|
+
|
|
256
|
+
**에이전트 역할**:
|
|
257
|
+
- 체계적 추론 및 문제 해결 전문가
|
|
258
|
+
- 복잡한 문제를 논리적으로 분석
|
|
259
|
+
- 모든 관련 요소를 고려하여 최적의 해결책 도출
|
|
260
|
+
|
|
261
|
+
**에이전트 특징**:
|
|
262
|
+
- 9단계 추론 프레임워크 적용
|
|
263
|
+
- 가설 기반 접근
|
|
264
|
+
- 위험 평가 및 완화 전략 제시
|
|
265
|
+
- 정밀한 근거와 출처 명시
|
|
266
|
+
|
|
267
|
+
## Best Practices
|
|
268
|
+
|
|
269
|
+
1. **문제를 구체적으로 설명하세요**
|
|
270
|
+
- ❌ "버그가 있어요"
|
|
271
|
+
- ✅ "로그인 후 프로필 페이지에서 간헐적으로 500 에러가 발생합니다. 에러 로그: TypeError: Cannot read property 'id' of undefined"
|
|
272
|
+
|
|
273
|
+
2. **컨텍스트를 포함하세요**
|
|
274
|
+
- 발생 조건 (항상? 간헐적? 특정 조건에서만?)
|
|
275
|
+
- 관련 기술 스택
|
|
276
|
+
- 이미 시도한 해결 방법
|
|
277
|
+
|
|
278
|
+
3. **추론 결과를 메모리에 저장하세요**
|
|
279
|
+
- 복잡한 문제의 경우 추론 결과를 `save_memory`로 저장
|
|
280
|
+
- 나중에 `recall_memory`로 참조 가능
|
|
281
|
+
|
|
282
|
+
4. **단계별로 검증하세요**
|
|
283
|
+
- 추론 프레임워크가 제안한 가설을 순서대로 검증
|
|
284
|
+
- 각 검증 결과를 에이전트에게 피드백
|
|
285
|
+
|
|
286
|
+
5. **다른 명령과 조합하세요**
|
|
287
|
+
- `/vibe.analyze`로 현황 파악 → `/vibe.reason`으로 해결책 분석 → `/vibe.run`으로 실행
|
|
288
|
+
|
|
289
|
+
## Notes
|
|
290
|
+
|
|
291
|
+
- 이 명령은 복잡한 문제에 특화되어 있습니다. 단순한 작업은 직접 요청하는 것이 더 효율적입니다.
|
|
292
|
+
- 추론 과정이 길어질 수 있으므로 충분한 시간을 확보하세요.
|
|
293
|
+
- 추론 결과는 권장 사항이며, 최종 결정은 사용자가 내립니다.
|
|
294
|
+
- MCP 도구를 자동으로 활용하므로 hi-ai 서버가 연결되어 있어야 합니다.
|
|
295
|
+
|
|
296
|
+
## Related
|
|
297
|
+
|
|
298
|
+
- [Reasoning Agent Guide](~/.claude/agents/reasoning-agent.md)
|
|
299
|
+
- [MCP hi-ai Guide](~/.claude/skills/tools/mcp-hi-ai-guide.md)
|
|
300
|
+
- [/vibe.analyze](vibe.analyze.md)
|
|
301
|
+
- [/vibe.spec](vibe.spec.md)
|
|
302
|
+
- [/vibe.plan](vibe.plan.md)
|
|
@@ -46,7 +46,10 @@ TASKS 문서의 특정 Task를 읽고 구현 가이드를 생성한 후, 실제
|
|
|
46
46
|
- Backend Python Expert: `~/.vibe/agents/backend-python-expert.md`
|
|
47
47
|
- Frontend Flutter Expert: `~/.vibe/agents/frontend-flutter-expert.md`
|
|
48
48
|
- TRUST 5 원칙 준수:
|
|
49
|
-
- Test-first (Contract Testing)
|
|
49
|
+
- **Test-first (BDD/Contract Testing 우선)**
|
|
50
|
+
- Contract 파일 먼저 작성 (Provider/Consumer)
|
|
51
|
+
- BDD Step Definitions 작성
|
|
52
|
+
- Unit Tests 작성
|
|
50
53
|
- Readable (명확한 코드)
|
|
51
54
|
- Unified (일관된 스타일)
|
|
52
55
|
- Secured (보안 고려)
|
|
@@ -66,16 +69,19 @@ TASKS 문서의 특정 Task를 읽고 구현 가이드를 생성한 후, 실제
|
|
|
66
69
|
|
|
67
70
|
| Task | Agent |
|
|
68
71
|
|------|-------|
|
|
69
|
-
| Task 1-1 ~ 1-
|
|
70
|
-
| Task 2-1 ~ 2-
|
|
72
|
+
| Task 1-1 ~ 1-9 (Backend + Contract Provider) | Backend Python Expert |
|
|
73
|
+
| Task 2-1 ~ 2-9 (Frontend + Contract Consumer) | Frontend Flutter Expert |
|
|
71
74
|
| Task 3-1 ~ 3-2 (FCM Backend) | Backend Python Expert |
|
|
72
|
-
| Task 3-3 (
|
|
75
|
+
| Task 3-3 (BDD Step Definitions) | QA / Backend/Frontend Expert |
|
|
76
|
+
| Task 3-4 (Contract Verification) | QA |
|
|
77
|
+
| Task 3-5 (E2E Test) | QA / Frontend Flutter Expert |
|
|
73
78
|
|
|
74
79
|
## Input
|
|
75
80
|
|
|
76
81
|
- `.vibe/tasks/{기능명}.md` (TASKS 문서)
|
|
77
82
|
- `.vibe/plans/{기능명}.md` (PLAN 참고)
|
|
78
83
|
- `.vibe/specs/{기능명}.md` (SPEC 참고)
|
|
84
|
+
- `.vibe/features/{기능명}.feature` (BDD Feature 파일 - Contract Test 매핑용)
|
|
79
85
|
|
|
80
86
|
## Output
|
|
81
87
|
|
|
@@ -109,8 +115,8 @@ TASKS 문서의 특정 Task를 읽고 구현 가이드를 생성한 후, 실제
|
|
|
109
115
|
```
|
|
110
116
|
|
|
111
117
|
**동작:**
|
|
112
|
-
- Phase 1의
|
|
113
|
-
- Task 1-1 → 1-2 → ... → 1-
|
|
118
|
+
- Phase 1의 9개 Task 순차 실행
|
|
119
|
+
- Task 1-1 → 1-2 → ... → 1-9 (Contract Provider 포함)
|
|
114
120
|
- 각 Task마다 의존성 확인 후 실행
|
|
115
121
|
|
|
116
122
|
### 전체 실행
|
|
@@ -120,9 +126,10 @@ TASKS 문서의 특정 Task를 읽고 구현 가이드를 생성한 후, 실제
|
|
|
120
126
|
```
|
|
121
127
|
|
|
122
128
|
**동작:**
|
|
123
|
-
- 의존성 그래프에 따라
|
|
124
|
-
- Phase 1 (
|
|
125
|
-
-
|
|
129
|
+
- 의존성 그래프에 따라 23개 Task 순차 실행
|
|
130
|
+
- Phase 1 (9개) → Phase 2 (9개) → Phase 3 (5개)
|
|
131
|
+
- BDD/Contract Testing 포함
|
|
132
|
+
- 예상 시간: 28시간
|
|
126
133
|
|
|
127
134
|
## Verification
|
|
128
135
|
|
|
@@ -70,7 +70,13 @@ SPEC 문서를 작성합니다 (Specification Agent).
|
|
|
70
70
|
|
|
71
71
|
3. **SPEC 문서 작성**: `.vibe/specs/{기능명}.md` 생성 (EARS 형식)
|
|
72
72
|
|
|
73
|
-
4.
|
|
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 기준 자체 평가
|
|
74
80
|
|
|
75
81
|
## Agent
|
|
76
82
|
|
|
@@ -79,6 +85,7 @@ SPEC 문서를 작성합니다 (Specification Agent).
|
|
|
79
85
|
## Output
|
|
80
86
|
|
|
81
87
|
- `.vibe/specs/{기능명}.md` - SPEC 문서 (EARS 형식)
|
|
88
|
+
- `.vibe/features/{기능명}.feature` - Gherkin Feature 파일 (BDD)
|
|
82
89
|
- 품질 점수 (0-100점)
|
|
83
90
|
- 개선 제안 사항
|
|
84
91
|
|
|
@@ -20,11 +20,12 @@ PLAN 문서를 분석하여 Phase별 구체적인 작업 목록(TASKS)을 생성
|
|
|
20
20
|
## Process
|
|
21
21
|
|
|
22
22
|
1. **PLAN 문서 읽기**: `.vibe/plans/{기능명}.md` 분석
|
|
23
|
-
2. **
|
|
24
|
-
|
|
25
|
-
- Phase
|
|
26
|
-
- Phase
|
|
27
|
-
3
|
|
23
|
+
2. **Feature 파일 읽기**: `.vibe/features/{기능명}.feature` 확인 (BDD Scenarios)
|
|
24
|
+
3. **Phase별 Task 분해**:
|
|
25
|
+
- Phase 1: Backend 개발 (DB, API, Service, Repository, Unit Tests, **Contract Provider**)
|
|
26
|
+
- Phase 2: Frontend 개발 (Model, Service, Provider, UI, Unit Tests, **Contract Consumer**)
|
|
27
|
+
- Phase 3: 통합 및 테스트 (FCM, E2E, **BDD Step Definitions**, **Contract Verification**)
|
|
28
|
+
4. **각 Task마다 정의**:
|
|
28
29
|
- 상태 (⬜ 대기 / 🟡 진행 중 / ✅ 완료)
|
|
29
30
|
- 담당 Agent
|
|
30
31
|
- 예상 시간
|
|
@@ -44,6 +45,7 @@ PLAN 문서를 분석하여 Phase별 구체적인 작업 목록(TASKS)을 생성
|
|
|
44
45
|
|
|
45
46
|
- `.vibe/plans/{기능명}.md` (PLAN 문서)
|
|
46
47
|
- `.vibe/specs/{기능명}.md` (SPEC 문서)
|
|
48
|
+
- `.vibe/features/{기능명}.feature` (BDD Feature 파일)
|
|
47
49
|
|
|
48
50
|
## Output
|
|
49
51
|
|
|
@@ -59,9 +61,13 @@ PLAN 문서를 분석하여 Phase별 구체적인 작업 목록(TASKS)을 생성
|
|
|
59
61
|
```
|
|
60
62
|
|
|
61
63
|
**결과:**
|
|
62
|
-
-
|
|
64
|
+
- 23개 Task (Phase 1: 9개, Phase 2: 9개, Phase 3: 5개)
|
|
65
|
+
- **Phase 1:** DB, API, Service, Repository, Unit Tests, **Contract Provider 정의**
|
|
66
|
+
- **Phase 2:** Model, Service, Provider, UI, Unit Tests, **Contract Consumer 정의**
|
|
67
|
+
- **Phase 3:** FCM, E2E, **BDD Step Definitions**, **Contract Verification**
|
|
63
68
|
- 의존성 그래프 포함
|
|
64
69
|
- 각 Task별 Acceptance Criteria
|
|
70
|
+
- BDD Scenarios와 매핑된 Contract Test Tasks
|
|
65
71
|
|
|
66
72
|
## Next Step
|
|
67
73
|
|
|
@@ -20,19 +20,28 @@ SPEC 문서의 모든 요구사항(REQ-001~N)과 비기능 요구사항(NFR)을
|
|
|
20
20
|
## Process
|
|
21
21
|
|
|
22
22
|
1. **SPEC 문서 읽기**: `.vibe/specs/{기능명}.md`
|
|
23
|
-
2. **
|
|
24
|
-
3.
|
|
23
|
+
2. **Feature 파일 읽기**: `.vibe/features/{기능명}.feature` (BDD Scenarios)
|
|
24
|
+
3. **TASKS 문서 확인**: 모든 Task가 ✅ 완료 상태인지 확인
|
|
25
|
+
4. **BDD Scenarios 검증**:
|
|
26
|
+
- Feature 파일의 모든 Scenario 실행
|
|
27
|
+
- Given-When-Then 각 단계 검증
|
|
28
|
+
- Step Definitions 실행 결과 확인
|
|
29
|
+
5. **Contract Testing 검증**:
|
|
30
|
+
- Provider Contract 검증 (Backend)
|
|
31
|
+
- Consumer Contract 검증 (Frontend)
|
|
32
|
+
- Contract 일치 여부 확인 (Pact Broker)
|
|
33
|
+
6. **요구사항별 검증**:
|
|
25
34
|
- REQ-001: 6개 알림 카테고리 정의 → DB 스키마 확인
|
|
26
35
|
- REQ-002: 설정 저장 (P95 < 500ms) → 성능 테스트
|
|
27
36
|
- REQ-003: 설정 조회 (P95 < 300ms) → 성능 테스트
|
|
28
37
|
- REQ-004: 알림 필터링 동작 → 통합 테스트
|
|
29
38
|
- REQ-005: 기본 설정 생성 → 유닛 테스트
|
|
30
39
|
- REQ-006: UI 피드백 → 위젯 테스트
|
|
31
|
-
|
|
40
|
+
7. **비기능 요구사항 검증**:
|
|
32
41
|
- 성능 (Performance): Locust로 부하 테스트
|
|
33
42
|
- 보안 (Security): JWT 인증 확인
|
|
34
43
|
- 접근성 (Accessibility): WCAG AA 기준
|
|
35
|
-
|
|
44
|
+
8. **검증 리포트 생성**: `.vibe/reports/{기능명}-verification.md`
|
|
36
45
|
|
|
37
46
|
## Agent
|
|
38
47
|
|
|
@@ -41,8 +50,11 @@ Quality Reviewer Agent
|
|
|
41
50
|
## Input
|
|
42
51
|
|
|
43
52
|
- `.vibe/specs/{기능명}.md` (SPEC 문서)
|
|
53
|
+
- `.vibe/features/{기능명}.feature` (BDD Feature 파일)
|
|
44
54
|
- `.vibe/tasks/{기능명}.md` (TASKS 문서)
|
|
45
55
|
- 구현된 코드 (backend/, frontend/)
|
|
56
|
+
- BDD Step Definitions (tests/steps/, test/bdd/)
|
|
57
|
+
- Contract 파일 (pacts/, contracts/)
|
|
46
58
|
|
|
47
59
|
## Output
|
|
48
60
|
|
|
@@ -76,6 +88,8 @@ Quality Reviewer Agent
|
|
|
76
88
|
- [ ] Trackable: Logging, Monitoring
|
|
77
89
|
|
|
78
90
|
### Tests
|
|
91
|
+
- [ ] **BDD Scenarios 모두 통과** (pytest-bdd, behave, cucumber)
|
|
92
|
+
- [ ] **Contract Tests 모두 통과** (Pact, Spring Cloud Contract)
|
|
79
93
|
- [ ] 유닛 테스트 커버리지 > 80%
|
|
80
94
|
- [ ] 통합 테스트 통과
|
|
81
95
|
- [ ] E2E 테스트 통과 (실제 푸시 수신)
|
|
@@ -97,6 +111,17 @@ Quality Reviewer Agent
|
|
|
97
111
|
- **실패**: 0개
|
|
98
112
|
- **품질 점수**: 95/100 (A+)
|
|
99
113
|
|
|
114
|
+
## BDD Scenarios (5/5 통과)
|
|
115
|
+
✅ Scenario 1: 알림 설정 조회
|
|
116
|
+
✅ Scenario 2: 알림 카테고리 활성화
|
|
117
|
+
✅ Scenario 3: 알림 카테고리 비활성화
|
|
118
|
+
✅ Scenario 4: 기본 설정 생성
|
|
119
|
+
✅ Scenario 5: 설정 저장 응답 시간 검증
|
|
120
|
+
|
|
121
|
+
## Contract Tests (2/2 통과)
|
|
122
|
+
✅ Provider Contract: Backend API 스키마 검증
|
|
123
|
+
✅ Consumer Contract: Frontend 호출 규약 검증
|
|
124
|
+
|
|
100
125
|
## Functional Requirements (6/6 통과)
|
|
101
126
|
✅ REQ-001: 6개 알림 카테고리 정의
|
|
102
127
|
✅ REQ-002: 설정 저장 (P95: 420ms < 500ms)
|
|
@@ -6,9 +6,18 @@
|
|
|
6
6
|
"Bash(sed:*)",
|
|
7
7
|
"Bash(git add:*)",
|
|
8
8
|
"Bash(git commit:*)",
|
|
9
|
-
"Bash(npm publish:*)"
|
|
9
|
+
"Bash(npm publish:*)",
|
|
10
|
+
"Bash(git push:*)",
|
|
11
|
+
"Bash(npm pack)",
|
|
12
|
+
"Bash(npm install:*)",
|
|
13
|
+
"Read(//private/tmp/test-vibe-bdd/.vibe/**)",
|
|
14
|
+
"Read(//private/tmp/test-vibe-bdd/.claude/commands/**)",
|
|
15
|
+
"Bash(npm view:*)",
|
|
16
|
+
"Bash(gh release create:*)",
|
|
17
|
+
"Bash(gh release view:*)",
|
|
18
|
+
"Bash(npm run build:*)"
|
|
10
19
|
],
|
|
11
20
|
"deny": [],
|
|
12
21
|
"ask": []
|
|
13
22
|
}
|
|
14
|
-
}
|
|
23
|
+
}
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Transform natural language requirements into production-ready code through struc
|
|
|
7
7
|
[](https://www.npmjs.com/package/@su-record/vibe)
|
|
8
8
|
[](https://opensource.org/licenses/MIT)
|
|
9
9
|
[](https://smithery.ai/protocol/@su-record/hi-ai)
|
|
10
|
-
[](https://github.com/su-record/hi-ai)
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -18,7 +18,7 @@ Transform natural language requirements into production-ready code through struc
|
|
|
18
18
|
- **BDD + Contract Testing**: AI-optimized testing with Gherkin features and API contract validation (🚧 v0.2.0)
|
|
19
19
|
- **Automated Planning**: Generate technical implementation plans with architecture, cost analysis, and timeline
|
|
20
20
|
- **Task Decomposition**: Break down features into phase-based, dependency-aware tasks
|
|
21
|
-
- **Powered by @su-record/hi-ai**:
|
|
21
|
+
- **Powered by @su-record/hi-ai**: 36 MCP tools combining skills and hi-ai for code analysis, quality validation, and insights
|
|
22
22
|
- **Multi-language Support**: English and Korean interface
|
|
23
23
|
- **AI Agent System**: 7 specialized agents for different tech stacks
|
|
24
24
|
|
|
@@ -32,7 +32,7 @@ npm install -g @su-record/vibe
|
|
|
32
32
|
|
|
33
33
|
This installs:
|
|
34
34
|
- Vibe CLI (for initialization only)
|
|
35
|
-
- @su-record/hi-ai MCP server (
|
|
35
|
+
- @su-record/hi-ai MCP server (36 development tools)
|
|
36
36
|
- Agents, Skills, Templates for Claude Code
|
|
37
37
|
|
|
38
38
|
⚠️ **Important**: Vibe is a **Claude Code-exclusive** framework. Terminal commands are limited to `init` only. All development commands are available as **slash commands** within Claude Code.
|
|
@@ -98,6 +98,7 @@ Open Claude Code in your project directory and use slash commands:
|
|
|
98
98
|
| Command | Description | Example |
|
|
99
99
|
|---------|-------------|---------|
|
|
100
100
|
| `/vibe.analyze` | Comprehensive project analysis | `/vibe.analyze` |
|
|
101
|
+
| **`/vibe.reason`** 🆕 | **Apply 9-step reasoning framework to complex problems** | **`/vibe.reason "debug issue"`** |
|
|
101
102
|
| `/vibe.ui <description>` | Generate ASCII UI mockup | `/vibe.ui "login form"` |
|
|
102
103
|
| `/vibe.diagram --er` | Generate diagrams (architecture, ERD, flow) | `/vibe.diagram --er` |
|
|
103
104
|
|
|
@@ -105,7 +106,7 @@ Open Claude Code in your project directory and use slash commands:
|
|
|
105
106
|
|
|
106
107
|
## MCP Integration
|
|
107
108
|
|
|
108
|
-
Vibe includes
|
|
109
|
+
Vibe includes 36 MCP tools across multiple categories (2 new tools added in v1.4.0):
|
|
109
110
|
|
|
110
111
|
### Code Analysis
|
|
111
112
|
- `analyze_complexity` - Cyclomatic and cognitive complexity metrics
|
|
@@ -120,10 +121,12 @@ Vibe includes 38 MCP tools across multiple categories:
|
|
|
120
121
|
- `create_thinking_chain` - Generate step-by-step reasoning
|
|
121
122
|
- `step_by_step_analysis` - Detailed problem breakdown
|
|
122
123
|
- `analyze_problem` - Structured problem analysis
|
|
124
|
+
- **`apply_reasoning_framework`** 🆕 - **9-step reasoning framework for complex problems**
|
|
123
125
|
|
|
124
126
|
### Quality & Standards
|
|
125
127
|
- `apply_quality_rules` - Apply coding standards
|
|
126
128
|
- `suggest_improvements` - Code improvement recommendations
|
|
129
|
+
- **`enhance_prompt_gemini`** 🆕 - **Enhance prompts using Gemini API strategies (Few-Shot, Output Format, etc.)**
|
|
127
130
|
|
|
128
131
|
### UI & Design
|
|
129
132
|
- `preview_ui_ascii` - Generate ASCII UI mockups
|
|
@@ -222,9 +225,10 @@ Vibe uses EARS (Easy Approach to Requirements Syntax):
|
|
|
222
225
|
|
|
223
226
|
| Agent | Specialization | Tech Stack |
|
|
224
227
|
|-------|----------------|------------|
|
|
225
|
-
| Specification Agent | Requirements gathering
|
|
228
|
+
| Specification Agent | Requirements gathering (Gemini prompting strategies) | Language-agnostic |
|
|
226
229
|
| Planning Agent | Technical architecture and cost analysis | Cross-stack |
|
|
227
230
|
| Task Agent | Phase-based task decomposition | Cross-stack |
|
|
231
|
+
| **Reasoning Agent** 🆕 | **9-step reasoning framework for complex problems** | **Cross-stack** |
|
|
228
232
|
| Backend Python Expert | Python/FastAPI implementation | Python 3.11+, FastAPI, SQLAlchemy |
|
|
229
233
|
| Frontend Flutter Expert | Flutter/Dart implementation | Flutter 3.24+, Dart 3.5+ |
|
|
230
234
|
| Frontend React Expert | React/Next.js implementation | React 18+, Next.js 14+ |
|
|
@@ -247,9 +251,10 @@ $ vibe init
|
|
|
247
251
|
.vibe/
|
|
248
252
|
├── config.json
|
|
249
253
|
├── constitution.md
|
|
250
|
-
├── specs/
|
|
251
|
-
├──
|
|
252
|
-
|
|
254
|
+
├── specs/ # SPEC documents (EARS format)
|
|
255
|
+
├── features/ # BDD Feature files (Gherkin)
|
|
256
|
+
├── plans/ # Technical plans
|
|
257
|
+
└── tasks/ # Task breakdowns
|
|
253
258
|
```
|
|
254
259
|
|
|
255
260
|
### 2. Create Specification (Claude Code)
|
|
@@ -311,6 +316,7 @@ User: 1
|
|
|
311
316
|
|
|
312
317
|
✅ SPEC document created!
|
|
313
318
|
📄 .vibe/specs/push-notification-settings.md
|
|
319
|
+
📄 .vibe/features/push-notification-settings.feature (BDD scenarios)
|
|
314
320
|
```
|
|
315
321
|
|
|
316
322
|
### 3. Generate Plan (Claude Code)
|
|
@@ -326,8 +332,9 @@ SPEC을 분석하여 기술 계획을 작성하겠습니다.
|
|
|
326
332
|
|
|
327
333
|
Summary:
|
|
328
334
|
- 3 Phases: Backend → Frontend → FCM Integration
|
|
329
|
-
- Timeline:
|
|
335
|
+
- Timeline: 28 hours (3.5 days)
|
|
330
336
|
- Cost: +$0.50/month (Redis + FCM)
|
|
337
|
+
- Testing: BDD (pytest-bdd) + Contract Testing (Pact)
|
|
331
338
|
```
|
|
332
339
|
|
|
333
340
|
### 4. Decompose Tasks (Claude Code)
|
|
@@ -342,10 +349,10 @@ PLAN을 기반으로 Task를 생성하겠습니다.
|
|
|
342
349
|
📄 .vibe/tasks/push-notification-settings.md
|
|
343
350
|
|
|
344
351
|
Task Breakdown:
|
|
345
|
-
- Total:
|
|
346
|
-
- Phase 1 (Backend):
|
|
347
|
-
- Phase 2 (Frontend):
|
|
348
|
-
- Phase 3 (
|
|
352
|
+
- Total: 23 tasks
|
|
353
|
+
- Phase 1 (Backend): 9 tasks (includes Contract Provider)
|
|
354
|
+
- Phase 2 (Frontend): 9 tasks (includes Contract Consumer)
|
|
355
|
+
- Phase 3 (Integration): 5 tasks (includes BDD Steps + Contract Verification)
|
|
349
356
|
```
|
|
350
357
|
|
|
351
358
|
### 5. Execute Tasks (Claude Code)
|
|
@@ -417,6 +424,60 @@ Required Components:
|
|
|
417
424
|
|
|
418
425
|
---
|
|
419
426
|
|
|
427
|
+
## BDD & Contract Testing Workflow
|
|
428
|
+
|
|
429
|
+
Vibe integrates BDD (Behavior-Driven Development) and Contract Testing throughout the development lifecycle:
|
|
430
|
+
|
|
431
|
+
### Workflow Overview
|
|
432
|
+
|
|
433
|
+
```
|
|
434
|
+
/vibe.spec "feature"
|
|
435
|
+
↓ Generates SPEC (EARS) + Feature file (Gherkin)
|
|
436
|
+
|
|
437
|
+
/vibe.plan "feature"
|
|
438
|
+
↓ Analyzes Feature file, selects BDD tools (pytest-bdd, Pact, etc.)
|
|
439
|
+
|
|
440
|
+
/vibe.tasks "feature"
|
|
441
|
+
↓ Creates Contract Testing tasks (Provider, Consumer, Verification)
|
|
442
|
+
|
|
443
|
+
/vibe.run "Task X-Y"
|
|
444
|
+
↓ Implements test-first (Contract → Step Definitions → Code)
|
|
445
|
+
|
|
446
|
+
/vibe.verify "feature"
|
|
447
|
+
↓ Validates BDD Scenarios + Contract Tests
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
### Generated Files
|
|
451
|
+
|
|
452
|
+
- **`.vibe/features/{feature}.feature`** - Gherkin scenarios (Given-When-Then)
|
|
453
|
+
- **`tests/steps/`** - BDD step definitions
|
|
454
|
+
- **`pacts/` or `contracts/`** - Contract test files (Provider/Consumer)
|
|
455
|
+
|
|
456
|
+
### Testing Tools by Language
|
|
457
|
+
|
|
458
|
+
| Language | BDD Tool | Contract Testing |
|
|
459
|
+
|----------|----------|------------------|
|
|
460
|
+
| Python | pytest-bdd, behave | Pact Python |
|
|
461
|
+
| JavaScript/TS | cucumber, jest-cucumber | Pact JS |
|
|
462
|
+
| Java/Kotlin | Cucumber JVM | Pact JVM, Spring Cloud Contract |
|
|
463
|
+
| Dart/Flutter | gherkin, flutter_gherkin | Pact Dart |
|
|
464
|
+
|
|
465
|
+
### Example Feature File
|
|
466
|
+
|
|
467
|
+
```gherkin
|
|
468
|
+
Feature: Push Notification Settings
|
|
469
|
+
|
|
470
|
+
Scenario: User enables comment notifications
|
|
471
|
+
Given the user is logged in
|
|
472
|
+
And the notification settings page is displayed
|
|
473
|
+
When the user toggles "Comments" notification to ON
|
|
474
|
+
Then the setting should be saved successfully
|
|
475
|
+
And the API should return status 200
|
|
476
|
+
And the response time should be less than 500ms
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
420
481
|
## Best Practices
|
|
421
482
|
|
|
422
483
|
### 1. Document Your Tech Stack
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Reasoning Agent"
|
|
3
|
+
role: "체계적 추론 및 문제 해결 전문가"
|
|
4
|
+
expertise: [Logical Reasoning, Problem Solving, Risk Assessment, Hypothesis Testing, Decision Making]
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
created: 2025-01-26
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Reasoning Agent
|
|
10
|
+
|
|
11
|
+
당신은 **체계적 추론 및 문제 해결 전문가**입니다. 복잡한 문제를 논리적으로 분석하고, 모든 관련 요소를 고려하여 최적의 해결책을 도출합니다.
|
|
12
|
+
|
|
13
|
+
## 핵심 원칙
|
|
14
|
+
|
|
15
|
+
모든 행동(도구 호출 또는 사용자 응답) 전에 **사전에, 체계적으로, 독립적으로** 계획하고 추론해야 합니다.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 추론 프레임워크 (9단계)
|
|
20
|
+
|
|
21
|
+
### 1. 논리적 종속성 및 제약 조건
|
|
22
|
+
|
|
23
|
+
**중요도 순으로 충돌 해결:**
|
|
24
|
+
|
|
25
|
+
**1.1 정책 기반 규칙, 필수 전제 조건, 제약 조건**
|
|
26
|
+
- 프로젝트의 기술 스택, 아키텍처 패턴, 보안 정책 준수
|
|
27
|
+
- CLAUDE.md, .vibe/constitution.md의 규칙 우선 적용
|
|
28
|
+
|
|
29
|
+
**1.2 작업 순서**
|
|
30
|
+
- 현재 행동이 후속 필요 작업을 방해하지 않는지 확인
|
|
31
|
+
- 사용자가 무작위로 요청해도 성공적 완료를 위해 재정렬 필요할 수 있음
|
|
32
|
+
- 예: DB 마이그레이션 → 모델 정의 → API 엔드포인트 → 프론트엔드 UI
|
|
33
|
+
|
|
34
|
+
**1.3 기타 전제 조건**
|
|
35
|
+
- 필요한 정보 및/또는 필요한 작업 식별
|
|
36
|
+
|
|
37
|
+
**1.4 명시적 사용자 제약 조건 또는 선호도**
|
|
38
|
+
- 사용자가 명시한 도구, 라이브러리, 패턴 우선 사용
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### 2. 위험 평가
|
|
43
|
+
|
|
44
|
+
**행동의 결과는? 새로운 상태가 향후 문제를 야기할까?**
|
|
45
|
+
|
|
46
|
+
**2.1 탐색 작업의 위험 수준**
|
|
47
|
+
- 탐색 작업(검색, 파일 읽기 등)에서 선택적 매개변수 누락은 **낮은 위험**
|
|
48
|
+
- **규칙 1**(논리적 종속성) 추론이 나중 단계에서 선택 정보가 필요하다고 판단하지 않는 한, 사용자에게 묻지 말고 사용 가능한 정보로 도구 호출
|
|
49
|
+
|
|
50
|
+
**2.2 구현 작업의 위험 수준**
|
|
51
|
+
- 코드 작성, DB 변경 등은 **높은 위험**
|
|
52
|
+
- 롤백 불가능한 작업은 사용자 확인 필요
|
|
53
|
+
- 보안 취약점(SQL Injection, XSS 등) 발생 가능성 검토
|
|
54
|
+
|
|
55
|
+
**2.3 호환성 위험**
|
|
56
|
+
- 기존 코드와의 호환성 파괴 가능성
|
|
57
|
+
- 의존성 충돌 가능성
|
|
58
|
+
- 성능 저하 가능성
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### 3. 귀납적 추론 및 가설 탐색
|
|
63
|
+
|
|
64
|
+
**각 단계에서 발생한 문제에 대한 가장 논리적이고 가능성 높은 이유 식별:**
|
|
65
|
+
|
|
66
|
+
**3.1 즉각적 원인을 넘어서 탐색**
|
|
67
|
+
- 가장 가능성 높은 이유는 가장 단순하지 않을 수 있으며 더 깊은 추론 필요
|
|
68
|
+
- 예: "함수가 작동하지 않음" → 타입 오류? 비동기 처리 누락? 의존성 버전 충돌?
|
|
69
|
+
|
|
70
|
+
**3.2 가설 검증**
|
|
71
|
+
- 가설은 추가 연구가 필요할 수 있으며, 각 가설은 테스트에 여러 단계 필요할 수 있음
|
|
72
|
+
- 예: 가설 A (타입 오류) → 타입 정의 확인 → 호출부 확인 → tsconfig.json 확인
|
|
73
|
+
|
|
74
|
+
**3.3 가능성 기반 우선순위**
|
|
75
|
+
- 가능성에 따라 가설 우선순위 지정, 하지만 가능성 낮은 것도 조기에 버리지 말 것
|
|
76
|
+
- 낮은 확률 이벤트도 근본 원인일 수 있음 (엣지 케이스, 환경 차이 등)
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### 4. 결과 평가 및 적응성
|
|
81
|
+
|
|
82
|
+
**이전 관찰이 계획 변경을 요구하는가?**
|
|
83
|
+
|
|
84
|
+
**4.1 가설 반증 시 새 가설 생성**
|
|
85
|
+
- 초기 가설이 반증되면 수집된 정보를 바탕으로 적극적으로 새 가설 생성
|
|
86
|
+
- 예: "타입 오류 아님" 확인 → "비동기 처리 문제" 가설로 전환
|
|
87
|
+
|
|
88
|
+
**4.2 계획 수정**
|
|
89
|
+
- 새로운 정보에 따라 전체 계획을 재평가하고 필요 시 수정
|
|
90
|
+
- 막다른 길에 도달하면 백트래킹하여 다른 경로 탐색
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### 5. 정보 가용성
|
|
95
|
+
|
|
96
|
+
**적용 가능한 모든 대안 정보 소스 통합:**
|
|
97
|
+
|
|
98
|
+
**5.1 사용 가능한 도구와 그 기능**
|
|
99
|
+
- MCP 도구 (hi-ai의 38개 도구)
|
|
100
|
+
- 파일 시스템 도구 (Read, Write, Edit, Glob, Grep)
|
|
101
|
+
- Git 도구, 패키지 관리자 도구
|
|
102
|
+
|
|
103
|
+
**5.2 모든 정책, 규칙, 체크리스트, 제약 조건**
|
|
104
|
+
- .vibe/constitution.md
|
|
105
|
+
- CLAUDE.md (기술 스택, 아키텍처)
|
|
106
|
+
- skills/ 폴더의 품질 기준, 코딩 표준
|
|
107
|
+
|
|
108
|
+
**5.3 이전 관찰 및 대화 기록**
|
|
109
|
+
- 이전 세션의 컨텍스트 (restore_session_context)
|
|
110
|
+
- 메모리에 저장된 정보 (recall_memory)
|
|
111
|
+
|
|
112
|
+
**5.4 사용자에게 물어야만 얻을 수 있는 정보**
|
|
113
|
+
- 비즈니스 로직 세부사항
|
|
114
|
+
- 디자인 선호도
|
|
115
|
+
- 우선순위 결정
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### 6. 정밀성 및 근거
|
|
120
|
+
|
|
121
|
+
**각 진행 중인 상황에 대해 추론이 극도로 정확하고 관련성 있도록 보장:**
|
|
122
|
+
|
|
123
|
+
**6.1 정책 참조 시 인용**
|
|
124
|
+
- 정책 참조 시 정확한 해당 정보(정책 포함)를 인용하여 주장 검증
|
|
125
|
+
- 예: "CLAUDE.md에 따르면 백엔드는 FastAPI 0.104+를 사용합니다"
|
|
126
|
+
|
|
127
|
+
**6.2 코드 참조 시 파일명:라인 명시**
|
|
128
|
+
- 예: "users.py:45에서 User 모델은 tier 필드를 정의합니다"
|
|
129
|
+
|
|
130
|
+
**6.3 숫자와 메트릭의 정확성**
|
|
131
|
+
- 복잡도, 커버리지, 성능 지표는 정확한 수치로 표현
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### 7. 완전성
|
|
136
|
+
|
|
137
|
+
**모든 요구사항, 제약조건, 옵션, 선호도를 철저히 계획에 통합:**
|
|
138
|
+
|
|
139
|
+
**7.1 #1의 중요도 순서로 충돌 해결**
|
|
140
|
+
- 정책 → 작업 순서 → 전제 조건 → 사용자 선호도
|
|
141
|
+
|
|
142
|
+
**7.2 조기 결론 지양**
|
|
143
|
+
- 주어진 상황에 여러 관련 옵션이 있을 수 있음
|
|
144
|
+
- 예: "로그인 구현" → OAuth? JWT? Session? → 사용자에게 확인
|
|
145
|
+
|
|
146
|
+
**7.2.1 옵션 관련성 확인**
|
|
147
|
+
- 옵션 관련성 확인을 위해 #5의 모든 정보 소스에 대해 추론
|
|
148
|
+
|
|
149
|
+
**7.2.2 사용자 확인의 필요성**
|
|
150
|
+
- 무언가 적용 가능한지 알기 위해 사용자에게 문의 필요할 수 있음
|
|
151
|
+
- 확인 없이 적용 불가능하다고 가정하지 말 것
|
|
152
|
+
|
|
153
|
+
**7.3 정보 소스 검토**
|
|
154
|
+
- #5의 해당 정보 소스 검토하여 현재 상태와 관련된 것 확인
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### 8. 끈기와 인내
|
|
159
|
+
|
|
160
|
+
**위의 모든 추론이 소진될 때까지 포기하지 말 것:**
|
|
161
|
+
|
|
162
|
+
**8.1 시간과 불만에 설득되지 말 것**
|
|
163
|
+
- 소요 시간이나 사용자 불만으로 인해 설득되지 말 것
|
|
164
|
+
- 철저한 분석이 궁극적으로 시간 절약
|
|
165
|
+
|
|
166
|
+
**8.2 지능적인 끈기**
|
|
167
|
+
|
|
168
|
+
**일시적 오류 (예: "다시 시도하세요")**
|
|
169
|
+
- 명시적 재시도 제한에 도달하지 않는 한 재시도 필수
|
|
170
|
+
- 지수 백오프 패턴 고려
|
|
171
|
+
|
|
172
|
+
**한계 도달 시**
|
|
173
|
+
- 재시도 제한, 타임아웃 등 명확한 한계 도달 시 중단해야 함
|
|
174
|
+
|
|
175
|
+
**기타 오류**
|
|
176
|
+
- 전략이나 인수를 변경해야 하며, 동일한 실패 호출을 반복하지 말 것
|
|
177
|
+
- 예: API 호출 실패 → 다른 엔드포인트 시도, 파라미터 변경, 인증 방식 변경
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### 9. 응답 억제
|
|
182
|
+
|
|
183
|
+
**위의 모든 추론이 완료된 후에만 행동. 행동을 취한 후에는 되돌릴 수 없음.**
|
|
184
|
+
|
|
185
|
+
**9.1 추론 과정 문서화**
|
|
186
|
+
- 복잡한 결정의 경우 추론 과정을 간략히 설명
|
|
187
|
+
- 예: "3가지 옵션을 고려했습니다: A, B, C. C를 선택한 이유는..."
|
|
188
|
+
|
|
189
|
+
**9.2 단계별 실행**
|
|
190
|
+
- 한 번에 하나의 주요 행동만 수행
|
|
191
|
+
- 각 행동의 결과를 확인한 후 다음 단계로 진행
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 작업 유형별 추론 적용
|
|
196
|
+
|
|
197
|
+
### 디버깅
|
|
198
|
+
|
|
199
|
+
```markdown
|
|
200
|
+
1. **문제 정의**: 정확히 무엇이 작동하지 않는가? 예상 동작 vs 실제 동작
|
|
201
|
+
2. **정보 수집**: 에러 메시지, 로그, 스택 트레이스 분석
|
|
202
|
+
3. **가설 생성**:
|
|
203
|
+
- 가설 1: 타입 불일치 (가능성: 높음)
|
|
204
|
+
- 가설 2: 비동기 처리 문제 (가능성: 중간)
|
|
205
|
+
- 가설 3: 환경 변수 누락 (가능성: 낮음)
|
|
206
|
+
4. **가설 검증**: 우선순위 순으로 검증
|
|
207
|
+
5. **해결책 구현**: 검증된 가설을 바탕으로 수정
|
|
208
|
+
6. **테스트**: 문제가 해결되었는지 확인
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### 기능 구현
|
|
212
|
+
|
|
213
|
+
```markdown
|
|
214
|
+
1. **요구사항 분석**: SPEC 문서, 사용자 요청 정확히 이해
|
|
215
|
+
2. **제약 조건 식별**: 기술 스택, 보안 정책, 성능 요구사항
|
|
216
|
+
3. **아키텍처 설계**: 기존 패턴과 일관성 유지
|
|
217
|
+
4. **의존성 분석**: 선행 작업 식별 (DB → 백엔드 → 프론트엔드)
|
|
218
|
+
5. **위험 평가**: 보안, 성능, 호환성 위험
|
|
219
|
+
6. **구현 계획**: 단계별 작업 계획 (Contract → 구현 → 테스트)
|
|
220
|
+
7. **실행**: 계획에 따라 단계별 실행
|
|
221
|
+
8. **검증**: 모든 수용 기준 충족 확인
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### 리팩토링
|
|
225
|
+
|
|
226
|
+
```markdown
|
|
227
|
+
1. **현재 상태 분석**: 복잡도, 결합도, 응집도 메트릭
|
|
228
|
+
2. **문제점 식별**: 코드 스멜, 안티패턴, 성능 병목
|
|
229
|
+
3. **리팩토링 옵션**:
|
|
230
|
+
- 옵션 1: 함수 분해 (복잡도 감소)
|
|
231
|
+
- 옵션 2: 디자인 패턴 적용 (유지보수성 향상)
|
|
232
|
+
- 옵션 3: 의존성 역전 (결합도 감소)
|
|
233
|
+
4. **영향 분석**: 기존 기능에 미치는 영향 평가
|
|
234
|
+
5. **테스트 준비**: 리팩토링 전 테스트 커버리지 확보
|
|
235
|
+
6. **점진적 리팩토링**: 작은 단위로 리팩토링 후 테스트
|
|
236
|
+
7. **검증**: 모든 테스트 통과, 메트릭 개선 확인
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## MCP 도구 활용
|
|
242
|
+
|
|
243
|
+
### 추론 강화 도구
|
|
244
|
+
|
|
245
|
+
**create_thinking_chain**
|
|
246
|
+
- 복잡한 문제를 단계별로 분해
|
|
247
|
+
- 순차적 추론 과정 생성
|
|
248
|
+
|
|
249
|
+
**analyze_problem**
|
|
250
|
+
- 문제의 근본 원인 분석
|
|
251
|
+
- 다양한 관점에서 문제 검토
|
|
252
|
+
|
|
253
|
+
**step_by_step_analysis**
|
|
254
|
+
- 세부적인 단계별 분석
|
|
255
|
+
- 각 단계의 의존성 파악
|
|
256
|
+
|
|
257
|
+
**break_down_problem**
|
|
258
|
+
- 큰 문제를 작은 하위 문제로 분해
|
|
259
|
+
- 각 하위 문제의 우선순위 지정
|
|
260
|
+
|
|
261
|
+
### 정보 수집 도구
|
|
262
|
+
|
|
263
|
+
**recall_memory**
|
|
264
|
+
- 이전 세션의 컨텍스트 복원
|
|
265
|
+
- 관련 정보 검색
|
|
266
|
+
|
|
267
|
+
**find_symbol / find_references**
|
|
268
|
+
- 코드베이스에서 정의와 사용처 추적
|
|
269
|
+
- 의존성 파악
|
|
270
|
+
|
|
271
|
+
**analyze_complexity**
|
|
272
|
+
- 코드 복잡도 메트릭 분석
|
|
273
|
+
- 리팩토링 우선순위 결정
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 출력 형식
|
|
278
|
+
|
|
279
|
+
### 추론 과정 표시
|
|
280
|
+
|
|
281
|
+
```markdown
|
|
282
|
+
## 문제 분석
|
|
283
|
+
|
|
284
|
+
**문제**: [간결한 문제 설명]
|
|
285
|
+
|
|
286
|
+
**수집된 정보**:
|
|
287
|
+
- [정보 1]
|
|
288
|
+
- [정보 2]
|
|
289
|
+
- [정보 3]
|
|
290
|
+
|
|
291
|
+
**가설**:
|
|
292
|
+
1. **[가설 1]** (가능성: 높음)
|
|
293
|
+
- 근거: [근거]
|
|
294
|
+
- 검증 방법: [방법]
|
|
295
|
+
2. **[가설 2]** (가능성: 중간)
|
|
296
|
+
- 근거: [근거]
|
|
297
|
+
- 검증 방법: [방법]
|
|
298
|
+
|
|
299
|
+
**선택한 접근법**: [선택 이유]
|
|
300
|
+
|
|
301
|
+
**위험 요소**:
|
|
302
|
+
- [위험 1]: [완화 방안]
|
|
303
|
+
- [위험 2]: [완화 방안]
|
|
304
|
+
|
|
305
|
+
**실행 계획**:
|
|
306
|
+
1. [단계 1]
|
|
307
|
+
2. [단계 2]
|
|
308
|
+
3. [단계 3]
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### 의사결정 문서화
|
|
312
|
+
|
|
313
|
+
```markdown
|
|
314
|
+
## 의사결정 기록
|
|
315
|
+
|
|
316
|
+
**결정 사항**: [무엇을 결정했는가]
|
|
317
|
+
|
|
318
|
+
**고려한 옵션**:
|
|
319
|
+
- **옵션 A**: [장점] / [단점]
|
|
320
|
+
- **옵션 B**: [장점] / [단점]
|
|
321
|
+
- **옵션 C**: [장점] / [단점]
|
|
322
|
+
|
|
323
|
+
**선택**: 옵션 [X]
|
|
324
|
+
|
|
325
|
+
**선택 이유**:
|
|
326
|
+
1. [이유 1]
|
|
327
|
+
2. [이유 2]
|
|
328
|
+
3. [이유 3]
|
|
329
|
+
|
|
330
|
+
**제약 조건**:
|
|
331
|
+
- [제약 1]
|
|
332
|
+
- [제약 2]
|
|
333
|
+
|
|
334
|
+
**예상 영향**:
|
|
335
|
+
- [긍정적 영향]
|
|
336
|
+
- [주의할 점]
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## 참고 파일
|
|
342
|
+
|
|
343
|
+
작업 시 다음 글로벌 스킬을 참조하세요:
|
|
344
|
+
|
|
345
|
+
- `~/.claude/skills/core/` - 핵심 개발 원칙
|
|
346
|
+
- `~/.claude/skills/quality/` - 품질 기준 및 테스트 전략
|
|
347
|
+
- `~/.claude/skills/standards/` - 코딩 표준
|
|
348
|
+
- `~/.claude/skills/tools/mcp-hi-ai-guide.md` - MCP 도구 상세 설명
|
|
349
|
+
- `~/.claude/skills/tools/mcp-workflow.md` - 워크플로우 요약
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
**Built with ❤️ by Su & Claude**
|
|
@@ -24,6 +24,83 @@ created: 2025-01-17
|
|
|
24
24
|
- **User Stories**: 사용자 스토리 작성
|
|
25
25
|
- **Q&A 프로세스**: 구조화된 질문 설계
|
|
26
26
|
- **문서화**: 명확하고 테스트 가능한 문서 작성
|
|
27
|
+
- **Gemini Prompting Strategies**: Few-Shot 예시, 구조화된 출력, 컨텍스트 최적화
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 🌟 Gemini 프롬프팅 전략 적용
|
|
32
|
+
|
|
33
|
+
이 에이전트는 Google Gemini API 프롬프팅 전략을 적용하여 높은 품질의 요구사항 수집 및 SPEC 문서를 생성합니다.
|
|
34
|
+
|
|
35
|
+
### 1. Few-Shot 예시 활용
|
|
36
|
+
|
|
37
|
+
**질문 시 2-3개의 고품질 예시 제공:**
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
Q. 이 기능의 주요 목적은 무엇인가요?
|
|
41
|
+
|
|
42
|
+
**예시 1: 푸시 알림 설정**
|
|
43
|
+
- 목적: 사용자 경험 개선 (원하는 알림만 받기)
|
|
44
|
+
- 배경: 현재 모든 알림을 받아 피로도 높음
|
|
45
|
+
|
|
46
|
+
**예시 2: 다크 모드**
|
|
47
|
+
- 목적: 접근성 향상 (야간 사용 시 눈의 피로 감소)
|
|
48
|
+
- 배경: 사용자 요청 다수
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
귀하의 기능은?
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 2. 구조화된 출력 형식
|
|
56
|
+
|
|
57
|
+
**명확한 출력 형식을 접두사로 제시:**
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
# SPEC 작성 시작
|
|
61
|
+
|
|
62
|
+
다음 형식으로 SPEC 문서를 작성합니다:
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
title: [기능명]
|
|
66
|
+
priority: HIGH
|
|
67
|
+
created: [날짜]
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
# SPEC: [기능명]
|
|
71
|
+
|
|
72
|
+
## REQ-001: [요구사항 제목]
|
|
73
|
+
**WHEN** [조건]
|
|
74
|
+
**THEN** [결과]
|
|
75
|
+
|
|
76
|
+
### Acceptance Criteria
|
|
77
|
+
- [ ] [기준 1]
|
|
78
|
+
- [ ] [기준 2]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 3. 컨텍스트 최적화
|
|
82
|
+
|
|
83
|
+
**긴 컨텍스트를 요청 전에 배치:**
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
[1. 프로젝트 기술 스택 정보 (CLAUDE.md)]
|
|
87
|
+
[2. 기존 SPEC 문서 참조]
|
|
88
|
+
[3. 관련 코드 구조]
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
이제 다음 기능의 SPEC을 작성합니다: [기능명]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 4. 프롬프트 분해
|
|
96
|
+
|
|
97
|
+
복잡한 기능은 단계별로 분해:
|
|
98
|
+
|
|
99
|
+
1. **Step 1**: 기술 스택 확인 및 제안
|
|
100
|
+
2. **Step 2**: 핵심 요구사항 수집 (6개 질문)
|
|
101
|
+
3. **Step 3**: 상세 요구사항 확장
|
|
102
|
+
4. **Step 4**: SPEC 문서 생성
|
|
103
|
+
5. **Step 5**: BDD 시나리오 생성
|
|
27
104
|
|
|
28
105
|
---
|
|
29
106
|
|
package/bin/vibe
CHANGED
|
@@ -106,6 +106,7 @@ function init(projectName) {
|
|
|
106
106
|
// 폴더 생성
|
|
107
107
|
fs.mkdirSync(vibeDir);
|
|
108
108
|
fs.mkdirSync(path.join(vibeDir, 'specs'));
|
|
109
|
+
fs.mkdirSync(path.join(vibeDir, 'features'));
|
|
109
110
|
fs.mkdirSync(path.join(vibeDir, 'plans'));
|
|
110
111
|
fs.mkdirSync(path.join(vibeDir, 'tasks'));
|
|
111
112
|
|
|
@@ -169,6 +170,7 @@ ${isNewProject ? `프로젝트 위치:
|
|
|
169
170
|
├── config.json # 프로젝트 설정 (언어: 한국어)
|
|
170
171
|
├── constitution.md # 프로젝트 원칙
|
|
171
172
|
├── specs/ # SPEC 문서들
|
|
173
|
+
├── features/ # BDD Feature 파일들 (Gherkin)
|
|
172
174
|
├── plans/ # 기술 계획들
|
|
173
175
|
└── tasks/ # 작업 목록들
|
|
174
176
|
|