@su-record/vibe 2.5.7 → 2.5.8

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 (188) hide show
  1. package/CLAUDE.md +338 -338
  2. package/LICENSE +21 -21
  3. package/README.md +262 -262
  4. package/agents/build-error-resolver.md +115 -0
  5. package/agents/compounder.md +261 -261
  6. package/agents/diagrammer.md +178 -178
  7. package/agents/e2e-tester.md +266 -266
  8. package/agents/explorer.md +48 -48
  9. package/agents/implementer.md +54 -54
  10. package/agents/refactor-cleaner.md +143 -0
  11. package/agents/research/best-practices-agent.md +189 -189
  12. package/agents/research/codebase-patterns-agent.md +147 -147
  13. package/agents/research/framework-docs-agent.md +178 -178
  14. package/agents/research/security-advisory-agent.md +203 -203
  15. package/agents/review/architecture-reviewer.md +107 -107
  16. package/agents/review/complexity-reviewer.md +116 -116
  17. package/agents/review/data-integrity-reviewer.md +88 -88
  18. package/agents/review/git-history-reviewer.md +103 -103
  19. package/agents/review/performance-reviewer.md +86 -86
  20. package/agents/review/python-reviewer.md +150 -150
  21. package/agents/review/rails-reviewer.md +139 -139
  22. package/agents/review/react-reviewer.md +144 -144
  23. package/agents/review/security-reviewer.md +80 -80
  24. package/agents/review/simplicity-reviewer.md +140 -140
  25. package/agents/review/test-coverage-reviewer.md +116 -116
  26. package/agents/review/typescript-reviewer.md +127 -127
  27. package/agents/searcher.md +54 -54
  28. package/agents/simplifier.md +120 -120
  29. package/agents/tester.md +49 -49
  30. package/agents/ui-previewer.md +129 -129
  31. package/commands/vibe.analyze.md +356 -356
  32. package/commands/vibe.reason.md +329 -329
  33. package/commands/vibe.review.md +326 -326
  34. package/commands/vibe.run.md +1031 -1031
  35. package/commands/vibe.spec.md +1022 -1022
  36. package/commands/vibe.utils.md +296 -202
  37. package/commands/vibe.verify.md +375 -375
  38. package/dist/cli/collaborator.js +52 -52
  39. package/dist/cli/detect.js +32 -32
  40. package/dist/cli/index.js +112 -112
  41. package/dist/cli/llm.js +144 -144
  42. package/dist/cli/mcp.d.ts +49 -0
  43. package/dist/cli/mcp.d.ts.map +1 -0
  44. package/dist/cli/mcp.js +169 -0
  45. package/dist/cli/mcp.js.map +1 -0
  46. package/dist/lib/PythonParser.js +108 -108
  47. package/dist/lib/gemini-mcp.d.ts +10 -0
  48. package/dist/lib/gemini-mcp.d.ts.map +1 -0
  49. package/dist/lib/gemini-mcp.js +353 -0
  50. package/dist/lib/gemini-mcp.js.map +1 -0
  51. package/dist/lib/gpt-api.js +4 -4
  52. package/dist/lib/gpt-mcp.d.ts +10 -0
  53. package/dist/lib/gpt-mcp.d.ts.map +1 -0
  54. package/dist/lib/gpt-mcp.js +352 -0
  55. package/dist/lib/gpt-mcp.js.map +1 -0
  56. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  57. package/dist/lib/memory/MemorySearch.js +20 -20
  58. package/dist/lib/memory/MemoryStorage.js +64 -64
  59. package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
  60. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
  61. package/dist/tools/analytics/getUsageAnalytics.js +246 -0
  62. package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
  63. package/dist/tools/analytics/index.d.ts +5 -0
  64. package/dist/tools/analytics/index.d.ts.map +1 -0
  65. package/dist/tools/analytics/index.js +5 -0
  66. package/dist/tools/analytics/index.js.map +1 -0
  67. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  68. package/dist/tools/convention/getCodingGuide.d.ts +7 -0
  69. package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
  70. package/dist/tools/convention/getCodingGuide.js +69 -0
  71. package/dist/tools/convention/getCodingGuide.js.map +1 -0
  72. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  73. package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
  74. package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
  75. package/dist/tools/planning/analyzeRequirements.js +171 -0
  76. package/dist/tools/planning/analyzeRequirements.js.map +1 -0
  77. package/dist/tools/planning/createUserStories.d.ts +9 -0
  78. package/dist/tools/planning/createUserStories.d.ts.map +1 -0
  79. package/dist/tools/planning/createUserStories.js +124 -0
  80. package/dist/tools/planning/createUserStories.js.map +1 -0
  81. package/dist/tools/planning/featureRoadmap.d.ts +10 -0
  82. package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
  83. package/dist/tools/planning/featureRoadmap.js +207 -0
  84. package/dist/tools/planning/featureRoadmap.js.map +1 -0
  85. package/dist/tools/planning/generatePrd.d.ts +11 -0
  86. package/dist/tools/planning/generatePrd.d.ts.map +1 -0
  87. package/dist/tools/planning/generatePrd.js +161 -0
  88. package/dist/tools/planning/generatePrd.js.map +1 -0
  89. package/dist/tools/planning/index.d.ts +8 -0
  90. package/dist/tools/planning/index.d.ts.map +1 -0
  91. package/dist/tools/planning/index.js +8 -0
  92. package/dist/tools/planning/index.js.map +1 -0
  93. package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
  94. package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
  95. package/dist/tools/prompt/analyzePrompt.js +150 -0
  96. package/dist/tools/prompt/analyzePrompt.js.map +1 -0
  97. package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
  98. package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
  99. package/dist/tools/prompt/enhancePrompt.js +110 -0
  100. package/dist/tools/prompt/enhancePrompt.js.map +1 -0
  101. package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
  102. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
  103. package/dist/tools/prompt/enhancePromptGemini.js +332 -0
  104. package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
  105. package/dist/tools/prompt/index.d.ts +7 -0
  106. package/dist/tools/prompt/index.d.ts.map +1 -0
  107. package/dist/tools/prompt/index.js +7 -0
  108. package/dist/tools/prompt/index.js.map +1 -0
  109. package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
  110. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
  111. package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
  112. package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
  113. package/dist/tools/reasoning/index.d.ts +5 -0
  114. package/dist/tools/reasoning/index.d.ts.map +1 -0
  115. package/dist/tools/reasoning/index.js +5 -0
  116. package/dist/tools/reasoning/index.js.map +1 -0
  117. package/dist/tools/thinking/analyzeProblem.d.ts +7 -0
  118. package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
  119. package/dist/tools/thinking/analyzeProblem.js +55 -0
  120. package/dist/tools/thinking/analyzeProblem.js.map +1 -0
  121. package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
  122. package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
  123. package/dist/tools/thinking/breakDownProblem.js +145 -0
  124. package/dist/tools/thinking/breakDownProblem.js.map +1 -0
  125. package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
  126. package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
  127. package/dist/tools/thinking/createThinkingChain.js +44 -0
  128. package/dist/tools/thinking/createThinkingChain.js.map +1 -0
  129. package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
  130. package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
  131. package/dist/tools/thinking/formatAsPlan.js +78 -0
  132. package/dist/tools/thinking/formatAsPlan.js.map +1 -0
  133. package/dist/tools/thinking/index.d.ts +10 -0
  134. package/dist/tools/thinking/index.d.ts.map +1 -0
  135. package/dist/tools/thinking/index.js +10 -0
  136. package/dist/tools/thinking/index.js.map +1 -0
  137. package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
  138. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
  139. package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
  140. package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
  141. package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
  142. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
  143. package/dist/tools/thinking/thinkAloudProcess.js +80 -0
  144. package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
  145. package/hooks/hooks.json +204 -195
  146. package/hooks/scripts/code-check.js +22 -22
  147. package/hooks/scripts/code-review.js +22 -22
  148. package/hooks/scripts/complexity.js +22 -22
  149. package/hooks/scripts/compound.js +23 -23
  150. package/hooks/scripts/context-save.js +33 -33
  151. package/hooks/scripts/llm-orchestrate.js +171 -171
  152. package/hooks/scripts/post-edit.js +97 -0
  153. package/hooks/scripts/recall.js +22 -22
  154. package/hooks/scripts/session-start.js +30 -30
  155. package/hooks/scripts/utils.js +97 -65
  156. package/languages/csharp-unity.md +515 -515
  157. package/languages/gdscript-godot.md +470 -470
  158. package/languages/ruby-rails.md +489 -489
  159. package/languages/typescript-angular.md +433 -433
  160. package/languages/typescript-astro.md +416 -416
  161. package/languages/typescript-electron.md +406 -406
  162. package/languages/typescript-nestjs.md +524 -524
  163. package/languages/typescript-svelte.md +407 -407
  164. package/languages/typescript-tauri.md +365 -365
  165. package/package.json +83 -83
  166. package/skills/context7-usage.md +102 -102
  167. package/skills/git-worktree.md +181 -181
  168. package/skills/parallel-research.md +77 -77
  169. package/skills/priority-todos.md +239 -239
  170. package/skills/tool-fallback.md +190 -190
  171. package/skills/vibe-capabilities.md +161 -161
  172. package/vibe/constitution.md +227 -227
  173. package/vibe/rules/core/communication-guide.md +98 -98
  174. package/vibe/rules/core/development-philosophy.md +52 -52
  175. package/vibe/rules/core/quick-start.md +102 -102
  176. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  177. package/vibe/rules/quality/checklist.md +276 -276
  178. package/vibe/rules/quality/testing-strategy.md +440 -440
  179. package/vibe/rules/standards/anti-patterns.md +541 -369
  180. package/vibe/rules/standards/code-structure.md +291 -291
  181. package/vibe/rules/standards/complexity-metrics.md +313 -313
  182. package/vibe/rules/standards/naming-conventions.md +198 -198
  183. package/vibe/setup.sh +31 -31
  184. package/vibe/templates/constitution-template.md +252 -252
  185. package/vibe/templates/contract-backend-template.md +526 -526
  186. package/vibe/templates/contract-frontend-template.md +599 -599
  187. package/vibe/templates/feature-template.md +96 -96
  188. package/vibe/templates/spec-template.md +221 -221
