@su-record/vibe 0.4.8 → 1.0.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.
@@ -0,0 +1,48 @@
1
+ # Explorer Agent (Haiku 4.5)
2
+
3
+ 코드베이스 탐색 전문 서브에이전트입니다.
4
+
5
+ ## Role
6
+
7
+ - 코드베이스 분석
8
+ - 파일/패턴 검색
9
+ - 의존성 확인
10
+ - 관련 코드 수집
11
+
12
+ ## Model
13
+
14
+ **Haiku 4.5** - 빠른 탐색에 최적화
15
+
16
+ ## Usage
17
+
18
+ Task 도구로 호출:
19
+ ```
20
+ Task(model: "haiku", subagent_type: "Explore")
21
+ ```
22
+
23
+ ## Process
24
+
25
+ 1. 프로젝트 구조 파악
26
+ 2. 관련 파일 검색 (Glob, Grep)
27
+ 3. 코드 읽기 및 분석
28
+ 4. 패턴/컨벤션 파악
29
+ 5. 결과 요약 반환
30
+
31
+ ## Output
32
+
33
+ ```markdown
34
+ ## 탐색 결과
35
+
36
+ ### 관련 파일
37
+ - src/components/Button.tsx (UI 컴포넌트)
38
+ - src/hooks/useAuth.ts (인증 훅)
39
+
40
+ ### 발견된 패턴
41
+ - 컴포넌트: 함수형 + TypeScript
42
+ - 상태관리: Zustand 사용
43
+ - 스타일: Tailwind CSS
44
+
45
+ ### 의존성
46
+ - react: ^18.2.0
47
+ - zustand: ^4.4.0
48
+ ```
@@ -0,0 +1,53 @@
1
+ # Implementer Agent (Sonnet 4)
2
+
3
+ 핵심 구현 전문 서브에이전트입니다.
4
+
5
+ ## Role
6
+
7
+ - 코드 구현
8
+ - 파일 생성/수정
9
+ - 리팩토링
10
+ - 버그 수정
11
+
12
+ ## Model
13
+
14
+ **Sonnet 4** - 구현 품질과 속도의 균형
15
+
16
+ ## Usage
17
+
18
+ Task 도구로 호출:
19
+ ```
20
+ Task(model: "sonnet", prompt: "SPEC에 따라 구현하세요")
21
+ ```
22
+
23
+ ## Rules Reference
24
+
25
+ 반드시 `.vibe/rules/` 규칙을 따릅니다:
26
+ - `core/development-philosophy.md` - 수술적 정밀도
27
+ - `standards/complexity-metrics.md` - 함수 ≤20줄, 중첩 ≤3단계
28
+ - `quality/checklist.md` - 품질 체크리스트
29
+
30
+ ## Process
31
+
32
+ 1. SPEC 및 탐색 결과 확인
33
+ 2. 구현 계획 수립
34
+ 3. 코드 작성 (Edit/Write)
35
+ 4. 자체 검증
36
+ 5. 결과 반환
37
+
38
+ ## Output
39
+
40
+ ```markdown
41
+ ## 구현 결과
42
+
43
+ ### 생성된 파일
44
+ - src/components/LoginForm.tsx ✅
45
+ - src/hooks/useLogin.ts ✅
46
+
47
+ ### 수정된 파일
48
+ - src/App.tsx (라우트 추가)
49
+
50
+ ### 검증
51
+ - TypeScript 컴파일: ✅
52
+ - 린트: ✅
53
+ ```
@@ -0,0 +1,49 @@
1
+ # Tester Agent (Haiku 4.5)
2
+
3
+ 테스트 작성 전문 서브에이전트입니다.
4
+
5
+ ## Role
6
+
7
+ - 테스트 코드 작성
8
+ - BDD Feature 기반 테스트
9
+ - 엣지 케이스 검증
10
+ - 테스트 실행
11
+
12
+ ## Model
13
+
14
+ **Haiku 4.5** - 빠른 테스트 생성
15
+
16
+ ## Usage
17
+
18
+ Task 도구로 호출:
19
+ ```
20
+ Task(model: "haiku", prompt: "구현된 코드의 테스트를 작성하세요")
21
+ ```
22
+
23
+ ## Process
24
+
25
+ 1. `.vibe/features/{기능명}.feature` 확인
26
+ 2. 구현된 코드 분석
27
+ 3. 테스트 케이스 작성
28
+ 4. 테스트 실행
29
+ 5. 결과 반환
30
+
31
+ ## Output
32
+
33
+ ```markdown
34
+ ## 테스트 결과
35
+
36
+ ### 생성된 테스트
37
+ - src/__tests__/LoginForm.test.tsx
38
+ - src/__tests__/useLogin.test.ts
39
+
40
+ ### 커버리지
41
+ - Statements: 85%
42
+ - Branches: 80%
43
+ - Functions: 90%
44
+
45
+ ### 실행 결과
46
+ ✅ 12 passed
47
+ ⏭️ 0 skipped
48
+ ❌ 0 failed
49
+ ```
@@ -5,7 +5,7 @@ argument-hint: "feature name" or --phase N
5
5
 
