@su-record/vibe 2.3.2 → 2.4.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.
Files changed (118) hide show
  1. package/.claude/settings.json +35 -35
  2. package/.claude/settings.local.json +30 -24
  3. package/.claude/vibe/constitution.md +184 -184
  4. package/.claude/vibe/rules/core/communication-guide.md +104 -104
  5. package/.claude/vibe/rules/core/development-philosophy.md +52 -52
  6. package/.claude/vibe/rules/core/quick-start.md +120 -120
  7. package/.claude/vibe/rules/languages/dart-flutter.md +509 -509
  8. package/.claude/vibe/rules/languages/go.md +396 -396
  9. package/.claude/vibe/rules/languages/java-spring.md +586 -586
  10. package/.claude/vibe/rules/languages/kotlin-android.md +491 -491
  11. package/.claude/vibe/rules/languages/python-django.md +371 -371
  12. package/.claude/vibe/rules/languages/python-fastapi.md +386 -386
  13. package/.claude/vibe/rules/languages/rust.md +425 -425
  14. package/.claude/vibe/rules/languages/swift-ios.md +516 -516
  15. package/.claude/vibe/rules/languages/typescript-nextjs.md +441 -441
  16. package/.claude/vibe/rules/languages/typescript-node.md +375 -375
  17. package/.claude/vibe/rules/languages/typescript-nuxt.md +521 -521
  18. package/.claude/vibe/rules/languages/typescript-react-native.md +446 -446
  19. package/.claude/vibe/rules/languages/typescript-react.md +525 -525
  20. package/.claude/vibe/rules/languages/typescript-vue.md +353 -353
  21. package/.claude/vibe/rules/quality/bdd-contract-testing.md +388 -388
  22. package/.claude/vibe/rules/quality/checklist.md +276 -276
  23. package/.claude/vibe/rules/quality/testing-strategy.md +437 -437
  24. package/.claude/vibe/rules/standards/anti-patterns.md +369 -369
  25. package/.claude/vibe/rules/standards/code-structure.md +291 -291
  26. package/.claude/vibe/rules/standards/complexity-metrics.md +312 -312
  27. package/.claude/vibe/rules/standards/naming-conventions.md +198 -198
  28. package/.claude/vibe/setup.sh +31 -31
  29. package/.claude/vibe/templates/constitution-template.md +184 -184
  30. package/.claude/vibe/templates/contract-backend-template.md +517 -517
  31. package/.claude/vibe/templates/contract-frontend-template.md +594 -594
  32. package/.claude/vibe/templates/feature-template.md +96 -96
  33. package/.claude/vibe/templates/spec-template.md +199 -199
  34. package/CLAUDE.md +345 -345
  35. package/LICENSE +21 -21
  36. package/README.md +817 -744
  37. package/agents/compounder.md +261 -261
  38. package/agents/diagrammer.md +178 -178
  39. package/agents/e2e-tester.md +266 -266
  40. package/agents/explorer.md +48 -48
  41. package/agents/implementer.md +53 -53
  42. package/agents/research/best-practices-agent.md +139 -139
  43. package/agents/research/codebase-patterns-agent.md +147 -147
  44. package/agents/research/framework-docs-agent.md +181 -181
  45. package/agents/research/security-advisory-agent.md +167 -167
  46. package/agents/review/architecture-reviewer.md +107 -107
  47. package/agents/review/complexity-reviewer.md +116 -116
  48. package/agents/review/data-integrity-reviewer.md +88 -88
  49. package/agents/review/git-history-reviewer.md +103 -103
  50. package/agents/review/performance-reviewer.md +86 -86
  51. package/agents/review/python-reviewer.md +152 -152
  52. package/agents/review/rails-reviewer.md +139 -139
  53. package/agents/review/react-reviewer.md +144 -144
  54. package/agents/review/security-reviewer.md +80 -80
  55. package/agents/review/simplicity-reviewer.md +140 -140
  56. package/agents/review/test-coverage-reviewer.md +116 -116
  57. package/agents/review/typescript-reviewer.md +127 -127
  58. package/agents/searcher.md +54 -54
  59. package/agents/simplifier.md +119 -119
  60. package/agents/tester.md +49 -49
  61. package/agents/ui-previewer.md +137 -137
  62. package/commands/vibe.analyze.md +260 -245
  63. package/commands/vibe.reason.md +223 -223
  64. package/commands/vibe.review.md +213 -200
  65. package/commands/vibe.run.md +842 -838
  66. package/commands/vibe.spec.md +405 -419
  67. package/commands/vibe.utils.md +101 -101
  68. package/commands/vibe.verify.md +282 -282
  69. package/dist/cli/index.d.ts.map +1 -1
  70. package/dist/cli/index.js +422 -385
  71. package/dist/cli/index.js.map +1 -1
  72. package/dist/lib/MemoryManager.js +92 -92
  73. package/dist/lib/PythonParser.js +108 -108
  74. package/dist/lib/gemini-mcp.js +15 -15
  75. package/dist/lib/gemini-oauth.js +35 -35
  76. package/dist/lib/gpt-mcp.js +17 -17
  77. package/dist/lib/gpt-oauth.js +44 -44
  78. package/dist/orchestrator/agentDiscovery.d.ts +18 -0
  79. package/dist/orchestrator/agentDiscovery.d.ts.map +1 -0
  80. package/dist/orchestrator/agentDiscovery.js +174 -0
  81. package/dist/orchestrator/agentDiscovery.js.map +1 -0
  82. package/dist/orchestrator/backgroundAgent.d.ts +31 -0
  83. package/dist/orchestrator/backgroundAgent.d.ts.map +1 -0
  84. package/dist/orchestrator/backgroundAgent.js +325 -0
  85. package/dist/orchestrator/backgroundAgent.js.map +1 -0
  86. package/dist/orchestrator/index.d.ts +58 -0
  87. package/dist/orchestrator/index.d.ts.map +1 -0
  88. package/dist/orchestrator/index.js +115 -0
  89. package/dist/orchestrator/index.js.map +1 -0
  90. package/dist/orchestrator/orchestrator.d.ts +82 -0
  91. package/dist/orchestrator/orchestrator.d.ts.map +1 -0
  92. package/dist/orchestrator/orchestrator.js +257 -0
  93. package/dist/orchestrator/orchestrator.js.map +1 -0
  94. package/dist/orchestrator/parallelResearch.d.ts +19 -0
  95. package/dist/orchestrator/parallelResearch.d.ts.map +1 -0
  96. package/dist/orchestrator/parallelResearch.js +214 -0
  97. package/dist/orchestrator/parallelResearch.js.map +1 -0
  98. package/dist/orchestrator/types.d.ts +109 -0
  99. package/dist/orchestrator/types.d.ts.map +1 -0
  100. package/dist/orchestrator/types.js +5 -0
  101. package/dist/orchestrator/types.js.map +1 -0
  102. package/dist/tools/analytics/getUsageAnalytics.js +12 -12
  103. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  104. package/dist/tools/memory/getMemoryGraph.js +12 -12
  105. package/dist/tools/memory/getSessionContext.js +9 -9
  106. package/dist/tools/memory/linkMemories.js +14 -14
  107. package/dist/tools/memory/listMemories.js +4 -4
  108. package/dist/tools/memory/recallMemory.js +4 -4
  109. package/dist/tools/memory/saveMemory.js +4 -4
  110. package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
  111. package/dist/tools/planning/generatePrd.js +46 -46
  112. package/dist/tools/prompt/enhancePromptGemini.js +160 -160
  113. package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
  114. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  115. package/hooks/hooks.json +121 -121
  116. package/package.json +75 -73
  117. package/skills/git-worktree.md +178 -178
  118. package/skills/priority-todos.md +236 -236
