@su-record/vibe 2.9.25 → 2.9.32

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 (527) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +109 -106
  3. package/LICENSE +21 -21
  4. package/README.en.md +220 -220
  5. package/README.md +171 -171
  6. package/agents/architect-low.md +41 -41
  7. package/agents/architect-medium.md +59 -59
  8. package/agents/architect.md +80 -80
  9. package/agents/build-error-resolver.md +115 -115
  10. package/agents/compounder.md +261 -261
  11. package/agents/diagrammer.md +178 -178
  12. package/agents/docs/api-documenter.md +99 -99
  13. package/agents/docs/changelog-writer.md +93 -93
  14. package/agents/e2e-tester.md +294 -294
  15. package/agents/event/event-comms.md +78 -78
  16. package/agents/event/event-content.md +68 -68
  17. package/agents/event/event-image.md +95 -95
  18. package/agents/event/event-ops.md +84 -84
  19. package/agents/event/event-scheduler.md +69 -69
  20. package/agents/event/event-speaker.md +86 -86
  21. package/agents/explorer-low.md +42 -42
  22. package/agents/explorer-medium.md +59 -59
  23. package/agents/explorer.md +48 -48
  24. package/agents/implementer-low.md +43 -43
  25. package/agents/implementer-medium.md +52 -52
  26. package/agents/implementer.md +54 -54
  27. package/agents/junior-mentor.md +141 -141
  28. package/agents/planning/requirements-analyst.md +84 -84
  29. package/agents/planning/ux-advisor.md +83 -83
  30. package/agents/qa/acceptance-tester.md +86 -86
  31. package/agents/qa/edge-case-finder.md +93 -93
  32. package/agents/qa/qa-coordinator.md +131 -131
  33. package/agents/refactor-cleaner.md +143 -143
  34. package/agents/research/best-practices-agent.md +199 -199
  35. package/agents/research/codebase-patterns-agent.md +157 -157
  36. package/agents/research/framework-docs-agent.md +188 -188
  37. package/agents/research/security-advisory-agent.md +213 -213
  38. package/agents/review/architecture-reviewer.md +107 -107
  39. package/agents/review/complexity-reviewer.md +116 -116
  40. package/agents/review/data-integrity-reviewer.md +88 -88
  41. package/agents/review/git-history-reviewer.md +103 -103
  42. package/agents/review/performance-reviewer.md +86 -86
  43. package/agents/review/python-reviewer.md +150 -150
  44. package/agents/review/rails-reviewer.md +139 -139
  45. package/agents/review/react-reviewer.md +144 -144
  46. package/agents/review/security-reviewer.md +80 -80
  47. package/agents/review/simplicity-reviewer.md +140 -140
  48. package/agents/review/test-coverage-reviewer.md +116 -116
  49. package/agents/review/typescript-reviewer.md +127 -127
  50. package/agents/searcher.md +54 -54
  51. package/agents/simplifier.md +120 -120
  52. package/agents/teams/debug-team.md +70 -70
  53. package/agents/teams/dev-team.md +88 -88
  54. package/agents/teams/docs-team.md +80 -80
  55. package/agents/teams/figma/figma-analyst.md +52 -52
  56. package/agents/teams/figma/figma-architect.md +112 -112
  57. package/agents/teams/figma/figma-auditor.md +82 -82
  58. package/agents/teams/figma/figma-builder.md +100 -100
  59. package/agents/teams/figma-team.md +85 -85
  60. package/agents/teams/fullstack-team.md +83 -83
  61. package/agents/teams/lite-team.md +69 -69
  62. package/agents/teams/migration-team.md +78 -78
  63. package/agents/teams/refactor-team.md +94 -94
  64. package/agents/teams/research-team.md +86 -86
  65. package/agents/teams/review-debate-team.md +125 -125
  66. package/agents/teams/security-team.md +81 -81
  67. package/agents/tester.md +49 -49
  68. package/agents/ui/ui-a11y-auditor.md +93 -93
  69. package/agents/ui/ui-antipattern-detector.md +102 -102
  70. package/agents/ui/ui-dataviz-advisor.md +69 -69
  71. package/agents/ui/ui-design-system-gen.md +57 -57
  72. package/agents/ui/ui-industry-analyzer.md +49 -49
  73. package/agents/ui/ui-layout-architect.md +65 -65
  74. package/agents/ui/ui-stack-implementer.md +68 -68
  75. package/agents/ui/ux-compliance-reviewer.md +81 -81
  76. package/agents/ui-previewer.md +258 -258
  77. package/commands/vibe.analyze.md +533 -533
  78. package/commands/vibe.contract.md +105 -105
  79. package/commands/vibe.docs.md +33 -33
  80. package/commands/vibe.event.md +163 -163
  81. package/commands/vibe.figma.md +600 -584
  82. package/commands/vibe.harness.md +177 -177
  83. package/commands/vibe.regress.md +73 -73
  84. package/commands/vibe.review.md +624 -624
  85. package/commands/vibe.run.md +1946 -1940
  86. package/commands/vibe.scaffold.md +195 -195
  87. package/commands/vibe.spec.md +577 -577
  88. package/commands/vibe.test.md +49 -49
  89. package/commands/vibe.trace.md +276 -276
  90. package/commands/vibe.utils.md +413 -413
  91. package/commands/vibe.verify.md +572 -550
  92. package/dist/cli/auth.d.ts +7 -1
  93. package/dist/cli/auth.d.ts.map +1 -1
  94. package/dist/cli/auth.js +51 -11
  95. package/dist/cli/auth.js.map +1 -1
  96. package/dist/cli/collaborator.d.ts +5 -1
  97. package/dist/cli/collaborator.d.ts.map +1 -1
  98. package/dist/cli/collaborator.js +60 -55
  99. package/dist/cli/collaborator.js.map +1 -1
  100. package/dist/cli/commands/codex-proxy.js +15 -15
  101. package/dist/cli/commands/config.js +9 -9
  102. package/dist/cli/commands/evolution.js +12 -12
  103. package/dist/cli/commands/figma.js +20 -20
  104. package/dist/cli/commands/info.d.ts.map +1 -1
  105. package/dist/cli/commands/info.js +47 -63
  106. package/dist/cli/commands/info.js.map +1 -1
  107. package/dist/cli/commands/init.d.ts +13 -5
  108. package/dist/cli/commands/init.d.ts.map +1 -1
  109. package/dist/cli/commands/init.js +71 -35
  110. package/dist/cli/commands/init.js.map +1 -1
  111. package/dist/cli/commands/remove.d.ts.map +1 -1
  112. package/dist/cli/commands/remove.js +35 -22
  113. package/dist/cli/commands/remove.js.map +1 -1
  114. package/dist/cli/commands/sentinel.js +27 -27
  115. package/dist/cli/commands/skills.js +5 -5
  116. package/dist/cli/commands/slack.js +10 -10
  117. package/dist/cli/commands/stats.js +6 -6
  118. package/dist/cli/commands/telegram.js +12 -12
  119. package/dist/cli/commands/update.d.ts.map +1 -1
  120. package/dist/cli/commands/update.js +10 -6
  121. package/dist/cli/commands/update.js.map +1 -1
  122. package/dist/cli/detect.js +32 -32
  123. package/dist/cli/index.js +37 -35
  124. package/dist/cli/index.js.map +1 -1
  125. package/dist/cli/llm/claude-commands.js +16 -16
  126. package/dist/cli/llm/config.js +18 -18
  127. package/dist/cli/llm/gemini-commands.js +16 -16
  128. package/dist/cli/llm/gpt-commands.js +19 -19
  129. package/dist/cli/llm/help.js +21 -21
  130. package/dist/cli/postinstall/cursor-agents.js +32 -32
  131. package/dist/cli/postinstall/cursor-rules.js +83 -83
  132. package/dist/cli/postinstall/cursor-skills.js +743 -743
  133. package/dist/cli/postinstall/global-config.d.ts.map +1 -1
  134. package/dist/cli/postinstall/global-config.js +8 -4
  135. package/dist/cli/postinstall/global-config.js.map +1 -1
  136. package/dist/cli/setup/LegacyMigration.d.ts +14 -0
  137. package/dist/cli/setup/LegacyMigration.d.ts.map +1 -1
  138. package/dist/cli/setup/LegacyMigration.js +61 -0
  139. package/dist/cli/setup/LegacyMigration.js.map +1 -1
  140. package/dist/cli/setup/ProjectSetup.d.ts +9 -3
  141. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  142. package/dist/cli/setup/ProjectSetup.js +60 -36
  143. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  144. package/dist/cli/setup/Provisioner.js +44 -44
  145. package/dist/cli/setup/Provisioner.js.map +1 -1
  146. package/dist/cli/setup.d.ts +1 -1
  147. package/dist/cli/setup.d.ts.map +1 -1
  148. package/dist/cli/setup.js +1 -1
  149. package/dist/cli/setup.js.map +1 -1
  150. package/dist/cli/utils/cli-detector.d.ts +9 -6
  151. package/dist/cli/utils/cli-detector.d.ts.map +1 -1
  152. package/dist/cli/utils/cli-detector.js +127 -8
  153. package/dist/cli/utils/cli-detector.js.map +1 -1
  154. package/dist/infra/lib/DeepInit.js +24 -24
  155. package/dist/infra/lib/IterationTracker.js +11 -11
  156. package/dist/infra/lib/PythonParser.js +108 -108
  157. package/dist/infra/lib/ReviewRace.js +96 -96
  158. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  159. package/dist/infra/lib/SkillQualityGate.js +9 -9
  160. package/dist/infra/lib/SkillRepository.js +159 -159
  161. package/dist/infra/lib/UltraQA.js +99 -99
  162. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  163. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  164. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  165. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  166. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  167. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  168. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  169. package/dist/infra/lib/browser/compare.d.ts +27 -0
  170. package/dist/infra/lib/browser/compare.d.ts.map +1 -1
  171. package/dist/infra/lib/browser/compare.js +55 -0
  172. package/dist/infra/lib/browser/compare.js.map +1 -1
  173. package/dist/infra/lib/browser/index.d.ts +2 -1
  174. package/dist/infra/lib/browser/index.d.ts.map +1 -1
  175. package/dist/infra/lib/browser/index.js +1 -1
  176. package/dist/infra/lib/browser/index.js.map +1 -1
  177. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  178. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  179. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  180. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  181. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  182. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  183. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  184. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  185. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  186. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  187. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  188. package/dist/infra/lib/figma/audit.d.ts +37 -0
  189. package/dist/infra/lib/figma/audit.d.ts.map +1 -0
  190. package/dist/infra/lib/figma/audit.js +130 -0
  191. package/dist/infra/lib/figma/audit.js.map +1 -0
  192. package/dist/infra/lib/figma/extract.d.ts +21 -1
  193. package/dist/infra/lib/figma/extract.d.ts.map +1 -1
  194. package/dist/infra/lib/figma/extract.js +84 -12
  195. package/dist/infra/lib/figma/extract.js.map +1 -1
  196. package/dist/infra/lib/figma/index.d.ts +4 -2
  197. package/dist/infra/lib/figma/index.d.ts.map +1 -1
  198. package/dist/infra/lib/figma/index.js +2 -1
  199. package/dist/infra/lib/figma/index.js.map +1 -1
  200. package/dist/infra/lib/figma/types.d.ts +31 -0
  201. package/dist/infra/lib/figma/types.d.ts.map +1 -1
  202. package/dist/infra/lib/gemini/orchestration.js +5 -5
  203. package/dist/infra/lib/gpt/orchestration.js +4 -4
  204. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  205. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  206. package/dist/infra/lib/memory/MemoryStorage.d.ts +5 -0
  207. package/dist/infra/lib/memory/MemoryStorage.d.ts.map +1 -1
  208. package/dist/infra/lib/memory/MemoryStorage.js +202 -183
  209. package/dist/infra/lib/memory/MemoryStorage.js.map +1 -1
  210. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  211. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  212. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  213. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  214. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  215. package/dist/infra/orchestrator/AgentManager.js +12 -12
  216. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  217. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  218. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  219. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  220. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  221. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  222. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  223. package/dist/tools/memory/getMemoryGraph.js +12 -12
  224. package/dist/tools/memory/getSessionContext.js +9 -9
  225. package/dist/tools/memory/linkMemories.js +14 -14
  226. package/dist/tools/memory/listMemories.js +4 -4
  227. package/dist/tools/memory/recallMemory.js +4 -4
  228. package/dist/tools/memory/saveMemory.js +4 -4
  229. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  230. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  231. package/dist/tools/semantic/astGrep.test.js +6 -6
  232. package/dist/tools/spec/prdParser.test.js +171 -171
  233. package/dist/tools/spec/specGenerator.js +169 -169
  234. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  235. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  236. package/hooks/gemini-hooks.json +73 -73
  237. package/hooks/hooks.json +134 -126
  238. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  239. package/hooks/scripts/__tests__/pre-tool-guard.test.js +409 -409
  240. package/hooks/scripts/__tests__/sentinel-guard.test.js +208 -208
  241. package/hooks/scripts/auto-commit.js +97 -97
  242. package/hooks/scripts/auto-format.js +64 -64
  243. package/hooks/scripts/auto-test.js +81 -81
  244. package/hooks/scripts/code-check.js +271 -271
  245. package/hooks/scripts/codex-detect.js +46 -46
  246. package/hooks/scripts/codex-review-gate.js +80 -80
  247. package/hooks/scripts/command-log.js +32 -32
  248. package/hooks/scripts/context-save.js +353 -353
  249. package/hooks/scripts/evolution-engine.js +91 -91
  250. package/hooks/scripts/figma-extract.js +768 -635
  251. package/hooks/scripts/figma-guard.js +219 -219
  252. package/hooks/scripts/figma-refine.js +315 -315
  253. package/hooks/scripts/figma-to-scss.js +394 -394
  254. package/hooks/scripts/figma-validate.js +353 -353
  255. package/hooks/scripts/hud-status.js +321 -321
  256. package/hooks/scripts/keyword-detector.js +214 -214
  257. package/hooks/scripts/lib/dispatcher.js +87 -83
  258. package/hooks/scripts/lib/scope-from-spec.js +276 -261
  259. package/hooks/scripts/llm-orchestrate.js +645 -645
  260. package/hooks/scripts/post-edit.js +35 -35
  261. package/hooks/scripts/pr-test-gate.js +52 -52
  262. package/hooks/scripts/pre-tool-guard.js +259 -259
  263. package/hooks/scripts/prompt-dispatcher.js +192 -190
  264. package/hooks/scripts/scope-guard.js +145 -145
  265. package/hooks/scripts/sentinel-guard.js +130 -130
  266. package/hooks/scripts/session-start.js +186 -186
  267. package/hooks/scripts/skill-injector.js +83 -83
  268. package/hooks/scripts/step-counter.js +45 -0
  269. package/hooks/scripts/stop-notify.js +209 -209
  270. package/hooks/scripts/utils.js +315 -257
  271. package/languages/csharp-unity.md +515 -515
  272. package/languages/gdscript-godot.md +470 -470
  273. package/languages/ruby-rails.md +489 -489
  274. package/languages/typescript-angular.md +433 -433
  275. package/languages/typescript-astro.md +416 -416
  276. package/languages/typescript-electron.md +406 -406
  277. package/languages/typescript-nestjs.md +524 -524
  278. package/languages/typescript-svelte.md +407 -407
  279. package/languages/typescript-tauri.md +365 -365
  280. package/package.json +106 -106
  281. package/skills/agents-md/SKILL.md +121 -121
  282. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  283. package/skills/agents-md/templates/agents-md.md +36 -36
  284. package/skills/arch-guard/SKILL.md +181 -181
  285. package/skills/arch-guard/agents/detector.md +48 -48
  286. package/skills/arch-guard/agents/reporter.md +48 -48
  287. package/skills/arch-guard/agents/rule-generator.md +49 -49
  288. package/skills/arch-guard/agents/violation-checker.md +51 -51
  289. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  290. package/skills/arch-guard/frameworks/solid.md +102 -102
  291. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  292. package/skills/arch-guard/templates/arch-rules.json +47 -47
  293. package/skills/arch-guard/templates/violation-report.md +53 -53
  294. package/skills/brand-assets/SKILL.md +147 -147
  295. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  296. package/skills/brand-assets/templates/brand-guide.md +161 -161
  297. package/skills/capability-loop/SKILL.md +272 -272
  298. package/skills/capability-loop/agents/capability-designer.md +61 -61
  299. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  300. package/skills/capability-loop/agents/implementer.md +50 -50
  301. package/skills/capability-loop/agents/tester.md +53 -53
  302. package/skills/capability-loop/templates/capability-spec.md +118 -118
  303. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  304. package/skills/characterization-test/SKILL.md +207 -207
  305. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  306. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  307. package/skills/characterization-test/agents/reporter.md +50 -50
  308. package/skills/characterization-test/agents/test-writer.md +49 -49
  309. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  310. package/skills/characterization-test/templates/test-template.ts +101 -101
  311. package/skills/chub-usage/SKILL.md +139 -139
  312. package/skills/claude-md-guide/SKILL.md +351 -351
  313. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  314. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  315. package/skills/commerce-patterns/SKILL.md +64 -64
  316. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  317. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  318. package/skills/commit-push-pr/SKILL.md +77 -77
  319. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  320. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  321. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  322. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  323. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  324. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  325. package/skills/context7-usage/SKILL.md +106 -106
  326. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  327. package/skills/create-prd/SKILL.md +90 -90
  328. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  329. package/skills/create-prd/agents/prioritizer.md +60 -60
  330. package/skills/create-prd/agents/requirements-writer.md +48 -48
  331. package/skills/create-prd/agents/researcher.md +55 -55
  332. package/skills/create-prd/agents/reviewer.md +54 -54
  333. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  334. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  335. package/skills/create-prd/orchestrator.md +70 -70
  336. package/skills/create-prd/rubrics/completeness.md +58 -58
  337. package/skills/create-prd/templates/prd.md +139 -139
  338. package/skills/design-audit/SKILL.md +152 -152
  339. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  340. package/skills/design-audit/agents/performance-auditor.md +46 -46
  341. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  342. package/skills/design-audit/agents/scorer.md +47 -47
  343. package/skills/design-audit/agents/slop-detector.md +47 -47
  344. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  345. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  346. package/skills/design-audit/orchestrator.md +64 -64
  347. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  348. package/skills/design-audit/rubrics/scoring.md +63 -63
  349. package/skills/design-audit/templates/report.md +88 -88
  350. package/skills/design-critique/SKILL.md +139 -139
  351. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  352. package/skills/design-critique/templates/critique-report.md +86 -86
  353. package/skills/design-distill/SKILL.md +130 -130
  354. package/skills/design-distill/templates/design-system.md +132 -132
  355. package/skills/design-normalize/SKILL.md +133 -133
  356. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  357. package/skills/design-normalize/templates/token-audit.md +89 -89
  358. package/skills/design-polish/SKILL.md +131 -131
  359. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  360. package/skills/design-polish/templates/polish-report.md +64 -64
  361. package/skills/design-teach/SKILL.md +182 -182
  362. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  363. package/skills/design-teach/templates/design-context.json +36 -36
  364. package/skills/devlog/SKILL.md +143 -143
  365. package/skills/e2e-commerce/SKILL.md +62 -62
  366. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  367. package/skills/event-comms/SKILL.md +172 -172
  368. package/skills/event-comms/templates/email-invite.md +99 -99
  369. package/skills/event-comms/templates/sns-post.md +133 -133
  370. package/skills/event-ops/SKILL.md +207 -207
  371. package/skills/event-ops/rubrics/contingency.md +85 -85
  372. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  373. package/skills/event-planning/SKILL.md +144 -144
  374. package/skills/event-planning/rubrics/timeline.md +70 -70
  375. package/skills/event-planning/templates/event-plan.md +91 -91
  376. package/skills/exec-plan/SKILL.md +149 -149
  377. package/skills/exec-plan/agents/decomposer.md +47 -47
  378. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  379. package/skills/exec-plan/agents/estimator.md +43 -43
  380. package/skills/exec-plan/agents/validator.md +55 -55
  381. package/skills/exec-plan/orchestrator.md +70 -70
  382. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  383. package/skills/exec-plan/templates/plan.md +147 -147
  384. package/skills/git-worktree/SKILL.md +73 -73
  385. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  386. package/skills/handoff/SKILL.md +110 -110
  387. package/skills/handoff/agents/context-summarizer.md +51 -51
  388. package/skills/handoff/agents/document-writer.md +63 -63
  389. package/skills/handoff/agents/state-collector.md +53 -53
  390. package/skills/handoff/agents/verifier.md +48 -48
  391. package/skills/handoff/rubrics/completeness.md +62 -62
  392. package/skills/handoff/templates/handoff.md +107 -107
  393. package/skills/parallel-research/SKILL.md +104 -104
  394. package/skills/parallel-research/agents/best-practices.md +43 -43
  395. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  396. package/skills/parallel-research/agents/framework-docs.md +45 -45
  397. package/skills/parallel-research/agents/security-advisory.md +46 -46
  398. package/skills/parallel-research/agents/synthesizer.md +57 -57
  399. package/skills/parallel-research/experts/best-practices.md +50 -50
  400. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  401. package/skills/parallel-research/experts/framework-docs.md +65 -65
  402. package/skills/parallel-research/experts/security-advisory.md +69 -69
  403. package/skills/parallel-research/orchestrator.md +79 -79
  404. package/skills/parallel-research/templates/awesome-list.md +32 -32
  405. package/skills/parallel-research/templates/paper.md +88 -88
  406. package/skills/parallel-research/templates/synthesis.md +101 -101
  407. package/skills/prioritization-frameworks/SKILL.md +87 -87
  408. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  409. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  410. package/skills/priority-todos/SKILL.md +64 -64
  411. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  412. package/skills/priority-todos/templates/todo-board.md +59 -59
  413. package/skills/seo-checklist/SKILL.md +58 -58
  414. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  415. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  416. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  417. package/skills/techdebt/SKILL.md +124 -124
  418. package/skills/techdebt/agents/analyzer.md +50 -50
  419. package/skills/techdebt/agents/fixer.md +41 -41
  420. package/skills/techdebt/agents/reviewer.md +47 -47
  421. package/skills/techdebt/agents/scanner.md +44 -44
  422. package/skills/techdebt/orchestrator.md +70 -70
  423. package/skills/techdebt/rubrics/severity.md +51 -51
  424. package/skills/techdebt/scripts/scan.js +90 -90
  425. package/skills/techdebt/templates/report.md +86 -86
  426. package/skills/tool-fallback/SKILL.md +104 -104
  427. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  428. package/skills/typescript-advanced-types/SKILL.md +67 -67
  429. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  430. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  431. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  432. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  433. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  434. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  435. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  436. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  437. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  438. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  439. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  440. package/skills/user-personas/SKILL.md +75 -75
  441. package/skills/user-personas/rubrics/research-methods.md +56 -56
  442. package/skills/user-personas/templates/persona.md +89 -89
  443. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  444. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  445. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  446. package/skills/vibe-contract/SKILL.md +166 -166
  447. package/skills/vibe-docs/templates/architecture.md +80 -80
  448. package/skills/vibe-docs/templates/readme.md +84 -84
  449. package/skills/vibe-docs/templates/release-notes.md +74 -74
  450. package/skills/vibe-figma/SKILL.md +363 -363
  451. package/skills/vibe-figma/rubrics/extraction-checklist.md +51 -51
  452. package/skills/vibe-figma/templates/component-index.md +126 -126
  453. package/skills/vibe-figma/templates/component-spec.md +168 -168
  454. package/skills/vibe-figma/templates/figma-handoff.md +100 -100
  455. package/skills/vibe-figma/templates/remapped-tree.md +277 -277
  456. package/skills/vibe-figma-convert/SKILL.md +235 -235
  457. package/skills/vibe-figma-convert/rubrics/conversion-rules.md +141 -141
  458. package/skills/vibe-figma-convert/templates/component.md +140 -140
  459. package/skills/vibe-figma-extract/SKILL.md +241 -219
  460. package/skills/vibe-figma-extract/rubrics/image-rules.md +157 -157
  461. package/skills/vibe-interview/SKILL.md +358 -358
  462. package/skills/vibe-interview/checklists/api.md +101 -101
  463. package/skills/vibe-interview/checklists/feature.md +88 -88
  464. package/skills/vibe-interview/checklists/library.md +95 -95
  465. package/skills/vibe-interview/checklists/mobile.md +89 -89
  466. package/skills/vibe-interview/checklists/webapp.md +97 -97
  467. package/skills/vibe-interview/checklists/website.md +99 -99
  468. package/skills/vibe-plan/SKILL.md +254 -254
  469. package/skills/vibe-regress/SKILL.md +174 -174
  470. package/skills/vibe-regress/templates/bug.md +44 -44
  471. package/skills/vibe-regress/templates/test-jest.md +29 -29
  472. package/skills/vibe-regress/templates/test-vitest.md +30 -30
  473. package/skills/vibe-spec/SKILL.md +1195 -1195
  474. package/skills/vibe-spec-review/SKILL.md +726 -726
  475. package/skills/vibe-test/SKILL.md +140 -140
  476. package/skills/video-production/SKILL.md +52 -52
  477. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  478. package/skills/video-production/templates/production-plan.md +104 -104
  479. package/vibe/config.json +29 -29
  480. package/vibe/constitution.md +227 -227
  481. package/vibe/rules/principles/communication-guide.md +98 -98
  482. package/vibe/rules/principles/development-philosophy.md +52 -52
  483. package/vibe/rules/principles/quick-start.md +102 -102
  484. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  485. package/vibe/rules/quality/checklist.md +276 -276
  486. package/vibe/rules/quality/performance.md +236 -236
  487. package/vibe/rules/quality/testing-strategy.md +440 -440
  488. package/vibe/rules/standards/anti-patterns.md +541 -541
  489. package/vibe/rules/standards/code-structure.md +291 -291
  490. package/vibe/rules/standards/complexity-metrics.md +313 -313
  491. package/vibe/rules/standards/git-workflow.md +237 -237
  492. package/vibe/rules/standards/naming-conventions.md +198 -198
  493. package/vibe/rules/standards/security.md +305 -305
  494. package/vibe/rules/writing/document-style.md +74 -74
  495. package/vibe/setup.sh +31 -31
  496. package/vibe/templates/claudemd-template.md +74 -74
  497. package/vibe/templates/constitution-template.md +267 -267
  498. package/vibe/templates/contract-backend-template.md +526 -526
  499. package/vibe/templates/contract-frontend-template.md +599 -599
  500. package/vibe/templates/feature-template.md +96 -96
  501. package/vibe/templates/plan-template.md +194 -194
  502. package/vibe/templates/spec-template.md +221 -221
  503. package/vibe/ui-ux-data/charts.csv +26 -26
  504. package/vibe/ui-ux-data/colors.csv +97 -97
  505. package/vibe/ui-ux-data/icons.csv +101 -101
  506. package/vibe/ui-ux-data/landing.csv +31 -31
  507. package/vibe/ui-ux-data/products.csv +96 -96
  508. package/vibe/ui-ux-data/react-performance.csv +45 -45
  509. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  510. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  511. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  512. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  513. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  514. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  515. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  516. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  517. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  518. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  519. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  520. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  521. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  522. package/vibe/ui-ux-data/styles.csv +68 -68
  523. package/vibe/ui-ux-data/typography.csv +57 -57
  524. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  525. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  526. package/vibe/ui-ux-data/version.json +31 -31
  527. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,624 +1,624 @@