6
6
  # /vibe.run
7
7
 
8
- SPEC을 기반으로 구현합니다 (Implementation Agent).
8
+ SPEC을 기반으로 구현합니다 (Implementation Agent with Multi-Model Orchestration).
9
9
 
10
10
  ## Usage
11
11
 
@@ -28,9 +28,92 @@ PTCF 구조의 SPEC 문서를 읽고 바로 구현을 실행합니다.
28
28
 
29
29
  > **PLAN, TASKS 문서 불필요** - SPEC이 곧 실행 가능한 프롬프트
30
30
 
31
+ ## 모델 오케스트레이션
32
+
33
+ 작업 유형에 따라 최적의 모델을 자동 선택합니다:
34
+
35
+ ```
36
+ ┌─────────────────────────────────────────────────────────────┐
37
+ │ Opus 4.5 (오케스트레이터) │
38
+ │ - 전체 흐름 조율 │
39
+ │ - 최종 결정/검토 │
40
+ └─────────────────────────┬───────────────────────────────────┘
41
+
42
+ ┌─────────────────────┼─────────────────────┐
43
+ ↓ ↓ ↓
44
+ ┌─────────┐ ┌─────────┐ ┌─────────┐
45
+ │ Haiku │ │ Sonnet │ │ Haiku │
46
+ │ (탐색) │ │ (구현) │ │(테스트) │
47
+ └─────────┘ └─────────┘ └─────────┘
48
+ ```
49
+
50
+ ### 역할별 Task 호출
51
+
52
+ | 작업 유형 | 모델 | Task 파라미터 |
53
+ |----------|------|---------------|
54
+ | 코드베이스 탐색 | Haiku 4.5 | `model: "haiku"` |
55
+ | 핵심 구현 | Sonnet 4 | `model: "sonnet"` |
56
+ | 테스트 작성 | Haiku 4.5 | `model: "haiku"` |
57
+ | 아키텍처 결정 | Opus 4.5 | 메인 세션 |
58
+ | 최종 검토 | Opus 4.5 | 메인 세션 |
59
+
60
+ ### 외부 LLM 활용 (활성화 시)
61
+
62
+ `.vibe/config.json`에서 외부 LLM이 활성화된 경우:
63
+
64
+ | 역할 | 모델 | 조건 |
65
+ |------|------|------|
66
+ | 아키텍처/디버깅 | GPT 5.2 | `vibe gpt <key>` 실행 시 |
67
+ | UI/UX 설계 | Gemini 3 | `vibe gemini <key>` 실행 시 |
68
+
69
+ 외부 LLM 활성화 시 해당 역할은 MCP를 통해 자동 호출됩니다:
70
+ - `mcp__vibe-gpt__chat` - GPT 5.2 아키텍처 자문
71
+ - `mcp__vibe-gemini__chat` - Gemini 3 UI/UX 자문
72
+
73
+ ## 시맨틱 코드 분석 (hi-ai MCP)
74
+
75
+ 구현 전 코드베이스를 정확히 파악하기 위해 hi-ai MCP의 시맨틱 도구를 활용합니다:
76
+
77
+ | MCP 도구 | 용도 | 활용 시점 |
78
+ |----------|------|----------|
79
+ | `mcp__vibe__find_symbol` | 심볼 정의 찾기 | 클래스/함수 위치 파악 |
80
+ | `mcp__vibe__find_references` | 참조 찾기 | 영향 범위 분석 |
81
+ | `mcp__vibe__analyze_complexity` | 복잡도 분석 | 리팩토링 필요 여부 판단 |
82
+ | `mcp__vibe__validate_code_quality` | 품질 검증 | 구현 후 품질 확인 |
83
+
84
+ ### 시맨틱 분석 흐름
85
+
86
+ ```
87
+ 구현 시작
88
+
89
+ ├─→ find_symbol: 수정할 함수/클래스 정확한 위치 파악
90
+
91
+ ├─→ find_references: 해당 심볼을 사용하는 모든 곳 확인
92
+
93
+ ├─→ analyze_complexity: 기존 코드 복잡도 확인
94
+
95
+
96
+ 구현 (영향 범위를 정확히 파악한 상태에서)
97
+
98
+
99
+ validate_code_quality: 구현 후 품질 검증
100
+ ```
101
+
102
+ ### 컨텍스트 관리 (세션 연속성)
103
+
104
+ | MCP 도구 | 용도 |
105
+ |----------|------|
106
+ | `mcp__vibe__start_session` | 세션 시작, 이전 컨텍스트 복원 |
107
+ | `mcp__vibe__auto_save_context` | 현재 상태 자동 저장 |
108
+ | `mcp__vibe__restore_session_context` | 이전 세션 컨텍스트 복원 |
109
+ | `mcp__vibe__save_memory` | 중요 결정사항/패턴 저장 |
110
+
111
+ **세션 시작 시**: `mcp__vibe__start_session`으로 이전 컨텍스트 자동 복원
112
+ **세션 종료 시**: Hook이 `mcp__vibe__auto_save_context` 자동 실행
113
+
31
114
  ## Process