@@ -1,282 +1,282 @@
1
- ---
2
- description: Verify implementation against SPEC requirements
3
- argument-hint: "feature name"
4
- ---
5
-
6
- # /vibe.verify
7
-
8
- **품질 검증 자동화** - 비개발자도 품질을 신뢰할 수 있도록.
9
-
10
- > 모든 시나리오 통과 = 품질 보장
11
-
12
- ## Usage
13
-
14
- ```
15
- /vibe.verify "feature-name" # SPEC 기반 검증
16
- /vibe.verify --e2e "feature-name" # E2E 브라우저 테스트 (agents/e2e-tester.md)
17
- /vibe.verify --e2e --visual # 시각적 회귀 테스트
18
- /vibe.verify --e2e --record # 비디오 녹화
19
- ```
20
-
21
- ## 핵심 원칙
22
-
23
- ```
24
- ┌─────────────────────────────────────────────────────────────────┐
25
- │ 비개발자가 알아야 할 것 │
26
- │ │
27
- │ ✅ 시나리오 4/4 통과 │
28
- │ 📈 품질 점수: 94/100 │
29
- │ │
30
- │ 이것만 보면 됨. 나머지는 시스템이 알아서. │
31
- └─────────────────────────────────────────────────────────────────┘
32
- ```
33
-
34
- ## Process
35
-
36
- ### 1. Load Feature File
37
-
38
- ```
39
- 📄 .claude/vibe/features/{feature-name}.feature → 시나리오 목록
40
- 📄 .claude/vibe/specs/{feature-name}.md → 검증 기준 (참조)
41
- ```
42
-
43
- **Feature 파일이 없으면**:
44
- ```
45
- ❌ Feature 파일이 없습니다.
46
- 먼저 /vibe.spec "{feature-name}"을 실행하세요.
47
- ```
48
-
49
- ### 2. Scenario-by-Scenario Verification
50
-
51
- 각 시나리오별 자동 검증:
52
-
53
- ```
54
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
55
- 🔍 Scenario 1/4: 유효한 로그인 성공
56
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
57
-
58
- Given: 사용자가 등록되어 있다
59
- → 검증: 사용자 생성 API 존재? ✅
60
- → 검증: 테스트 사용자 데이터? ✅
61
-
62
- When: 유효한 이메일과 비밀번호로 로그인
63
- → 검증: POST /login 엔드포인트? ✅
64
- → 검증: 요청 처리 로직? ✅
65
-
66
- Then: 로그인 성공 + JWT 토큰 반환
67
- → 검증: 성공 응답 코드 200? ✅
68
- → 검증: JWT 토큰 포함? ✅
69
-
70
- ✅ Scenario 1 통과!
71
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
72
- ```
73
-
74
- ### 3. Verification Methods (자동 선택)
75
-
76
- | 방법 | 조건 | 검증 내용 |
77
- |------|------|-----------|
78
- | **테스트 실행** | 테스트 파일 존재 시 | `npm test`, `pytest` 등 실행 |
79
- | **코드 분석** | 항상 | 구현 여부, 로직 확인 |
80
- | **빌드 검증** | 빌드 스크립트 존재 시 | 컴파일 에러 확인 |
81
- | **타입 검사** | TypeScript 등 | 타입 에러 확인 |
82
-
83
- ### 4. Quality Report (자동 생성)
84
-
85
- ```
86
- ┌─────────────────────────────────────────────────────────────────┐
87
- │ 📊 VERIFICATION REPORT: login │
88
- ├─────────────────────────────────────────────────────────────────┤
89
- │ │
90
- │ ✅ 시나리오: 4/4 통과 (100%) │
91
- │ │
92
- │ ┌───────────────────────────────────────────────────────────┐ │
93
- │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
94
- │ │───│───────────────────────│───────│──────│──────│────────│ │
95
- │ │ 1 │ 유효한 로그인 성공 │ ✅ │ ✅ │ ✅ │ ✅ │ │
96
- │ │ 2 │ 잘못된 비밀번호 에러 │ ✅ │ ✅ │ ✅ │ ✅ │ │
97
- │ │ 3 │ 이메일 형식 검증 │ ✅ │ ✅ │ ✅ │ ✅ │ │
98
- │ │ 4 │ 비밀번호 찾기 링크 │ ✅ │ ✅ │ ✅ │ ✅ │ │
99
- │ └───────────────────────────────────────────────────────────┘ │
100
- │ │
101
- │ 📈 품질 점수: 94/100 │
102
- │ │
103
- │ ┌─────────────────────────────────────────────────────────┐ │
104
- │ │ 항목 │ 결과 │ 상세 │ │
105
- │ │───────────────────│───────│─────────────────────────────│ │
106
- │ │ 빌드 │ ✅ │ 성공 │ │
107
- │ │ 테스트 │ ✅ │ 12/12 통과 │ │
108
- │ │ 타입 검사 │ ✅ │ 에러 0개 │ │
109
- │ │ 복잡도 │ ✅ │ 모든 함수 ≤20줄 │ │
110
- │ │ 코드 커버리지 │ ⚠️ │ 78% (목표: 80%) │ │
111
- │ └─────────────────────────────────────────────────────────┘ │
112
- │ │
113
- │ 📋 권장 사항: │
114
- │ - 코드 커버리지 2% 추가 필요 (auth.service.ts line 45-52) │
115
- │ │
116
- └─────────────────────────────────────────────────────────────────┘
117
- ```
118
-
119
- ### 실패 시 리포트
120
-
121
- ```
122
- ┌─────────────────────────────────────────────────────────────────┐
123
- │ 📊 VERIFICATION REPORT: login │
124
- ├─────────────────────────────────────────────────────────────────┤
125
- │ │
126
- │ ❌ 시나리오: 3/4 통과 (75%) │
127
- │ │
128
- │ ┌───────────────────────────────────────────────────────────┐ │
129
- │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
130
- │ │───│───────────────────────│───────│──────│──────│────────│ │
131
- │ │ 1 │ 유효한 로그인 성공 │ ✅ │ ✅ │ ✅ │ ✅ │ │
132
- │ │ 2 │ 잘못된 비밀번호 에러 │ ✅ │ ✅ │ ✅ │ ✅ │ │
133
- │ │ 3 │ 이메일 형식 검증 │ ✅ │ ✅ │ ✅ │ ✅ │ │
134
- │ │ 4 │ 비밀번호 찾기 링크 │ ✅ │ ❌ │ - │ ❌ │ │
135
- │ └───────────────────────────────────────────────────────────┘ │
136
- │ │
137
- │ ❌ 실패 상세: │
138
- │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
139
- │ Scenario 4: 비밀번호 찾기 링크 │
140
- │ │
141
- │ When: "비밀번호 찾기" 클릭 │
142
- │ ❌ 문제: 링크가 구현되지 않음 │
143
- │ 📍 위치: LoginForm.tsx line 42 │
144
- │ 💡 수정: "Forgot password" 링크 추가 필요 │
145
- │ │
146
- │ 🔧 자동 수정 실행: /vibe.run "login" --fix │
147
- │ │
148
- └─────────────────────────────────────────────────────────────────┘
149
- ```
150
-
151
- ## Input
152
-
153
- - `.claude/vibe/features/{feature-name}.feature` - BDD scenarios
154
- - `.claude/vibe/specs/{feature-name}.md` - SPEC document (reference)
155
- - Implemented source code
156
-
157
- ## Output
158
-
159
- - Verification result report (terminal output)
160
- - Passed/failed scenario list
161
- - Items needing fixes
162
-
163
- ## Example
164
-
165
- ```
166
- User: /vibe.verify "login"
167
-
168
- Claude:
169
- 📄 Loading Feature: .claude/vibe/features/login.feature
170
- 🔍 검증 시작...
171
-
172
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
173
- 🔍 Scenario 1/4: 유효한 로그인 성공
174
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
175
- ✅ Given: 사용자 등록 - OK
176
- ✅ When: 로그인 시도 - OK
177
- ✅ Then: JWT 토큰 반환 - OK
178
- ✅ 통과!
179
-
180
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
181
- 🔍 Scenario 2/4: 잘못된 비밀번호 에러
182
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
183
- ✅ Given: OK
184
- ✅ When: OK
185
- ✅ Then: OK
186
- ✅ 통과!
187
-
188
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
189
- 🔍 Scenario 3/4: 이메일 형식 검증
190
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
191
- ✅ Given: OK
192
- ✅ When: OK
193
- ✅ Then: OK
194
- ✅ 통과!
195
-
196
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
197
- 🔍 Scenario 4/4: 비밀번호 찾기 링크
198
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
199
- ✅ Given: OK
200
- ❌ When: "비밀번호 찾기" 링크 - 없음
201
- - Then: (스킵)
202
- ❌ 실패!
203
-
204
- ┌─────────────────────────────────────────────────────────────────┐
205
- │ 📊 VERIFICATION REPORT: login │
206
- ├─────────────────────────────────────────────────────────────────┤
207
- │ │
208
- │ ❌ 시나리오: 3/4 통과 (75%) │
209
- │ │
210
- │ | # | Scenario | Status | │
211
- │ |---|───────────────────────|────────| │
212
- │ | 1 | 유효한 로그인 성공 | ✅ | │
213
- │ | 2 | 잘못된 비밀번호 에러 | ✅ | │
214
- │ | 3 | 이메일 형식 검증 | ✅ | │
215
- │ | 4 | 비밀번호 찾기 링크 | ❌ | │
216
- │ │
217
- │ 📈 품질 점수: 75/100 │
218
- │ │
219
- │ ❌ 수정 필요: │
220
- │ - Scenario 4: LoginForm.tsx에 "Forgot password" 링크 추가 │
221
- │ │
222
- │ 🔧 자동 수정: /vibe.run "login" --fix │
223
- │ │
224
- └─────────────────────────────────────────────────────────────────┘
225
- ```
226
-
227
- ## Vibe Tools (Code Analysis & Quality)
228
-
229
- ### Tool Invocation
230
-
231
- All tools are called via:
232
-
233
- ```bash
234
- node -e "import('@su-record/vibe/tools').then(t => t.TOOL_NAME({...args}).then(r => console.log(r.content[0].text)))"
235
- ```
236
-
237
- ### Recommended Tools for Verification
238
-
239
- | Tool | Purpose | When to Use |
240
- |------|---------|-------------|
241
- | `validateCodeQuality` | Code quality validation | Check complexity, style violations |
242
- | `analyzeComplexity` | Complexity analysis | Verify function length, nesting depth |
243
- | `findSymbol` | Find implementations | Verify feature implementation exists |
244
- | `findReferences` | Find usages | Check if all references are correct |
245
-
246
- ### Example Tool Usage in Verification
247
-
248
- **1. Validate code quality:**
249
-
250
- ```bash
251
- node -e "import('@su-record/vibe/tools').then(t => t.validateCodeQuality({targetPath: 'src/auth/', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
252
- ```
253
-
254
- **2. Analyze complexity of implementation:**
255
-
256
- ```bash
257
- node -e "import('@su-record/vibe/tools').then(t => t.analyzeComplexity({targetPath: 'src/auth/login.ts', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
258
- ```
259
-
260
- **3. Find implemented feature:**
261
-
262
- ```bash
263
- node -e "import('@su-record/vibe/tools').then(t => t.findSymbol({symbolName: 'handleLogin', searchPath: 'src/'}).then(r => console.log(r.content[0].text)))"
264
- ```
265
-
266
- ## Next Step
267
-
268
- On verification pass:
269
-
270
- ```
271
- Complete! Proceed to next feature.
272
- ```
273
-
274
- On verification fail:
275
-
276
- ```
277
- /vibe.run "feature-name" --fix # Fix failed scenarios
278
- ```
279
-
280
- ---
281
-
282
- ARGUMENTS: $ARGUMENTS
1
+ ---
2
+ description: Verify implementation against SPEC requirements
3
+ argument-hint: "feature name"
4
+ ---
5
+
6
+ # /vibe.verify
7
+
8
+ **품질 검증 자동화** - 비개발자도 품질을 신뢰할 수 있도록.
9
+
10
+ > 모든 시나리오 통과 = 품질 보장
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ /vibe.verify "feature-name" # SPEC 기반 검증
16
+ /vibe.verify --e2e "feature-name" # E2E 브라우저 테스트 (agents/e2e-tester.md)
17
+ /vibe.verify --e2e --visual # 시각적 회귀 테스트
18
+ /vibe.verify --e2e --record # 비디오 녹화
19
+ ```
20
+
21
+ ## 핵심 원칙
22
+
23
+ ```
24
+ ┌─────────────────────────────────────────────────────────────────┐
25
+ │ 비개발자가 알아야 할 것 │
26
+ │ │
27
+ │ ✅ 시나리오 4/4 통과 │
28
+ │ 📈 품질 점수: 94/100 │
29
+ │ │
30
+ │ 이것만 보면 됨. 나머지는 시스템이 알아서. │
31
+ └─────────────────────────────────────────────────────────────────┘
32
+ ```
33
+
34
+ ## Process
35
+
36
+ ### 1. Load Feature File
37
+
38
+ ```
39
+ 📄 .claude/vibe/features/{feature-name}.feature → 시나리오 목록
40
+ 📄 .claude/vibe/specs/{feature-name}.md → 검증 기준 (참조)
41
+ ```
42
+
43
+ **Feature 파일이 없으면**:
44
+ ```
45
+ ❌ Feature 파일이 없습니다.
46
+ 먼저 /vibe.spec "{feature-name}"을 실행하세요.
47
+ ```
48
+
49
+ ### 2. Scenario-by-Scenario Verification
50
+
51
+ 각 시나리오별 자동 검증:
52
+
53
+ ```
54
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
55
+ 🔍 Scenario 1/4: 유효한 로그인 성공
56
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
57
+
58
+ Given: 사용자가 등록되어 있다
59
+ → 검증: 사용자 생성 API 존재? ✅
60
+ → 검증: 테스트 사용자 데이터? ✅
61
+
62
+ When: 유효한 이메일과 비밀번호로 로그인
63
+ → 검증: POST /login 엔드포인트? ✅
64
+ → 검증: 요청 처리 로직? ✅
65
+
66
+ Then: 로그인 성공 + JWT 토큰 반환
67
+ → 검증: 성공 응답 코드 200? ✅
68
+ → 검증: JWT 토큰 포함? ✅
69
+
70
+ ✅ Scenario 1 통과!
71
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
72
+ ```
73
+
74
+ ### 3. Verification Methods (자동 선택)
75
+
76
+ | 방법 | 조건 | 검증 내용 |
77
+ |------|------|-----------|
78
+ | **테스트 실행** | 테스트 파일 존재 시 | `npm test`, `pytest` 등 실행 |
79
+ | **코드 분석** | 항상 | 구현 여부, 로직 확인 |
80
+ | **빌드 검증** | 빌드 스크립트 존재 시 | 컴파일 에러 확인 |
81
+ | **타입 검사** | TypeScript 등 | 타입 에러 확인 |
82
+
83
+ ### 4. Quality Report (자동 생성)
84
+
85
+ ```
86
+ ┌─────────────────────────────────────────────────────────────────┐
87
+ │ 📊 VERIFICATION REPORT: login │
88
+ ├─────────────────────────────────────────────────────────────────┤
89
+ │ │
90
+ │ ✅ 시나리오: 4/4 통과 (100%) │
91
+ │ │
92
+ │ ┌───────────────────────────────────────────────────────────┐ │
93
+ │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
94
+ │ │───│───────────────────────│───────│──────│──────│────────│ │
95
+ │ │ 1 │ 유효한 로그인 성공 │ ✅ │ ✅ │ ✅ │ ✅ │ │
96
+ │ │ 2 │ 잘못된 비밀번호 에러 │ ✅ │ ✅ │ ✅ │ ✅ │ │
97
+ │ │ 3 │ 이메일 형식 검증 │ ✅ │ ✅ │ ✅ │ ✅ │ │
98
+ │ │ 4 │ 비밀번호 찾기 링크 │ ✅ │ ✅ │ ✅ │ ✅ │ │
99
+ │ └───────────────────────────────────────────────────────────┘ │
100
+ │ │
101
+ │ 📈 품질 점수: 94/100 │
102
+ │ │
103
+ │ ┌─────────────────────────────────────────────────────────┐ │
104
+ │ │ 항목 │ 결과 │ 상세 │ │
105
+ │ │───────────────────│───────│─────────────────────────────│ │
106
+ │ │ 빌드 │ ✅ │ 성공 │ │
107
+ │ │ 테스트 │ ✅ │ 12/12 통과 │ │
108
+ │ │ 타입 검사 │ ✅ │ 에러 0개 │ │
109
+ │ │ 복잡도 │ ✅ │ 모든 함수 ≤20줄 │ │
110
+ │ │ 코드 커버리지 │ ⚠️ │ 78% (목표: 80%) │ │
111
+ │ └─────────────────────────────────────────────────────────┘ │
112
+ │ │
113
+ │ 📋 권장 사항: │
114
+ │ - 코드 커버리지 2% 추가 필요 (auth.service.ts line 45-52) │
115
+ │ │
116
+ └─────────────────────────────────────────────────────────────────┘
117
+ ```
118
+
119
+ ### 실패 시 리포트
120
+
121
+ ```
122
+ ┌─────────────────────────────────────────────────────────────────┐
123
+ │ 📊 VERIFICATION REPORT: login │
124
+ ├─────────────────────────────────────────────────────────────────┤
125
+ │ │
126
+ │ ❌ 시나리오: 3/4 통과 (75%) │
127
+ │ │
128
+ │ ┌───────────────────────────────────────────────────────────┐ │
129
+ │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
130
+ │ │───│───────────────────────│───────│──────│──────│────────│ │
131
+ │ │ 1 │ 유효한 로그인 성공 │ ✅ │ ✅ │ ✅ │ ✅ │ │
132
+ │ │ 2 │ 잘못된 비밀번호 에러 │ ✅ │ ✅ │ ✅ │ ✅ │ │
133
+ │ │ 3 │ 이메일 형식 검증 │ ✅ │ ✅ │ ✅ │ ✅ │ │
134
+ │ │ 4 │ 비밀번호 찾기 링크 │ ✅ │ ❌ │ - │ ❌ │ │
135
+ │ └───────────────────────────────────────────────────────────┘ │
136
+ │ │
137
+ │ ❌ 실패 상세: │
138
+ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
139
+ │ Scenario 4: 비밀번호 찾기 링크 │
140
+ │ │
141
+ │ When: "비밀번호 찾기" 클릭 │
142
+ │ ❌ 문제: 링크가 구현되지 않음 │
143
+ │ 📍 위치: LoginForm.tsx line 42 │
144
+ │ 💡 수정: "Forgot password" 링크 추가 필요 │
145
+ │ │
146
+ │ 🔧 자동 수정 실행: /vibe.run "login" --fix │
147
+ │ │
148
+ └─────────────────────────────────────────────────────────────────┘
149
+ ```
150
+
151
+ ## Input
152
+
153
+ - `.claude/vibe/features/{feature-name}.feature` - BDD scenarios
154
+ - `.claude/vibe/specs/{feature-name}.md` - SPEC document (reference)
155
+ - Implemented source code
156
+
157
+ ## Output
158
+
159
+ - Verification result report (terminal output)
160
+ - Passed/failed scenario list
161
+ - Items needing fixes
162
+
163
+ ## Example
164
+
165
+ ```
166
+ User: /vibe.verify "login"
167
+
168
+ Claude:
169
+ 📄 Loading Feature: .claude/vibe/features/login.feature
170
+ 🔍 검증 시작...
171
+
172
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
173
+ 🔍 Scenario 1/4: 유효한 로그인 성공
174
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
175
+ ✅ Given: 사용자 등록 - OK
176
+ ✅ When: 로그인 시도 - OK
177
+ ✅ Then: JWT 토큰 반환 - OK
178
+ ✅ 통과!
179
+
180
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
181
+ 🔍 Scenario 2/4: 잘못된 비밀번호 에러
182
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
183
+ ✅ Given: OK
184
+ ✅ When: OK
185
+ ✅ Then: OK
186
+ ✅ 통과!
187
+
188
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
189
+ 🔍 Scenario 3/4: 이메일 형식 검증
190
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
191
+ ✅ Given: OK
192
+ ✅ When: OK
193
+ ✅ Then: OK
194
+ ✅ 통과!
195
+
196
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
197
+ 🔍 Scenario 4/4: 비밀번호 찾기 링크
198
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
199
+ ✅ Given: OK
200
+ ❌ When: "비밀번호 찾기" 링크 - 없음
201
+ - Then: (스킵)
202
+ ❌ 실패!
203
+
204
+ ┌─────────────────────────────────────────────────────────────────┐
205
+ │ 📊 VERIFICATION REPORT: login │
206
+ ├─────────────────────────────────────────────────────────────────┤
207
+ │ │
208
+ │ ❌ 시나리오: 3/4 통과 (75%) │
209
+ │ │
210
+ │ | # | Scenario | Status | │
211
+ │ |---|───────────────────────|────────| │
212
+ │ | 1 | 유효한 로그인 성공 | ✅ | │
213
+ │ | 2 | 잘못된 비밀번호 에러 | ✅ | │
214
+ │ | 3 | 이메일 형식 검증 | ✅ | │
215
+ │ | 4 | 비밀번호 찾기 링크 | ❌ | │
216
+ │ │
217
+ │ 📈 품질 점수: 75/100 │
218
+ │ │
219
+ │ ❌ 수정 필요: │
220
+ │ - Scenario 4: LoginForm.tsx에 "Forgot password" 링크 추가 │
221
+ │ │
222
+ │ 🔧 자동 수정: /vibe.run "login" --fix │
223
+ │ │
224
+ └─────────────────────────────────────────────────────────────────┘
225
+ ```
226
+
227
+ ## Vibe Tools (Code Analysis & Quality)
228
+
229
+ ### Tool Invocation
230
+
231
+ All tools are called via:
232
+
233
+ ```bash
234
+ node -e "import('@su-record/vibe/tools').then(t => t.TOOL_NAME({...args}).then(r => console.log(r.content[0].text)))"
235
+ ```
236
+
237
+ ### Recommended Tools for Verification
238
+
239
+ | Tool | Purpose | When to Use |
240
+ |------|---------|-------------|
241
+ | `validateCodeQuality` | Code quality validation | Check complexity, style violations |
242
+ | `analyzeComplexity` | Complexity analysis | Verify function length, nesting depth |
243
+ | `findSymbol` | Find implementations | Verify feature implementation exists |
244
+ | `findReferences` | Find usages | Check if all references are correct |
245
+
246
+ ### Example Tool Usage in Verification
247
+
248
+ **1. Validate code quality:**
249
+
250
+ ```bash
251
+ node -e "import('@su-record/vibe/tools').then(t => t.validateCodeQuality({targetPath: 'src/auth/', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
252
+ ```
253
+
254
+ **2. Analyze complexity of implementation:**
255
+
256
+ ```bash
257
+ node -e "import('@su-record/vibe/tools').then(t => t.analyzeComplexity({targetPath: 'src/auth/login.ts', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
258
+ ```
259
+
260
+ **3. Find implemented feature:**
261
+
262
+ ```bash
263
+ node -e "import('@su-record/vibe/tools').then(t => t.findSymbol({symbolName: 'handleLogin', searchPath: 'src/'}).then(r => console.log(r.content[0].text)))"
264
+ ```
265
+
266
+ ## Next Step
267
+
268
+ On verification pass:
269
+
270
+ ```
271
+ Complete! Proceed to next feature.
272
+ ```
273
+
274
+ On verification fail:
275
+
276
+ ```
277
+ /vibe.run "feature-name" --fix # Fix failed scenarios
278
+ ```
279
+
280
+ ---
281
+
282
+ ARGUMENTS: $ARGUMENTS
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AA+3EH,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAm6EH,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"}