@@ -1,375 +1,375 @@
1
- ---
2
- description: Verify implementation against SPEC requirements
3
- argument-hint: "feature name"
4
- ---
5
-
6
- # /vibe.verify
7
-
8
- **Automated Quality Verification** - Making quality trustworthy even for non-developers.
9
-
10
- > All scenarios passed = Quality assured
11
-
12
- ## Usage
13
-
14
- ```
15
- /vibe.verify "feature-name" # SPEC-based verification
16
- /vibe.verify --e2e "feature-name" # E2E browser test (agents/e2e-tester.md)
17
- /vibe.verify --e2e --visual # Visual regression test
18
- /vibe.verify --e2e --record # Video recording
19
- ```
20
-
21
- ## Core Principles
22
-
23
- ```
24
- ┌─────────────────────────────────────────────────────────────────┐
25
- │ What non-developers need to know │
26
- │ │
27
- │ ✅ Scenarios: 4/4 passed │
28
- │ 📈 Quality Score: 94/100 │
29
- │ │
30
- │ Just look at this. The system handles the rest. │
31
- └─────────────────────────────────────────────────────────────────┘
32
- ```
33
-
34
- ## Process
35
-
36
- ### 1. Load Feature File
37
-
38
- ```
39
- 📄 .claude/vibe/features/{feature-name}.feature → Scenario list
40
- 📄 .claude/vibe/specs/{feature-name}.md → Verification criteria (reference)
41
- ```
42
-
43
- **If feature file does not exist**:
44
- ```
45
- ❌ Feature file not found.
46
- Run /vibe.spec "{feature-name}" first.
47
- ```
48
-
49
- ### 2. Scenario-by-Scenario Verification
50
-
51
- Automatic verification for each scenario:
52
-
53
- ```
54
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
55
- 🔍 Scenario 1/4: Valid login success
56
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
57
-
58
- Given: User is registered
59
- → Verify: User creation API exists? ✅
60
- → Verify: Test user data available? ✅
61
-
62
- When: Login with valid email and password
63
- → Verify: POST /login endpoint exists? ✅
64
- → Verify: Request handling logic exists? ✅
65
-
66
- Then: Login success + JWT token returned
67
- → Verify: Success response code 200? ✅
68
- → Verify: JWT token included? ✅
69
-
70
- ✅ Scenario 1 passed!
71
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
72
- ```
73
-
74
- ### 3. Verification Methods (Auto-selected)
75
-
76
- | Method | Condition | Verification Content |
77
- |--------|-----------|---------------------|
78
- | **Test Execution** | When test files exist | Run `npm test`, `pytest`, etc. |
79
- | **Code Analysis** | Always | Check implementation, verify logic |
80
- | **Build Verification** | When build script exists | Check for compile errors |
81
- | **Type Check** | TypeScript, etc. | Check for type errors |
82
-
83
- ### 4. Quality Report (Auto-generated)
84
-
85
- ```
86
- ┌─────────────────────────────────────────────────────────────────┐
87
- │ 📊 VERIFICATION REPORT: login │
88
- ├─────────────────────────────────────────────────────────────────┤
89
- │ │
90
- │ ✅ Scenarios: 4/4 passed (100%) │
91
- │ │
92
- │ ┌───────────────────────────────────────────────────────────┐ │
93
- │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
94
- │ │───│───────────────────────│───────│──────│──────│────────│ │
95
- │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
96
- │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
97
- │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
98
- │ │ 4 │ Forgot password link │ ✅ │ ✅ │ ✅ │ ✅ │ │
99
- │ └───────────────────────────────────────────────────────────┘ │
100
- │ │
101
- │ 📈 Quality Score: 94/100 │
102
- │ │
103
- │ ┌─────────────────────────────────────────────────────────┐ │
104
- │ │ Item │ Result│ Details │ │
105
- │ │───────────────────│───────│─────────────────────────────│ │
106
- │ │ Build │ ✅ │ Success │ │
107
- │ │ Tests │ ✅ │ 12/12 passed │ │
108
- │ │ Type Check │ ✅ │ 0 errors │ │
109
- │ │ Complexity │ ✅ │ All functions ≤30 lines │ │
110
- │ │ Code Coverage │ ⚠️ │ 78% (target: 80%) │ │
111
- │ └─────────────────────────────────────────────────────────┘ │
112
- │ │
113
- │ 📋 Recommendations: │
114
- │ - Need 2% more code coverage (auth.service.ts line 45-52) │
115
- │ │
116
- └─────────────────────────────────────────────────────────────────┘
117
- ```
118
-
119
- ### Failure Report
120
-
121
- ```
122
- ┌─────────────────────────────────────────────────────────────────┐
123
- │ 📊 VERIFICATION REPORT: login │
124
- ├─────────────────────────────────────────────────────────────────┤
125
- │ │
126
- │ ❌ Scenarios: 3/4 passed (75%) │
127
- │ │
128
- │ ┌───────────────────────────────────────────────────────────┐ │
129
- │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
130
- │ │───│───────────────────────│───────│──────│──────│────────│ │
131
- │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
132
- │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
133
- │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
134
- │ │ 4 │ Forgot password link │ ✅ │ ❌ │ - │ ❌ │ │
135
- │ └───────────────────────────────────────────────────────────┘ │
136
- │ │
137
- │ ❌ Failure Details: │
138
- │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
139
- │ Scenario 4: Forgot password link │
140
- │ │
141
- │ When: Click "Forgot password" │
142
- │ ❌ Issue: Link not implemented │
143
- │ 📍 Location: LoginForm.tsx line 42 │
144
- │ 💡 Fix: Need to add "Forgot password" link │
145
- │ │
146
- │ 🔧 Auto-fix command: /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
- 🔍 Starting verification...
171
-
172
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
173
- 🔍 Scenario 1/4: Valid login success
174
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
175
- ✅ Given: User registered - OK
176
- ✅ When: Login attempt - OK
177
- ✅ Then: JWT token returned - OK
178
- ✅ Passed!
179
-
180
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
181
- 🔍 Scenario 2/4: Invalid password error
182
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
183
- ✅ Given: OK
184
- ✅ When: OK
185
- ✅ Then: OK
186
- ✅ Passed!
187
-
188
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
189
- 🔍 Scenario 3/4: Email format validation
190
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
191
- ✅ Given: OK
192
- ✅ When: OK
193
- ✅ Then: OK
194
- ✅ Passed!
195
-
196
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
197
- 🔍 Scenario 4/4: Forgot password link
198
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
199
- ✅ Given: OK
200
- ❌ When: "Forgot password" link - missing
201
- - Then: (skipped)
202
- ❌ Failed!
203
-
204
- ┌─────────────────────────────────────────────────────────────────┐
205
- │ 📊 VERIFICATION REPORT: login │
206
- ├─────────────────────────────────────────────────────────────────┤
207
- │ │
208
- │ ❌ Scenarios: 3/4 passed (75%) │
209
- │ │
210
- │ | # | Scenario | Status | │
211
- │ |---|───────────────────────|────────| │
212
- │ | 1 | Valid login success | ✅ | │
213
- │ | 2 | Invalid password error| ✅ | │
214
- │ | 3 | Email format validation| ✅ | │
215
- │ | 4 | Forgot password link | ❌ | │
216
- │ │
217
- │ 📈 Quality Score: 75/100 │
218
- │ │
219
- │ ❌ Fixes needed: │
220
- │ - Scenario 4: Add "Forgot password" link in LoginForm.tsx │
221
- │ │
222
- │ 🔧 Auto-fix: /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
- ## Quality Gate (Mandatory)
283
-
284
- ### Verification Quality Checklist
285
-
286
- Before marking verification complete, ALL items must pass:
287
-
288
- | Category | Check Item | Weight |
289
- |----------|------------|--------|
290
- | **Scenario Coverage** | All scenarios from feature file tested | 25% |
291
- | **Given Verification** | All preconditions validated | 15% |
292
- | **When Verification** | All actions executable | 15% |
293
- | **Then Verification** | All expected outcomes confirmed | 20% |
294
- | **Build Status** | Project builds without errors | 10% |
295
- | **Test Status** | All existing tests pass | 10% |
296
- | **Type Check** | No TypeScript/type errors | 5% |
297
-
298
- ### Verification Score Calculation
299
-
300
- ```
301
- Score = (passed_scenarios / total_scenarios) × 100
302
-
303
- Grades:
304
- - 100%: ✅ PERFECT - All scenarios pass
305
- - 90-99%: ⚠️ ALMOST - Minor gaps, review needed
306
- - 70-89%: ❌ INCOMPLETE - Significant gaps
307
- - 0-69%: ❌ FAILED - Major implementation missing
308
- ```
309
-
310
- ### Pass/Fail Criteria
311
-
312
- | Metric | Pass Threshold | Action on Fail |
313
- |--------|----------------|----------------|
314
- | Scenario pass rate | 100% | Run `/vibe.run --fix` |
315
- | Build status | Success | Fix build errors first |
316
- | Test pass rate | 100% | Fix failing tests |
317
- | Type check | 0 errors | Fix type errors |
318
-
319
- ### Verification Methods Matrix
320
-
321
- | Method | Trigger Condition | What It Checks |
322
- |--------|-------------------|----------------|
323
- | **Code Analysis** | Always | Implementation exists |
324
- | **Test Execution** | Test files exist | Logic correctness |
325
- | **Build Verification** | Build script exists | Compilation success |
326
- | **Type Check** | tsconfig.json exists | Type safety |
327
- | **Lint Check** | ESLint config exists | Code style |
328
-
329
- ### Scenario Verification Depth
330
-
331
- For each scenario, verify at THREE levels:
332
-
333
- | Level | Verification | Example |
334
- |-------|--------------|---------|
335
- | **L1: Existence** | Code/function exists | `login()` function defined |
336
- | **L2: Logic** | Implementation is correct | Validates email format |
337
- | **L3: Integration** | Works with other components | Returns valid JWT |
338
-
339
- ### Auto-Fix Triggers
340
-
341
- | Verification Failure | Auto-Fix Action |
342
- |----------------------|-----------------|
343
- | Missing implementation | Generate skeleton from scenario |
344
- | Test failure | Analyze and suggest fix |
345
- | Build error | Show error location |
346
- | Type error | Suggest type annotations |
347
-
348
- ### Verification Report Requirements
349
-
350
- Every verification MUST produce:
351
-
352
- 1. **Scenario Summary Table**
353
- - Scenario name
354
- - Given/When/Then status (✅/❌)
355
- - Overall status
356
-
357
- 2. **Quality Metrics**
358
- - Build status
359
- - Test pass count
360
- - Type error count
361
- - Code coverage percentage
362
-
363
- 3. **Failure Details** (if any)
364
- - Exact failure point (Given/When/Then)
365
- - Expected vs actual
366
- - File path and line number
367
- - Suggested fix command
368
-
369
- 4. **Recommendations**
370
- - Specific files to modify
371
- - Auto-fix command if available
372
-
373
- ---
374
-
375
- ARGUMENTS: $ARGUMENTS
1
+ ---
2
+ description: Verify implementation against SPEC requirements
3
+ argument-hint: "feature name"
4
+ ---
5
+
6
+ # /vibe.verify
7
+
8
+ **Automated Quality Verification** - Making quality trustworthy even for non-developers.
9
+
10
+ > All scenarios passed = Quality assured
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ /vibe.verify "feature-name" # SPEC-based verification
16
+ /vibe.verify --e2e "feature-name" # E2E browser test (agents/e2e-tester.md)
17
+ /vibe.verify --e2e --visual # Visual regression test
18
+ /vibe.verify --e2e --record # Video recording
19
+ ```
20
+
21
+ ## Core Principles
22
+
23
+ ```
24
+ ┌─────────────────────────────────────────────────────────────────┐
25
+ │ What non-developers need to know │
26
+ │ │
27
+ │ ✅ Scenarios: 4/4 passed │
28
+ │ 📈 Quality Score: 94/100 │
29
+ │ │
30
+ │ Just look at this. The system handles the rest. │
31
+ └─────────────────────────────────────────────────────────────────┘
32
+ ```
33
+
34
+ ## Process
35
+
36
+ ### 1. Load Feature File
37
+
38
+ ```
39
+ 📄 .claude/vibe/features/{feature-name}.feature → Scenario list
40
+ 📄 .claude/vibe/specs/{feature-name}.md → Verification criteria (reference)
41
+ ```
42
+
43
+ **If feature file does not exist**:
44
+ ```
45
+ ❌ Feature file not found.
46
+ Run /vibe.spec "{feature-name}" first.
47
+ ```
48
+
49
+ ### 2. Scenario-by-Scenario Verification
50
+
51
+ Automatic verification for each scenario:
52
+
53
+ ```
54
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
55
+ 🔍 Scenario 1/4: Valid login success
56
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
57
+
58
+ Given: User is registered
59
+ → Verify: User creation API exists? ✅
60
+ → Verify: Test user data available? ✅
61
+
62
+ When: Login with valid email and password
63
+ → Verify: POST /login endpoint exists? ✅
64
+ → Verify: Request handling logic exists? ✅
65
+
66
+ Then: Login success + JWT token returned
67
+ → Verify: Success response code 200? ✅
68
+ → Verify: JWT token included? ✅
69
+
70
+ ✅ Scenario 1 passed!
71
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
72
+ ```
73
+
74
+ ### 3. Verification Methods (Auto-selected)
75
+
76
+ | Method | Condition | Verification Content |
77
+ |--------|-----------|---------------------|
78
+ | **Test Execution** | When test files exist | Run `npm test`, `pytest`, etc. |
79
+ | **Code Analysis** | Always | Check implementation, verify logic |
80
+ | **Build Verification** | When build script exists | Check for compile errors |
81
+ | **Type Check** | TypeScript, etc. | Check for type errors |
82
+
83
+ ### 4. Quality Report (Auto-generated)
84
+
85
+ ```
86
+ ┌─────────────────────────────────────────────────────────────────┐
87
+ │ 📊 VERIFICATION REPORT: login │
88
+ ├─────────────────────────────────────────────────────────────────┤
89
+ │ │
90
+ │ ✅ Scenarios: 4/4 passed (100%) │
91
+ │ │
92
+ │ ┌───────────────────────────────────────────────────────────┐ │
93
+ │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
94
+ │ │───│───────────────────────│───────│──────│──────│────────│ │
95
+ │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
96
+ │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
97
+ │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
98
+ │ │ 4 │ Forgot password link │ ✅ │ ✅ │ ✅ │ ✅ │ │
99
+ │ └───────────────────────────────────────────────────────────┘ │
100
+ │ │
101
+ │ 📈 Quality Score: 94/100 │
102
+ │ │
103
+ │ ┌─────────────────────────────────────────────────────────┐ │
104
+ │ │ Item │ Result│ Details │ │
105
+ │ │───────────────────│───────│─────────────────────────────│ │
106
+ │ │ Build │ ✅ │ Success │ │
107
+ │ │ Tests │ ✅ │ 12/12 passed │ │
108
+ │ │ Type Check │ ✅ │ 0 errors │ │
109
+ │ │ Complexity │ ✅ │ All functions ≤30 lines │ │
110
+ │ │ Code Coverage │ ⚠️ │ 78% (target: 80%) │ │
111
+ │ └─────────────────────────────────────────────────────────┘ │
112
+ │ │
113
+ │ 📋 Recommendations: │
114
+ │ - Need 2% more code coverage (auth.service.ts line 45-52) │
115
+ │ │
116
+ └─────────────────────────────────────────────────────────────────┘
117
+ ```
118
+
119
+ ### Failure Report
120
+
121
+ ```
122
+ ┌─────────────────────────────────────────────────────────────────┐
123
+ │ 📊 VERIFICATION REPORT: login │
124
+ ├─────────────────────────────────────────────────────────────────┤
125
+ │ │
126
+ │ ❌ Scenarios: 3/4 passed (75%) │
127
+ │ │
128
+ │ ┌───────────────────────────────────────────────────────────┐ │
129
+ │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
130
+ │ │───│───────────────────────│───────│──────│──────│────────│ │
131
+ │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
132
+ │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
133
+ │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
134
+ │ │ 4 │ Forgot password link │ ✅ │ ❌ │ - │ ❌ │ │
135
+ │ └───────────────────────────────────────────────────────────┘ │
136
+ │ │
137
+ │ ❌ Failure Details: │
138
+ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
139
+ │ Scenario 4: Forgot password link │
140
+ │ │
141
+ │ When: Click "Forgot password" │
142
+ │ ❌ Issue: Link not implemented │
143
+ │ 📍 Location: LoginForm.tsx line 42 │
144
+ │ 💡 Fix: Need to add "Forgot password" link │
145
+ │ │
146
+ │ 🔧 Auto-fix command: /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
+ 🔍 Starting verification...
171
+
172
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
173
+ 🔍 Scenario 1/4: Valid login success
174
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
175
+ ✅ Given: User registered - OK
176
+ ✅ When: Login attempt - OK
177
+ ✅ Then: JWT token returned - OK
178
+ ✅ Passed!
179
+
180
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
181
+ 🔍 Scenario 2/4: Invalid password error
182
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
183
+ ✅ Given: OK
184
+ ✅ When: OK
185
+ ✅ Then: OK
186
+ ✅ Passed!
187
+
188
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
189
+ 🔍 Scenario 3/4: Email format validation
190
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
191
+ ✅ Given: OK
192
+ ✅ When: OK
193
+ ✅ Then: OK
194
+ ✅ Passed!
195
+
196
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
197
+ 🔍 Scenario 4/4: Forgot password link
198
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
199
+ ✅ Given: OK
200
+ ❌ When: "Forgot password" link - missing
201
+ - Then: (skipped)
202
+ ❌ Failed!
203
+
204
+ ┌─────────────────────────────────────────────────────────────────┐
205
+ │ 📊 VERIFICATION REPORT: login │
206
+ ├─────────────────────────────────────────────────────────────────┤
207
+ │ │
208
+ │ ❌ Scenarios: 3/4 passed (75%) │
209
+ │ │
210
+ │ | # | Scenario | Status | │
211
+ │ |---|───────────────────────|────────| │
212
+ │ | 1 | Valid login success | ✅ | │
213
+ │ | 2 | Invalid password error| ✅ | │
214
+ │ | 3 | Email format validation| ✅ | │
215
+ │ | 4 | Forgot password link | ❌ | │
216
+ │ │
217
+ │ 📈 Quality Score: 75/100 │
218
+ │ │
219
+ │ ❌ Fixes needed: │
220
+ │ - Scenario 4: Add "Forgot password" link in LoginForm.tsx │
221
+ │ │
222
+ │ 🔧 Auto-fix: /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
+ ## Quality Gate (Mandatory)
283
+
284
+ ### Verification Quality Checklist
285
+
286
+ Before marking verification complete, ALL items must pass:
287
+
288
+ | Category | Check Item | Weight |
289
+ |----------|------------|--------|
290
+ | **Scenario Coverage** | All scenarios from feature file tested | 25% |
291
+ | **Given Verification** | All preconditions validated | 15% |
292
+ | **When Verification** | All actions executable | 15% |
293
+ | **Then Verification** | All expected outcomes confirmed | 20% |
294
+ | **Build Status** | Project builds without errors | 10% |
295
+ | **Test Status** | All existing tests pass | 10% |
296
+ | **Type Check** | No TypeScript/type errors | 5% |
297
+
298
+ ### Verification Score Calculation
299
+
300
+ ```
301
+ Score = (passed_scenarios / total_scenarios) × 100
302
+
303
+ Grades:
304
+ - 100%: ✅ PERFECT - All scenarios pass
305
+ - 90-99%: ⚠️ ALMOST - Minor gaps, review needed
306
+ - 70-89%: ❌ INCOMPLETE - Significant gaps
307
+ - 0-69%: ❌ FAILED - Major implementation missing
308
+ ```
309
+
310
+ ### Pass/Fail Criteria
311
+
312
+ | Metric | Pass Threshold | Action on Fail |
313
+ |--------|----------------|----------------|
314
+ | Scenario pass rate | 100% | Run `/vibe.run --fix` |
315
+ | Build status | Success | Fix build errors first |
316
+ | Test pass rate | 100% | Fix failing tests |
317
+ | Type check | 0 errors | Fix type errors |
318
+
319
+ ### Verification Methods Matrix
320
+
321
+ | Method | Trigger Condition | What It Checks |
322
+ |--------|-------------------|----------------|
323
+ | **Code Analysis** | Always | Implementation exists |
324
+ | **Test Execution** | Test files exist | Logic correctness |
325
+ | **Build Verification** | Build script exists | Compilation success |
326
+ | **Type Check** | tsconfig.json exists | Type safety |
327
+ | **Lint Check** | ESLint config exists | Code style |
328
+
329
+ ### Scenario Verification Depth
330
+
331
+ For each scenario, verify at THREE levels:
332
+
333
+ | Level | Verification | Example |
334
+ |-------|--------------|---------|
335
+ | **L1: Existence** | Code/function exists | `login()` function defined |
336
+ | **L2: Logic** | Implementation is correct | Validates email format |
337
+ | **L3: Integration** | Works with other components | Returns valid JWT |
338
+
339
+ ### Auto-Fix Triggers
340
+
341
+ | Verification Failure | Auto-Fix Action |
342
+ |----------------------|-----------------|
343
+ | Missing implementation | Generate skeleton from scenario |
344
+ | Test failure | Analyze and suggest fix |
345
+ | Build error | Show error location |
346
+ | Type error | Suggest type annotations |
347
+
348
+ ### Verification Report Requirements
349
+
350
+ Every verification MUST produce:
351
+
352
+ 1. **Scenario Summary Table**
353
+ - Scenario name
354
+ - Given/When/Then status (✅/❌)
355
+ - Overall status
356
+
357
+ 2. **Quality Metrics**
358
+ - Build status
359
+ - Test pass count
360
+ - Type error count
361
+ - Code coverage percentage
362
+
363
+ 3. **Failure Details** (if any)
364
+ - Exact failure point (Given/When/Then)
365
+ - Expected vs actual
366
+ - File path and line number
367
+ - Suggested fix command
368
+
369
+ 4. **Recommendations**
370
+ - Specific files to modify
371
+ - Auto-fix command if available
372
+
373
+ ---
374
+
375
+ ARGUMENTS: $ARGUMENTS