32
115
 
33
- ### 1. SPEC 읽기
116
+ ### 1. SPEC 및 설정 읽기
34
117
 
35
118
  `.vibe/specs/{기능명}.md` 파싱:
36
119
 
@@ -43,18 +126,60 @@ PTCF 구조의 SPEC 문서를 읽고 바로 구현을 실행합니다.
43
126
  | `<output_format>` | 생성/수정할 파일 |
44
127
  | `<acceptance>` | 검증 기준 |
45
128
 
129
+ `.vibe/config.json` 확인:
130
+ - 외부 LLM 활성화 여부 (`models.gpt.enabled`, `models.gemini.enabled`)
131
+
46
132
  ### 2. Feature 파일 확인
47
133
 
48
134
  `.vibe/features/{기능명}.feature`:
49
135
  - BDD Scenarios 확인
50
136
  - 테스트 케이스로 활용
51
137
 
52
- ### 3. Phase별 구현
138
+ ### 3. Phase별 구현 (Task 병렬 호출)
53
139
 
54
140
  `<task>` 섹션의 Phase 순서대로:
55
141
 
56
- 1. **관련 코드 분석**: `<context>`의 관련 코드 읽기
57
- 2. **파일 생성/수정**: `<output_format>` 기준
142
+ ```
143
+ Phase 시작
144
+
145
+ ├─→ Task(haiku): 코드베이스 분석
146
+ │ "관련 파일과 패턴을 분석하세요"
147
+
148
+ ├─→ [GPT 활성화 시] MCP(vibe-gpt): 아키텍처 검토
149
+ │ "이 설계가 적절한지 검토해주세요"
150
+
151
+ ├─→ [Gemini 활성화 시] MCP(vibe-gemini): UI/UX 자문
152
+ │ "UI 구현 방향을 제안해주세요"
153
+
154
+
155
+ Opus: 분석 결과 종합, 구현 방향 결정
156
+
157
+
158
+ Task(sonnet): 핵심 구현
159
+ "SPEC에 따라 코드를 구현하세요"
160
+
161
+
162
+ Task(haiku): 테스트 작성
163
+ "구현된 코드의 테스트를 작성하세요"
164
+
165
+
166
+ Opus: 최종 검토 및 다음 Phase
167
+ ```
168
+
169
+ **병렬 실행 예시:**
170
+ ```javascript
171
+ // 독립적인 작업은 병렬로 Task 호출
172
+ Task(haiku) - 코드 분석
173
+ Task(haiku) - 의존성 확인
174
+ // → 동시 실행
175
+
176
+ // 순차적 작업
177
+ Task(sonnet) - 구현 (분석 완료 후)
178
+ Task(haiku) - 테스트 (구현 완료 후)
179
+ ```
180
+
181
+ 1. **관련 코드 분석**: Task(haiku)로 `<context>`의 관련 코드 탐색
182
+ 2. **파일 생성/수정**: Task(sonnet)로 `<output_format>` 기준 구현
58
183
  3. **제약 조건 준수**: `<constraints>` 확인
