@su-record/vibe 2.9.22 → 2.9.23

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 (466) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +105 -105
  3. package/LICENSE +21 -21
  4. package/agents/architect-low.md +41 -41
  5. package/agents/architect-medium.md +59 -59
  6. package/agents/architect.md +80 -80
  7. package/agents/build-error-resolver.md +115 -115
  8. package/agents/compounder.md +261 -261
  9. package/agents/diagrammer.md +178 -178
  10. package/agents/docs/api-documenter.md +99 -99
  11. package/agents/docs/changelog-writer.md +93 -93
  12. package/agents/e2e-tester.md +294 -294
  13. package/agents/event/event-comms.md +78 -78
  14. package/agents/event/event-content.md +68 -68
  15. package/agents/event/event-image.md +95 -95
  16. package/agents/event/event-ops.md +84 -84
  17. package/agents/event/event-scheduler.md +69 -69
  18. package/agents/event/event-speaker.md +86 -86
  19. package/agents/explorer-low.md +42 -42
  20. package/agents/explorer-medium.md +59 -59
  21. package/agents/explorer.md +48 -48
  22. package/agents/implementer-low.md +43 -43
  23. package/agents/implementer-medium.md +52 -52
  24. package/agents/implementer.md +54 -54
  25. package/agents/junior-mentor.md +141 -141
  26. package/agents/planning/requirements-analyst.md +84 -84
  27. package/agents/planning/ux-advisor.md +83 -83
  28. package/agents/qa/acceptance-tester.md +86 -86
  29. package/agents/qa/edge-case-finder.md +93 -93
  30. package/agents/qa/qa-coordinator.md +131 -131
  31. package/agents/refactor-cleaner.md +143 -143
  32. package/agents/research/best-practices-agent.md +199 -199
  33. package/agents/research/codebase-patterns-agent.md +157 -157
  34. package/agents/research/framework-docs-agent.md +188 -188
  35. package/agents/research/security-advisory-agent.md +213 -213
  36. package/agents/review/architecture-reviewer.md +107 -107
  37. package/agents/review/complexity-reviewer.md +116 -116
  38. package/agents/review/data-integrity-reviewer.md +88 -88
  39. package/agents/review/git-history-reviewer.md +103 -103
  40. package/agents/review/performance-reviewer.md +86 -86
  41. package/agents/review/python-reviewer.md +150 -150
  42. package/agents/review/rails-reviewer.md +139 -139
  43. package/agents/review/react-reviewer.md +144 -144
  44. package/agents/review/security-reviewer.md +80 -80
  45. package/agents/review/simplicity-reviewer.md +140 -140
  46. package/agents/review/test-coverage-reviewer.md +116 -116
  47. package/agents/review/typescript-reviewer.md +127 -127
  48. package/agents/searcher.md +54 -54
  49. package/agents/simplifier.md +120 -120
  50. package/agents/teams/debug-team.md +70 -70
  51. package/agents/teams/dev-team.md +88 -88
  52. package/agents/teams/docs-team.md +80 -80
  53. package/agents/teams/figma/figma-analyst.md +52 -52
  54. package/agents/teams/figma/figma-architect.md +112 -112
  55. package/agents/teams/figma/figma-auditor.md +82 -82
  56. package/agents/teams/figma/figma-builder.md +100 -100
  57. package/agents/teams/figma-team.md +85 -85
  58. package/agents/teams/fullstack-team.md +83 -83
  59. package/agents/teams/lite-team.md +69 -69
  60. package/agents/teams/migration-team.md +78 -78
  61. package/agents/teams/refactor-team.md +94 -94
  62. package/agents/teams/research-team.md +86 -86
  63. package/agents/teams/review-debate-team.md +125 -125
  64. package/agents/teams/security-team.md +81 -81
  65. package/agents/tester.md +49 -49
  66. package/agents/ui/ui-a11y-auditor.md +93 -93
  67. package/agents/ui/ui-antipattern-detector.md +102 -102
  68. package/agents/ui/ui-dataviz-advisor.md +69 -69
  69. package/agents/ui/ui-design-system-gen.md +57 -57
  70. package/agents/ui/ui-industry-analyzer.md +49 -49
  71. package/agents/ui/ui-layout-architect.md +65 -65
  72. package/agents/ui/ui-stack-implementer.md +68 -68
  73. package/agents/ui/ux-compliance-reviewer.md +81 -81
  74. package/agents/ui-previewer.md +258 -258
  75. package/commands/vibe.analyze.md +533 -533
  76. package/commands/vibe.contract.md +105 -105
  77. package/commands/vibe.docs.md +33 -33
  78. package/commands/vibe.event.md +163 -163
  79. package/commands/vibe.figma.md +584 -584
  80. package/commands/vibe.harness.md +177 -177
  81. package/commands/vibe.regress.md +73 -73
  82. package/commands/vibe.review.md +624 -624
  83. package/commands/vibe.run.md +1940 -1940
  84. package/commands/vibe.scaffold.md +195 -195
  85. package/commands/vibe.spec.md +577 -577
  86. package/commands/vibe.test.md +96 -96
  87. package/commands/vibe.trace.md +276 -276
  88. package/commands/vibe.utils.md +413 -413
  89. package/commands/vibe.verify.md +550 -550
  90. package/dist/cli/collaborator.js +52 -52
  91. package/dist/cli/commands/codex-proxy.js +15 -15
  92. package/dist/cli/commands/config.js +9 -9
  93. package/dist/cli/commands/evolution.js +12 -12
  94. package/dist/cli/commands/figma.js +20 -20
  95. package/dist/cli/commands/info.js +52 -52
  96. package/dist/cli/commands/init.d.ts.map +1 -1
  97. package/dist/cli/commands/init.js +16 -5
  98. package/dist/cli/commands/init.js.map +1 -1
  99. package/dist/cli/commands/remove.js +14 -14
  100. package/dist/cli/commands/sentinel.js +27 -27
  101. package/dist/cli/commands/skills.js +5 -5
  102. package/dist/cli/commands/slack.js +10 -10
  103. package/dist/cli/commands/stats.js +6 -6
  104. package/dist/cli/commands/telegram.js +12 -12
  105. package/dist/cli/commands/update.d.ts.map +1 -1
  106. package/dist/cli/commands/update.js +16 -0
  107. package/dist/cli/commands/update.js.map +1 -1
  108. package/dist/cli/detect.js +32 -32
  109. package/dist/cli/index.js +33 -33
  110. package/dist/cli/llm/claude-commands.js +16 -16
  111. package/dist/cli/llm/config.js +18 -18
  112. package/dist/cli/llm/gemini-commands.js +16 -16
  113. package/dist/cli/llm/gpt-commands.js +19 -19
  114. package/dist/cli/llm/help.js +21 -21
  115. package/dist/cli/postinstall/cursor-agents.js +32 -32
  116. package/dist/cli/postinstall/cursor-rules.js +83 -83
  117. package/dist/cli/postinstall/cursor-skills.js +743 -743
  118. package/dist/cli/setup/Provisioner.js +42 -42
  119. package/dist/infra/lib/DeepInit.js +24 -24
  120. package/dist/infra/lib/IterationTracker.js +11 -11
  121. package/dist/infra/lib/PythonParser.js +108 -108
  122. package/dist/infra/lib/ReviewRace.js +96 -96
  123. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  124. package/dist/infra/lib/SkillQualityGate.js +9 -9
  125. package/dist/infra/lib/SkillRepository.js +159 -159
  126. package/dist/infra/lib/UltraQA.js +99 -99
  127. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  128. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  129. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  130. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  131. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  132. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  133. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  134. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  135. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  136. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  137. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  138. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  139. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  140. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  141. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  142. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  143. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  144. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  145. package/dist/infra/lib/gemini/orchestration.js +5 -5
  146. package/dist/infra/lib/gpt/orchestration.js +4 -4
  147. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  148. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  149. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  150. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  151. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  152. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  153. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  154. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  155. package/dist/infra/orchestrator/AgentManager.js +12 -12
  156. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  157. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  158. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  159. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  160. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  161. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  162. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  163. package/dist/tools/memory/getMemoryGraph.js +12 -12
  164. package/dist/tools/memory/getSessionContext.js +9 -9
  165. package/dist/tools/memory/linkMemories.js +14 -14
  166. package/dist/tools/memory/listMemories.js +4 -4
  167. package/dist/tools/memory/recallMemory.js +4 -4
  168. package/dist/tools/memory/saveMemory.js +4 -4
  169. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  170. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  171. package/dist/tools/semantic/astGrep.test.js +6 -6
  172. package/dist/tools/spec/prdParser.test.js +171 -171
  173. package/dist/tools/spec/specGenerator.js +169 -169
  174. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  175. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  176. package/hooks/gemini-hooks.json +73 -73
  177. package/hooks/hooks.json +126 -126
  178. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  179. package/hooks/scripts/__tests__/pre-tool-guard.test.js +368 -368
  180. package/hooks/scripts/__tests__/sentinel-guard.test.js +208 -208
  181. package/hooks/scripts/auto-commit.js +97 -97
  182. package/hooks/scripts/auto-format.js +64 -64
  183. package/hooks/scripts/auto-test.js +81 -81
  184. package/hooks/scripts/code-check.js +268 -268
  185. package/hooks/scripts/codex-detect.js +46 -46
  186. package/hooks/scripts/codex-review-gate.js +80 -80
  187. package/hooks/scripts/command-log.js +32 -32
  188. package/hooks/scripts/context-save.js +353 -353
  189. package/hooks/scripts/evolution-engine.js +91 -91
  190. package/hooks/scripts/figma-extract.js +635 -635
  191. package/hooks/scripts/figma-guard.js +219 -219
  192. package/hooks/scripts/figma-refine.js +315 -315
  193. package/hooks/scripts/figma-to-scss.js +394 -394
  194. package/hooks/scripts/figma-validate.js +353 -353
  195. package/hooks/scripts/hud-status.js +321 -321
  196. package/hooks/scripts/keyword-detector.js +214 -214
  197. package/hooks/scripts/lib/scope-from-spec.js +261 -0
  198. package/hooks/scripts/llm-orchestrate.js +645 -645
  199. package/hooks/scripts/post-edit.js +32 -32
  200. package/hooks/scripts/pr-test-gate.js +52 -52
  201. package/hooks/scripts/pre-tool-dispatcher.js +5 -0
  202. package/hooks/scripts/pre-tool-guard.js +254 -254
  203. package/hooks/scripts/prompt-dispatcher.js +190 -190
  204. package/hooks/scripts/scope-guard.js +145 -0
  205. package/hooks/scripts/sentinel-guard.js +130 -130
  206. package/hooks/scripts/session-start.js +186 -177
  207. package/hooks/scripts/skill-injector.js +83 -83
  208. package/hooks/scripts/stop-notify.js +209 -209
  209. package/hooks/scripts/utils.js +257 -257
  210. package/languages/csharp-unity.md +515 -515
  211. package/languages/gdscript-godot.md +470 -470
  212. package/languages/ruby-rails.md +489 -489
  213. package/languages/typescript-angular.md +433 -433
  214. package/languages/typescript-astro.md +416 -416
  215. package/languages/typescript-electron.md +406 -406
  216. package/languages/typescript-nestjs.md +524 -524
  217. package/languages/typescript-svelte.md +407 -407
  218. package/languages/typescript-tauri.md +365 -365
  219. package/package.json +10 -5
  220. package/skills/agents-md/SKILL.md +121 -121
  221. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  222. package/skills/agents-md/templates/agents-md.md +36 -36
  223. package/skills/arch-guard/SKILL.md +181 -181
  224. package/skills/arch-guard/agents/detector.md +48 -48
  225. package/skills/arch-guard/agents/reporter.md +48 -48
  226. package/skills/arch-guard/agents/rule-generator.md +49 -49
  227. package/skills/arch-guard/agents/violation-checker.md +51 -51
  228. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  229. package/skills/arch-guard/frameworks/solid.md +102 -102
  230. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  231. package/skills/arch-guard/templates/arch-rules.json +47 -47
  232. package/skills/arch-guard/templates/violation-report.md +53 -53
  233. package/skills/brand-assets/SKILL.md +147 -147
  234. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  235. package/skills/brand-assets/templates/brand-guide.md +161 -161
  236. package/skills/capability-loop/SKILL.md +272 -272
  237. package/skills/capability-loop/agents/capability-designer.md +61 -61
  238. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  239. package/skills/capability-loop/agents/implementer.md +50 -50
  240. package/skills/capability-loop/agents/tester.md +53 -53
  241. package/skills/capability-loop/templates/capability-spec.md +118 -118
  242. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  243. package/skills/characterization-test/SKILL.md +207 -207
  244. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  245. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  246. package/skills/characterization-test/agents/reporter.md +50 -50
  247. package/skills/characterization-test/agents/test-writer.md +49 -49
  248. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  249. package/skills/characterization-test/templates/test-template.ts +101 -101
  250. package/skills/chub-usage/SKILL.md +139 -139
  251. package/skills/claude-md-guide/SKILL.md +351 -351
  252. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  253. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  254. package/skills/commerce-patterns/SKILL.md +64 -64
  255. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  256. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  257. package/skills/commit-push-pr/SKILL.md +77 -77
  258. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  259. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  260. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  261. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  262. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  263. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  264. package/skills/context7-usage/SKILL.md +106 -106
  265. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  266. package/skills/create-prd/SKILL.md +90 -90
  267. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  268. package/skills/create-prd/agents/prioritizer.md +60 -60
  269. package/skills/create-prd/agents/requirements-writer.md +48 -48
  270. package/skills/create-prd/agents/researcher.md +55 -55
  271. package/skills/create-prd/agents/reviewer.md +54 -54
  272. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  273. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  274. package/skills/create-prd/orchestrator.md +70 -70
  275. package/skills/create-prd/rubrics/completeness.md +58 -58
  276. package/skills/create-prd/templates/prd.md +139 -139
  277. package/skills/design-audit/SKILL.md +152 -152
  278. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  279. package/skills/design-audit/agents/performance-auditor.md +46 -46
  280. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  281. package/skills/design-audit/agents/scorer.md +47 -47
  282. package/skills/design-audit/agents/slop-detector.md +47 -47
  283. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  284. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  285. package/skills/design-audit/orchestrator.md +64 -64
  286. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  287. package/skills/design-audit/rubrics/scoring.md +63 -63
  288. package/skills/design-audit/templates/report.md +88 -88
  289. package/skills/design-critique/SKILL.md +139 -139
  290. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  291. package/skills/design-critique/templates/critique-report.md +86 -86
  292. package/skills/design-distill/SKILL.md +130 -130
  293. package/skills/design-distill/templates/design-system.md +132 -132
  294. package/skills/design-normalize/SKILL.md +133 -133
  295. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  296. package/skills/design-normalize/templates/token-audit.md +89 -89
  297. package/skills/design-polish/SKILL.md +131 -131
  298. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  299. package/skills/design-polish/templates/polish-report.md +64 -64
  300. package/skills/design-teach/SKILL.md +182 -182
  301. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  302. package/skills/design-teach/templates/design-context.json +36 -36
  303. package/skills/devlog/SKILL.md +143 -143
  304. package/skills/e2e-commerce/SKILL.md +62 -62
  305. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  306. package/skills/event-comms/SKILL.md +172 -172
  307. package/skills/event-comms/templates/email-invite.md +99 -99
  308. package/skills/event-comms/templates/sns-post.md +133 -133
  309. package/skills/event-ops/SKILL.md +207 -207
  310. package/skills/event-ops/rubrics/contingency.md +85 -85
  311. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  312. package/skills/event-planning/SKILL.md +144 -144
  313. package/skills/event-planning/rubrics/timeline.md +70 -70
  314. package/skills/event-planning/templates/event-plan.md +91 -91
  315. package/skills/exec-plan/SKILL.md +149 -149
  316. package/skills/exec-plan/agents/decomposer.md +47 -47
  317. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  318. package/skills/exec-plan/agents/estimator.md +43 -43
  319. package/skills/exec-plan/agents/validator.md +55 -55
  320. package/skills/exec-plan/orchestrator.md +70 -70
  321. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  322. package/skills/exec-plan/templates/plan.md +147 -147
  323. package/skills/git-worktree/SKILL.md +73 -73
  324. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  325. package/skills/handoff/SKILL.md +110 -110
  326. package/skills/handoff/agents/context-summarizer.md +51 -51
  327. package/skills/handoff/agents/document-writer.md +63 -63
  328. package/skills/handoff/agents/state-collector.md +53 -53
  329. package/skills/handoff/agents/verifier.md +48 -48
  330. package/skills/handoff/rubrics/completeness.md +62 -62
  331. package/skills/handoff/templates/handoff.md +107 -107
  332. package/skills/parallel-research/SKILL.md +104 -104
  333. package/skills/parallel-research/agents/best-practices.md +43 -43
  334. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  335. package/skills/parallel-research/agents/framework-docs.md +45 -45
  336. package/skills/parallel-research/agents/security-advisory.md +46 -46
  337. package/skills/parallel-research/agents/synthesizer.md +57 -57
  338. package/skills/parallel-research/experts/best-practices.md +50 -50
  339. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  340. package/skills/parallel-research/experts/framework-docs.md +65 -65
  341. package/skills/parallel-research/experts/security-advisory.md +69 -69
  342. package/skills/parallel-research/orchestrator.md +79 -79
  343. package/skills/parallel-research/templates/awesome-list.md +32 -32
  344. package/skills/parallel-research/templates/paper.md +88 -88
  345. package/skills/parallel-research/templates/synthesis.md +101 -101
  346. package/skills/prioritization-frameworks/SKILL.md +87 -87
  347. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  348. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  349. package/skills/priority-todos/SKILL.md +64 -64
  350. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  351. package/skills/priority-todos/templates/todo-board.md +59 -59
  352. package/skills/seo-checklist/SKILL.md +58 -58
  353. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  354. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  355. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  356. package/skills/techdebt/SKILL.md +124 -124
  357. package/skills/techdebt/agents/analyzer.md +50 -50
  358. package/skills/techdebt/agents/fixer.md +41 -41
  359. package/skills/techdebt/agents/reviewer.md +47 -47
  360. package/skills/techdebt/agents/scanner.md +44 -44
  361. package/skills/techdebt/orchestrator.md +70 -70
  362. package/skills/techdebt/rubrics/severity.md +51 -51
  363. package/skills/techdebt/scripts/scan.js +90 -90
  364. package/skills/techdebt/templates/report.md +86 -86
  365. package/skills/tool-fallback/SKILL.md +104 -104
  366. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  367. package/skills/typescript-advanced-types/SKILL.md +67 -67
  368. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  369. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  370. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  371. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  372. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  373. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  374. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  375. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  376. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  377. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  378. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  379. package/skills/user-personas/SKILL.md +75 -75
  380. package/skills/user-personas/rubrics/research-methods.md +56 -56
  381. package/skills/user-personas/templates/persona.md +89 -89
  382. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  383. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  384. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  385. package/skills/vibe-contract/SKILL.md +166 -166
  386. package/skills/vibe-docs/templates/architecture.md +80 -80
  387. package/skills/vibe-docs/templates/readme.md +84 -84
  388. package/skills/vibe-docs/templates/release-notes.md +74 -74
  389. package/skills/vibe-figma/SKILL.md +363 -363
  390. package/skills/vibe-figma/rubrics/extraction-checklist.md +51 -51
  391. package/skills/vibe-figma/templates/component-index.md +126 -126
  392. package/skills/vibe-figma/templates/component-spec.md +168 -168
  393. package/skills/vibe-figma/templates/figma-handoff.md +100 -100
  394. package/skills/vibe-figma/templates/remapped-tree.md +277 -277
  395. package/skills/vibe-figma-convert/SKILL.md +235 -235
  396. package/skills/vibe-figma-convert/rubrics/conversion-rules.md +141 -141
  397. package/skills/vibe-figma-convert/templates/component.md +140 -140
  398. package/skills/vibe-figma-extract/SKILL.md +219 -219
  399. package/skills/vibe-figma-extract/rubrics/image-rules.md +157 -157
  400. package/skills/vibe-interview/SKILL.md +358 -358
  401. package/skills/vibe-interview/checklists/api.md +101 -101
  402. package/skills/vibe-interview/checklists/feature.md +88 -88
  403. package/skills/vibe-interview/checklists/library.md +95 -95
  404. package/skills/vibe-interview/checklists/mobile.md +89 -89
  405. package/skills/vibe-interview/checklists/webapp.md +97 -97
  406. package/skills/vibe-interview/checklists/website.md +99 -99
  407. package/skills/vibe-plan/SKILL.md +254 -254
  408. package/skills/vibe-regress/SKILL.md +174 -174
  409. package/skills/vibe-regress/templates/bug.md +44 -44
  410. package/skills/vibe-regress/templates/test-jest.md +29 -29
  411. package/skills/vibe-regress/templates/test-vitest.md +30 -30
  412. package/skills/vibe-spec/SKILL.md +1195 -1195
  413. package/skills/vibe-spec-review/SKILL.md +726 -726
  414. package/skills/vibe-test/SKILL.md +247 -247
  415. package/skills/video-production/SKILL.md +52 -52
  416. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  417. package/skills/video-production/templates/production-plan.md +104 -104
  418. package/vibe/config.json +29 -29
  419. package/vibe/constitution.md +227 -227
  420. package/vibe/rules/principles/communication-guide.md +98 -98
  421. package/vibe/rules/principles/development-philosophy.md +52 -52
  422. package/vibe/rules/principles/quick-start.md +102 -102
  423. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  424. package/vibe/rules/quality/checklist.md +276 -276
  425. package/vibe/rules/quality/performance.md +236 -236
  426. package/vibe/rules/quality/testing-strategy.md +440 -440
  427. package/vibe/rules/standards/anti-patterns.md +541 -541
  428. package/vibe/rules/standards/code-structure.md +291 -291
  429. package/vibe/rules/standards/complexity-metrics.md +313 -313
  430. package/vibe/rules/standards/git-workflow.md +237 -237
  431. package/vibe/rules/standards/naming-conventions.md +198 -198
  432. package/vibe/rules/standards/security.md +305 -305
  433. package/vibe/rules/writing/document-style.md +74 -74
  434. package/vibe/setup.sh +31 -31
  435. package/vibe/templates/claudemd-template.md +74 -74
  436. package/vibe/templates/constitution-template.md +267 -267
  437. package/vibe/templates/contract-backend-template.md +526 -526
  438. package/vibe/templates/contract-frontend-template.md +599 -599
  439. package/vibe/templates/feature-template.md +96 -96
  440. package/vibe/templates/plan-template.md +194 -194
  441. package/vibe/templates/spec-template.md +221 -221
  442. package/vibe/ui-ux-data/charts.csv +26 -26
  443. package/vibe/ui-ux-data/colors.csv +97 -97
  444. package/vibe/ui-ux-data/icons.csv +101 -101
  445. package/vibe/ui-ux-data/landing.csv +31 -31
  446. package/vibe/ui-ux-data/products.csv +96 -96
  447. package/vibe/ui-ux-data/react-performance.csv +45 -45
  448. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  449. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  450. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  451. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  452. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  453. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  454. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  455. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  456. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  457. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  458. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  459. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  460. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  461. package/vibe/ui-ux-data/styles.csv +68 -68
  462. package/vibe/ui-ux-data/typography.csv +57 -57
  463. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  464. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  465. package/vibe/ui-ux-data/version.json +31 -31
  466. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,550 +1,550 @@
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 (loop until pass or stuck)
176
- 4. STUCK (same failure as previous iteration) → Ask user
177
- (ultrawork 모드: 프롬프트 없이 TODO 기록 후 다음 scenario)
178
- ```
179
-
180
- **핵심 원칙: 검증이 가벼워야 루프가 충분히 돈다.**
181
- - 접근성 트리 기반: `button "Sign In"` = 15 chars
182
- - DOM 기반: `div class="nav-wrapper mx-4 flex..."` = 200+ chars
183
- - 전자를 사용해야 시나리오 50개도 한 세션에서 검증 가능
184
-
185
- ### 4. Quality Report (Auto-generated)
186
-
187
- ```
188
- ┌─────────────────────────────────────────────────────────────────┐
189
- │ 📊 VERIFICATION REPORT: login │
190
- ├─────────────────────────────────────────────────────────────────┤
191
- │ │
192
- │ ✅ Scenarios: 4/4 passed (100%) │
193
- │ │
194
- │ ┌───────────────────────────────────────────────────────────┐ │
195
- │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
196
- │ │───│───────────────────────│───────│──────│──────│────────│ │
197
- │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
198
- │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
199
- │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
200
- │ │ 4 │ Forgot password link │ ✅ │ ✅ │ ✅ │ ✅ │ │
201
- │ └───────────────────────────────────────────────────────────┘ │
202
- │ │
203
- │ 📈 Quality Score: 94/100 │
204
- │ │
205
- │ ┌─────────────────────────────────────────────────────────┐ │
206
- │ │ Item │ Result│ Details │ │
207
- │ │───────────────────│───────│─────────────────────────────│ │
208
- │ │ Build │ ✅ │ Success │ │
209
- │ │ Tests │ ✅ │ 12/12 passed │ │
210
- │ │ Type Check │ ✅ │ 0 errors │ │
211
- │ │ Complexity │ ✅ │ All functions ≤30 lines │ │
212
- │ │ Code Coverage │ ⚠️ │ 78% (target: 80%) │ │
213
- │ └─────────────────────────────────────────────────────────┘ │
214
- │ │
215
- │ 📋 Recommendations: │
216
- │ - Need 2% more code coverage (auth.service.ts line 45-52) │
217
- │ │
218
- │ ⏱️ Started: {start_time} │
219
- │ ⏱️ Completed: {getCurrentTime 결과} │
220
- │ │
221
- └─────────────────────────────────────────────────────────────────┘
222
- ```
223
-
224
- ### Failure Auto-Register (MANDATORY on any scenario failure)
225
-
226
- Before printing the failure report, **auto-register each failed scenario as a regression bug** so the same failure cannot silently slip through next time:
227
-
228
- ```
229
- For each failed scenario:
230
- Load skill `vibe-regress` with:
231
- subcommand: register --from-verify
232
- feature: {feature-name}
233
- scenario: {scenario-name}
234
- error: {error-summary}
235
- location: {file:line}
236
- ```
237
-
238
- - `--from-verify` mode skips user confirmation (the user is already attentive in a verify-failure context; minimize friction)
239
- - The registered bug's slug appears as a link in the Failure Report's "Fix" section
240
- - Follow up with `/vibe.regress generate <slug>` to produce a preventive test
241
-
242
- ### Failure Report
243
-
244
- ```
245
- ┌─────────────────────────────────────────────────────────────────┐
246
- │ 📊 VERIFICATION REPORT: login │
247
- ├─────────────────────────────────────────────────────────────────┤
248
- │ │
249
- │ ❌ Scenarios: 3/4 passed (75%) │
250
- │ │
251
- │ ┌───────────────────────────────────────────────────────────┐ │
252
- │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
253
- │ │───│───────────────────────│───────│──────│──────│────────│ │
254
- │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
255
- │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
256
- │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
257
- │ │ 4 │ Forgot password link │ ✅ │ ❌ │ - │ ❌ │ │
258
- │ └───────────────────────────────────────────────────────────┘ │
259
- │ │
260
- │ ❌ Failure Details: │
261
- │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
262
- │ Scenario 4: Forgot password link │
263
- │ │
264
- │ When: Click "Forgot password" │
265
- │ ❌ Issue: Link not implemented │
266
- │ 📍 Location: LoginForm.tsx line 42 │
267
- │ 💡 Fix: Need to add "Forgot password" link │
268
- │ │
269
- │ 🔧 Auto-fix command: /vibe.run "login" --fix │
270
- │ │
271
- └─────────────────────────────────────────────────────────────────┘
272
- ```
273
-
274
- ## Input
275
-
276
- - `.claude/vibe/features/{feature-name}.feature` or `.claude/vibe/features/{feature-name}/` - BDD scenarios
277
- - `.claude/vibe/specs/{feature-name}.md` or `.claude/vibe/specs/{feature-name}/` - SPEC document (reference)
278
- - Implemented source code
279
-
280
- ## Output
281
-
282
- - Verification result report (terminal output)
283
- - Passed/failed scenario list
284
- - Items needing fixes
285
-
286
- ## Example
287
-
288
- ```
289
- User: /vibe.verify "login"
290
-
291
- Claude:
292
- 📄 Loading Feature: .claude/vibe/features/login.feature
293
- 🔍 Starting verification...
294
-
295
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
296
- 🔍 Scenario 1/4: Valid login success
297
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
298
- ✅ Given: User registered - OK
299
- ✅ When: Login attempt - OK
300
- ✅ Then: JWT token returned - OK
301
- ✅ Passed!
302
-
303
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
304
- 🔍 Scenario 2/4: Invalid password error
305
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
306
- ✅ Given: OK
307
- ✅ When: OK
308
- ✅ Then: OK
309
- ✅ Passed!
310
-
311
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
312
- 🔍 Scenario 3/4: Email format validation
313
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
314
- ✅ Given: OK
315
- ✅ When: OK
316
- ✅ Then: OK
317
- ✅ Passed!
318
-
319
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
320
- 🔍 Scenario 4/4: Forgot password link
321
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
322
- ✅ Given: OK
323
- ❌ When: "Forgot password" link - missing
324
- - Then: (skipped)
325
- ❌ Failed!
326
-
327
- ┌─────────────────────────────────────────────────────────────────┐
328
- │ 📊 VERIFICATION REPORT: login │
329
- ├─────────────────────────────────────────────────────────────────┤
330
- │ │
331
- │ ❌ Scenarios: 3/4 passed (75%) │
332
- │ │
333
- │ | # | Scenario | Status | │
334
- │ |---|───────────────────────|────────| │
335
- │ | 1 | Valid login success | ✅ | │
336
- │ | 2 | Invalid password error| ✅ | │
337
- │ | 3 | Email format validation| ✅ | │
338
- │ | 4 | Forgot password link | ❌ | │
339
- │ │
340
- │ 📈 Quality Score: 75/100 │
341
- │ │
342
- │ ❌ Fixes needed: │
343
- │ - Scenario 4: Add "Forgot password" link in LoginForm.tsx │
344
- │ │
345
- │ 🔧 Auto-fix: /vibe.run "login" --fix │
346
- │ │
347
- └─────────────────────────────────────────────────────────────────┘
348
- ```
349
-
350
- ## Core Tools (Code Analysis & Quality)
351
-
352
- ### Tool Invocation
353
-
354
- All tools are called via:
355
-
356
- ```bash
357
- 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)))"
358
- ```
359
-
360
- ### Recommended Tools for Verification
361
-
362
- | Tool | Purpose | When to Use |
363
- |------|---------|-------------|
364
- | `validateCodeQuality` | Code quality validation | Check complexity, style violations |
365
- | `analyzeComplexity` | Complexity analysis | Verify function length, nesting depth |
366
- | `findSymbol` | Find implementations | Verify feature implementation exists |
367
- | `findReferences` | Find usages | Check if all references are correct |
368
-
369
- ### Example Tool Usage in Verification
370
-
371
- **1. Validate code quality:**
372
-
373
- ```bash
374
- 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)))"
375
- ```
376
-
377
- **2. Analyze complexity of implementation:**
378
-
379
- ```bash
380
- 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)))"
381
- ```
382
-
383
- **3. Find implemented feature:**
384
-
385
- ```bash
386
- 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)))"
387
- ```
388
-
389
- ### Final Codex Review Gate (Codex 플러그인 활성화 시)
390
-
391
- > 모든 시나리오 검증 통과 후, 최종 안전망으로 Codex review 실행.
392
-
393
- ```
394
- /codex:review
395
- ```
396
-
397
- **Codex P1 발견 시:**
398
- 1. 즉시 수정
399
- 2. 해당 시나리오 재검증
400
- 3. 재검증 통과 시 최종 완료
401
-
402
- **Codex P2 발견 시:**
403
- - TODO 파일에 기록 후 완료 처리
404
-
405
- ## Post-Verify Contract Check (auto, only when a contract file exists)
406
-
407
- After all scenarios pass, auto-invoke:
408
-
409
- ```
410
- Load skill `vibe-contract` with: check "{feature-name}"
411
- ```
412
-
413
- - Skip if `.claude/vibe/contracts/{feature-name}.md` does not exist
414
- - No drift → verify still passes
415
- - **P1 drift** → demote verify to fail; auto-call `/vibe.regress register --from-contract`
416
- - P2 / P3 drift → warning only; verify still passes
417
-
418
- ## Next Step
419
-
420
- On verification pass:
421
-
422
- ```
423
- Complete! Proceed to next feature.
424
- ```
425
-
426
- On verification fail:
427
-
428
- ```
429
- /vibe.run "feature-name" --fix # Fix failed scenarios
430
- ```
431
-
432
- ---
433
-
434
- ## Quality Gate (Mandatory)
435
-
436
- ### Verification Quality Checklist
437
-
438
- Before marking verification complete, ALL items must pass:
439
-
440
- | Category | Check Item | Weight |
441
- |----------|------------|--------|
442
- | **Scenario Coverage** | All scenarios from feature file tested | 25% |
443
- | **Given Verification** | All preconditions validated | 15% |
444
- | **When Verification** | All actions executable | 15% |
445
- | **Then Verification** | All expected outcomes confirmed | 20% |
446
- | **Build Status** | Project builds without errors | 10% |
447
- | **Test Status** | All existing tests pass | 10% |
448
- | **Type Check** | No TypeScript/type errors | 5% |
449
-
450
- ### Verification Score Calculation
451
-
452
- ```
453
- Score = (passed_scenarios / total_scenarios) × 100
454
-
455
- Grades:
456
- - 100%: ✅ PERFECT - All scenarios pass
457
- - 90-99%: ⚠️ ALMOST - Minor gaps, review needed
458
- - 70-89%: ❌ INCOMPLETE - Significant gaps
459
- - 0-69%: ❌ FAILED - Major implementation missing
460
- ```
461
-
462
- ### Pass/Fail Criteria
463
-
464
- | Metric | Pass Threshold | Action on Fail |
465
- |--------|----------------|----------------|
466
- | Scenario pass rate | 100% | Run `/vibe.run --fix` |
467
- | Build status | Success | Fix build errors first |
468
- | Test pass rate | 100% | Fix failing tests |
469
- | Type check | 0 errors | Fix type errors |
470
-
471
- ### Verification Methods Matrix
472
-
473
- | Method | Trigger Condition | What It Checks |
474
- |--------|-------------------|----------------|
475
- | **Code Analysis** | Always | Implementation exists |
476
- | **Test Execution** | Test files exist | Logic correctness |
477
- | **Build Verification** | Build script exists | Compilation success |
478
- | **Type Check** | tsconfig.json exists | Type safety |
479
- | **Lint Check** | ESLint config exists | Code style |
480
-
481
- ### Scenario Verification Depth
482
-
483
- For each scenario, verify at THREE levels:
484
-
485
- | Level | Verification | Example |
486
- |-------|--------------|---------|
487
- | **L1: Existence** | Code/function exists | `login()` function defined |
488
- | **L2: Logic** | Implementation is correct | Validates email format |
489
- | **L3: Integration** | Works with other components | Returns valid JWT |
490
-
491
- ### Auto-Fix Triggers
492
-
493
- | Verification Failure | Auto-Fix Action |
494
- |----------------------|-----------------|
495
- | Missing implementation | Generate skeleton from scenario |
496
- | Test failure | Analyze and suggest fix |
497
- | Build error | Show error location |
498
- | Type error | Suggest type annotations |
499
-
500
- ### Failure Escalation (convergence-based, no retry cap)
501
-
502
- ```
503
- Auto-fix attempt 1 → Re-verify
504
- ❌ Still failing?
505
- Auto-fix attempt 2 → Re-verify
506
- ❌ Still failing? ← same error as prev? STUCK
507
- ✓ different error? Continue (progress made)
508
- ...
509
- Stuck detected (same error as previous attempt):
510
- → Interactive mode: Ask user
511
- 1. Provide a fix hint (e.g., "check LoginForm.tsx line 42")
512
- → Apply → Re-verify → Continue loop
513
- 2. Type "proceed" → Record failure in
514
- .claude/vibe/todos/verify-failure-{scenario}.md,
515
- continue to next scenario
516
- 3. Type "abort" → Stop entire verification
517
- → ultrawork mode: auto-record TODO + continue to next scenario
518
-
519
- No retry cap — loop continues as long as the auto-fixer makes progress.
520
- Only "same error twice" (stuck) triggers escalation.
521
- ```
522
-
523
- ### Verification Report Requirements
524
-
525
- Every verification MUST produce:
526
-
527
- 1. **Scenario Summary Table**
528
- - Scenario name
529
- - Given/When/Then status (✅/❌)
530
- - Overall status
531
-
532
- 2. **Quality Metrics**
533
- - Build status
534
- - Test pass count
535
- - Type error count
536
- - Code coverage percentage
537
-
538
- 3. **Failure Details** (if any)
539
- - Exact failure point (Given/When/Then)
540
- - Expected vs actual
541
- - File path and line number
542
- - Suggested fix command
543
-
544
- 4. **Recommendations**
545
- - Specific files to modify
546
- - Auto-fix command if available
547
-
548
- ---
549
-
550
- 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 (loop until pass or stuck)
176
+ 4. STUCK (same failure as previous iteration) → Ask user
177
+ (ultrawork 모드: 프롬프트 없이 TODO 기록 후 다음 scenario)
178
+ ```
179
+
180
+ **핵심 원칙: 검증이 가벼워야 루프가 충분히 돈다.**
181
+ - 접근성 트리 기반: `button "Sign In"` = 15 chars
182
+ - DOM 기반: `div class="nav-wrapper mx-4 flex..."` = 200+ chars
183
+ - 전자를 사용해야 시나리오 50개도 한 세션에서 검증 가능
184
+
185
+ ### 4. Quality Report (Auto-generated)
186
+
187
+ ```
188
+ ┌─────────────────────────────────────────────────────────────────┐
189
+ │ 📊 VERIFICATION REPORT: login │
190
+ ├─────────────────────────────────────────────────────────────────┤
191
+ │ │
192
+ │ ✅ Scenarios: 4/4 passed (100%) │
193
+ │ │
194
+ │ ┌───────────────────────────────────────────────────────────┐ │
195
+ │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
196
+ │ │───│───────────────────────│───────│──────│──────│────────│ │
197
+ │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
198
+ │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
199
+ │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
200
+ │ │ 4 │ Forgot password link │ ✅ │ ✅ │ ✅ │ ✅ │ │
201
+ │ └───────────────────────────────────────────────────────────┘ │
202
+ │ │
203
+ │ 📈 Quality Score: 94/100 │
204
+ │ │
205
+ │ ┌─────────────────────────────────────────────────────────┐ │
206
+ │ │ Item │ Result│ Details │ │
207
+ │ │───────────────────│───────│─────────────────────────────│ │
208
+ │ │ Build │ ✅ │ Success │ │
209
+ │ │ Tests │ ✅ │ 12/12 passed │ │
210
+ │ │ Type Check │ ✅ │ 0 errors │ │
211
+ │ │ Complexity │ ✅ │ All functions ≤30 lines │ │
212
+ │ │ Code Coverage │ ⚠️ │ 78% (target: 80%) │ │
213
+ │ └─────────────────────────────────────────────────────────┘ │
214
+ │ │
215
+ │ 📋 Recommendations: │
216
+ │ - Need 2% more code coverage (auth.service.ts line 45-52) │
217
+ │ │
218
+ │ ⏱️ Started: {start_time} │
219
+ │ ⏱️ Completed: {getCurrentTime 결과} │
220
+ │ │
221
+ └─────────────────────────────────────────────────────────────────┘
222
+ ```
223
+
224
+ ### Failure Auto-Register (MANDATORY on any scenario failure)
225
+
226
+ Before printing the failure report, **auto-register each failed scenario as a regression bug** so the same failure cannot silently slip through next time:
227
+
228
+ ```
229
+ For each failed scenario:
230
+ Load skill `vibe-regress` with:
231
+ subcommand: register --from-verify
232
+ feature: {feature-name}
233
+ scenario: {scenario-name}
234
+ error: {error-summary}
235
+ location: {file:line}
236
+ ```
237
+
238
+ - `--from-verify` mode skips user confirmation (the user is already attentive in a verify-failure context; minimize friction)
239
+ - The registered bug's slug appears as a link in the Failure Report's "Fix" section
240
+ - Follow up with `/vibe.regress generate <slug>` to produce a preventive test
241
+
242
+ ### Failure Report
243
+
244
+ ```
245
+ ┌─────────────────────────────────────────────────────────────────┐
246
+ │ 📊 VERIFICATION REPORT: login │
247
+ ├─────────────────────────────────────────────────────────────────┤
248
+ │ │
249
+ │ ❌ Scenarios: 3/4 passed (75%) │
250
+ │ │
251
+ │ ┌───────────────────────────────────────────────────────────┐ │
252
+ │ │ # │ Scenario │ Given │ When │ Then │ Status │ │
253
+ │ │───│───────────────────────│───────│──────│──────│────────│ │
254
+ │ │ 1 │ Valid login success │ ✅ │ ✅ │ ✅ │ ✅ │ │
255
+ │ │ 2 │ Invalid password error│ ✅ │ ✅ │ ✅ │ ✅ │ │
256
+ │ │ 3 │ Email format validation│ ✅ │ ✅ │ ✅ │ ✅ │ │
257
+ │ │ 4 │ Forgot password link │ ✅ │ ❌ │ - │ ❌ │ │
258
+ │ └───────────────────────────────────────────────────────────┘ │
259
+ │ │
260
+ │ ❌ Failure Details: │
261
+ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
262
+ │ Scenario 4: Forgot password link │
263
+ │ │
264
+ │ When: Click "Forgot password" │
265
+ │ ❌ Issue: Link not implemented │
266
+ │ 📍 Location: LoginForm.tsx line 42 │
267
+ │ 💡 Fix: Need to add "Forgot password" link │
268
+ │ │
269
+ │ 🔧 Auto-fix command: /vibe.run "login" --fix │
270
+ │ │
271
+ └─────────────────────────────────────────────────────────────────┘
272
+ ```
273
+
274
+ ## Input
275
+
276
+ - `.claude/vibe/features/{feature-name}.feature` or `.claude/vibe/features/{feature-name}/` - BDD scenarios
277
+ - `.claude/vibe/specs/{feature-name}.md` or `.claude/vibe/specs/{feature-name}/` - SPEC document (reference)
278
+ - Implemented source code
279
+
280
+ ## Output
281
+
282
+ - Verification result report (terminal output)
283
+ - Passed/failed scenario list
284
+ - Items needing fixes
285
+
286
+ ## Example
287
+
288
+ ```
289
+ User: /vibe.verify "login"
290
+
291
+ Claude:
292
+ 📄 Loading Feature: .claude/vibe/features/login.feature
293
+ 🔍 Starting verification...
294
+
295
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
296
+ 🔍 Scenario 1/4: Valid login success
297
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
298
+ ✅ Given: User registered - OK
299
+ ✅ When: Login attempt - OK
300
+ ✅ Then: JWT token returned - OK
301
+ ✅ Passed!
302
+
303
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
304
+ 🔍 Scenario 2/4: Invalid password error
305
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
306
+ ✅ Given: OK
307
+ ✅ When: OK
308
+ ✅ Then: OK
309
+ ✅ Passed!
310
+
311
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
312
+ 🔍 Scenario 3/4: Email format validation
313
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
314
+ ✅ Given: OK
315
+ ✅ When: OK
316
+ ✅ Then: OK
317
+ ✅ Passed!
318
+
319
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
320
+ 🔍 Scenario 4/4: Forgot password link
321
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
322
+ ✅ Given: OK
323
+ ❌ When: "Forgot password" link - missing
324
+ - Then: (skipped)
325
+ ❌ Failed!
326
+
327
+ ┌─────────────────────────────────────────────────────────────────┐
328
+ │ 📊 VERIFICATION REPORT: login │
329
+ ├─────────────────────────────────────────────────────────────────┤
330
+ │ │
331
+ │ ❌ Scenarios: 3/4 passed (75%) │
332
+ │ │
333
+ │ | # | Scenario | Status | │
334
+ │ |---|───────────────────────|────────| │
335
+ │ | 1 | Valid login success | ✅ | │
336
+ │ | 2 | Invalid password error| ✅ | │
337
+ │ | 3 | Email format validation| ✅ | │
338
+ │ | 4 | Forgot password link | ❌ | │
339
+ │ │
340
+ │ 📈 Quality Score: 75/100 │
341
+ │ │
342
+ │ ❌ Fixes needed: │
343
+ │ - Scenario 4: Add "Forgot password" link in LoginForm.tsx │
344
+ │ │
345
+ │ 🔧 Auto-fix: /vibe.run "login" --fix │
346
+ │ │
347
+ └─────────────────────────────────────────────────────────────────┘
348
+ ```
349
+
350
+ ## Core Tools (Code Analysis & Quality)
351
+
352
+ ### Tool Invocation
353
+
354
+ All tools are called via:
355
+
356
+ ```bash
357
+ 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)))"
358
+ ```
359
+
360
+ ### Recommended Tools for Verification
361
+
362
+ | Tool | Purpose | When to Use |
363
+ |------|---------|-------------|
364
+ | `validateCodeQuality` | Code quality validation | Check complexity, style violations |
365
+ | `analyzeComplexity` | Complexity analysis | Verify function length, nesting depth |
366
+ | `findSymbol` | Find implementations | Verify feature implementation exists |
367
+ | `findReferences` | Find usages | Check if all references are correct |
368
+
369
+ ### Example Tool Usage in Verification
370
+
371
+ **1. Validate code quality:**
372
+
373
+ ```bash
374
+ 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)))"
375
+ ```
376
+
377
+ **2. Analyze complexity of implementation:**
378
+
379
+ ```bash
380
+ 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)))"
381
+ ```
382
+
383
+ **3. Find implemented feature:**
384
+
385
+ ```bash
386
+ 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)))"
387
+ ```
388
+
389
+ ### Final Codex Review Gate (Codex 플러그인 활성화 시)
390
+
391
+ > 모든 시나리오 검증 통과 후, 최종 안전망으로 Codex review 실행.
392
+
393
+ ```
394
+ /codex:review
395
+ ```
396
+
397
+ **Codex P1 발견 시:**
398
+ 1. 즉시 수정
399
+ 2. 해당 시나리오 재검증
400
+ 3. 재검증 통과 시 최종 완료
401
+
402
+ **Codex P2 발견 시:**
403
+ - TODO 파일에 기록 후 완료 처리
404
+
405
+ ## Post-Verify Contract Check (auto, only when a contract file exists)
406
+
407
+ After all scenarios pass, auto-invoke:
408
+
409
+ ```
410
+ Load skill `vibe-contract` with: check "{feature-name}"
411
+ ```
412
+
413
+ - Skip if `.claude/vibe/contracts/{feature-name}.md` does not exist
414
+ - No drift → verify still passes
415
+ - **P1 drift** → demote verify to fail; auto-call `/vibe.regress register --from-contract`
416
+ - P2 / P3 drift → warning only; verify still passes
417
+
418
+ ## Next Step
419
+
420
+ On verification pass:
421
+
422
+ ```
423
+ Complete! Proceed to next feature.
424
+ ```
425
+
426
+ On verification fail:
427
+
428
+ ```
429
+ /vibe.run "feature-name" --fix # Fix failed scenarios
430
+ ```
431
+
432
+ ---
433
+
434
+ ## Quality Gate (Mandatory)
435
+
436
+ ### Verification Quality Checklist
437
+
438
+ Before marking verification complete, ALL items must pass:
439
+
440
+ | Category | Check Item | Weight |
441
+ |----------|------------|--------|
442
+ | **Scenario Coverage** | All scenarios from feature file tested | 25% |
443
+ | **Given Verification** | All preconditions validated | 15% |
444
+ | **When Verification** | All actions executable | 15% |
445
+ | **Then Verification** | All expected outcomes confirmed | 20% |
446
+ | **Build Status** | Project builds without errors | 10% |
447
+ | **Test Status** | All existing tests pass | 10% |
448
+ | **Type Check** | No TypeScript/type errors | 5% |
449
+
450
+ ### Verification Score Calculation
451
+
452
+ ```
453
+ Score = (passed_scenarios / total_scenarios) × 100
454
+
455
+ Grades:
456
+ - 100%: ✅ PERFECT - All scenarios pass
457
+ - 90-99%: ⚠️ ALMOST - Minor gaps, review needed
458
+ - 70-89%: ❌ INCOMPLETE - Significant gaps
459
+ - 0-69%: ❌ FAILED - Major implementation missing
460
+ ```
461
+
462
+ ### Pass/Fail Criteria
463
+
464
+ | Metric | Pass Threshold | Action on Fail |
465
+ |--------|----------------|----------------|
466
+ | Scenario pass rate | 100% | Run `/vibe.run --fix` |
467
+ | Build status | Success | Fix build errors first |
468
+ | Test pass rate | 100% | Fix failing tests |
469
+ | Type check | 0 errors | Fix type errors |
470
+
471
+ ### Verification Methods Matrix
472
+
473
+ | Method | Trigger Condition | What It Checks |
474
+ |--------|-------------------|----------------|
475
+ | **Code Analysis** | Always | Implementation exists |
476
+ | **Test Execution** | Test files exist | Logic correctness |
477
+ | **Build Verification** | Build script exists | Compilation success |
478
+ | **Type Check** | tsconfig.json exists | Type safety |
479
+ | **Lint Check** | ESLint config exists | Code style |
480
+
481
+ ### Scenario Verification Depth
482
+
483
+ For each scenario, verify at THREE levels:
484
+
485
+ | Level | Verification | Example |
486
+ |-------|--------------|---------|
487
+ | **L1: Existence** | Code/function exists | `login()` function defined |
488
+ | **L2: Logic** | Implementation is correct | Validates email format |
489
+ | **L3: Integration** | Works with other components | Returns valid JWT |
490
+
491
+ ### Auto-Fix Triggers
492
+
493
+ | Verification Failure | Auto-Fix Action |
494
+ |----------------------|-----------------|
495
+ | Missing implementation | Generate skeleton from scenario |
496
+ | Test failure | Analyze and suggest fix |
497
+ | Build error | Show error location |
498
+ | Type error | Suggest type annotations |
499
+
500
+ ### Failure Escalation (convergence-based, no retry cap)
501
+
502
+ ```
503
+ Auto-fix attempt 1 → Re-verify
504
+ ❌ Still failing?
505
+ Auto-fix attempt 2 → Re-verify
506
+ ❌ Still failing? ← same error as prev? STUCK
507
+ ✓ different error? Continue (progress made)
508
+ ...
509
+ Stuck detected (same error as previous attempt):
510
+ → Interactive mode: Ask user
511
+ 1. Provide a fix hint (e.g., "check LoginForm.tsx line 42")
512
+ → Apply → Re-verify → Continue loop
513
+ 2. Type "proceed" → Record failure in
514
+ .claude/vibe/todos/verify-failure-{scenario}.md,
515
+ continue to next scenario
516
+ 3. Type "abort" → Stop entire verification
517
+ → ultrawork mode: auto-record TODO + continue to next scenario
518
+
519
+ No retry cap — loop continues as long as the auto-fixer makes progress.
520
+ Only "same error twice" (stuck) triggers escalation.
521
+ ```
522
+
523
+ ### Verification Report Requirements
524
+
525
+ Every verification MUST produce:
526
+
527
+ 1. **Scenario Summary Table**
528
+ - Scenario name
529
+ - Given/When/Then status (✅/❌)
530
+ - Overall status
531
+
532
+ 2. **Quality Metrics**
533
+ - Build status
534
+ - Test pass count
535
+ - Type error count
536
+ - Code coverage percentage
537
+
538
+ 3. **Failure Details** (if any)
539
+ - Exact failure point (Given/When/Then)
540
+ - Expected vs actual
541
+ - File path and line number
542
+ - Suggested fix command
543
+
544
+ 4. **Recommendations**
545
+ - Specific files to modify
546
+ - Auto-fix command if available
547
+
548
+ ---
549
+
550
+ ARGUMENTS: $ARGUMENTS