@su-record/vibe 2.9.18 → 2.9.19

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