59
184
  4. **검증 실행**: 검증 명령어 실행
60
185
 
@@ -26,6 +26,34 @@ SPEC 문서를 작성합니다 (Specification Agent).
26
26
 
27
27
  > **PTCF**: Persona, Task, Context, Format - Google Gemini 프롬프트 최적화 프레임워크
28
28
 
29
+ ## 외부 LLM 연동 (선택적)
30
+
31
+ `.vibe/config.json`에서 외부 LLM이 활성화된 경우 SPEC 작성 시 자동 활용:
32
+
33
+ ```
34
+ /vibe.spec "복잡한 기능"
35
+
36
+ [Claude Opus] SPEC 초안 작성
37
+
38
+ [GPT 활성화?] → MCP(vibe-gpt)로 설계 교차 검토
39
+
40
+ [Gemini 활성화?] → MCP(vibe-gemini)로 UI/UX 자문
41
+
42
+ [Claude] 최종 SPEC 확정
43
+ ```
44
+
45
+ | 외부 LLM | 역할 | 활용 시점 |
46
+ |----------|------|----------|
47
+ | GPT 5.2 | 아키텍처/설계 검토 | SPEC 초안 완성 후 |
48
+ | Gemini 3 | UI/UX 자문 | 디자인 레퍼런스 논의 시 |
49
+
50
+ **활성화 방법:**
51
+ ```bash
52
+ vibe gpt <api-key> # GPT 활성화
53
+ vibe gemini <api-key> # Gemini 활성화
54
+ vibe status # 현재 설정 확인
55
+ ```
56
+
29
57
  ## Process
30
58
 
31
59
  ### 1. 프로젝트 분석
@@ -134,11 +162,45 @@ SPEC 문서를 작성합니다 (Specification Agent).
134
162
  </acceptance>
135
163
  ```
136
164
 
137
- ### 4. Feature 파일 생성 (BDD)
165
+ ### 4. Feature 파일 생성 (BDD) - 필수
166
+
167
+ **반드시** `.vibe/features/{기능명}.feature` 파일을 생성합니다.
138
168
 
139
- `.vibe/features/{기능명}.feature` 생성:
140
- - SPEC의 Acceptance Criteria Scenario로 변환
141
- - Given-When-Then 형식
169
+ **생성 규칙:**
170
+ 1. SPEC의 Acceptance Criteria → 하나의 Scenario로 변환
171
+ 2. Happy Path (정상 케이스) + Edge Case (예외 케이스) 포함
172
+ 3. Given-When-Then 형식 준수
173
+
174
+ **Feature 구조:**
175
+ ```markdown
176
+ # Feature: {기능명}
177
+
178
+ **SPEC**: `.vibe/specs/{기능명}.md`
179
+
180
+ ## User Story
181
+ **As a** {사용자}
182
+ **I want** {기능}
183
+ **So that** {가치}
184
+
185
+ ## Scenarios
186
+
187
+ ### Scenario 1: {Happy Path}
188
+ \`\`\`gherkin
189
+ Scenario: {제목}
190
+ Given {전제}
191
+ When {행동}
192
+ Then {결과}
193
+ \`\`\`
194
+ **검증 기준**: SPEC AC #1
195
+
196
+ ### Scenario 2: {Edge Case}
197
+ ...
198
+
199
+ ## Coverage
200
+ | Scenario | SPEC AC | Status |
201
+ |----------|---------|--------|
202
+ | 1 | AC-1 | ⬜ |
203
+ ```
142
204
 
