@su-record/vibe 2.6.14 → 2.6.15

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 (232) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +497 -497
  3. package/agents/architect-low.md +41 -41
  4. package/agents/architect-medium.md +59 -59
  5. package/agents/architect.md +80 -80
  6. package/agents/build-error-resolver.md +115 -115
  7. package/agents/compounder.md +261 -261
  8. package/agents/diagrammer.md +178 -178
  9. package/agents/e2e-tester.md +266 -266
  10. package/agents/explorer-low.md +42 -42
  11. package/agents/explorer-medium.md +59 -59
  12. package/agents/explorer.md +48 -48
  13. package/agents/implementer-low.md +43 -43
  14. package/agents/implementer-medium.md +52 -52
  15. package/agents/implementer.md +54 -54
  16. package/agents/refactor-cleaner.md +143 -143
  17. package/agents/research/best-practices-agent.md +199 -199
  18. package/agents/research/codebase-patterns-agent.md +157 -157
  19. package/agents/research/framework-docs-agent.md +188 -188
  20. package/agents/research/security-advisory-agent.md +213 -213
  21. package/agents/review/architecture-reviewer.md +107 -107
  22. package/agents/review/complexity-reviewer.md +116 -116
  23. package/agents/review/data-integrity-reviewer.md +88 -88
  24. package/agents/review/git-history-reviewer.md +103 -103
  25. package/agents/review/performance-reviewer.md +86 -86
  26. package/agents/review/python-reviewer.md +150 -150
  27. package/agents/review/rails-reviewer.md +139 -139
  28. package/agents/review/react-reviewer.md +144 -144
  29. package/agents/review/security-reviewer.md +80 -80
  30. package/agents/review/simplicity-reviewer.md +140 -140
  31. package/agents/review/test-coverage-reviewer.md +116 -116
  32. package/agents/review/typescript-reviewer.md +127 -127
  33. package/agents/searcher.md +54 -54
  34. package/agents/simplifier.md +120 -120
  35. package/agents/tester.md +49 -49
  36. package/agents/ui-previewer.md +268 -268
  37. package/commands/vibe.analyze.md +356 -356
  38. package/commands/vibe.reason.md +329 -329
  39. package/commands/vibe.review.md +412 -412
  40. package/commands/vibe.run.md +1266 -1266
  41. package/commands/vibe.spec.md +1054 -1054
  42. package/commands/vibe.spec.review.md +319 -319
  43. package/commands/vibe.trace.md +161 -161
  44. package/commands/vibe.utils.md +376 -376
  45. package/commands/vibe.verify.md +375 -375
  46. package/dist/cli/collaborator.js +52 -52
  47. package/dist/cli/detect.js +32 -32
  48. package/dist/cli/hud.js +20 -20
  49. package/dist/cli/index.js +118 -118
  50. package/dist/cli/index.js.map +1 -1
  51. package/dist/cli/llm.js +144 -144
  52. package/dist/cli/mcp.d.ts +49 -0
  53. package/dist/cli/mcp.d.ts.map +1 -0
  54. package/dist/cli/mcp.js +169 -0
  55. package/dist/cli/mcp.js.map +1 -0
  56. package/dist/cli/postinstall.js +858 -858
  57. package/dist/cli/setup/ProjectSetup.d.ts +3 -0
  58. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  59. package/dist/cli/setup/ProjectSetup.js +28 -6
  60. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  61. package/dist/lib/DeepInit.js +24 -24
  62. package/dist/lib/IterationTracker.js +11 -11
  63. package/dist/lib/PythonParser.js +108 -108
  64. package/dist/lib/ReviewRace.js +96 -96
  65. package/dist/lib/SkillFrontmatter.js +28 -28
  66. package/dist/lib/SkillQualityGate.js +9 -9
  67. package/dist/lib/SkillRepository.js +159 -159
  68. package/dist/lib/UltraQA.js +77 -77
  69. package/dist/lib/gemini-api.js +5 -5
  70. package/dist/lib/gemini-mcp.d.ts +10 -0
  71. package/dist/lib/gemini-mcp.d.ts.map +1 -0
  72. package/dist/lib/gemini-mcp.js +353 -0
  73. package/dist/lib/gemini-mcp.js.map +1 -0
  74. package/dist/lib/gpt-api.js +4 -4
  75. package/dist/lib/gpt-mcp.d.ts +10 -0
  76. package/dist/lib/gpt-mcp.d.ts.map +1 -0
  77. package/dist/lib/gpt-mcp.js +352 -0
  78. package/dist/lib/gpt-mcp.js.map +1 -0
  79. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  80. package/dist/lib/memory/MemorySearch.js +20 -20
  81. package/dist/lib/memory/MemoryStorage.js +64 -64
  82. package/dist/orchestrator/AgentManager.js +12 -12
  83. package/dist/orchestrator/MultiLlmResearch.js +8 -8
  84. package/dist/orchestrator/SmartRouter.js +11 -11
  85. package/dist/orchestrator/parallelResearch.js +24 -24
  86. package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
  87. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
  88. package/dist/tools/analytics/getUsageAnalytics.js +246 -0
  89. package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
  90. package/dist/tools/analytics/index.d.ts +5 -0
  91. package/dist/tools/analytics/index.d.ts.map +1 -0
  92. package/dist/tools/analytics/index.js +5 -0
  93. package/dist/tools/analytics/index.js.map +1 -0
  94. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  95. package/dist/tools/convention/getCodingGuide.d.ts +7 -0
  96. package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
  97. package/dist/tools/convention/getCodingGuide.js +69 -0
  98. package/dist/tools/convention/getCodingGuide.js.map +1 -0
  99. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  100. package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
  101. package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
  102. package/dist/tools/planning/analyzeRequirements.js +171 -0
  103. package/dist/tools/planning/analyzeRequirements.js.map +1 -0
  104. package/dist/tools/planning/createUserStories.d.ts +9 -0
  105. package/dist/tools/planning/createUserStories.d.ts.map +1 -0
  106. package/dist/tools/planning/createUserStories.js +124 -0
  107. package/dist/tools/planning/createUserStories.js.map +1 -0
  108. package/dist/tools/planning/featureRoadmap.d.ts +10 -0
  109. package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
  110. package/dist/tools/planning/featureRoadmap.js +207 -0
  111. package/dist/tools/planning/featureRoadmap.js.map +1 -0
  112. package/dist/tools/planning/generatePrd.d.ts +11 -0
  113. package/dist/tools/planning/generatePrd.d.ts.map +1 -0
  114. package/dist/tools/planning/generatePrd.js +161 -0
  115. package/dist/tools/planning/generatePrd.js.map +1 -0
  116. package/dist/tools/planning/index.d.ts +8 -0
  117. package/dist/tools/planning/index.d.ts.map +1 -0
  118. package/dist/tools/planning/index.js +8 -0
  119. package/dist/tools/planning/index.js.map +1 -0
  120. package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
  121. package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
  122. package/dist/tools/prompt/analyzePrompt.js +150 -0
  123. package/dist/tools/prompt/analyzePrompt.js.map +1 -0
  124. package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
  125. package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
  126. package/dist/tools/prompt/enhancePrompt.js +110 -0
  127. package/dist/tools/prompt/enhancePrompt.js.map +1 -0
  128. package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
  129. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
  130. package/dist/tools/prompt/enhancePromptGemini.js +332 -0
  131. package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
  132. package/dist/tools/prompt/index.d.ts +7 -0
  133. package/dist/tools/prompt/index.d.ts.map +1 -0
  134. package/dist/tools/prompt/index.js +7 -0
  135. package/dist/tools/prompt/index.js.map +1 -0
  136. package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
  137. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
  138. package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
  139. package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
  140. package/dist/tools/reasoning/index.d.ts +5 -0
  141. package/dist/tools/reasoning/index.d.ts.map +1 -0
  142. package/dist/tools/reasoning/index.js +5 -0
  143. package/dist/tools/reasoning/index.js.map +1 -0
  144. package/dist/tools/spec/prdParser.test.js +171 -171
  145. package/dist/tools/spec/specGenerator.js +169 -169
  146. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  147. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  148. package/dist/tools/thinking/analyzeProblem.d.ts +7 -0
  149. package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
  150. package/dist/tools/thinking/analyzeProblem.js +55 -0
  151. package/dist/tools/thinking/analyzeProblem.js.map +1 -0
  152. package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
  153. package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
  154. package/dist/tools/thinking/breakDownProblem.js +145 -0
  155. package/dist/tools/thinking/breakDownProblem.js.map +1 -0
  156. package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
  157. package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
  158. package/dist/tools/thinking/createThinkingChain.js +44 -0
  159. package/dist/tools/thinking/createThinkingChain.js.map +1 -0
  160. package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
  161. package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
  162. package/dist/tools/thinking/formatAsPlan.js +78 -0
  163. package/dist/tools/thinking/formatAsPlan.js.map +1 -0
  164. package/dist/tools/thinking/index.d.ts +10 -0
  165. package/dist/tools/thinking/index.d.ts.map +1 -0
  166. package/dist/tools/thinking/index.js +10 -0
  167. package/dist/tools/thinking/index.js.map +1 -0
  168. package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
  169. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
  170. package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
  171. package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
  172. package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
  173. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
  174. package/dist/tools/thinking/thinkAloudProcess.js +80 -0
  175. package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
  176. package/hooks/hooks.json +222 -222
  177. package/hooks/scripts/code-check.js +22 -22
  178. package/hooks/scripts/code-review.js +22 -22
  179. package/hooks/scripts/complexity.js +22 -22
  180. package/hooks/scripts/compound.js +23 -23
  181. package/hooks/scripts/context-save.js +33 -33
  182. package/hooks/scripts/gemini-ui-gen.js +281 -281
  183. package/hooks/scripts/generate-brand-assets.js +474 -474
  184. package/hooks/scripts/hud-multiline.js +262 -262
  185. package/hooks/scripts/hud-status.js +291 -291
  186. package/hooks/scripts/keyword-detector.js +214 -214
  187. package/hooks/scripts/llm-orchestrate.js +171 -171
  188. package/hooks/scripts/post-edit.js +97 -97
  189. package/hooks/scripts/post-tool-verify.js +210 -210
  190. package/hooks/scripts/pre-tool-guard.js +125 -125
  191. package/hooks/scripts/recall.js +22 -22
  192. package/hooks/scripts/session-start.js +30 -30
  193. package/hooks/scripts/skill-injector.js +191 -191
  194. package/hooks/scripts/utils.js +97 -97
  195. package/languages/csharp-unity.md +515 -515
  196. package/languages/gdscript-godot.md +470 -470
  197. package/languages/ruby-rails.md +489 -489
  198. package/languages/typescript-angular.md +433 -433
  199. package/languages/typescript-astro.md +416 -416
  200. package/languages/typescript-electron.md +406 -406
  201. package/languages/typescript-nestjs.md +524 -524
  202. package/languages/typescript-svelte.md +407 -407
  203. package/languages/typescript-tauri.md +365 -365
  204. package/package.json +84 -84
  205. package/skills/brand-assets.md +141 -141
  206. package/skills/commerce-patterns.md +361 -361
  207. package/skills/context7-usage.md +102 -102
  208. package/skills/e2e-commerce.md +304 -304
  209. package/skills/frontend-design.md +92 -92
  210. package/skills/git-worktree.md +181 -181
  211. package/skills/parallel-research.md +77 -77
  212. package/skills/priority-todos.md +239 -239
  213. package/skills/seo-checklist.md +244 -244
  214. package/skills/tool-fallback.md +190 -190
  215. package/skills/vibe-capabilities.md +161 -161
  216. package/vibe/constitution.md +227 -227
  217. package/vibe/rules/core/communication-guide.md +98 -98
  218. package/vibe/rules/core/development-philosophy.md +52 -52
  219. package/vibe/rules/core/quick-start.md +102 -102
  220. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  221. package/vibe/rules/quality/checklist.md +276 -276
  222. package/vibe/rules/quality/testing-strategy.md +440 -440
  223. package/vibe/rules/standards/anti-patterns.md +541 -541
  224. package/vibe/rules/standards/code-structure.md +291 -291
  225. package/vibe/rules/standards/complexity-metrics.md +313 -313
  226. package/vibe/rules/standards/naming-conventions.md +198 -198
  227. package/vibe/setup.sh +31 -31
  228. package/vibe/templates/constitution-template.md +252 -252
  229. package/vibe/templates/contract-backend-template.md +526 -526
  230. package/vibe/templates/contract-frontend-template.md +599 -599
  231. package/vibe/templates/feature-template.md +96 -96
  232. 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