1
- ---
2
- description: Multi-agent parallel code review with priority-based findings
3
- argument-hint: "PR number, branch name, or file path"
4
- ---
5
-
6
- # /vibe.review
7
-
8
- **Parallel Agent Code Review** - 13+ specialists review simultaneously
9
-
10
- ## Usage
11
-
12
- ```
13
- /vibe.review # Review current branch
14
- /vibe.review PR#123 # Review specific PR
15
- /vibe.review feature/login # Review specific branch
16
- /vibe.review src/api/ # Review specific path
17
- /vibe.review --race # Multi-LLM race mode (GPT + Gemini)
18
- /vibe.review --race security # Race mode for specific review type
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`, `/codex:rescue` 자동 호출. `unavailable`이면 기존 GPT+Gemini Race 모드로 동작.
32
-
33
- ## Race Mode (v2.6.9)
34
-
35
- **Multi-LLM competitive review** - Same review task runs on GPT + Gemini in parallel, results are cross-validated.
36
-
37
- ### How It Works
38
-
39
- ```
40
- /vibe.review --race
41
-
42
- security-review:
43
- ├─ GPT Codex → [SQL injection, XSS]
44
- └─ Gemini → [SQL injection, CSRF]
45
-
46
- Cross-validation:
47
- - SQL injection (2/2) → 🔴 P1 (100% confidence)
48
- - XSS (1/2) → 🟡 P2 (50% confidence)
49
- - CSRF (1/2) → 🟡 P2 (50% confidence)
50
- ```
51
-
52
- ### Confidence-Based Priority
53
-
54
- | Confidence | Priority | Meaning |
55
- |------------|----------|---------|
56
- | 100% (2/2) | P1 | Both models agree - high confidence |
57
- | 50% (1/2) | P2 | One model found - needs verification |
58
-
59
- ### Race Mode Options
60
-
61
- ```
62
- /vibe.review --race # All review types
63
- /vibe.review --race security # Security only
64
- /vibe.review --race performance # Performance only
65
- /vibe.review --race architecture # Architecture only
66
- ```
67
-
68
- ### Race Mode Output
69
-
70
- ```
71
- ## SECURITY Review (Race Mode)
72
-
73
- **Duration**: 3420ms
74
- **Models**: GPT Codex, Gemini
75
-
76
- ### Model Results
77
-
78
- | Model | Issues Found | Duration | Status |
79
- |-------|--------------|----------|--------|
80
- | gpt | 3 | 1823ms | OK |
81
- | gemini | 2 | 2156ms | OK |
82
-
83
- ### Cross-Validated Issues
84
-
85
- **Summary**: 3 issues (P1: 1, P2: 2)
86
- **Consensus Rate**: 67%
87
-
88
- #### 🔴 P1 - SQL Injection in user query
89
-
90
- - **Confidence**: 100% (gpt, gemini)
91
- - **Severity**: critical
92
- - **Location**: `src/api/users.ts:42`
93
- - **Suggestion**: Use parameterized queries
94
-
95
- #### 🟡 P2 - XSS vulnerability in render
96
-
97
- - **Confidence**: 50% (gpt)
98
- - **Severity**: high
99
- - **Location**: `src/components/Comment.tsx:15`
100
- ```
101
-
102
- ### Codex Review (Codex 플러그인 활성화 시)
103
-
104
- Race Mode에서 GPT+Gemini와 **동시에** Codex review 실행하여 3중 교차 검증:
105
-
106
- ```
107
- /codex:review
108
- ```
109
-
110
- 교차 검증 테이블:
111
-
112
- ```markdown
113
- | Issue | GPT | Gemini | Codex | Confidence |
114
- |-------|-----|--------|-------|------------|
115
- | {이슈} | ✅/❌ | ✅/❌ | ✅/❌ | {%} |
116
- ```
117
-
118
- - 3개 모델 중 2개 이상 동의 → **High Confidence** (P1 자동 수정)
119
- - Codex만 발견 → **Medium Confidence** (P2 수동 검토)
120
-
121
- ### When to Use Race Mode
122
-
123
- | Scenario | Recommended |
124
- |----------|-------------|
125
- | Critical security review | ✅ `--race security` |
126
- | Pre-production audit | ✅ `--race` |
127
- | Quick iteration | ❌ Standard review |
128
- | API cost concerns | ❌ Standard review |
129
-
130
- ### Tool Invocation (Race Mode - GPT + Gemini in parallel via Bash)
131
-
132
- **🚨 Use --input file to avoid CLI argument length limits and Windows pipe issues.**
133
-
134
- 1. Save code to review into `[SCRATCHPAD]/review-code.txt` (using Write tool)
135
- 2. Write JSON input file `[SCRATCHPAD]/review-input.json` (using Write tool):
136
- - `{"prompt": "Review this code for [REVIEW_TYPE]. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: [CODE_CONTENT]"}`
137
- - Where `[CODE_CONTENT]` is the code text (properly JSON-escaped inside the prompt string)
138
- 3. Script path: `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
139
- 4. Run GPT + Gemini in PARALLEL (two Bash tool calls at once):
140
-
141
- ```bash
142
- # GPT review (Bash tool call 1)
143
- node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/review-input.json"
144
- ```
145
-
146
- ```bash
147
- # Gemini review (Bash tool call 2 - run in parallel)
148
- node "[LLM_SCRIPT]" gemini orchestrate-json --input "[SCRATCHPAD]/review-input.json"
149
- ```
150
-
151
- ## File Reading Policy (Mandatory)
152
-
153
- - **소스코드 파일**: 리뷰 대상 파일은 반드시 `Read` 도구로 전체 파일을 읽은 후 리뷰할 것 (Grep으로 훑어보기 금지)
154
- - **Grep 사용 제한**: 파일 위치 탐색(어떤 파일에 있는지 찾기)에만 사용. 파일 내용 파악 및 리뷰에는 반드시 Read 사용
155
- - **에이전트 spawn 시**: 프롬프트에 "대상 파일을 Read 도구로 전체 읽은 후 분석하라"를 반드시 포함할 것
156
- - **부분 읽기 금지**: Grep 결과의 주변 몇 줄만 보고 판단하지 말 것. 전체 맥락을 파악해야 정확한 리뷰 가능
157
-
158
- ## Priority System
159
-
160
- | Priority | Criteria | Action |
161
- |----------|----------|--------|
162
- | P1 | Security vulnerabilities, data loss, crashes | Block merge, fix immediately |
163
- | P2 | Performance issues, architecture violations, missing tests | Fix before merge |
164
- | P3 | Style, refactoring suggestions, documentation | Add to backlog |
165
-
166
- ## Convergence Rules (Over-Diagnosis Prevention)
167
-
168
- > **Principle**: Reviews must converge. A review that always finds more issues is broken, not thorough.
169
-
170
- ### Scope Limiting
171
-
172
- - **Review ONLY changed files** — based on `git diff --name-only`. Never scan the entire project
173
- - **If no git diff** (first review) — review only files in the target path
174
-
175
- ### Severity Filtering by Round
176
-
177
- | Round | What to Report |
178
- |-------|---------------|
179
- | 1st review | P1 + P2 + P3 (all) |
180
- | 2nd review (same code) | P1 + P2 only (skip P3) |
181
- | 3rd+ review | P1 only (report only new P1s) |
182
-
183
- ### Stop Conditions
184
-
185
- - **P1 = 0 means MERGE READY** — mergeable even with remaining P2/P3
186
- - **P1 = 0 after auto-fix means DONE** — record P2 auto-fix failures as TODO and stop
187
- - **Final P1 list unchanged after Review Debate → DONE** — no new findings = converged
188
-
189
- ### Anti-Patterns (FORBIDDEN)
190
-
191
- - "All items must be verified" → Only P1 is mandatory, P2/P3 are best-effort
192
- - "Found one more issue" (repeated) → Only report P1s not mentioned in previous review
193
- - Forcing code changes for P3 issues → P3 goes to TODO files only, never force code changes
194
- - Infinite retries on auto-fix failure → max 1 retry then move to TODO
195
-
196
- ## Process
197
-
198
- ### Phase 1: Tech Stack Detection
199
-
200
- Detect project tech stack FIRST before launching reviewers:
201
-
202
- ```
203
- Read package.json -> TypeScript, React, Node.js
204
- Read pyproject.toml -> Python, FastAPI, Django
205
- Read Gemfile -> Ruby, Rails
206
- Read pubspec.yaml -> Flutter, Dart
207
- Read go.mod -> Go
208
- Read CLAUDE.md -> Explicit tech stack declaration
209
- ```
210
-
211
- ### Phase 1.5: SPEC ↔ Code Alignment Check
212
-
213
- > When SPEC files exist, verify that code changes align with the SPEC
214
-
215
- ```
216
- 1. Search .claude/vibe/specs/ for related SPEC files (based on git diff filenames)
217
- 2. Compare SPEC REQ-* list against functionality in changed code
218
- 3. If functionality added that's not in SPEC → P2 finding: "Feature added without SPEC"
219
- 4. If implementation differs from SPEC → P1 finding: "SPEC ↔ code mismatch"
220
- 5. If no SPEC files exist → Skip (reviews work without SPEC too)
221
- ```
222
-
223
- ### Phase 2: Parallel Agent Review (STACK-AWARE) via Orchestrator
224
-
225
- **Execution via Orchestrator (12+ agents in parallel):**
226
- ```bash
227
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => o.review(['FILE_PATHS'], ['DETECTED_STACKS']).then(r => console.log(r.content[0].text)))"
228
- ```
229
-
230
- **Example:**
231
- ```bash
232
- # Review changed files with TypeScript + React stack
233
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => o.review(['src/api/users.ts', 'src/components/Login.tsx'], ['TypeScript', 'React']).then(r => console.log(r.content[0].text)))"
234
- ```
235
-
236
- **Core Reviewers (Always Run):**
237
- | Agent | Focus |
238
- |-------|-------|
239
- | security-reviewer | OWASP Top 10, vulnerabilities |
240
- | data-integrity-reviewer | Data validation, constraints |
241
- | performance-reviewer | N+1 queries, memory leaks |
242
- | architecture-reviewer | Layer violations, cycles |
243
- | complexity-reviewer | Cyclomatic complexity, length |
244
- | simplicity-reviewer | Over-abstraction, dead code |
245
- | git-history-reviewer | Churn files, risk patterns |
246
- | test-coverage-reviewer | Missing tests, edge cases |
247
-
248
- **Stack-Specific Reviewers (Conditional):**
249
- | Agent | Condition |
250
- |-------|-----------|
251
- | python-reviewer | .py files in diff |
252
- | typescript-reviewer | .ts/.tsx files OR tsconfig |
253
- | rails-reviewer | Gemfile has rails |
254
- | react-reviewer | package.json has react |
255
-
256
- ### Phase 2.5: UI/UX Review Agents (Auto-triggered)
257
-
258
- > **활성화 조건**: 변경된 파일 중 UI 파일 존재 (`.tsx`, `.jsx`, `.vue`, `.svelte`, `.html`, `.css`, `.scss`)
259
- > **비활성화**: `.claude/vibe/config.json`에 `"uiUxAnalysis": false` 설정
260
-
261
- **기존 12+ 리뷰 에이전트와 병렬 실행:**
262
-
263
- | Agent | Role | Output |
264
- |-------|------|--------|
265
- | ⑥ ux-compliance-reviewer | UX 가이드라인 준수 검증 | P1/P2/P3 findings |
266
- | ⑦ ui-a11y-auditor | WCAG 2.1 AA 접근성 감사 | P1/P2/P3 findings |
267
- | ⑧ ui-antipattern-detector | UI 안티패턴 + 디자인 시스템 일관성 | P1/P2/P3 findings |
268
-
269
- **실행 방법 — 기존 Phase 2 에이전트와 병렬 실행:**
270
-
271
- ```text
272
- # ⑥ UX 준수 검증 (Haiku)
273
- Task(subagent_type="ux-compliance-reviewer",
274
- prompt="Review UI files for UX guideline compliance: {changed_ui_files}. Use core_ui_search against ux-guidelines and web-interface domains.")
275
-
276
- # ⑦ 접근성 감사 (Haiku)
277
- Task(subagent_type="ui-a11y-auditor",
278
- prompt="Audit UI files for WCAG 2.1 AA compliance: {changed_ui_files}.")
279
-
280
- # ⑧ 안티패턴 검출 (Haiku)
281
- Task(subagent_type="ui-antipattern-detector",
282
- prompt="Detect UI anti-patterns in: {changed_ui_files}. Check against MASTER.md if exists at .claude/vibe/design-system/{project}/MASTER.md.")
283
- ```
284
-
285
- **findings 통합**: ⑥⑦⑧ findings를 기존 findings[]와 병합 → P1/P2/P3 통합 정렬
286
-
287
- **⑦ Critical finding 에스컬레이션**: ui-a11y-auditor의 P1 finding은 Review Debate Team(Phase 4.5)에 자동 포함
288
-
289
- ### Phase 2.7: Boundary Mismatch Detection (Integration Coherence)
290
-
291
- > **활성화 조건**: 변경된 파일 중 API route + 프론트엔드 훅/컴포넌트가 함께 존재
292
- > 경계면 불일치는 개별 파일 리뷰로는 발견 불가 — **양쪽을 동시에 읽어야** 잡힘
293
-
294
- **검증 방법: "양쪽 동시 읽기"**
295
-
296
- 반드시 **생산자와 소비자 코드를 동시에** Read하여 교차 비교한다.
297
-
298
- | 검증 영역 | 생산자 (왼쪽) | 소비자 (오른쪽) | 검증 내용 |
299
- |----------|-------------|---------------|----------|
300
- | API ↔ 훅 타입 | route의 Response.json() shape | hooks의 fetch\<T\> 타입 | shape 일치, 래핑 unwrap, case 변환 |
301
- | 라우팅 정합성 | src/app/ page 파일 경로 | href, router.push 값 | 경로 매칭, route group 처리, 동적 세그먼트 |
302
- | 상태 전이 | STATE_TRANSITIONS 맵 | .update({ status }) 코드 | 죽은 전이, 무단 전이, 중간→최종 누락 |
303
- | 데이터 흐름 | DB 스키마 필드명 | API 응답 → 프론트 타입 | 필드명 일치, optional 처리 일관성 |
304
-
305
- **실행 방식 — 변경 파일 기반 자동 판별:**
306
-
307
- ```text
308
- 1. git diff에서 API route 파일과 대응 프론트 파일을 짝으로 매칭
309
- 2. 짝이 있는 경우 → 아래 4개 검증 실행
310
- 3. 짝이 없는 경우 (API만 또는 프론트만 변경) → "대응 파일 미변경" 경고 후 스킵
311
- ```
312
-
313
- **검증 체크리스트:**
314
-
315
- - [ ] API 응답 shape과 대응 훅의 제네릭 타입이 일치
316
- - [ ] 래핑된 응답(`{ items: [...] }`)은 훅에서 unwrap하는지 확인
317
- - [ ] snake_case ↔ camelCase 변환이 일관되게 적용
318
- - [ ] 모든 API 엔드포인트에 대응하는 프론트 훅이 존재하고 실제 호출됨
319
- - [ ] 코드 내 모든 href/router.push 값이 실제 page 파일 경로와 매칭
320
- - [ ] 정의된 모든 상태 전이가 코드에서 실행됨 (죽은 전이 없음)
321
- - [ ] 프론트에서 상태 기반 분기의 값이 실제 도달 가능한 상태
322
- - [ ] DB 필드명 → API 응답 필드명 → 프론트 타입 정의 간 매핑 일관
323
-
324
- **Findings 분류:**
325
- - 경계면 불일치 → **P1** (런타임 에러의 주요 원인)
326
- - 대응 파일 미존재 (API 있으나 훅 없음) → **P2**
327
- - case 변환 비일관성 → **P2**
328
-
329
- ### Phase 3: Deep Analysis
330
-
331
- After agent results:
332
-
333
- 1. **System Context**: Component interactions, data flow, external dependencies
334
- 2. **Stakeholder Perspectives**: Developers, Ops, Security, Business
335
- 3. **Edge Cases**: Race conditions, resource exhaustion, network failures
336
- 4. **Multiple Angles**: Technical excellence, business value, risk management
337
-
338
- ### Phase 4: Findings Synthesis
339
-
340
- ```
341
- REVIEW FINDINGS
342
-
343
- P1 CRITICAL (Blocks Merge) - N issues
344
- 1. [SECURITY] SQL Injection in user query
345
- Location: src/api/users.py:42
346
- Fix: Use parameterized queries
347
-
348
- P2 IMPORTANT (Should Fix) - N issues
349
- 2. [PERF] N+1 query in user list
350
- 3. [ARCH] Circular dependency detected
351
-
352
- P3 NICE-TO-HAVE (Enhancement) - N issues
353
- 4. [STYLE] Consider extracting helper function
354
- ```
355
-
356
- ### Phase 4.5: Agent Teams — Review Debate
357
-
358
- > **팀 정의**: `agents/teams/review-debate-team.md` 참조 (Code Review 컨텍스트)
359
- > 설정: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` + `teammateMode: in-process` (`~/.claude/settings.json` 전역 — postinstall 자동 설정)
360
-
361
- **토론 결과 예시:**
362
-
363
- ```
364
- 🤝 REVIEW DEBATE RESULTS
365
-
366
- Team Consensus (4 reviewers):
367
-
368
- ✅ Validated P1 (unanimous):
369
- 1. [SECURITY] SQL Injection — 4/4 agree critical
370
-
371
- ⬆️ Upgraded P2→P1 (debate result):
372
- 2. [PERF] Unbounded query — architecture-reviewer pointed out
373
- cascading failure risk under load → team agreed P1
374
-
375
- ⬇️ Downgraded P1→P2 (debate result):
376
- 3. [SECURITY] CSRF on read-only endpoint — simplicity-reviewer
377
- noted endpoint has no side effects → team agreed P2
378
-
379
- ❌ Removed (false positive):
380
- 4. [ARCH] "Circular dependency" — architecture-reviewer confirmed
381
- this is intentional bi-directional reference, not a cycle
382
-
383
- 🆕 New findings (team discussion):
384
- 5. [DATA] Race condition in concurrent updates — emerged from
385
- security + performance discussion
386
- ```
387
-
388
- ### Phase 5: Auto-Fix (P1/P2)
389
-
390
- **Auto-fixable issues are resolved immediately:**
391
-
392
- ```
393
- 🔧 AUTO-FIX Starting...
394
-
395
- P1 Critical:
396
- 1. [SECURITY] SQL Injection → Fixed with parameterized query ✅
397
- 2. [DATA] Missing transaction rollback → Added try-finally ✅
398
-
399
- P2 Important:
400
- 3. [PERF] N+1 query → Added select_related ✅
401
- 4. [ARCH] Circular dependency → Separated dependencies ✅
402
- 5. [TEST] Missing edge case → Added test ✅
403
-
404
- 🔍 Re-validating...
405
- ✅ Build successful
406
- ✅ Tests passed
407
-
408
- ✅ 5 issues auto-fixed!
409
- ```
410
-
411
- **Cases that cannot be auto-fixed:**
412
- - Requires large-scale architecture changes
413
- - Requires business logic decisions
414
- - Requires user confirmation
415
-
416
- → Manual handling instructions in Phase 6
417
-
418
- ### Auto-Fix 실패 시 Codex Rescue (Codex 플러그인 활성화 시)
419
-
420
- P1/P2 auto-fix **3회 실패** 시, Codex에 위임:
421
-
422
- ```
423
- /codex:rescue "Fix {priority} issue: {issue-description}. File: {file-path}"
424
- ```
425
-
426
- Codex 수정 완료 후 해당 리뷰 에이전트가 재검증.
427
-
428
- ### Phase 6: Todo File Creation (Items Requiring Manual Handling)
429
-
430
- Save **remaining** findings to `.claude/vibe/todos/`:
431
-
432
- ```
433
- {priority}-{category}-{short-desc}.md
434
-
435
- Examples:
436
- - P2-arch-large-refactor.md (Cannot be auto-fixed)
437
- - P3-style-extract-helper.md (Backlog)
438
- ```
439
-
440
- ## Output
441
-
442
- ```
443
- CODE REVIEW SUMMARY
444
- PR #123: Add user authentication
445
-
446
- Reviewers: 13 agents
447
- ⏱️ Started: {start_time}
448
- ⏱️ Completed: {getCurrentTime 결과}
449
-
450
- Score: 92/100 (Good) ← Score after auto-fix
451
-
452
- Issues Found:
453
- - P1 Critical: 2 → 0 (✅ Auto-fixed)
454
- - P2 Important: 5 → 1 (✅ 4 auto-fixed)
455
- - P3 Nice-to-have: 3 (Backlog)
456
-
457
- Auto-Fixed: 6 issues
458
- - [SECURITY] SQL Injection ✅
459
- - [DATA] Transaction rollback ✅
460
- - [PERF] N+1 query ✅
461
- - [ARCH] Circular dependency ✅
462
- - [PERF] Unnecessary loop ✅
463
- - [TEST] Missing edge case ✅
464
-
465
- Remaining (Manual handling required):
466
- - P2-arch-large-refactor.md (Architecture decision required)
467
- - P3-style-extract-helper.md (Backlog)
468
- - P3-docs-add-readme.md (Backlog)
469
-
470
- ✅ MERGE READY (P1/P2 resolved)
471
- ```
472
-
473
- ### Phase 7: Guide to Fix Workflow (Manual Handling Items)
474
-
475
- **Choose workflow when handling remaining issues:**
476
-
477
- ```
478
- ## Fix Workflow
479
-
480
- Choose a workflow to fix the discovered issues:
481
-
482
- | Task Scale | Recommended Approach |
483
- |------------|---------------------|
484
- | Simple fix (1-2 files) | Plan Mode |
485
- | Complex fix (3+ files, validation needed) | /vibe.spec |
486
-
487
- 1. `/vibe.spec "fix: issue-name"` - VIBE workflow (SPEC validation + re-review)
488
- 2. Plan Mode - Quick fix (for simple tasks)
489
-
490
- Which approach would you like to proceed with?
491
- ```
492
-
493
- - Wait for user's choice before proceeding
494
- - If user chooses VIBE → wait for `/vibe.spec` command
495
- - If user chooses Plan Mode → proceed with EnterPlanMode
496
-
497
- ## Core Tools (Code Analysis)
498
-
499
- ### Tool Invocation
500
-
501
- All tools are called via:
502
-
503
- ```bash
504
- 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)))"
505
- ```
506
-
507
- ### Recommended Tools for Review
508
-
509
- | Tool | Purpose | When to Use |
510
- |------|---------|-------------|
511
- | `validateCodeQuality` | Code quality check | Overall code quality scan |
512
- | `analyzeComplexity` | Complexity metrics | Check function complexity |
513
- | `findSymbol` | Find definitions | Locate implementations |
514
- | `findReferences` | Find all usages | Track symbol usage |
515
- | `saveMemory` | Save findings | Store important review findings |
516
-
517
- ### Example Tool Usage in Review
518
-
519
- **1. Validate code quality before review:**
520
-
521
- ```bash
522
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.validateCodeQuality({targetPath: 'src/', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
523
- ```
524
-
525
- **2. Analyze complexity of changed files:**
526
-
527
- ```bash
528
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.analyzeComplexity({targetPath: 'src/api/users.ts', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
529
- ```
530
-
531
- **3. Save critical finding for reference:**
532
-
533
- ```bash
534
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.saveMemory({key: 'review-pr123-critical', value: 'SQL injection in users.py:42', category: 'review', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
535
- ```
536
-
537
- ---
538
-
539
- ## Quality Gate (Mandatory)
540
-
541
- ### Review Quality Checklist
542
-
543
- Before completing review, check P1-critical items. P2/P3 items are best-effort:
544
-
545
- | Category | Check Item | Weight |
546
- |----------|------------|--------|
547
- | **Security** | OWASP Top 10 vulnerabilities scanned | 20% |
548
- | **Security** | Authentication/authorization verified | 10% |
549
- | **Security** | Sensitive data exposure checked | 10% |
550
- | **Performance** | N+1 queries detected and flagged | 10% |
551
- | **Performance** | Memory leaks checked | 5% |
552
- | **Architecture** | Layer violations detected | 10% |
553
- | **Architecture** | Circular dependencies checked | 5% |
554
- | **Code Quality** | Complexity limits enforced | 10% |
555
- | **Code Quality** | Forbidden patterns detected | 10% |
556
- | **Testing** | Test coverage gaps identified | 5% |
557
- | **Documentation** | Public API documentation checked | 5% |
558
-
559
- ### Review Score Calculation
560
-
561
- ```
562
- Score = 100 - (P1 × 20) - (P2 × 5) - (P3 × 1)
563
-
564
- Grades:
565
- - 95-100: ✅ EXCELLENT - Merge ready
566
- - 90-94: ⚠️ GOOD - Minor fixes required before merge
567
- - 80-89: ⚠️ FAIR - Must fix P2 issues
568
- - 0-79: ❌ POOR - Block merge, fix P1/P2
569
- ```
570
-
571
- ### Merge Decision Matrix
572
-
573
- | P1 Count | P2 Count | Decision |
574
- |----------|----------|----------|
575
- | 0 | 0-2 | ✅ MERGE READY |
576
- | 0 | 3+ | ⚠️ FIX P2 FIRST |
577
- | 1+ | Any | ❌ BLOCKED |
578
-
579
- ### Auto-Fix Capability Matrix
580
-
581
- | Issue Type | Auto-Fixable | Method |
582
- |------------|--------------|--------|
583
- | SQL Injection | ✅ Yes | Parameterized query |
584
- | Missing transaction | ✅ Yes | Add try-finally |
585
- | N+1 query | ✅ Yes | Add eager loading |
586
- | Circular dependency | ⚠️ Partial | Suggest restructure |
587
- | Missing tests | ✅ Yes | Generate test skeleton |
588
- | Hardcoded secrets | ❌ No | Flag for manual review |
589
- | Architecture violation | ❌ No | Suggest refactoring plan |
590
-
591
- ### Forbidden Patterns (P1 Critical)
592
-
593
- | Pattern | Risk Level | Detection Method |
594
- |---------|------------|------------------|
595
- | Hardcoded credentials | Critical | Regex + entropy scan |
596
- | SQL string concatenation | Critical | AST analysis |
597
- | `eval()` or `exec()` | Critical | AST analysis |
598
- | Disabled CSRF protection | Critical | Config scan |
599
- | Debug mode in production | Critical | Config scan |
600
- | Unvalidated redirects | High | URL pattern scan |
601
-
602
- ### Review Output Requirements
603
-
604
- Every review MUST produce:
605
-
606
- 1. **Summary Statistics**
607
- - Total issues by priority (P1/P2/P3)
608
- - Auto-fixed count
609
- - Remaining manual fixes
610
-
611
- 2. **Detailed Findings**
612
- - File path and line number
613
- - Issue description
614
- - Recommended fix
615
- - Auto-fix status (applied/pending/manual)
616
-
617
- 3. **Quality Score**
618
- - Numerical score (0-100)
619
- - Grade (EXCELLENT/GOOD/FAIR/POOR)
620
- - Merge recommendation
621
-
622
- ---
623
-
624
- ARGUMENTS: $ARGUMENTS
1
+ ---
2
+ description: Multi-agent parallel code review with priority-based findings
3
+ argument-hint: "PR number, branch name, or file path"
4
+ ---
5
+
6
+ # /vibe.review
7
+
8
+ **Parallel Agent Code Review** - 13+ specialists review simultaneously
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ /vibe.review # Review current branch
14
+ /vibe.review PR#123 # Review specific PR
15
+ /vibe.review feature/login # Review specific branch
16
+ /vibe.review src/api/ # Review specific path
17
+ /vibe.review --race # Multi-LLM race mode (GPT + Gemini)
18
+ /vibe.review --race security # Race mode for specific review type
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`, `/codex:rescue` 자동 호출. `unavailable`이면 기존 GPT+Gemini Race 모드로 동작.
32
+
33
+ ## Race Mode (v2.6.9)
34
+
35
+ **Multi-LLM competitive review** - Same review task runs on GPT + Gemini in parallel, results are cross-validated.
36
+
37
+ ### How It Works
38
+
39
+ ```
40
+ /vibe.review --race
41
+
42
+ security-review:
43
+ ├─ GPT Codex → [SQL injection, XSS]
44
+ └─ Gemini → [SQL injection, CSRF]
45
+
46
+ Cross-validation:
47
+ - SQL injection (2/2) → 🔴 P1 (100% confidence)
48
+ - XSS (1/2) → 🟡 P2 (50% confidence)
49
+ - CSRF (1/2) → 🟡 P2 (50% confidence)
50
+ ```
51
+
52
+ ### Confidence-Based Priority
53
+
54
+ | Confidence | Priority | Meaning |
55
+ |------------|----------|---------|
56
+ | 100% (2/2) | P1 | Both models agree - high confidence |
57
+ | 50% (1/2) | P2 | One model found - needs verification |
58
+
59
+ ### Race Mode Options
60
+
61
+ ```
62
+ /vibe.review --race # All review types
63
+ /vibe.review --race security # Security only
64
+ /vibe.review --race performance # Performance only
65
+ /vibe.review --race architecture # Architecture only
66
+ ```
67
+
68
+ ### Race Mode Output
69
+
70
+ ```
71
+ ## SECURITY Review (Race Mode)
72
+
73
+ **Duration**: 3420ms
74
+ **Models**: GPT Codex, Gemini
75
+
76
+ ### Model Results
77
+
78
+ | Model | Issues Found | Duration | Status |
79
+ |-------|--------------|----------|--------|
80
+ | gpt | 3 | 1823ms | OK |
81
+ | gemini | 2 | 2156ms | OK |
82
+
83
+ ### Cross-Validated Issues
84
+
85
+ **Summary**: 3 issues (P1: 1, P2: 2)
86
+ **Consensus Rate**: 67%
87
+
88
+ #### 🔴 P1 - SQL Injection in user query
89
+
90
+ - **Confidence**: 100% (gpt, gemini)
91
+ - **Severity**: critical
92
+ - **Location**: `src/api/users.ts:42`
93
+ - **Suggestion**: Use parameterized queries
94
+
95
+ #### 🟡 P2 - XSS vulnerability in render
96
+
97
+ - **Confidence**: 50% (gpt)
98
+ - **Severity**: high
99
+ - **Location**: `src/components/Comment.tsx:15`
100
+ ```
101
+
102
+ ### Codex Review (Codex 플러그인 활성화 시)
103
+
104
+ Race Mode에서 GPT+Gemini와 **동시에** Codex review 실행하여 3중 교차 검증:
105
+
106
+ ```
107
+ /codex:review
108
+ ```
109
+
110
+ 교차 검증 테이블:
111
+
112
+ ```markdown
113
+ | Issue | GPT | Gemini | Codex | Confidence |
114
+ |-------|-----|--------|-------|------------|
115
+ | {이슈} | ✅/❌ | ✅/❌ | ✅/❌ | {%} |
116
+ ```
117
+
118
+ - 3개 모델 중 2개 이상 동의 → **High Confidence** (P1 자동 수정)
119
+ - Codex만 발견 → **Medium Confidence** (P2 수동 검토)
120
+
121
+ ### When to Use Race Mode
122
+
123
+ | Scenario | Recommended |
124
+ |----------|-------------|
125
+ | Critical security review | ✅ `--race security` |
126
+ | Pre-production audit | ✅ `--race` |
127
+ | Quick iteration | ❌ Standard review |
128
+ | API cost concerns | ❌ Standard review |
129
+
130
+ ### Tool Invocation (Race Mode - GPT + Gemini in parallel via Bash)
131
+
132
+ **🚨 Use --input file to avoid CLI argument length limits and Windows pipe issues.**
133
+
134
+ 1. Save code to review into `[SCRATCHPAD]/review-code.txt` (using Write tool)
135
+ 2. Write JSON input file `[SCRATCHPAD]/review-input.json` (using Write tool):
136
+ - `{"prompt": "Review this code for [REVIEW_TYPE]. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: [CODE_CONTENT]"}`
137
+ - Where `[CODE_CONTENT]` is the code text (properly JSON-escaped inside the prompt string)
138
+ 3. Script path: `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
139
+ 4. Run GPT + Gemini in PARALLEL (two Bash tool calls at once):
140
+
141
+ ```bash
142
+ # GPT review (Bash tool call 1)
143
+ node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/review-input.json"
144
+ ```
145
+
146
+ ```bash
147
+ # Gemini review (Bash tool call 2 - run in parallel)
148
+ node "[LLM_SCRIPT]" gemini orchestrate-json --input "[SCRATCHPAD]/review-input.json"
149
+ ```
150
+
151
+ ## File Reading Policy (Mandatory)
152
+
153
+ - **소스코드 파일**: 리뷰 대상 파일은 반드시 `Read` 도구로 전체 파일을 읽은 후 리뷰할 것 (Grep으로 훑어보기 금지)
154
+ - **Grep 사용 제한**: 파일 위치 탐색(어떤 파일에 있는지 찾기)에만 사용. 파일 내용 파악 및 리뷰에는 반드시 Read 사용
155
+ - **에이전트 spawn 시**: 프롬프트에 "대상 파일을 Read 도구로 전체 읽은 후 분석하라"를 반드시 포함할 것
156
+ - **부분 읽기 금지**: Grep 결과의 주변 몇 줄만 보고 판단하지 말 것. 전체 맥락을 파악해야 정확한 리뷰 가능
157
+
158
+ ## Priority System
159
+
160
+ | Priority | Criteria | Action |
161
+ |----------|----------|--------|
162
+ | P1 | Security vulnerabilities, data loss, crashes | Block merge, fix immediately |
163
+ | P2 | Performance issues, architecture violations, missing tests | Fix before merge |
164
+ | P3 | Style, refactoring suggestions, documentation | Add to backlog |
165
+
166
+ ## Convergence Rules (Over-Diagnosis Prevention)
167
+
168
+ > **Principle**: Reviews must converge. A review that always finds more issues is broken, not thorough.
169
+
170
+ ### Scope Limiting
171
+
172
+ - **Review ONLY changed files** — based on `git diff --name-only`. Never scan the entire project
173
+ - **If no git diff** (first review) — review only files in the target path
174
+
175
+ ### Severity Filtering by Round
176
+
177
+ | Round | What to Report |
178
+ |-------|---------------|
179
+ | 1st review | P1 + P2 + P3 (all) |
180
+ | 2nd review (same code) | P1 + P2 only (skip P3) |
181
+ | 3rd+ review | P1 only (report only new P1s) |
182
+
183
+ ### Stop Conditions
184
+
185
+ - **P1 = 0 means MERGE READY** — mergeable even with remaining P2/P3
186
+ - **P1 = 0 after auto-fix means DONE** — record P2 auto-fix failures as TODO and stop
187
+ - **Final P1 list unchanged after Review Debate → DONE** — no new findings = converged
188
+
189
+ ### Anti-Patterns (FORBIDDEN)
190
+
191
+ - "All items must be verified" → Only P1 is mandatory, P2/P3 are best-effort
192
+ - "Found one more issue" (repeated) → Only report P1s not mentioned in previous review
193
+ - Forcing code changes for P3 issues → P3 goes to TODO files only, never force code changes
194
+ - Infinite retries on auto-fix failure → max 1 retry then move to TODO
195
+
196
+ ## Process
197
+
198
+ ### Phase 1: Tech Stack Detection
199
+
200
+ Detect project tech stack FIRST before launching reviewers:
201
+
202
+ ```
203
+ Read package.json -> TypeScript, React, Node.js
204
+ Read pyproject.toml -> Python, FastAPI, Django
205
+ Read Gemfile -> Ruby, Rails
206
+ Read pubspec.yaml -> Flutter, Dart
207
+ Read go.mod -> Go
208
+ Read CLAUDE.md -> Explicit tech stack declaration
209
+ ```
210
+
211
+ ### Phase 1.5: SPEC ↔ Code Alignment Check
212
+
213
+ > When SPEC files exist, verify that code changes align with the SPEC
214
+
215
+ ```
216
+ 1. Search .claude/vibe/specs/ for related SPEC files (based on git diff filenames)
217
+ 2. Compare SPEC REQ-* list against functionality in changed code
218
+ 3. If functionality added that's not in SPEC → P2 finding: "Feature added without SPEC"
219
+ 4. If implementation differs from SPEC → P1 finding: "SPEC ↔ code mismatch"
220
+ 5. If no SPEC files exist → Skip (reviews work without SPEC too)
221
+ ```
222
+
223
+ ### Phase 2: Parallel Agent Review (STACK-AWARE) via Orchestrator
224
+
225
+ **Execution via Orchestrator (12+ agents in parallel):**
226
+ ```bash
227
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => o.review(['FILE_PATHS'], ['DETECTED_STACKS']).then(r => console.log(r.content[0].text)))"
228
+ ```
229
+
230
+ **Example:**
231
+ ```bash
232
+ # Review changed files with TypeScript + React stack
233
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => o.review(['src/api/users.ts', 'src/components/Login.tsx'], ['TypeScript', 'React']).then(r => console.log(r.content[0].text)))"
234
+ ```
235
+
236
+ **Core Reviewers (Always Run):**
237
+ | Agent | Focus |
238
+ |-------|-------|
239
+ | security-reviewer | OWASP Top 10, vulnerabilities |
240
+ | data-integrity-reviewer | Data validation, constraints |
241
+ | performance-reviewer | N+1 queries, memory leaks |
242
+ | architecture-reviewer | Layer violations, cycles |
243
+ | complexity-reviewer | Cyclomatic complexity, length |
244
+ | simplicity-reviewer | Over-abstraction, dead code |
245
+ | git-history-reviewer | Churn files, risk patterns |
246
+ | test-coverage-reviewer | Missing tests, edge cases |
247
+
248
+ **Stack-Specific Reviewers (Conditional):**
249
+ | Agent | Condition |
250
+ |-------|-----------|
251
+ | python-reviewer | .py files in diff |
252
+ | typescript-reviewer | .ts/.tsx files OR tsconfig |
253
+ | rails-reviewer | Gemfile has rails |
254
+ | react-reviewer | package.json has react |
255
+
256
+ ### Phase 2.5: UI/UX Review Agents (Auto-triggered)
257
+
258
+ > **활성화 조건**: 변경된 파일 중 UI 파일 존재 (`.tsx`, `.jsx`, `.vue`, `.svelte`, `.html`, `.css`, `.scss`)
259
+ > **비활성화**: `.claude/vibe/config.json`에 `"uiUxAnalysis": false` 설정
260
+
261
+ **기존 12+ 리뷰 에이전트와 병렬 실행:**
262
+
263
+ | Agent | Role | Output |
264
+ |-------|------|--------|
265
+ | ⑥ ux-compliance-reviewer | UX 가이드라인 준수 검증 | P1/P2/P3 findings |
266
+ | ⑦ ui-a11y-auditor | WCAG 2.1 AA 접근성 감사 | P1/P2/P3 findings |
267
+ | ⑧ ui-antipattern-detector | UI 안티패턴 + 디자인 시스템 일관성 | P1/P2/P3 findings |
268
+
269
+ **실행 방법 — 기존 Phase 2 에이전트와 병렬 실행:**
270
+
271
+ ```text
272
+ # ⑥ UX 준수 검증 (Haiku)
273
+ Task(subagent_type="ux-compliance-reviewer",
274
+ prompt="Review UI files for UX guideline compliance: {changed_ui_files}. Use core_ui_search against ux-guidelines and web-interface domains.")
275
+
276
+ # ⑦ 접근성 감사 (Haiku)
277
+ Task(subagent_type="ui-a11y-auditor",
278
+ prompt="Audit UI files for WCAG 2.1 AA compliance: {changed_ui_files}.")
279
+
280
+ # ⑧ 안티패턴 검출 (Haiku)
281
+ Task(subagent_type="ui-antipattern-detector",
282
+ prompt="Detect UI anti-patterns in: {changed_ui_files}. Check against MASTER.md if exists at .claude/vibe/design-system/{project}/MASTER.md.")
283
+ ```
284
+
285
+ **findings 통합**: ⑥⑦⑧ findings를 기존 findings[]와 병합 → P1/P2/P3 통합 정렬
286
+
287
+ **⑦ Critical finding 에스컬레이션**: ui-a11y-auditor의 P1 finding은 Review Debate Team(Phase 4.5)에 자동 포함
288
+
289
+ ### Phase 2.7: Boundary Mismatch Detection (Integration Coherence)
290
+
291
+ > **활성화 조건**: 변경된 파일 중 API route + 프론트엔드 훅/컴포넌트가 함께 존재
292
+ > 경계면 불일치는 개별 파일 리뷰로는 발견 불가 — **양쪽을 동시에 읽어야** 잡힘
293
+
294
+ **검증 방법: "양쪽 동시 읽기"**
295
+
296
+ 반드시 **생산자와 소비자 코드를 동시에** Read하여 교차 비교한다.
297
+
298
+ | 검증 영역 | 생산자 (왼쪽) | 소비자 (오른쪽) | 검증 내용 |
299
+ |----------|-------------|---------------|----------|
300
+ | API ↔ 훅 타입 | route의 Response.json() shape | hooks의 fetch\<T\> 타입 | shape 일치, 래핑 unwrap, case 변환 |
301
+ | 라우팅 정합성 | src/app/ page 파일 경로 | href, router.push 값 | 경로 매칭, route group 처리, 동적 세그먼트 |
302
+ | 상태 전이 | STATE_TRANSITIONS 맵 | .update({ status }) 코드 | 죽은 전이, 무단 전이, 중간→최종 누락 |
303
+ | 데이터 흐름 | DB 스키마 필드명 | API 응답 → 프론트 타입 | 필드명 일치, optional 처리 일관성 |
304
+
305
+ **실행 방식 — 변경 파일 기반 자동 판별:**
306
+
307
+ ```text
308
+ 1. git diff에서 API route 파일과 대응 프론트 파일을 짝으로 매칭
309
+ 2. 짝이 있는 경우 → 아래 4개 검증 실행
310
+ 3. 짝이 없는 경우 (API만 또는 프론트만 변경) → "대응 파일 미변경" 경고 후 스킵
311
+ ```
312
+
313
+ **검증 체크리스트:**
314
+
315
+ - [ ] API 응답 shape과 대응 훅의 제네릭 타입이 일치
316
+ - [ ] 래핑된 응답(`{ items: [...] }`)은 훅에서 unwrap하는지 확인
317
+ - [ ] snake_case ↔ camelCase 변환이 일관되게 적용
318
+ - [ ] 모든 API 엔드포인트에 대응하는 프론트 훅이 존재하고 실제 호출됨
319
+ - [ ] 코드 내 모든 href/router.push 값이 실제 page 파일 경로와 매칭
320
+ - [ ] 정의된 모든 상태 전이가 코드에서 실행됨 (죽은 전이 없음)
321
+ - [ ] 프론트에서 상태 기반 분기의 값이 실제 도달 가능한 상태
322
+ - [ ] DB 필드명 → API 응답 필드명 → 프론트 타입 정의 간 매핑 일관
323
+
324
+ **Findings 분류:**
325
+ - 경계면 불일치 → **P1** (런타임 에러의 주요 원인)
326
+ - 대응 파일 미존재 (API 있으나 훅 없음) → **P2**
327
+ - case 변환 비일관성 → **P2**
328
+
329
+ ### Phase 3: Deep Analysis
330
+
331
+ After agent results:
332
+
333
+ 1. **System Context**: Component interactions, data flow, external dependencies
334
+ 2. **Stakeholder Perspectives**: Developers, Ops, Security, Business
335
+ 3. **Edge Cases**: Race conditions, resource exhaustion, network failures
336
+ 4. **Multiple Angles**: Technical excellence, business value, risk management
337
+
338
+ ### Phase 4: Findings Synthesis
339
+
340
+ ```
341
+ REVIEW FINDINGS
342
+
343
+ P1 CRITICAL (Blocks Merge) - N issues
344
+ 1. [SECURITY] SQL Injection in user query
345
+ Location: src/api/users.py:42
346
+ Fix: Use parameterized queries
347
+
348
+ P2 IMPORTANT (Should Fix) - N issues
349
+ 2. [PERF] N+1 query in user list
350
+ 3. [ARCH] Circular dependency detected
351
+
352
+ P3 NICE-TO-HAVE (Enhancement) - N issues
353
+ 4. [STYLE] Consider extracting helper function
354
+ ```
355
+
356
+ ### Phase 4.5: Agent Teams — Review Debate
357
+
358
+ > **팀 정의**: `agents/teams/review-debate-team.md` 참조 (Code Review 컨텍스트)
359
+ > 설정: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` + `teammateMode: in-process` (`~/.claude/settings.json` 전역 — postinstall 자동 설정)
360
+
361
+ **토론 결과 예시:**
362
+
363
+ ```
364
+ 🤝 REVIEW DEBATE RESULTS
365
+
366
+ Team Consensus (4 reviewers):
367
+
368
+ ✅ Validated P1 (unanimous):
369
+ 1. [SECURITY] SQL Injection — 4/4 agree critical
370
+
371
+ ⬆️ Upgraded P2→P1 (debate result):
372
+ 2. [PERF] Unbounded query — architecture-reviewer pointed out
373
+ cascading failure risk under load → team agreed P1
374
+
375
+ ⬇️ Downgraded P1→P2 (debate result):
376
+ 3. [SECURITY] CSRF on read-only endpoint — simplicity-reviewer
377
+ noted endpoint has no side effects → team agreed P2
378
+
379
+ ❌ Removed (false positive):
380
+ 4. [ARCH] "Circular dependency" — architecture-reviewer confirmed
381
+ this is intentional bi-directional reference, not a cycle
382
+
383
+ 🆕 New findings (team discussion):
384
+ 5. [DATA] Race condition in concurrent updates — emerged from
385
+ security + performance discussion
386
+ ```
387
+
388
+ ### Phase 5: Auto-Fix (P1/P2)
389
+
390
+ **Auto-fixable issues are resolved immediately:**
391
+
392
+ ```
393
+ 🔧 AUTO-FIX Starting...
394
+
395
+ P1 Critical:
396
+ 1. [SECURITY] SQL Injection → Fixed with parameterized query ✅
397
+ 2. [DATA] Missing transaction rollback → Added try-finally ✅
398
+
399
+ P2 Important:
400
+ 3. [PERF] N+1 query → Added select_related ✅
401
+ 4. [ARCH] Circular dependency → Separated dependencies ✅
402
+ 5. [TEST] Missing edge case → Added test ✅
403
+
404
+ 🔍 Re-validating...
405
+ ✅ Build successful
406
+ ✅ Tests passed
407
+
408
+ ✅ 5 issues auto-fixed!
409
+ ```
410
+
411
+ **Cases that cannot be auto-fixed:**
412
+ - Requires large-scale architecture changes
413
+ - Requires business logic decisions
414
+ - Requires user confirmation
415
+
416
+ → Manual handling instructions in Phase 6
417
+
418
+ ### Auto-Fix 실패 시 Codex Rescue (Codex 플러그인 활성화 시)
419
+
420
+ P1/P2 auto-fix **3회 실패** 시, Codex에 위임:
421
+
422
+ ```
423
+ /codex:rescue "Fix {priority} issue: {issue-description}. File: {file-path}"
424
+ ```
425
+
426
+ Codex 수정 완료 후 해당 리뷰 에이전트가 재검증.
427
+
428
+ ### Phase 6: Todo File Creation (Items Requiring Manual Handling)
429
+
430
+ Save **remaining** findings to `.claude/vibe/todos/`:
431
+
432
+ ```
433
+ {priority}-{category}-{short-desc}.md
434
+
435
+ Examples:
436
+ - P2-arch-large-refactor.md (Cannot be auto-fixed)
437
+ - P3-style-extract-helper.md (Backlog)
438
+ ```
439
+
440
+ ## Output
441
+
442
+ ```
443
+ CODE REVIEW SUMMARY
444
+ PR #123: Add user authentication
445
+
446
+ Reviewers: 13 agents
447
+ ⏱️ Started: {start_time}
448
+ ⏱️ Completed: {getCurrentTime 결과}
449
+
450
+ Score: 92/100 (Good) ← Score after auto-fix
451
+
452
+ Issues Found:
453
+ - P1 Critical: 2 → 0 (✅ Auto-fixed)
454
+ - P2 Important: 5 → 1 (✅ 4 auto-fixed)
455
+ - P3 Nice-to-have: 3 (Backlog)
456
+
457
+ Auto-Fixed: 6 issues
458
+ - [SECURITY] SQL Injection ✅
459
+ - [DATA] Transaction rollback ✅
460
+ - [PERF] N+1 query ✅
461
+ - [ARCH] Circular dependency ✅
462
+ - [PERF] Unnecessary loop ✅
463
+ - [TEST] Missing edge case ✅
464
+
465
+ Remaining (Manual handling required):
466
+ - P2-arch-large-refactor.md (Architecture decision required)
467
+ - P3-style-extract-helper.md (Backlog)
468
+ - P3-docs-add-readme.md (Backlog)
469
+
470
+ ✅ MERGE READY (P1/P2 resolved)
471
+ ```
472
+
473
+ ### Phase 7: Guide to Fix Workflow (Manual Handling Items)
474
+
475
+ **Choose workflow when handling remaining issues:**
476
+
477
+ ```
478
+ ## Fix Workflow
479
+
480
+ Choose a workflow to fix the discovered issues:
481
+
482
+ | Task Scale | Recommended Approach |
483
+ |------------|---------------------|
484
+ | Simple fix (1-2 files) | Plan Mode |
485
+ | Complex fix (3+ files, validation needed) | /vibe.spec |
486
+
487
+ 1. `/vibe.spec "fix: issue-name"` - VIBE workflow (SPEC validation + re-review)
488
+ 2. Plan Mode - Quick fix (for simple tasks)
489
+
490
+ Which approach would you like to proceed with?
491
+ ```
492
+
493
+ - Wait for user's choice before proceeding
494
+ - If user chooses VIBE → wait for `/vibe.spec` command
495
+ - If user chooses Plan Mode → proceed with EnterPlanMode
496
+
497
+ ## Core Tools (Code Analysis)
498
+
499
+ ### Tool Invocation
500
+
501
+ All tools are called via:
502
+
503
+ ```bash
504
+ 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)))"
505
+ ```
506
+
507
+ ### Recommended Tools for Review
508
+
509
+ | Tool | Purpose | When to Use |
510
+ |------|---------|-------------|
511
+ | `validateCodeQuality` | Code quality check | Overall code quality scan |
512
+ | `analyzeComplexity` | Complexity metrics | Check function complexity |
513
+ | `findSymbol` | Find definitions | Locate implementations |
514
+ | `findReferences` | Find all usages | Track symbol usage |
515
+ | `saveMemory` | Save findings | Store important review findings |
516
+
517
+ ### Example Tool Usage in Review
518
+
519
+ **1. Validate code quality before review:**
520
+
521
+ ```bash
522
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.validateCodeQuality({targetPath: 'src/', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
523
+ ```
524
+
525
+ **2. Analyze complexity of changed files:**
526
+
527
+ ```bash
528
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.analyzeComplexity({targetPath: 'src/api/users.ts', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
529
+ ```
530
+
531
+ **3. Save critical finding for reference:**
532
+
533
+ ```bash
534
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.saveMemory({key: 'review-pr123-critical', value: 'SQL injection in users.py:42', category: 'review', projectPath: process.cwd()}).then(r => console.log(r.content[0].text)))"
535
+ ```
536
+
537
+ ---
538
+
539
+ ## Quality Gate (Mandatory)
540
+
541
+ ### Review Quality Checklist
542
+
543
+ Before completing review, check P1-critical items. P2/P3 items are best-effort:
544
+
545
+ | Category | Check Item | Weight |
546
+ |----------|------------|--------|
547
+ | **Security** | OWASP Top 10 vulnerabilities scanned | 20% |
548
+ | **Security** | Authentication/authorization verified | 10% |
549
+ | **Security** | Sensitive data exposure checked | 10% |
550
+ | **Performance** | N+1 queries detected and flagged | 10% |
551
+ | **Performance** | Memory leaks checked | 5% |
552
+ | **Architecture** | Layer violations detected | 10% |
553
+ | **Architecture** | Circular dependencies checked | 5% |
554
+ | **Code Quality** | Complexity limits enforced | 10% |
555
+ | **Code Quality** | Forbidden patterns detected | 10% |
556
+ | **Testing** | Test coverage gaps identified | 5% |
557
+ | **Documentation** | Public API documentation checked | 5% |
558
+
559
+ ### Review Score Calculation
560
+
561
+ ```
562
+ Score = 100 - (P1 × 20) - (P2 × 5) - (P3 × 1)
563
+
564
+ Grades:
565
+ - 95-100: ✅ EXCELLENT - Merge ready
566
+ - 90-94: ⚠️ GOOD - Minor fixes required before merge
567
+ - 80-89: ⚠️ FAIR - Must fix P2 issues
568
+ - 0-79: ❌ POOR - Block merge, fix P1/P2
569
+ ```
570
+
571
+ ### Merge Decision Matrix
572
+
573
+ | P1 Count | P2 Count | Decision |
574
+ |----------|----------|----------|
575
+ | 0 | 0-2 | ✅ MERGE READY |
576
+ | 0 | 3+ | ⚠️ FIX P2 FIRST |
577
+ | 1+ | Any | ❌ BLOCKED |
578
+
579
+ ### Auto-Fix Capability Matrix
580
+
581
+ | Issue Type | Auto-Fixable | Method |
582
+ |------------|--------------|--------|
583
+ | SQL Injection | ✅ Yes | Parameterized query |
584
+ | Missing transaction | ✅ Yes | Add try-finally |
585
+ | N+1 query | ✅ Yes | Add eager loading |
586
+ | Circular dependency | ⚠️ Partial | Suggest restructure |
587
+ | Missing tests | ✅ Yes | Generate test skeleton |
588
+ | Hardcoded secrets | ❌ No | Flag for manual review |
589
+ | Architecture violation | ❌ No | Suggest refactoring plan |
590
+
591
+ ### Forbidden Patterns (P1 Critical)
592
+
593
+ | Pattern | Risk Level | Detection Method |
594
+ |---------|------------|------------------|
595
+ | Hardcoded credentials | Critical | Regex + entropy scan |
596
+ | SQL string concatenation | Critical | AST analysis |
597
+ | `eval()` or `exec()` | Critical | AST analysis |
598
+ | Disabled CSRF protection | Critical | Config scan |
599
+ | Debug mode in production | Critical | Config scan |
600
+ | Unvalidated redirects | High | URL pattern scan |
601
+
602
+ ### Review Output Requirements
603
+
604
+ Every review MUST produce:
605
+
606
+ 1. **Summary Statistics**
607
+ - Total issues by priority (P1/P2/P3)
608
+ - Auto-fixed count
609
+ - Remaining manual fixes
610
+
611
+ 2. **Detailed Findings**
612
+ - File path and line number
613
+ - Issue description
614
+ - Recommended fix
615
+ - Auto-fix status (applied/pending/manual)
616
+
617
+ 3. **Quality Score**
618
+ - Numerical score (0-100)
619
+ - Grade (EXCELLENT/GOOD/FAIR/POOR)
620
+ - Merge recommendation
621
+
622
+ ---
623
+
624
+ ARGUMENTS: $ARGUMENTS