143
205
  ### 5. 품질 검증
144
206
 
@@ -5,7 +5,7 @@ argument-hint: "feature name"
5
5
 
6
6
  # /vibe.verify
7
7
 
8
- 구현된 코드를 SPEC 요구사항에 대해 검증합니다.
8
+ Feature 시나리오 기반으로 구현을 검증합니다.
9
9
 
10
10
  ## Usage
11
11
 
@@ -16,145 +16,133 @@ argument-hint: "feature name"
16
16
  ## Rules Reference
17
17
 
18
18
  **반드시 `.vibe/rules/` 규칙을 따릅니다:**
19
- - `quality/checklist.md` - 코드 품질 체크리스트 (필수)
19
+ - `quality/checklist.md` - 코드 품질 체크리스트
20
20
  - `standards/complexity-metrics.md` - 복잡도 기준
21
- - `standards/anti-patterns.md` - 안티패턴 검출
22
21
 
23
- ## Description
22
+ ## Process
24
23
 
25
- SPEC 문서의 모든 요구사항(REQ-001~N)과 비기능 요구사항(NFR)을 구현된 코드가 만족하는지 검증합니다.
24
+ ### 1. Feature 파일 로드
26
25
 
27
- ## Process
26
+ `.vibe/features/{기능명}.feature` 읽기
27
+
28
+ ### 2. 시나리오별 검증
29
+
30
+ 각 Scenario에 대해:
31
+
32
+ 1. **Given** (전제 조건) - 상태 확인
33
+ 2. **When** (행동) - 기능 실행
34
+ 3. **Then** (결과) - 예상 결과 검증
35
+
36
+ ### 3. 검증 방법
37
+
38
+ **코드 검증:**
39
+ - 해당 기능이 구현되어 있는지 확인
40
+ - Given/When/Then 각 단계가 동작하는지 확인
41
+
42
+ **테스트 실행 (있는 경우):**
43
+ - `npm test`, `pytest`, `flutter test` 등 실행
44
+ - BDD 테스트 프레임워크 결과 확인
28
45
 
29
- 1. **SPEC 문서 읽기**: `.vibe/specs/{기능명}.md`
30
- 2. **Feature 파일 읽기**: `.vibe/features/{기능명}.feature` (BDD Scenarios)
31
- 3. **TASKS 문서 확인**: 모든 Task가 ✅ 완료 상태인지 확인
32
- 4. **BDD Scenarios 검증**:
33
- - Feature 파일의 모든 Scenario 실행
34
- - Given-When-Then 각 단계 검증
35
- - Step Definitions 실행 결과 확인
36
- 5. **Contract Testing 검증**:
37
- - Provider Contract 검증 (Backend)
38
- - Consumer Contract 검증 (Frontend)
39
- - Contract 일치 여부 확인 (Pact Broker)
40
- 6. **요구사항별 검증**:
41
- - REQ-001: 6알림 카테고리 정의 → DB 스키마 확인
42
- - REQ-002: 설정 저장 (P95 < 500ms) → 성능 테스트
43
- - REQ-003: 설정 조회 (P95 < 300ms) → 성능 테스트
44
- - REQ-004: 알림 필터링 동작 → 통합 테스트
45
- - REQ-005: 기본 설정 생성 → 유닛 테스트
46
- - REQ-006: UI 피드백 → 위젯 테스트
47
- 7. **비기능 요구사항 검증**:
48
- - 성능 (Performance): Locust로 부하 테스트
49
- - 보안 (Security): JWT 인증 확인
50
- - 접근성 (Accessibility): WCAG AA 기준
51
- 8. **검증 리포트 생성**: `.vibe/reports/{기능명}-verification.md`
52
-
53
- ## Agent
54
-
55
- Quality Reviewer Agent
46
+ **수동 검증:**
47
+ - 테스트 코드가 없으면 코드 리뷰로 검증
48
+ - 시나리오의 로직이 구현되었는지 확인
49
+
50
+ ### 4. 결과 리포트
51
+
52
+ ```markdown
53
+ # Verification Report: {기능명}
54
+
55
+ ## Summary
56
+ - **총 시나리오**: N개
57
+ - **통과**: N개 ✅
58
+ - **실패**: N
59
+ - **품질 점수**: XX/100
60
+
61
+ ## Scenario Results
62
+
63
+ ### Scenario 1: {제목}
64
+ - Given: 확인됨
65
+ - When: 구현됨
66
+ - Then: 동작함
67
+ - **검증**: AC-1 충족
68
+
69
+ ### ❌ Scenario 2: {제목}
70
+ - Given: 확인됨
71
+ - When: 구현됨
72
+ - Then: **실패** - {이유}
73
+ - **수정 필요**: {구체적 내용}
74
+
75
+ ## Code Quality
76
+ - 복잡도: ✅ 적정
77
+ - 테스트 커버리지: XX%
78
+ - 에러 처리: ✅
79
+
80
+ ## Next Steps
81
+ - {실패한 시나리오 수정 방법}
82
+ ```
56
83
 
