@su-record/vibe 2.8.52 → 2.9.1

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 (426) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +169 -169
  3. package/LICENSE +21 -21
  4. package/README.ko.md +43 -128
  5. package/README.md +43 -128
  6. package/agents/architect-low.md +41 -41
  7. package/agents/architect-medium.md +59 -59
  8. package/agents/architect.md +80 -80
  9. package/agents/build-error-resolver.md +115 -115
  10. package/agents/compounder.md +261 -261
  11. package/agents/diagrammer.md +178 -178
  12. package/agents/docs/api-documenter.md +99 -99
  13. package/agents/docs/changelog-writer.md +93 -93
  14. package/agents/e2e-tester.md +294 -294
  15. package/agents/event/event-comms.md +78 -78
  16. package/agents/event/event-content.md +68 -68
  17. package/agents/event/event-image.md +95 -95
  18. package/agents/event/event-ops.md +84 -84
  19. package/agents/event/event-scheduler.md +69 -69
  20. package/agents/event/event-speaker.md +86 -86
  21. package/agents/explorer-low.md +42 -42
  22. package/agents/explorer-medium.md +59 -59
  23. package/agents/explorer.md +48 -48
  24. package/agents/implementer-low.md +43 -43
  25. package/agents/implementer-medium.md +52 -52
  26. package/agents/implementer.md +54 -54
  27. package/agents/junior-mentor.md +141 -141
  28. package/agents/planning/requirements-analyst.md +84 -84
  29. package/agents/planning/ux-advisor.md +83 -83
  30. package/agents/qa/acceptance-tester.md +86 -86
  31. package/agents/qa/edge-case-finder.md +93 -93
  32. package/agents/qa/qa-coordinator.md +131 -131
  33. package/agents/refactor-cleaner.md +143 -143
  34. package/agents/research/best-practices-agent.md +199 -199
  35. package/agents/research/codebase-patterns-agent.md +157 -157
  36. package/agents/research/framework-docs-agent.md +188 -188
  37. package/agents/research/security-advisory-agent.md +213 -213
  38. package/agents/review/architecture-reviewer.md +107 -107
  39. package/agents/review/complexity-reviewer.md +116 -116
  40. package/agents/review/data-integrity-reviewer.md +88 -88
  41. package/agents/review/git-history-reviewer.md +103 -103
  42. package/agents/review/performance-reviewer.md +86 -86
  43. package/agents/review/python-reviewer.md +150 -150
  44. package/agents/review/rails-reviewer.md +139 -139
  45. package/agents/review/react-reviewer.md +144 -144
  46. package/agents/review/security-reviewer.md +80 -80
  47. package/agents/review/simplicity-reviewer.md +140 -140
  48. package/agents/review/test-coverage-reviewer.md +116 -116
  49. package/agents/review/typescript-reviewer.md +127 -127
  50. package/agents/searcher.md +54 -54
  51. package/agents/simplifier.md +120 -120
  52. package/agents/tester.md +49 -49
  53. package/agents/ui/ui-a11y-auditor.md +93 -93
  54. package/agents/ui/ui-antipattern-detector.md +102 -102
  55. package/agents/ui/ui-dataviz-advisor.md +69 -69
  56. package/agents/ui/ui-design-system-gen.md +57 -57
  57. package/agents/ui/ui-industry-analyzer.md +49 -49
  58. package/agents/ui/ui-layout-architect.md +65 -65
  59. package/agents/ui/ui-stack-implementer.md +68 -68
  60. package/agents/ui/ux-compliance-reviewer.md +81 -81
  61. package/agents/ui-previewer.md +258 -258
  62. package/commands/vibe.analyze.md +379 -379
  63. package/commands/vibe.docs.md +32 -32
  64. package/commands/vibe.event.md +163 -163
  65. package/commands/vibe.figma.md +69 -69
  66. package/commands/vibe.review.md +686 -686
  67. package/commands/vibe.run.md +2276 -2276
  68. package/commands/vibe.spec.md +1195 -1195
  69. package/commands/vibe.spec.review.md +609 -609
  70. package/commands/vibe.trace.md +259 -259
  71. package/commands/vibe.utils.md +413 -413
  72. package/commands/vibe.verify.md +510 -510
  73. package/dist/cli/collaborator.js +52 -52
  74. package/dist/cli/commands/config.js +9 -9
  75. package/dist/cli/commands/evolution.js +12 -12
  76. package/dist/cli/commands/figma.js +20 -20
  77. package/dist/cli/commands/info.js +53 -53
  78. package/dist/cli/commands/init.js +5 -5
  79. package/dist/cli/commands/remove.js +14 -14
  80. package/dist/cli/commands/sentinel.js +27 -27
  81. package/dist/cli/commands/skills.js +5 -5
  82. package/dist/cli/commands/slack.js +10 -10
  83. package/dist/cli/commands/stats.js +6 -6
  84. package/dist/cli/commands/telegram.js +12 -12
  85. package/dist/cli/detect.js +32 -32
  86. package/dist/cli/index.js +51 -51
  87. package/dist/cli/llm/claude-commands.js +16 -16
  88. package/dist/cli/llm/config.js +18 -18
  89. package/dist/cli/llm/gemini-commands.js +16 -16
  90. package/dist/cli/llm/gpt-commands.js +19 -19
  91. package/dist/cli/llm/help.js +21 -21
  92. package/dist/cli/postinstall/cursor-agents.js +32 -32
  93. package/dist/cli/postinstall/cursor-rules.js +83 -83
  94. package/dist/cli/postinstall/cursor-skills.js +743 -743
  95. package/dist/cli/postinstall/main.d.ts.map +1 -1
  96. package/dist/cli/postinstall/main.js +40 -66
  97. package/dist/cli/postinstall/main.js.map +1 -1
  98. package/dist/cli/setup/Provisioner.js +42 -42
  99. package/dist/infra/lib/CostAccumulator.d.ts +58 -0
  100. package/dist/infra/lib/CostAccumulator.d.ts.map +1 -0
  101. package/dist/infra/lib/CostAccumulator.js +131 -0
  102. package/dist/infra/lib/CostAccumulator.js.map +1 -0
  103. package/dist/infra/lib/DeepInit.js +24 -24
  104. package/dist/infra/lib/IterationTracker.js +11 -11
  105. package/dist/infra/lib/PythonParser.js +108 -108
  106. package/dist/infra/lib/ReviewRace.js +96 -96
  107. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  108. package/dist/infra/lib/SkillQualityGate.js +9 -9
  109. package/dist/infra/lib/SkillRepository.js +159 -159
  110. package/dist/infra/lib/TokenBudgetTracker.d.ts +13 -0
  111. package/dist/infra/lib/TokenBudgetTracker.d.ts.map +1 -1
  112. package/dist/infra/lib/TokenBudgetTracker.js +44 -3
  113. package/dist/infra/lib/TokenBudgetTracker.js.map +1 -1
  114. package/dist/infra/lib/UltraQA.js +99 -99
  115. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  116. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  117. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  118. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  119. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  120. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  121. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  122. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  123. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  124. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  125. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  126. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  127. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  128. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  129. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  130. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  131. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  132. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  133. package/dist/infra/lib/gemini/orchestration.js +5 -5
  134. package/dist/infra/lib/gpt/orchestration.js +4 -4
  135. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  136. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  137. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  138. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  139. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  140. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  141. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  142. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  143. package/dist/infra/orchestrator/AgentManager.js +12 -12
  144. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  145. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  146. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  147. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  148. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  149. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  150. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  151. package/dist/tools/memory/getMemoryGraph.js +12 -12
  152. package/dist/tools/memory/getSessionContext.js +9 -9
  153. package/dist/tools/memory/linkMemories.js +14 -14
  154. package/dist/tools/memory/listMemories.js +4 -4
  155. package/dist/tools/memory/recallMemory.js +4 -4
  156. package/dist/tools/memory/saveMemory.js +4 -4
  157. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  158. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  159. package/dist/tools/semantic/astGrep.test.js +6 -6
  160. package/dist/tools/spec/prdParser.test.js +171 -171
  161. package/dist/tools/spec/specGenerator.js +169 -169
  162. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  163. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  164. package/hooks/gemini-hooks.json +73 -73
  165. package/hooks/hooks.json +174 -174
  166. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  167. package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -286
  168. package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -210
  169. package/hooks/scripts/auto-commit.js +97 -97
  170. package/hooks/scripts/auto-format.js +64 -64
  171. package/hooks/scripts/auto-test.js +81 -81
  172. package/hooks/scripts/code-check.js +268 -268
  173. package/hooks/scripts/codex-detect.js +46 -46
  174. package/hooks/scripts/codex-review-gate.js +80 -80
  175. package/hooks/scripts/command-log.js +32 -32
  176. package/hooks/scripts/context-save.js +353 -353
  177. package/hooks/scripts/evolution-engine.js +91 -91
  178. package/hooks/scripts/figma-extract.js +635 -477
  179. package/hooks/scripts/hud-status.js +321 -321
  180. package/hooks/scripts/keyword-detector.js +214 -214
  181. package/hooks/scripts/llm-orchestrate.js +572 -572
  182. package/hooks/scripts/post-edit.js +32 -32
  183. package/hooks/scripts/pr-test-gate.js +52 -52
  184. package/hooks/scripts/pre-tool-guard.js +214 -159
  185. package/hooks/scripts/prompt-dispatcher.js +185 -185
  186. package/hooks/scripts/sentinel-guard.js +131 -131
  187. package/hooks/scripts/session-start.js +177 -177
  188. package/hooks/scripts/skill-injector.js +83 -83
  189. package/hooks/scripts/stop-notify.js +209 -209
  190. package/hooks/scripts/utils.js +243 -243
  191. package/languages/csharp-unity.md +515 -515
  192. package/languages/gdscript-godot.md +470 -470
  193. package/languages/ruby-rails.md +489 -489
  194. package/languages/typescript-angular.md +433 -433
  195. package/languages/typescript-astro.md +416 -416
  196. package/languages/typescript-electron.md +406 -406
  197. package/languages/typescript-nestjs.md +524 -524
  198. package/languages/typescript-svelte.md +407 -407
  199. package/languages/typescript-tauri.md +365 -365
  200. package/package.json +101 -101
  201. package/skills/agents-md/SKILL.md +121 -121
  202. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  203. package/skills/agents-md/templates/agents-md.md +36 -36
  204. package/skills/arch-guard/SKILL.md +181 -181
  205. package/skills/arch-guard/agents/detector.md +48 -48
  206. package/skills/arch-guard/agents/reporter.md +48 -48
  207. package/skills/arch-guard/agents/rule-generator.md +49 -49
  208. package/skills/arch-guard/agents/violation-checker.md +51 -51
  209. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  210. package/skills/arch-guard/frameworks/solid.md +102 -102
  211. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  212. package/skills/arch-guard/templates/arch-rules.json +47 -47
  213. package/skills/arch-guard/templates/violation-report.md +53 -53
  214. package/skills/brand-assets/SKILL.md +147 -147
  215. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  216. package/skills/brand-assets/templates/brand-guide.md +161 -161
  217. package/skills/capability-loop/SKILL.md +168 -168
  218. package/skills/capability-loop/agents/capability-designer.md +61 -61
  219. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  220. package/skills/capability-loop/agents/implementer.md +50 -50
  221. package/skills/capability-loop/agents/tester.md +53 -53
  222. package/skills/capability-loop/templates/capability-spec.md +118 -118
  223. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  224. package/skills/characterization-test/SKILL.md +207 -207
  225. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  226. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  227. package/skills/characterization-test/agents/reporter.md +50 -50
  228. package/skills/characterization-test/agents/test-writer.md +49 -49
  229. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  230. package/skills/characterization-test/templates/test-template.ts +101 -101
  231. package/skills/chub-usage/SKILL.md +139 -139
  232. package/skills/claude-md-guide/SKILL.md +351 -351
  233. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  234. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  235. package/skills/commerce-patterns/SKILL.md +64 -64
  236. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  237. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  238. package/skills/commit-push-pr/SKILL.md +77 -77
  239. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  240. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  241. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  242. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  243. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  244. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  245. package/skills/context7-usage/SKILL.md +106 -106
  246. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  247. package/skills/create-prd/SKILL.md +90 -90
  248. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  249. package/skills/create-prd/agents/prioritizer.md +60 -60
  250. package/skills/create-prd/agents/requirements-writer.md +48 -48
  251. package/skills/create-prd/agents/researcher.md +55 -55
  252. package/skills/create-prd/agents/reviewer.md +54 -54
  253. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  254. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  255. package/skills/create-prd/orchestrator.md +70 -70
  256. package/skills/create-prd/rubrics/completeness.md +58 -58
  257. package/skills/create-prd/templates/prd.md +139 -139
  258. package/skills/design-audit/SKILL.md +152 -152
  259. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  260. package/skills/design-audit/agents/performance-auditor.md +46 -46
  261. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  262. package/skills/design-audit/agents/scorer.md +47 -47
  263. package/skills/design-audit/agents/slop-detector.md +47 -47
  264. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  265. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  266. package/skills/design-audit/orchestrator.md +64 -64
  267. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  268. package/skills/design-audit/rubrics/scoring.md +63 -63
  269. package/skills/design-audit/templates/report.md +88 -88
  270. package/skills/design-critique/SKILL.md +139 -139
  271. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  272. package/skills/design-critique/templates/critique-report.md +86 -86
  273. package/skills/design-distill/SKILL.md +130 -130
  274. package/skills/design-distill/templates/design-system.md +132 -132
  275. package/skills/design-normalize/SKILL.md +133 -133
  276. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  277. package/skills/design-normalize/templates/token-audit.md +89 -89
  278. package/skills/design-polish/SKILL.md +131 -131
  279. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  280. package/skills/design-polish/templates/polish-report.md +64 -64
  281. package/skills/design-teach/SKILL.md +182 -182
  282. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  283. package/skills/design-teach/templates/design-context.json +36 -36
  284. package/skills/e2e-commerce/SKILL.md +62 -62
  285. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  286. package/skills/event-comms/SKILL.md +162 -162
  287. package/skills/event-comms/templates/email-invite.md +99 -99
  288. package/skills/event-comms/templates/sns-post.md +133 -133
  289. package/skills/event-ops/SKILL.md +198 -198
  290. package/skills/event-ops/rubrics/contingency.md +85 -85
  291. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  292. package/skills/event-planning/SKILL.md +132 -132
  293. package/skills/event-planning/rubrics/timeline.md +70 -70
  294. package/skills/event-planning/templates/event-plan.md +91 -91
  295. package/skills/exec-plan/SKILL.md +149 -149
  296. package/skills/exec-plan/agents/decomposer.md +47 -47
  297. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  298. package/skills/exec-plan/agents/estimator.md +43 -43
  299. package/skills/exec-plan/agents/validator.md +55 -55
  300. package/skills/exec-plan/orchestrator.md +70 -70
  301. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  302. package/skills/exec-plan/templates/plan.md +147 -147
  303. package/skills/git-worktree/SKILL.md +73 -73
  304. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  305. package/skills/handoff/SKILL.md +110 -110
  306. package/skills/handoff/agents/context-summarizer.md +51 -51
  307. package/skills/handoff/agents/document-writer.md +63 -63
  308. package/skills/handoff/agents/state-collector.md +53 -53
  309. package/skills/handoff/agents/verifier.md +48 -48
  310. package/skills/handoff/rubrics/completeness.md +62 -62
  311. package/skills/handoff/templates/handoff.md +107 -107
  312. package/skills/parallel-research/SKILL.md +89 -89
  313. package/skills/parallel-research/agents/best-practices.md +43 -43
  314. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  315. package/skills/parallel-research/agents/framework-docs.md +45 -45
  316. package/skills/parallel-research/agents/security-advisory.md +46 -46
  317. package/skills/parallel-research/agents/synthesizer.md +52 -52
  318. package/skills/parallel-research/experts/best-practices.md +50 -50
  319. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  320. package/skills/parallel-research/experts/framework-docs.md +65 -65
  321. package/skills/parallel-research/experts/security-advisory.md +69 -69
  322. package/skills/parallel-research/orchestrator.md +65 -65
  323. package/skills/parallel-research/templates/synthesis.md +101 -101
  324. package/skills/prioritization-frameworks/SKILL.md +87 -87
  325. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  326. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  327. package/skills/priority-todos/SKILL.md +64 -64
  328. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  329. package/skills/priority-todos/templates/todo-board.md +59 -59
  330. package/skills/seo-checklist/SKILL.md +58 -58
  331. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  332. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  333. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  334. package/skills/techdebt/SKILL.md +124 -124
  335. package/skills/techdebt/agents/analyzer.md +50 -50
  336. package/skills/techdebt/agents/fixer.md +41 -41
  337. package/skills/techdebt/agents/reviewer.md +47 -47
  338. package/skills/techdebt/agents/scanner.md +44 -44
  339. package/skills/techdebt/orchestrator.md +70 -70
  340. package/skills/techdebt/rubrics/severity.md +51 -51
  341. package/skills/techdebt/scripts/scan.js +90 -90
  342. package/skills/techdebt/templates/report.md +86 -86
  343. package/skills/tool-fallback/SKILL.md +104 -104
  344. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  345. package/skills/typescript-advanced-types/SKILL.md +67 -67
  346. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  347. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  348. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  349. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  350. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  351. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  352. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  353. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  354. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  355. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  356. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  357. package/skills/user-personas/SKILL.md +75 -75
  358. package/skills/user-personas/rubrics/research-methods.md +56 -56
  359. package/skills/user-personas/templates/persona.md +89 -89
  360. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  361. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  362. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  363. package/skills/vibe.docs/SKILL.md +171 -171
  364. package/skills/vibe.docs/templates/architecture.md +80 -80
  365. package/skills/vibe.docs/templates/readme.md +84 -84
  366. package/skills/vibe.docs/templates/release-notes.md +74 -74
  367. package/skills/vibe.figma/SKILL.md +215 -982
  368. package/skills/vibe.figma/rubrics/extraction-checklist.md +51 -51
  369. package/skills/vibe.figma/templates/component-index.md +126 -126
  370. package/skills/vibe.figma/templates/figma-handoff.md +100 -100
  371. package/skills/vibe.figma/templates/remapped-tree.md +277 -277
  372. package/skills/vibe.figma.convert/SKILL.md +188 -511
  373. package/skills/vibe.figma.convert/rubrics/conversion-rules.md +129 -113
  374. package/skills/vibe.figma.convert/templates/component.md +140 -140
  375. package/skills/vibe.figma.extract/SKILL.md +179 -300
  376. package/skills/vibe.figma.extract/rubrics/image-rules.md +145 -137
  377. package/skills/video-production/SKILL.md +52 -52
  378. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  379. package/skills/video-production/templates/production-plan.md +104 -104
  380. package/vibe/config.json +29 -29
  381. package/vibe/constitution.md +227 -227
  382. package/vibe/rules/principles/communication-guide.md +98 -98
  383. package/vibe/rules/principles/development-philosophy.md +52 -52
  384. package/vibe/rules/principles/quick-start.md +102 -102
  385. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  386. package/vibe/rules/quality/checklist.md +276 -276
  387. package/vibe/rules/quality/performance.md +236 -236
  388. package/vibe/rules/quality/testing-strategy.md +440 -440
  389. package/vibe/rules/standards/anti-patterns.md +541 -541
  390. package/vibe/rules/standards/code-structure.md +291 -291
  391. package/vibe/rules/standards/complexity-metrics.md +313 -313
  392. package/vibe/rules/standards/git-workflow.md +237 -237
  393. package/vibe/rules/standards/naming-conventions.md +198 -198
  394. package/vibe/rules/standards/security.md +305 -305
  395. package/vibe/rules/writing/document-style.md +74 -74
  396. package/vibe/setup.sh +31 -31
  397. package/vibe/templates/constitution-template.md +252 -252
  398. package/vibe/templates/contract-backend-template.md +526 -526
  399. package/vibe/templates/contract-frontend-template.md +599 -599
  400. package/vibe/templates/feature-template.md +96 -96
  401. package/vibe/templates/spec-template.md +221 -221
  402. package/vibe/ui-ux-data/charts.csv +26 -26
  403. package/vibe/ui-ux-data/colors.csv +97 -97
  404. package/vibe/ui-ux-data/icons.csv +101 -101
  405. package/vibe/ui-ux-data/landing.csv +31 -31
  406. package/vibe/ui-ux-data/products.csv +96 -96
  407. package/vibe/ui-ux-data/react-performance.csv +45 -45
  408. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  409. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  410. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  411. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  412. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  413. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  414. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  415. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  416. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  417. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  418. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  419. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  420. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  421. package/vibe/ui-ux-data/styles.csv +68 -68
  422. package/vibe/ui-ux-data/typography.csv +57 -57
  423. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  424. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  425. package/vibe/ui-ux-data/version.json +31 -31
  426. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,510 +1,510 @@
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
- > **⏱️ Timer**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
22
-
23
- ## Codex Plugin Integration
24
-
25
- > **Codex 플러그인 감지**: 워크플로우 시작 시 아래 명령으로 자동 감지.
26
- >
27
- > ```bash
28
- > CODEX_AVAILABLE=$(node "{{VIBE_PATH}}/hooks/scripts/codex-detect.js" 2>/dev/null || echo "unavailable")
29
- > ```
30
- >
31
- > `available`이면 `/codex:review` (최종 리뷰 게이트) 자동 호출. `unavailable`이면 스킵.
32
-
33
- ## File Reading Policy (Mandatory)
34
-
35
- - **SPEC/Feature 파일**: 반드시 `Read` 도구로 전체 파일을 읽을 것 (Grep 금지)
36
- - **소스코드 파일**: 검증 대상 파일은 반드시 `Read` 도구로 전체 읽은 후 검증할 것
37
- - **Grep 사용 제한**: 파일 위치 탐색(어떤 파일에 있는지 찾기)에만 사용. 파일 내용 파악에는 반드시 Read 사용
38
- - **시나리오 검증 시**: Given/When/Then 각 단계의 구현 코드를 Read로 전체 읽어 확인할 것. Grep 매칭만으로 "구현됨"이라 판단 금지
39
- - **부분 읽기 금지**: Grep 결과의 주변 몇 줄만 보고 판단하지 말 것. 전체 맥락을 파악해야 정확한 검증 가능
40
-
41
- ## Core Principles
42
-
43
- ```
44
- ┌─────────────────────────────────────────────────────────────────┐
45
- │ What non-developers need to know │
46
- │ │
47
- │ ✅ Scenarios: 4/4 passed │
48
- │ 📈 Quality Score: 94/100 │
49
- │ │
50
- │ Just look at this. The system handles the rest. │
51
- └─────────────────────────────────────────────────────────────────┘
52
- ```
53
-
54
- ## Process
55
-
56
- ### 1. Load Feature File
57
-
58
- **Search order (check BOTH file AND folder):**
59
-
60
- ```
61
- Step 1: Check if SPLIT structure exists (folder)
62
- 📁 .claude/vibe/features/{feature-name}/ → Folder with _index.feature + phase files
63
- 📁 .claude/vibe/specs/{feature-name}/ → Folder with _index.md + phase files
64
-
65
- Step 2: If no folder, check single file
66
- 📄 .claude/vibe/features/{feature-name}.feature → Single Feature file
67
- 📄 .claude/vibe/specs/{feature-name}.md → Single SPEC file
68
-
69
- Step 3: If neither exists → Error
70
- ```
71
-
72
- **Split structure (folder) detected:**
73
- ```
74
- 📁 .claude/vibe/features/{feature-name}/
75
- ├── _index.feature → Master Feature (read first for scenario overview)
76
- ├── phase-1-{name}.feature → Phase 1 scenarios
77
- ├── phase-2-{name}.feature → Phase 2 scenarios
78
- └── ...
79
-
80
- 📁 .claude/vibe/specs/{feature-name}/
81
- ├── _index.md → Master SPEC (read first for overview)
82
- ├── phase-1-{name}.md → Phase 1 SPEC
83
- └── ...
84
-
85
- → Load _index files first, then verify phase by phase
86
- ```
87
-
88
- **Single file detected:**
89
- ```
90
- 📄 .claude/vibe/features/{feature-name}.feature → Scenario list
91
- 📄 .claude/vibe/specs/{feature-name}.md → Verification criteria (reference)
92
- ```
93
-
94
- **Error if NEITHER file NOR folder found:**
95
- ```
96
- ❌ Feature file not found. Searched:
97
- - .claude/vibe/features/{feature-name}/ (folder)
98
- - .claude/vibe/features/{feature-name}.feature (file)
99
-
100
- Run /vibe.spec "{feature-name}" first.
101
- ```
102
-
103
- ### 2. Scenario-by-Scenario Verification
104
-
105
- Automatic verification for each scenario:
106
-
107
- ```
108
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109
- 🔍 Scenario 1/4: Valid login success
110
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
111
-
112
- Given: User is registered
113
- → Verify: User creation API exists? ✅
114
- → Verify: Test user data available? ✅
115
-
116
- When: Login with valid email and password
117
- → Verify: POST /login endpoint exists? ✅
118
- → Verify: Request handling logic exists? ✅
119
-
120
- Then: Login success + JWT token returned
121
- → Verify: Success response code 200? ✅
122
- → Verify: JWT token included? ✅
123
-
124
- ✅ Scenario 1 passed!
125
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
126
- ```
127
-
128
- ### 3. Verification Methods (PARALLEL — run all applicable at once)
129
-
130
- > **Run these as parallel sub-agents, not sequentially in main session.**
131
- > Each method returns pass/fail summary (~200 tokens) instead of bloating main context.
132
-
133
- | Method | Agent | Condition |
134
- |--------|-------|-----------|
135
- | **Test Execution** | `Task(Bash, "npm test")` | When test files exist |
136
- | **Build Verification** | `Task(Bash, "npm run build")` | When build script exists |
137
- | **Type Check** | `Task(subagent_type="typescript-reviewer")` | TypeScript projects |
138
- | **Code Analysis** | `Task(subagent_type="explorer-low")` | Always (verify logic against SPEC) |
139
- | **E2E Closed Loop** | `Task(subagent_type="e2e-tester")` | `--e2e` flag or UI scenarios |
140
-
141
- ```text
142
- # Launch ALL applicable methods in ONE message (parallel)
143
- Task(Bash, command="npm run build && echo BUILD_OK || echo BUILD_FAIL")
144
- Task(Bash, command="npm test -- --reporter=verbose 2>&1 | tail -20")
145
- Task(subagent_type="explorer-low", prompt="Verify [scenario] Given/When/Then against code...")
146
- ```
147
-
148
- ### 3.1. E2E Closed Loop Verification (`--e2e`)
149
-
150
- **AI가 직접 브라우저를 조작하여 시나리오를 검증하고, 실패 시 자동 수정 후 재검증한다.**
151
-
152
- ```
153
- 구현 → E2E 검증 → 실패 → 수정 → 재검증 → ... → 통과
154
- ↑_____________________________________↓
155
- Closed Loop: 사람 개입 없이 AI가 완주
156
- ```
157
-
158
- **Browser Tool Priority (토큰 효율 순):**
159
-
160
- | Priority | Tool | 토큰/액션 | 사용 조건 |
161
- |----------|------|----------|----------|
162
- | 1st | Agent Browser (접근성 트리) | ~6-20 chars | MCP 사용 가능 시 |
163
- | 2nd | Playwright Test Runner | pass/fail만 | 테스트 코드 실행 |
164
- | 3rd | Playwright MCP (DOM) | ~12,000+ chars | 최후 수단 |
165
-
166
- **Closed Loop 실행 흐름:**
167
-
168
- ```
169
- For each UI scenario in Feature file:
170
- 1. [Browser] Navigate → Find elements → Interact → Assert
171
- 2. PASS → Next scenario
172
- 3. FAIL → Collect evidence (screenshot, console errors)
173
- → Root cause analysis
174
- → Fix code (Read full file first, then edit)
175
- → Re-run ONLY failed scenario (max 3 retries)
176
- 4. 3x FAIL → Report as manual fix needed
177
- ```
178
-
179
- **핵심 원칙: 검증이 가벼워야 루프가 충분히 돈다.**
180
- - 접근성 트리 기반: `button "Sign In"` = 15 chars
181
- - DOM 기반: `div class="nav-wrapper mx-4 flex..."` = 200+ chars
182
- - 전자를 사용해야 시나리오 50개도 한 세션에서 검증 가능
183
-
184
- ### 4. Quality Report (Auto-generated)
185
-
186
- ```
187
- ┌─────────────────────────────────────────────────────────────────┐
188
- │ 📊 VERIFICATION REPORT: login │
189
- ├─────────────────────────────────────────────────────────────────┤
190
- │ │
191
- │ ✅ Scenarios: 4/4 passed (100%) │
192
- │ │
193
- │ ┌───────────────────────────────────────────────────────────┐ │
194
- │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
195
- │ │───│───────────────────────│───────│──────│──────│────────│ │
196
- │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
197
- │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
198
- │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
199
- │ │ 4 │ Forgot password link │ ✅ │ ✅ │ ✅ │ ✅ │ │
200
- │ └───────────────────────────────────────────────────────────┘ │
201
- │ │
202
- │ 📈 Quality Score: 94/100 │
203
- │ │
204
- │ ┌─────────────────────────────────────────────────────────┐ │
205
- │ │ Item │ Result│ Details │ │
206
- │ │───────────────────│───────│─────────────────────────────│ │
207
- │ │ Build │ ✅ │ Success │ │
208
- │ │ Tests │ ✅ │ 12/12 passed │ │
209
- │ │ Type Check │ ✅ │ 0 errors │ │
210
- │ │ Complexity │ ✅ │ All functions ≤30 lines │ │
211
- │ │ Code Coverage │ ⚠️ │ 78% (target: 80%) │ │
212
- │ └─────────────────────────────────────────────────────────┘ │
213
- │ │
214
- │ 📋 Recommendations: │
215
- │ - Need 2% more code coverage (auth.service.ts line 45-52) │
216
- │ │
217
- │ ⏱️ Started: {start_time} │
218
- │ ⏱️ Completed: {getCurrentTime 결과} │
219
- │ │
220
- └─────────────────────────────────────────────────────────────────┘
221
- ```
222
-
223
- ### Failure Report
224
-
225
- ```
226
- ┌─────────────────────────────────────────────────────────────────┐
227
- │ 📊 VERIFICATION REPORT: login │
228
- ├─────────────────────────────────────────────────────────────────┤
229
- │ │
230
- │ ❌ Scenarios: 3/4 passed (75%) │
231
- │ │
232
- │ ┌───────────────────────────────────────────────────────────┐ │
233
- │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
234
- │ │───│───────────────────────│───────│──────│──────│────────│ │
235
- │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
236
- │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
237
- │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
238
- │ │ 4 │ Forgot password link │ ✅ │ ❌ │ - │ ❌ │ │
239
- │ └───────────────────────────────────────────────────────────┘ │
240
- │ │
241
- │ ❌ Failure Details: │
242
- │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
243
- │ Scenario 4: Forgot password link │
244
- │ │
245
- │ When: Click "Forgot password" │
246
- │ ❌ Issue: Link not implemented │
247
- │ 📍 Location: LoginForm.tsx line 42 │
248
- │ 💡 Fix: Need to add "Forgot password" link │
249
- │ │
250
- │ 🔧 Auto-fix command: /vibe.run "login" --fix │
251
- │ │
252
- └─────────────────────────────────────────────────────────────────┘
253
- ```
254
-
255
- ## Input
256
-
257
- - `.claude/vibe/features/{feature-name}.feature` or `.claude/vibe/features/{feature-name}/` - BDD scenarios
258
- - `.claude/vibe/specs/{feature-name}.md` or `.claude/vibe/specs/{feature-name}/` - SPEC document (reference)
259
- - Implemented source code
260
-
261
- ## Output
262
-
263
- - Verification result report (terminal output)
264
- - Passed/failed scenario list
265
- - Items needing fixes
266
-
267
- ## Example
268
-
269
- ```
270
- User: /vibe.verify "login"
271
-
272
- Claude:
273
- 📄 Loading Feature: .claude/vibe/features/login.feature
274
- 🔍 Starting verification...
275
-
276
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
277
- 🔍 Scenario 1/4: Valid login success
278
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
279
- ✅ Given: User registered - OK
280
- ✅ When: Login attempt - OK
281
- ✅ Then: JWT token returned - OK
282
- ✅ Passed!
283
-
284
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
285
- 🔍 Scenario 2/4: Invalid password error
286
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
287
- ✅ Given: OK
288
- ✅ When: OK
289
- ✅ Then: OK
290
- ✅ Passed!
291
-
292
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
293
- 🔍 Scenario 3/4: Email format validation
294
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
295
- ✅ Given: OK
296
- ✅ When: OK
297
- ✅ Then: OK
298
- ✅ Passed!
299
-
300
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
301
- 🔍 Scenario 4/4: Forgot password link
302
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
303
- ✅ Given: OK
304
- ❌ When: "Forgot password" link - missing
305
- - Then: (skipped)
306
- ❌ Failed!
307
-
308
- ┌─────────────────────────────────────────────────────────────────┐
309
- │ 📊 VERIFICATION REPORT: login │
310
- ├─────────────────────────────────────────────────────────────────┤
311
- │ │
312
- │ ❌ Scenarios: 3/4 passed (75%) │
313
- │ │
314
- │ | # | Scenario | Status | │
315
- │ |---|───────────────────────|────────| │
316
- │ | 1 | Valid login success | ✅ | │
317
- │ | 2 | Invalid password error| ✅ | │
318
- │ | 3 | Email format validation| ✅ | │
319
- │ | 4 | Forgot password link | ❌ | │
320
- │ │
321
- │ 📈 Quality Score: 75/100 │
322
- │ │
323
- │ ❌ Fixes needed: │
324
- │ - Scenario 4: Add "Forgot password" link in LoginForm.tsx │
325
- │ │
326
- │ 🔧 Auto-fix: /vibe.run "login" --fix │
327
- │ │
328
- └─────────────────────────────────────────────────────────────────┘
329
- ```
330
-
331
- ## Core Tools (Code Analysis & Quality)
332
-
333
- ### Tool Invocation
334
-
335
- All tools are called via:
336
-
337
- ```bash
338
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.TOOL_NAME({...args}).then(r => console.log(r.content[0].text)))"
339
- ```
340
-
341
- ### Recommended Tools for Verification
342
-
343
- | Tool | Purpose | When to Use |
344
- |------|---------|-------------|
345
- | `validateCodeQuality` | Code quality validation | Check complexity, style violations |
346
- | `analyzeComplexity` | Complexity analysis | Verify function length, nesting depth |
347
- | `findSymbol` | Find implementations | Verify feature implementation exists |
348
- | `findReferences` | Find usages | Check if all references are correct |
349
-
350
- ### Example Tool Usage in Verification
351
-
352
- **1. Validate code quality:**
353
-
354
- ```bash
355
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.validateCodeQuality({targetPath: 'src/auth/', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
356
- ```
357
-
358
- **2. Analyze complexity of implementation:**
359
-
360
- ```bash
361
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.analyzeComplexity({targetPath: 'src/auth/login.ts', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
362
- ```
363
-
364
- **3. Find implemented feature:**
365
-
366
- ```bash
367
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.findSymbol({symbolName: 'handleLogin', searchPath: 'src/'}).then(r => console.log(r.content[0].text)))"
368
- ```
369
-
370
- ### Final Codex Review Gate (Codex 플러그인 활성화 시)
371
-
372
- > 모든 시나리오 검증 통과 후, 최종 안전망으로 Codex review 실행.
373
-
374
- ```
375
- /codex:review
376
- ```
377
-
378
- **Codex P1 발견 시:**
379
- 1. 즉시 수정
380
- 2. 해당 시나리오 재검증
381
- 3. 재검증 통과 시 최종 완료
382
-
383
- **Codex P2 발견 시:**
384
- - TODO 파일에 기록 후 완료 처리
385
-
386
- ## Next Step
387
-
388
- On verification pass:
389
-
390
- ```
391
- Complete! Proceed to next feature.
392
- ```
393
-
394
- On verification fail:
395
-
396
- ```
397
- /vibe.run "feature-name" --fix # Fix failed scenarios
398
- ```
399
-
400
- ---
401
-
402
- ## Quality Gate (Mandatory)
403
-
404
- ### Verification Quality Checklist
405
-
406
- Before marking verification complete, ALL items must pass:
407
-
408
- | Category | Check Item | Weight |
409
- |----------|------------|--------|
410
- | **Scenario Coverage** | All scenarios from feature file tested | 25% |
411
- | **Given Verification** | All preconditions validated | 15% |
412
- | **When Verification** | All actions executable | 15% |
413
- | **Then Verification** | All expected outcomes confirmed | 20% |
414
- | **Build Status** | Project builds without errors | 10% |
415
- | **Test Status** | All existing tests pass | 10% |
416
- | **Type Check** | No TypeScript/type errors | 5% |
417
-
418
- ### Verification Score Calculation
419
-
420
- ```
421
- Score = (passed_scenarios / total_scenarios) × 100
422
-
423
- Grades:
424
- - 100%: ✅ PERFECT - All scenarios pass
425
- - 90-99%: ⚠️ ALMOST - Minor gaps, review needed
426
- - 70-89%: ❌ INCOMPLETE - Significant gaps
427
- - 0-69%: ❌ FAILED - Major implementation missing
428
- ```
429
-
430
- ### Pass/Fail Criteria
431
-
432
- | Metric | Pass Threshold | Action on Fail |
433
- |--------|----------------|----------------|
434
- | Scenario pass rate | 100% | Run `/vibe.run --fix` |
435
- | Build status | Success | Fix build errors first |
436
- | Test pass rate | 100% | Fix failing tests |
437
- | Type check | 0 errors | Fix type errors |
438
-
439
- ### Verification Methods Matrix
440
-
441
- | Method | Trigger Condition | What It Checks |
442
- |--------|-------------------|----------------|
443
- | **Code Analysis** | Always | Implementation exists |
444
- | **Test Execution** | Test files exist | Logic correctness |
445
- | **Build Verification** | Build script exists | Compilation success |
446
- | **Type Check** | tsconfig.json exists | Type safety |
447
- | **Lint Check** | ESLint config exists | Code style |
448
-
449
- ### Scenario Verification Depth
450
-
451
- For each scenario, verify at THREE levels:
452
-
453
- | Level | Verification | Example |
454
- |-------|--------------|---------|
455
- | **L1: Existence** | Code/function exists | `login()` function defined |
456
- | **L2: Logic** | Implementation is correct | Validates email format |
457
- | **L3: Integration** | Works with other components | Returns valid JWT |
458
-
459
- ### Auto-Fix Triggers
460
-
461
- | Verification Failure | Auto-Fix Action |
462
- |----------------------|-----------------|
463
- | Missing implementation | Generate skeleton from scenario |
464
- | Test failure | Analyze and suggest fix |
465
- | Build error | Show error location |
466
- | Type error | Suggest type annotations |
467
-
468
- ### Failure Escalation (max 3 retries)
469
-
470
- ```
471
- Auto-fix attempt 1 → Re-verify
472
- ❌ Still failing?
473
- Auto-fix attempt 2 → Re-verify
474
- ❌ Still failing?
475
- Auto-fix attempt 3 → Re-verify
476
- ❌ Still failing?
477
- → STOP. Do NOT retry further.
478
- → Record failure in .claude/vibe/todos/verify-failure-{scenario}.md
479
- → Report to user: "Scenario X failed after 3 attempts. Manual review needed."
480
- → Continue to next scenario (don't block entire verification)
481
- ```
482
-
483
- ### Verification Report Requirements
484
-
485
- Every verification MUST produce:
486
-
487
- 1. **Scenario Summary Table**
488
- - Scenario name
489
- - Given/When/Then status (✅/❌)
490
- - Overall status
491
-
492
- 2. **Quality Metrics**
493
- - Build status
494
- - Test pass count
495
- - Type error count
496
- - Code coverage percentage
497
-
498
- 3. **Failure Details** (if any)
499
- - Exact failure point (Given/When/Then)
500
- - Expected vs actual
501
- - File path and line number
502
- - Suggested fix command
503
-
504
- 4. **Recommendations**
505
- - Specific files to modify
506
- - Auto-fix command if available
507
-
508
- ---
509
-
510
- 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
+ > **⏱️ Timer**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
22
+
23
+ ## Codex Plugin Integration
24
+
25
+ > **Codex 플러그인 감지**: 워크플로우 시작 시 아래 명령으로 자동 감지.
26
+ >
27
+ > ```bash
28
+ > CODEX_AVAILABLE=$(node "{{VIBE_PATH}}/hooks/scripts/codex-detect.js" 2>/dev/null || echo "unavailable")
29
+ > ```
30
+ >
31
+ > `available`이면 `/codex:review` (최종 리뷰 게이트) 자동 호출. `unavailable`이면 스킵.
32
+
33
+ ## File Reading Policy (Mandatory)
34
+
35
+ - **SPEC/Feature 파일**: 반드시 `Read` 도구로 전체 파일을 읽을 것 (Grep 금지)
36
+ - **소스코드 파일**: 검증 대상 파일은 반드시 `Read` 도구로 전체 읽은 후 검증할 것
37
+ - **Grep 사용 제한**: 파일 위치 탐색(어떤 파일에 있는지 찾기)에만 사용. 파일 내용 파악에는 반드시 Read 사용
38
+ - **시나리오 검증 시**: Given/When/Then 각 단계의 구현 코드를 Read로 전체 읽어 확인할 것. Grep 매칭만으로 "구현됨"이라 판단 금지
39
+ - **부분 읽기 금지**: Grep 결과의 주변 몇 줄만 보고 판단하지 말 것. 전체 맥락을 파악해야 정확한 검증 가능
40
+
41
+ ## Core Principles
42
+
43
+ ```
44
+ ┌─────────────────────────────────────────────────────────────────┐
45
+ │ What non-developers need to know │
46
+ │ │
47
+ │ ✅ Scenarios: 4/4 passed │
48
+ │ 📈 Quality Score: 94/100 │
49
+ │ │
50
+ │ Just look at this. The system handles the rest. │
51
+ └─────────────────────────────────────────────────────────────────┘
52
+ ```
53
+
54
+ ## Process
55
+
56
+ ### 1. Load Feature File
57
+
58
+ **Search order (check BOTH file AND folder):**
59
+
60
+ ```
61
+ Step 1: Check if SPLIT structure exists (folder)
62
+ 📁 .claude/vibe/features/{feature-name}/ → Folder with _index.feature + phase files
63
+ 📁 .claude/vibe/specs/{feature-name}/ → Folder with _index.md + phase files
64
+
65
+ Step 2: If no folder, check single file
66
+ 📄 .claude/vibe/features/{feature-name}.feature → Single Feature file
67
+ 📄 .claude/vibe/specs/{feature-name}.md → Single SPEC file
68
+
69
+ Step 3: If neither exists → Error
70
+ ```
71
+
72
+ **Split structure (folder) detected:**
73
+ ```
74
+ 📁 .claude/vibe/features/{feature-name}/
75
+ ├── _index.feature → Master Feature (read first for scenario overview)
76
+ ├── phase-1-{name}.feature → Phase 1 scenarios
77
+ ├── phase-2-{name}.feature → Phase 2 scenarios
78
+ └── ...
79
+
80
+ 📁 .claude/vibe/specs/{feature-name}/
81
+ ├── _index.md → Master SPEC (read first for overview)
82
+ ├── phase-1-{name}.md → Phase 1 SPEC
83
+ └── ...
84
+
85
+ → Load _index files first, then verify phase by phase
86
+ ```
87
+
88
+ **Single file detected:**
89
+ ```
90
+ 📄 .claude/vibe/features/{feature-name}.feature → Scenario list
91
+ 📄 .claude/vibe/specs/{feature-name}.md → Verification criteria (reference)
92
+ ```
93
+
94
+ **Error if NEITHER file NOR folder found:**
95
+ ```
96
+ ❌ Feature file not found. Searched:
97
+ - .claude/vibe/features/{feature-name}/ (folder)
98
+ - .claude/vibe/features/{feature-name}.feature (file)
99
+
100
+ Run /vibe.spec "{feature-name}" first.
101
+ ```
102
+
103
+ ### 2. Scenario-by-Scenario Verification
104
+
105
+ Automatic verification for each scenario:
106
+
107
+ ```
108
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109
+ 🔍 Scenario 1/4: Valid login success
110
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
111
+
112
+ Given: User is registered
113
+ → Verify: User creation API exists? ✅
114
+ → Verify: Test user data available? ✅
115
+
116
+ When: Login with valid email and password
117
+ → Verify: POST /login endpoint exists? ✅
118
+ → Verify: Request handling logic exists? ✅
119
+
120
+ Then: Login success + JWT token returned
121
+ → Verify: Success response code 200? ✅
122
+ → Verify: JWT token included? ✅
123
+
124
+ ✅ Scenario 1 passed!
125
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
126
+ ```
127
+
128
+ ### 3. Verification Methods (PARALLEL — run all applicable at once)
129
+
130
+ > **Run these as parallel sub-agents, not sequentially in main session.**
131
+ > Each method returns pass/fail summary (~200 tokens) instead of bloating main context.
132
+
133
+ | Method | Agent | Condition |
134
+ |--------|-------|-----------|
135
+ | **Test Execution** | `Task(Bash, "npm test")` | When test files exist |
136
+ | **Build Verification** | `Task(Bash, "npm run build")` | When build script exists |
137
+ | **Type Check** | `Task(subagent_type="typescript-reviewer")` | TypeScript projects |
138
+ | **Code Analysis** | `Task(subagent_type="explorer-low")` | Always (verify logic against SPEC) |
139
+ | **E2E Closed Loop** | `Task(subagent_type="e2e-tester")` | `--e2e` flag or UI scenarios |
140
+
141
+ ```text
142
+ # Launch ALL applicable methods in ONE message (parallel)
143
+ Task(Bash, command="npm run build && echo BUILD_OK || echo BUILD_FAIL")
144
+ Task(Bash, command="npm test -- --reporter=verbose 2>&1 | tail -20")
145
+ Task(subagent_type="explorer-low", prompt="Verify [scenario] Given/When/Then against code...")
146
+ ```
147
+
148
+ ### 3.1. E2E Closed Loop Verification (`--e2e`)
149
+
150
+ **AI가 직접 브라우저를 조작하여 시나리오를 검증하고, 실패 시 자동 수정 후 재검증한다.**
151
+
152
+ ```
153
+ 구현 → E2E 검증 → 실패 → 수정 → 재검증 → ... → 통과
154
+ ↑_____________________________________↓
155
+ Closed Loop: 사람 개입 없이 AI가 완주
156
+ ```
157
+
158
+ **Browser Tool Priority (토큰 효율 순):**
159
+
160
+ | Priority | Tool | 토큰/액션 | 사용 조건 |
161
+ |----------|------|----------|----------|
162
+ | 1st | Agent Browser (접근성 트리) | ~6-20 chars | MCP 사용 가능 시 |
163
+ | 2nd | Playwright Test Runner | pass/fail만 | 테스트 코드 실행 |
164
+ | 3rd | Playwright MCP (DOM) | ~12,000+ chars | 최후 수단 |
165
+
166
+ **Closed Loop 실행 흐름:**
167
+
168
+ ```
169
+ For each UI scenario in Feature file:
170
+ 1. [Browser] Navigate → Find elements → Interact → Assert
171
+ 2. PASS → Next scenario
172
+ 3. FAIL → Collect evidence (screenshot, console errors)
173
+ → Root cause analysis
174
+ → Fix code (Read full file first, then edit)
175
+ → Re-run ONLY failed scenario (max 3 retries)
176
+ 4. 3x FAIL → Report as manual fix needed
177
+ ```
178
+
179
+ **핵심 원칙: 검증이 가벼워야 루프가 충분히 돈다.**
180
+ - 접근성 트리 기반: `button "Sign In"` = 15 chars
181
+ - DOM 기반: `div class="nav-wrapper mx-4 flex..."` = 200+ chars
182
+ - 전자를 사용해야 시나리오 50개도 한 세션에서 검증 가능
183
+
184
+ ### 4. Quality Report (Auto-generated)
185
+
186
+ ```
187
+ ┌─────────────────────────────────────────────────────────────────┐
188
+ │ 📊 VERIFICATION REPORT: login │
189
+ ├─────────────────────────────────────────────────────────────────┤
190
+ │ │
191
+ │ ✅ Scenarios: 4/4 passed (100%) │
192
+ │ │
193
+ │ ┌───────────────────────────────────────────────────────────┐ │
194
+ │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
195
+ │ │───│───────────────────────│───────│──────│──────│────────│ │
196
+ │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
197
+ │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
198
+ │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
199
+ │ │ 4 │ Forgot password link │ ✅ │ ✅ │ ✅ │ ✅ │ │
200
+ │ └───────────────────────────────────────────────────────────┘ │
201
+ │ │
202
+ │ 📈 Quality Score: 94/100 │
203
+ │ │
204
+ │ ┌─────────────────────────────────────────────────────────┐ │
205
+ │ │ Item │ Result│ Details │ │
206
+ │ │───────────────────│───────│─────────────────────────────│ │
207
+ │ │ Build │ ✅ │ Success │ │
208
+ │ │ Tests │ ✅ │ 12/12 passed │ │
209
+ │ │ Type Check │ ✅ │ 0 errors │ │
210
+ │ │ Complexity │ ✅ │ All functions ≤30 lines │ │
211
+ │ │ Code Coverage │ ⚠️ │ 78% (target: 80%) │ │
212
+ │ └─────────────────────────────────────────────────────────┘ │
213
+ │ │
214
+ │ 📋 Recommendations: │
215
+ │ - Need 2% more code coverage (auth.service.ts line 45-52) │
216
+ │ │
217
+ │ ⏱️ Started: {start_time} │
218
+ │ ⏱️ Completed: {getCurrentTime 결과} │
219
+ │ │
220
+ └─────────────────────────────────────────────────────────────────┘
221
+ ```
222
+
223
+ ### Failure Report
224
+
225
+ ```
226
+ ┌─────────────────────────────────────────────────────────────────┐
227
+ │ 📊 VERIFICATION REPORT: login │
228
+ ├─────────────────────────────────────────────────────────────────┤
229
+ │ │
230
+ │ ❌ Scenarios: 3/4 passed (75%) │
231
+ │ │
232
+ │ ┌───────────────────────────────────────────────────────────┐ │
233
+ │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
234
+ │ │───│───────────────────────│───────│──────│──────│────────│ │
235
+ │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
236
+ │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
237
+ │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
238
+ │ │ 4 │ Forgot password link │ ✅ │ ❌ │ - │ ❌ │ │
239
+ │ └───────────────────────────────────────────────────────────┘ │
240
+ │ │
241
+ │ ❌ Failure Details: │
242
+ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
243
+ │ Scenario 4: Forgot password link │
244
+ │ │
245
+ │ When: Click "Forgot password" │
246
+ │ ❌ Issue: Link not implemented │
247
+ │ 📍 Location: LoginForm.tsx line 42 │
248
+ │ 💡 Fix: Need to add "Forgot password" link │
249
+ │ │
250
+ │ 🔧 Auto-fix command: /vibe.run "login" --fix │
251
+ │ │
252
+ └─────────────────────────────────────────────────────────────────┘
253
+ ```
254
+
255
+ ## Input
256
+
257
+ - `.claude/vibe/features/{feature-name}.feature` or `.claude/vibe/features/{feature-name}/` - BDD scenarios
258
+ - `.claude/vibe/specs/{feature-name}.md` or `.claude/vibe/specs/{feature-name}/` - SPEC document (reference)
259
+ - Implemented source code
260
+
261
+ ## Output
262
+
263
+ - Verification result report (terminal output)
264
+ - Passed/failed scenario list
265
+ - Items needing fixes
266
+
267
+ ## Example
268
+
269
+ ```
270
+ User: /vibe.verify "login"
271
+
272
+ Claude:
273
+ 📄 Loading Feature: .claude/vibe/features/login.feature
274
+ 🔍 Starting verification...
275
+
276
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
277
+ 🔍 Scenario 1/4: Valid login success
278
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
279
+ ✅ Given: User registered - OK
280
+ ✅ When: Login attempt - OK
281
+ ✅ Then: JWT token returned - OK
282
+ ✅ Passed!
283
+
284
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
285
+ 🔍 Scenario 2/4: Invalid password error
286
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
287
+ ✅ Given: OK
288
+ ✅ When: OK
289
+ ✅ Then: OK
290
+ ✅ Passed!
291
+
292
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
293
+ 🔍 Scenario 3/4: Email format validation
294
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
295
+ ✅ Given: OK
296
+ ✅ When: OK
297
+ ✅ Then: OK
298
+ ✅ Passed!
299
+
300
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
301
+ 🔍 Scenario 4/4: Forgot password link
302
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
303
+ ✅ Given: OK
304
+ ❌ When: "Forgot password" link - missing
305
+ - Then: (skipped)
306
+ ❌ Failed!
307
+
308
+ ┌─────────────────────────────────────────────────────────────────┐
309
+ │ 📊 VERIFICATION REPORT: login │
310
+ ├─────────────────────────────────────────────────────────────────┤
311
+ │ │
312
+ │ ❌ Scenarios: 3/4 passed (75%) │
313
+ │ │
314
+ │ | # | Scenario | Status | │
315
+ │ |---|───────────────────────|────────| │
316
+ │ | 1 | Valid login success | ✅ | │
317
+ │ | 2 | Invalid password error| ✅ | │
318
+ │ | 3 | Email format validation| ✅ | │
319
+ │ | 4 | Forgot password link | ❌ | │
320
+ │ │
321
+ │ 📈 Quality Score: 75/100 │
322
+ │ │
323
+ │ ❌ Fixes needed: │
324
+ │ - Scenario 4: Add "Forgot password" link in LoginForm.tsx │
325
+ │ │
326
+ │ 🔧 Auto-fix: /vibe.run "login" --fix │
327
+ │ │
328
+ └─────────────────────────────────────────────────────────────────┘
329
+ ```
330
+
331
+ ## Core Tools (Code Analysis & Quality)
332
+
333
+ ### Tool Invocation
334
+
335
+ All tools are called via:
336
+
337
+ ```bash
338
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.TOOL_NAME({...args}).then(r => console.log(r.content[0].text)))"
339
+ ```
340
+
341
+ ### Recommended Tools for Verification
342
+
343
+ | Tool | Purpose | When to Use |
344
+ |------|---------|-------------|
345
+ | `validateCodeQuality` | Code quality validation | Check complexity, style violations |
346
+ | `analyzeComplexity` | Complexity analysis | Verify function length, nesting depth |
347
+ | `findSymbol` | Find implementations | Verify feature implementation exists |
348
+ | `findReferences` | Find usages | Check if all references are correct |
349
+
350
+ ### Example Tool Usage in Verification
351
+
352
+ **1. Validate code quality:**
353
+
354
+ ```bash
355
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.validateCodeQuality({targetPath: 'src/auth/', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
356
+ ```
357
+
358
+ **2. Analyze complexity of implementation:**
359
+
360
+ ```bash
361
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.analyzeComplexity({targetPath: 'src/auth/login.ts', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
362
+ ```
363
+
364
+ **3. Find implemented feature:**
365
+
366
+ ```bash
367
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.findSymbol({symbolName: 'handleLogin', searchPath: 'src/'}).then(r => console.log(r.content[0].text)))"
368
+ ```
369
+
370
+ ### Final Codex Review Gate (Codex 플러그인 활성화 시)
371
+
372
+ > 모든 시나리오 검증 통과 후, 최종 안전망으로 Codex review 실행.
373
+
374
+ ```
375
+ /codex:review
376
+ ```
377
+
378
+ **Codex P1 발견 시:**
379
+ 1. 즉시 수정
380
+ 2. 해당 시나리오 재검증
381
+ 3. 재검증 통과 시 최종 완료
382
+
383
+ **Codex P2 발견 시:**
384
+ - TODO 파일에 기록 후 완료 처리
385
+
386
+ ## Next Step
387
+
388
+ On verification pass:
389
+
390
+ ```
391
+ Complete! Proceed to next feature.
392
+ ```
393
+
394
+ On verification fail:
395
+
396
+ ```
397
+ /vibe.run "feature-name" --fix # Fix failed scenarios
398
+ ```
399
+
400
+ ---
401
+
402
+ ## Quality Gate (Mandatory)
403
+
404
+ ### Verification Quality Checklist
405
+
406
+ Before marking verification complete, ALL items must pass:
407
+
408
+ | Category | Check Item | Weight |
409
+ |----------|------------|--------|
410
+ | **Scenario Coverage** | All scenarios from feature file tested | 25% |
411
+ | **Given Verification** | All preconditions validated | 15% |
412
+ | **When Verification** | All actions executable | 15% |
413
+ | **Then Verification** | All expected outcomes confirmed | 20% |
414
+ | **Build Status** | Project builds without errors | 10% |
415
+ | **Test Status** | All existing tests pass | 10% |
416
+ | **Type Check** | No TypeScript/type errors | 5% |
417
+
418
+ ### Verification Score Calculation
419
+
420
+ ```
421
+ Score = (passed_scenarios / total_scenarios) × 100
422
+
423
+ Grades:
424
+ - 100%: ✅ PERFECT - All scenarios pass
425
+ - 90-99%: ⚠️ ALMOST - Minor gaps, review needed
426
+ - 70-89%: ❌ INCOMPLETE - Significant gaps
427
+ - 0-69%: ❌ FAILED - Major implementation missing
428
+ ```
429
+
430
+ ### Pass/Fail Criteria
431
+
432
+ | Metric | Pass Threshold | Action on Fail |
433
+ |--------|----------------|----------------|
434
+ | Scenario pass rate | 100% | Run `/vibe.run --fix` |
435
+ | Build status | Success | Fix build errors first |
436
+ | Test pass rate | 100% | Fix failing tests |
437
+ | Type check | 0 errors | Fix type errors |
438
+
439
+ ### Verification Methods Matrix
440
+
441
+ | Method | Trigger Condition | What It Checks |
442
+ |--------|-------------------|----------------|
443
+ | **Code Analysis** | Always | Implementation exists |
444
+ | **Test Execution** | Test files exist | Logic correctness |
445
+ | **Build Verification** | Build script exists | Compilation success |
446
+ | **Type Check** | tsconfig.json exists | Type safety |
447
+ | **Lint Check** | ESLint config exists | Code style |
448
+
449
+ ### Scenario Verification Depth
450
+
451
+ For each scenario, verify at THREE levels:
452
+
453
+ | Level | Verification | Example |
454
+ |-------|--------------|---------|
455
+ | **L1: Existence** | Code/function exists | `login()` function defined |
456
+ | **L2: Logic** | Implementation is correct | Validates email format |
457
+ | **L3: Integration** | Works with other components | Returns valid JWT |
458
+
459
+ ### Auto-Fix Triggers
460
+
461
+ | Verification Failure | Auto-Fix Action |
462
+ |----------------------|-----------------|
463
+ | Missing implementation | Generate skeleton from scenario |
464
+ | Test failure | Analyze and suggest fix |
465
+ | Build error | Show error location |
466
+ | Type error | Suggest type annotations |
467
+
468
+ ### Failure Escalation (max 3 retries)
469
+
470
+ ```
471
+ Auto-fix attempt 1 → Re-verify
472
+ ❌ Still failing?
473
+ Auto-fix attempt 2 → Re-verify
474
+ ❌ Still failing?
475
+ Auto-fix attempt 3 → Re-verify
476
+ ❌ Still failing?
477
+ → STOP. Do NOT retry further.
478
+ → Record failure in .claude/vibe/todos/verify-failure-{scenario}.md
479
+ → Report to user: "Scenario X failed after 3 attempts. Manual review needed."
480
+ → Continue to next scenario (don't block entire verification)
481
+ ```
482
+
483
+ ### Verification Report Requirements
484
+
485
+ Every verification MUST produce:
486
+
487
+ 1. **Scenario Summary Table**
488
+ - Scenario name
489
+ - Given/When/Then status (✅/❌)
490
+ - Overall status
491
+
492
+ 2. **Quality Metrics**
493
+ - Build status
494
+ - Test pass count
495
+ - Type error count
496
+ - Code coverage percentage
497
+
498
+ 3. **Failure Details** (if any)
499
+ - Exact failure point (Given/When/Then)
500
+ - Expected vs actual
501
+ - File path and line number
502
+ - Suggested fix command
503
+
504
+ 4. **Recommendations**
505
+ - Specific files to modify
506
+ - Auto-fix command if available
507
+
508
+ ---
509
+
510
+ ARGUMENTS: $ARGUMENTS