57
84
  ## Input
58
85
 
59
- - `.vibe/specs/{기능명}.md` (SPEC 문서)
60
- - `.vibe/features/{기능명}.feature` (BDD Feature 파일)
61
- - `.vibe/tasks/{기능명}.md` (TASKS 문서)
62
- - 구현된 코드 (backend/, frontend/)
63
- - BDD Step Definitions (tests/steps/, test/bdd/)
64
- - Contract 파일 (pacts/, contracts/)
86
+ - `.vibe/features/{기능명}.feature` - BDD 시나리오
87
+ - `.vibe/specs/{기능명}.md` - SPEC 문서 (참조)
88
+ - 구현된 소스 코드
65
89
 
66
90
  ## Output
67
91
 
68
- - `.vibe/reports/{기능명}-verification.md` - 검증 리포트
69
- - 통과/실패 요구사항 목록
70
- - 성능 테스트 결과
71
- - 개선 제안 사항
72
-
73
- ## Verification Checklist
74
-
75
- ### Functional Requirements
76
- - [ ] REQ-001: 6개 알림 카테고리 정의
77
- - [ ] REQ-002: 설정 저장 (P95 < 500ms)
78
- - [ ] REQ-003: 설정 조회 (P95 < 300ms)
79
- - [ ] REQ-004: 알림 필터링 동작
80
- - [ ] REQ-005: 기본 설정 생성
81
- - [ ] REQ-006: UI 피드백
82
-
83
- ### Non-Functional Requirements
84
- - [ ] 성능: P95 응답 시간 목표 달성
85
- - [ ] 보안: JWT 인증, 권한 검증
86
- - [ ] 접근성: WCAG AA 기준 (4.5:1 대비, 48x48dp 터치)
87
- - [ ] 확장성: 새 카테고리 추가 용이
88
- - [ ] 가용성: 99.9% uptime
89
-
90
- ### Code Quality (TRUST 5)
91
- - [ ] Test-first: Contract tests 작성
92
- - [ ] Readable: Docstring, Type hints
93
- - [ ] Unified: 일관된 스타일
94
- - [ ] Secured: 보안 고려
95
- - [ ] Trackable: Logging, Monitoring
96
-
97
- ### Tests
98
- - [ ] **BDD Scenarios 모두 통과** (pytest-bdd, behave, cucumber)
99
- - [ ] **Contract Tests 모두 통과** (Pact, Spring Cloud Contract)
100
- - [ ] 유닛 테스트 커버리지 > 80%
101
- - [ ] 통합 테스트 통과
102
- - [ ] E2E 테스트 통과 (실제 푸시 수신)
103
- - [ ] 성능 테스트 통과 (Locust)
92
+ - 검증 결과 리포트 (터미널 출력)
93
+ - 통과/실패 시나리오 목록
94
+ - 수정이 필요한 항목
104
95
 
105
96
  ## Example
106
97
 
107
98
  ```
108
- /vibe.verify "푸시 알림 설정 기능"
109
- ```
99
+ User: /vibe.verify "로그인"
110
100
 
111
- **결과:**
112
- ```markdown
113
- # Verification Report: 푸시 알림 설정 기능
101
+ Claude:
102
+ # Verification Report: 로그인
114
103
 
115
104
  ## Summary
116
- - **전체 요구사항**: 12
117
- - **통과**: 12개 ✅
118
- - **실패**: 0
119
- - **품질 점수**: 95/100 (A+)
120
-
121
- ## BDD Scenarios (5/5 통과)
122
- ✅ Scenario 1: 알림 설정 조회
123
- ✅ Scenario 2: 알림 카테고리 활성화
124
- Scenario 3: 알림 카테고리 비활성화
125
- Scenario 4: 기본 설정 생성
126
- Scenario 5: 설정 저장 응답 시간 검증
127
-
128
- ## Contract Tests (2/2 통과)
129
- Provider Contract: Backend API 스키마 검증
130
- Consumer Contract: Frontend 호출 규약 검증
131
-
132
- ## Functional Requirements (6/6 통과)
133
- REQ-001: 6개 알림 카테고리 정의
134
- REQ-002: 설정 저장 (P95: 420ms < 500ms)
135
- REQ-003: 설정 조회 (P95: 280ms < 300ms)
136
- REQ-004: 알림 필터링 동작
137
- ✅ REQ-005: 기본 설정 생성
138
- REQ-006: UI 피드백
139
-
140
- ## Non-Functional Requirements (4/4 통과)
141
- 성능: P95 < 500ms
142
- ✅ 보안: JWT 인증 적용
143
- 접근성: WCAG AA 준수
144
- 테스트 커버리지: 85%
145
-
146
- ## 개선 제안
147
- - 캐시 히트율 80% 달성 (현재 75%)
105
+ - **총 시나리오**: 4
106
+ - **통과**: 3개 ✅
107
+ - **실패**: 1
108
+ - **품질 점수**: 85/100
109
+
110
+ ## Scenario Results
111
+
112
+ ### ✅ Scenario 1: 유효한 자격증명으로 로그인
113
+ - Given: 사용자가 로그인 페이지에 있다 → ✅ LoginPage 컴포넌트 존재
114
+ - When: 유효한 이메일/비밀번호 입력 → ✅ handleSubmit 구현됨
115
+ - Then: 대시보드로 이동 router.push('/dashboard')
116
+
117
+ ### Scenario 2: 잘못된 비밀번호로 로그인 시도
118
+ - Given: 로그인 페이지
119
+ - When: 잘못된 비밀번호
120
+ - Then: 에러 메시지 표시 → ✅ "비밀번호가 일치하지 않습니다"
121
+
122
+ ### Scenario 3: 이메일 형식 검증
123
+ - Given: 로그인 페이지
124
+ - When: 잘못된 이메일 형식
125
+ - Then: 유효성 에러 → ✅ zod validation
126
+
127
+ ### ❌ Scenario 4: 비밀번호 찾기 링크
128
+ - Given: 로그인 페이지 → ✅
129
+ - When: "비밀번호 찾기" 클릭 → ❌ 링크 없음
130
+ - Then: 비밀번호 찾기 페이지로 이동 → ❌
131
+
132
+ ## Next Steps
133
+ Scenario 4 수정 필요:
134
+ - LoginPage에 "비밀번호 찾기" 링크 추가
135
+ - /forgot-password 라우트 구현
148
136
  ```
149
137
 
150
138
  ## Next Step
151
139
 
152
140
  검증 통과 시:
153
141
  ```
154
- vibe deploy "푸시 알림 설정 기능" # Staging 배포
142
+ 완료! 다음 기능을 진행하세요.
155
143
  ```
156
144
 
157
145
  검증 실패 시:
158
146
  ```
159
- /vibe.run "Task X-Y" # 실패한 Task 재구현
147
+ /vibe.run "기능명" --fix # 실패한 시나리오 수정
160
148
  ```
@@ -42,7 +42,9 @@
42
42
  "Bash(gh release:*)",
43
43
  "Bash(npx @su-record/vibe@latest init:*)",
44
44
  "Bash(vibe version:*)",
45
- "Bash(vibe update:*)"
45
+ "Bash(vibe update:*)",
46
+ "Bash(vibe status:*)",
47
+ "Bash(git rm:*)"
46
48
  ],
47
49
  "deny": [],
48
50
  "ask": []