@su-record/vibe 2.9.21 → 2.9.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +105 -104
  3. package/LICENSE +21 -21
  4. package/agents/architect-low.md +41 -41
  5. package/agents/architect-medium.md +59 -59
  6. package/agents/architect.md +80 -80
  7. package/agents/build-error-resolver.md +115 -115
  8. package/agents/compounder.md +261 -261
  9. package/agents/diagrammer.md +178 -178
  10. package/agents/docs/api-documenter.md +99 -99
  11. package/agents/docs/changelog-writer.md +93 -93
  12. package/agents/e2e-tester.md +294 -294
  13. package/agents/event/event-comms.md +78 -78
  14. package/agents/event/event-content.md +68 -68
  15. package/agents/event/event-image.md +95 -95
  16. package/agents/event/event-ops.md +84 -84
  17. package/agents/event/event-scheduler.md +69 -69
  18. package/agents/event/event-speaker.md +86 -86
  19. package/agents/explorer-low.md +42 -42
  20. package/agents/explorer-medium.md +59 -59
  21. package/agents/explorer.md +48 -48
  22. package/agents/implementer-low.md +43 -43
  23. package/agents/implementer-medium.md +52 -52
  24. package/agents/implementer.md +54 -54
  25. package/agents/junior-mentor.md +141 -141
  26. package/agents/planning/requirements-analyst.md +84 -84
  27. package/agents/planning/ux-advisor.md +83 -83
  28. package/agents/qa/acceptance-tester.md +86 -86
  29. package/agents/qa/edge-case-finder.md +93 -93
  30. package/agents/qa/qa-coordinator.md +131 -131
  31. package/agents/refactor-cleaner.md +143 -143
  32. package/agents/research/best-practices-agent.md +199 -199
  33. package/agents/research/codebase-patterns-agent.md +157 -157
  34. package/agents/research/framework-docs-agent.md +188 -188
  35. package/agents/research/security-advisory-agent.md +213 -213
  36. package/agents/review/architecture-reviewer.md +107 -107
  37. package/agents/review/complexity-reviewer.md +116 -116
  38. package/agents/review/data-integrity-reviewer.md +88 -88
  39. package/agents/review/git-history-reviewer.md +103 -103
  40. package/agents/review/performance-reviewer.md +86 -86
  41. package/agents/review/python-reviewer.md +150 -150
  42. package/agents/review/rails-reviewer.md +139 -139
  43. package/agents/review/react-reviewer.md +144 -144
  44. package/agents/review/security-reviewer.md +80 -80
  45. package/agents/review/simplicity-reviewer.md +140 -140
  46. package/agents/review/test-coverage-reviewer.md +116 -116
  47. package/agents/review/typescript-reviewer.md +127 -127
  48. package/agents/searcher.md +54 -54
  49. package/agents/simplifier.md +120 -120
  50. package/agents/teams/debug-team.md +70 -70
  51. package/agents/teams/dev-team.md +88 -88
  52. package/agents/teams/docs-team.md +80 -80
  53. package/agents/teams/figma/figma-analyst.md +52 -52
  54. package/agents/teams/figma/figma-architect.md +112 -112
  55. package/agents/teams/figma/figma-auditor.md +82 -82
  56. package/agents/teams/figma/figma-builder.md +100 -100
  57. package/agents/teams/figma-team.md +85 -85
  58. package/agents/teams/fullstack-team.md +83 -83
  59. package/agents/teams/lite-team.md +69 -69
  60. package/agents/teams/migration-team.md +78 -78
  61. package/agents/teams/refactor-team.md +94 -94
  62. package/agents/teams/research-team.md +86 -86
  63. package/agents/teams/review-debate-team.md +125 -125
  64. package/agents/teams/security-team.md +81 -81
  65. package/agents/tester.md +49 -49
  66. package/agents/ui/ui-a11y-auditor.md +93 -93
  67. package/agents/ui/ui-antipattern-detector.md +102 -102
  68. package/agents/ui/ui-dataviz-advisor.md +69 -69
  69. package/agents/ui/ui-design-system-gen.md +57 -57
  70. package/agents/ui/ui-industry-analyzer.md +49 -49
  71. package/agents/ui/ui-layout-architect.md +65 -65
  72. package/agents/ui/ui-stack-implementer.md +68 -68
  73. package/agents/ui/ux-compliance-reviewer.md +81 -81
  74. package/agents/ui-previewer.md +258 -258
  75. package/commands/vibe.analyze.md +533 -533
  76. package/commands/vibe.contract.md +105 -105
  77. package/commands/vibe.docs.md +33 -33
  78. package/commands/vibe.event.md +163 -163
  79. package/commands/vibe.figma.md +584 -584
  80. package/commands/vibe.harness.md +177 -177
  81. package/commands/vibe.regress.md +73 -73
  82. package/commands/vibe.review.md +624 -624
  83. package/commands/vibe.run.md +1940 -1940
  84. package/commands/vibe.scaffold.md +195 -195
  85. package/commands/vibe.spec.md +577 -577
  86. package/commands/vibe.test.md +96 -0
  87. package/commands/vibe.trace.md +276 -276
  88. package/commands/vibe.utils.md +413 -413
  89. package/commands/vibe.verify.md +550 -550
  90. package/dist/cli/collaborator.js +52 -52
  91. package/dist/cli/commands/codex-proxy.js +15 -15
  92. package/dist/cli/commands/config.js +9 -9
  93. package/dist/cli/commands/evolution.js +12 -12
  94. package/dist/cli/commands/figma.js +20 -20
  95. package/dist/cli/commands/info.js +52 -52
  96. package/dist/cli/commands/init.d.ts.map +1 -1
  97. package/dist/cli/commands/init.js +16 -5
  98. package/dist/cli/commands/init.js.map +1 -1
  99. package/dist/cli/commands/remove.js +14 -14
  100. package/dist/cli/commands/sentinel.js +27 -27
  101. package/dist/cli/commands/skills.js +5 -5
  102. package/dist/cli/commands/slack.js +10 -10
  103. package/dist/cli/commands/stats.js +6 -6
  104. package/dist/cli/commands/telegram.js +12 -12
  105. package/dist/cli/commands/update.d.ts.map +1 -1
  106. package/dist/cli/commands/update.js +16 -0
  107. package/dist/cli/commands/update.js.map +1 -1
  108. package/dist/cli/detect.js +32 -32
  109. package/dist/cli/index.js +33 -33
  110. package/dist/cli/llm/claude-commands.js +16 -16
  111. package/dist/cli/llm/config.js +18 -18
  112. package/dist/cli/llm/gemini-commands.js +16 -16
  113. package/dist/cli/llm/gpt-commands.js +19 -19
  114. package/dist/cli/llm/help.js +21 -21
  115. package/dist/cli/postinstall/cursor-agents.js +32 -32
  116. package/dist/cli/postinstall/cursor-rules.js +83 -83
  117. package/dist/cli/postinstall/cursor-skills.js +743 -743
  118. package/dist/cli/setup/Provisioner.js +42 -42
  119. package/dist/infra/lib/DeepInit.js +24 -24
  120. package/dist/infra/lib/IterationTracker.js +11 -11
  121. package/dist/infra/lib/PythonParser.js +108 -108
  122. package/dist/infra/lib/ReviewRace.js +96 -96
  123. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  124. package/dist/infra/lib/SkillQualityGate.js +9 -9
  125. package/dist/infra/lib/SkillRepository.js +159 -159
  126. package/dist/infra/lib/UltraQA.js +99 -99
  127. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  128. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  129. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  130. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  131. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  132. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  133. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  134. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  135. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  136. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  137. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  138. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  139. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  140. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  141. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  142. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  143. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  144. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  145. package/dist/infra/lib/gemini/orchestration.js +5 -5
  146. package/dist/infra/lib/gpt/orchestration.js +4 -4
  147. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  148. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  149. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  150. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  151. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  152. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  153. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  154. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  155. package/dist/infra/orchestrator/AgentManager.js +12 -12
  156. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  157. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  158. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  159. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  160. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  161. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  162. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  163. package/dist/tools/memory/getMemoryGraph.js +12 -12
  164. package/dist/tools/memory/getSessionContext.js +9 -9
  165. package/dist/tools/memory/linkMemories.js +14 -14
  166. package/dist/tools/memory/listMemories.js +4 -4
  167. package/dist/tools/memory/recallMemory.js +4 -4
  168. package/dist/tools/memory/saveMemory.js +4 -4
  169. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  170. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  171. package/dist/tools/semantic/astGrep.test.js +6 -6
  172. package/dist/tools/spec/prdParser.test.js +171 -171
  173. package/dist/tools/spec/specGenerator.js +169 -169
  174. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  175. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  176. package/hooks/gemini-hooks.json +73 -73
  177. package/hooks/hooks.json +126 -126
  178. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  179. package/hooks/scripts/__tests__/pre-tool-guard.test.js +368 -368
  180. package/hooks/scripts/__tests__/sentinel-guard.test.js +208 -208
  181. package/hooks/scripts/auto-commit.js +97 -97
  182. package/hooks/scripts/auto-format.js +64 -64
  183. package/hooks/scripts/auto-test.js +81 -81
  184. package/hooks/scripts/code-check.js +268 -268
  185. package/hooks/scripts/codex-detect.js +46 -46
  186. package/hooks/scripts/codex-review-gate.js +80 -80
  187. package/hooks/scripts/command-log.js +32 -32
  188. package/hooks/scripts/context-save.js +353 -353
  189. package/hooks/scripts/evolution-engine.js +91 -91
  190. package/hooks/scripts/figma-extract.js +635 -635
  191. package/hooks/scripts/figma-guard.js +219 -219
  192. package/hooks/scripts/figma-refine.js +315 -315
  193. package/hooks/scripts/figma-to-scss.js +394 -394
  194. package/hooks/scripts/figma-validate.js +353 -353
  195. package/hooks/scripts/hud-status.js +321 -321
  196. package/hooks/scripts/keyword-detector.js +214 -214
  197. package/hooks/scripts/lib/scope-from-spec.js +261 -0
  198. package/hooks/scripts/llm-orchestrate.js +645 -645
  199. package/hooks/scripts/post-edit.js +32 -32
  200. package/hooks/scripts/pr-test-gate.js +52 -52
  201. package/hooks/scripts/pre-tool-dispatcher.js +5 -0
  202. package/hooks/scripts/pre-tool-guard.js +254 -254
  203. package/hooks/scripts/prompt-dispatcher.js +190 -190
  204. package/hooks/scripts/scope-guard.js +145 -0
  205. package/hooks/scripts/sentinel-guard.js +130 -130
  206. package/hooks/scripts/session-start.js +186 -177
  207. package/hooks/scripts/skill-injector.js +83 -83
  208. package/hooks/scripts/stop-notify.js +209 -209
  209. package/hooks/scripts/utils.js +257 -257
  210. package/languages/csharp-unity.md +515 -515
  211. package/languages/gdscript-godot.md +470 -470
  212. package/languages/ruby-rails.md +489 -489
  213. package/languages/typescript-angular.md +433 -433
  214. package/languages/typescript-astro.md +416 -416
  215. package/languages/typescript-electron.md +406 -406
  216. package/languages/typescript-nestjs.md +524 -524
  217. package/languages/typescript-svelte.md +407 -407
  218. package/languages/typescript-tauri.md +365 -365
  219. package/package.json +10 -5
  220. package/skills/agents-md/SKILL.md +121 -121
  221. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  222. package/skills/agents-md/templates/agents-md.md +36 -36
  223. package/skills/arch-guard/SKILL.md +181 -181
  224. package/skills/arch-guard/agents/detector.md +48 -48
  225. package/skills/arch-guard/agents/reporter.md +48 -48
  226. package/skills/arch-guard/agents/rule-generator.md +49 -49
  227. package/skills/arch-guard/agents/violation-checker.md +51 -51
  228. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  229. package/skills/arch-guard/frameworks/solid.md +102 -102
  230. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  231. package/skills/arch-guard/templates/arch-rules.json +47 -47
  232. package/skills/arch-guard/templates/violation-report.md +53 -53
  233. package/skills/brand-assets/SKILL.md +147 -147
  234. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  235. package/skills/brand-assets/templates/brand-guide.md +161 -161
  236. package/skills/capability-loop/SKILL.md +272 -272
  237. package/skills/capability-loop/agents/capability-designer.md +61 -61
  238. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  239. package/skills/capability-loop/agents/implementer.md +50 -50
  240. package/skills/capability-loop/agents/tester.md +53 -53
  241. package/skills/capability-loop/templates/capability-spec.md +118 -118
  242. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  243. package/skills/characterization-test/SKILL.md +207 -207
  244. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  245. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  246. package/skills/characterization-test/agents/reporter.md +50 -50
  247. package/skills/characterization-test/agents/test-writer.md +49 -49
  248. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  249. package/skills/characterization-test/templates/test-template.ts +101 -101
  250. package/skills/chub-usage/SKILL.md +139 -139
  251. package/skills/claude-md-guide/SKILL.md +351 -351
  252. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  253. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  254. package/skills/commerce-patterns/SKILL.md +64 -64
  255. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  256. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  257. package/skills/commit-push-pr/SKILL.md +77 -77
  258. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  259. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  260. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  261. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  262. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  263. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  264. package/skills/context7-usage/SKILL.md +106 -106
  265. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  266. package/skills/create-prd/SKILL.md +90 -90
  267. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  268. package/skills/create-prd/agents/prioritizer.md +60 -60
  269. package/skills/create-prd/agents/requirements-writer.md +48 -48
  270. package/skills/create-prd/agents/researcher.md +55 -55
  271. package/skills/create-prd/agents/reviewer.md +54 -54
  272. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  273. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  274. package/skills/create-prd/orchestrator.md +70 -70
  275. package/skills/create-prd/rubrics/completeness.md +58 -58
  276. package/skills/create-prd/templates/prd.md +139 -139
  277. package/skills/design-audit/SKILL.md +152 -152
  278. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  279. package/skills/design-audit/agents/performance-auditor.md +46 -46
  280. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  281. package/skills/design-audit/agents/scorer.md +47 -47
  282. package/skills/design-audit/agents/slop-detector.md +47 -47
  283. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  284. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  285. package/skills/design-audit/orchestrator.md +64 -64
  286. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  287. package/skills/design-audit/rubrics/scoring.md +63 -63
  288. package/skills/design-audit/templates/report.md +88 -88
  289. package/skills/design-critique/SKILL.md +139 -139
  290. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  291. package/skills/design-critique/templates/critique-report.md +86 -86
  292. package/skills/design-distill/SKILL.md +130 -130
  293. package/skills/design-distill/templates/design-system.md +132 -132
  294. package/skills/design-normalize/SKILL.md +133 -133
  295. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  296. package/skills/design-normalize/templates/token-audit.md +89 -89
  297. package/skills/design-polish/SKILL.md +131 -131
  298. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  299. package/skills/design-polish/templates/polish-report.md +64 -64
  300. package/skills/design-teach/SKILL.md +182 -182
  301. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  302. package/skills/design-teach/templates/design-context.json +36 -36
  303. package/skills/devlog/SKILL.md +143 -143
  304. package/skills/e2e-commerce/SKILL.md +62 -62
  305. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  306. package/skills/event-comms/SKILL.md +172 -172
  307. package/skills/event-comms/templates/email-invite.md +99 -99
  308. package/skills/event-comms/templates/sns-post.md +133 -133
  309. package/skills/event-ops/SKILL.md +207 -207
  310. package/skills/event-ops/rubrics/contingency.md +85 -85
  311. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  312. package/skills/event-planning/SKILL.md +144 -144
  313. package/skills/event-planning/rubrics/timeline.md +70 -70
  314. package/skills/event-planning/templates/event-plan.md +91 -91
  315. package/skills/exec-plan/SKILL.md +149 -149
  316. package/skills/exec-plan/agents/decomposer.md +47 -47
  317. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  318. package/skills/exec-plan/agents/estimator.md +43 -43
  319. package/skills/exec-plan/agents/validator.md +55 -55
  320. package/skills/exec-plan/orchestrator.md +70 -70
  321. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  322. package/skills/exec-plan/templates/plan.md +147 -147
  323. package/skills/git-worktree/SKILL.md +73 -73
  324. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  325. package/skills/handoff/SKILL.md +110 -110
  326. package/skills/handoff/agents/context-summarizer.md +51 -51
  327. package/skills/handoff/agents/document-writer.md +63 -63
  328. package/skills/handoff/agents/state-collector.md +53 -53
  329. package/skills/handoff/agents/verifier.md +48 -48
  330. package/skills/handoff/rubrics/completeness.md +62 -62
  331. package/skills/handoff/templates/handoff.md +107 -107
  332. package/skills/parallel-research/SKILL.md +104 -104
  333. package/skills/parallel-research/agents/best-practices.md +43 -43
  334. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  335. package/skills/parallel-research/agents/framework-docs.md +45 -45
  336. package/skills/parallel-research/agents/security-advisory.md +46 -46
  337. package/skills/parallel-research/agents/synthesizer.md +57 -57
  338. package/skills/parallel-research/experts/best-practices.md +50 -50
  339. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  340. package/skills/parallel-research/experts/framework-docs.md +65 -65
  341. package/skills/parallel-research/experts/security-advisory.md +69 -69
  342. package/skills/parallel-research/orchestrator.md +79 -79
  343. package/skills/parallel-research/templates/awesome-list.md +32 -32
  344. package/skills/parallel-research/templates/paper.md +88 -88
  345. package/skills/parallel-research/templates/synthesis.md +101 -101
  346. package/skills/prioritization-frameworks/SKILL.md +87 -87
  347. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  348. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  349. package/skills/priority-todos/SKILL.md +64 -64
  350. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  351. package/skills/priority-todos/templates/todo-board.md +59 -59
  352. package/skills/seo-checklist/SKILL.md +58 -58
  353. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  354. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  355. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  356. package/skills/techdebt/SKILL.md +124 -124
  357. package/skills/techdebt/agents/analyzer.md +50 -50
  358. package/skills/techdebt/agents/fixer.md +41 -41
  359. package/skills/techdebt/agents/reviewer.md +47 -47
  360. package/skills/techdebt/agents/scanner.md +44 -44
  361. package/skills/techdebt/orchestrator.md +70 -70
  362. package/skills/techdebt/rubrics/severity.md +51 -51
  363. package/skills/techdebt/scripts/scan.js +90 -90
  364. package/skills/techdebt/templates/report.md +86 -86
  365. package/skills/tool-fallback/SKILL.md +104 -104
  366. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  367. package/skills/typescript-advanced-types/SKILL.md +67 -67
  368. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  369. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  370. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  371. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  372. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  373. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  374. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  375. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  376. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  377. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  378. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  379. package/skills/user-personas/SKILL.md +75 -75
  380. package/skills/user-personas/rubrics/research-methods.md +56 -56
  381. package/skills/user-personas/templates/persona.md +89 -89
  382. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  383. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  384. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  385. package/skills/vibe-contract/SKILL.md +166 -166
  386. package/skills/vibe-docs/templates/architecture.md +80 -80
  387. package/skills/vibe-docs/templates/readme.md +84 -84
  388. package/skills/vibe-docs/templates/release-notes.md +74 -74
  389. package/skills/vibe-figma/SKILL.md +363 -363
  390. package/skills/vibe-figma/rubrics/extraction-checklist.md +51 -51
  391. package/skills/vibe-figma/templates/component-index.md +126 -126
  392. package/skills/vibe-figma/templates/component-spec.md +168 -168
  393. package/skills/vibe-figma/templates/figma-handoff.md +100 -100
  394. package/skills/vibe-figma/templates/remapped-tree.md +277 -277
  395. package/skills/vibe-figma-convert/SKILL.md +235 -235
  396. package/skills/vibe-figma-convert/rubrics/conversion-rules.md +141 -141
  397. package/skills/vibe-figma-convert/templates/component.md +140 -140
  398. package/skills/vibe-figma-extract/SKILL.md +219 -219
  399. package/skills/vibe-figma-extract/rubrics/image-rules.md +157 -157
  400. package/skills/vibe-interview/SKILL.md +358 -358
  401. package/skills/vibe-interview/checklists/api.md +101 -101
  402. package/skills/vibe-interview/checklists/feature.md +88 -88
  403. package/skills/vibe-interview/checklists/library.md +95 -95
  404. package/skills/vibe-interview/checklists/mobile.md +89 -89
  405. package/skills/vibe-interview/checklists/webapp.md +97 -97
  406. package/skills/vibe-interview/checklists/website.md +99 -99
  407. package/skills/vibe-plan/SKILL.md +254 -254
  408. package/skills/vibe-regress/SKILL.md +174 -174
  409. package/skills/vibe-regress/templates/bug.md +44 -44
  410. package/skills/vibe-regress/templates/test-jest.md +29 -29
  411. package/skills/vibe-regress/templates/test-vitest.md +30 -30
  412. package/skills/vibe-spec/SKILL.md +1195 -1195
  413. package/skills/vibe-spec-review/SKILL.md +726 -726
  414. package/skills/vibe-test/SKILL.md +247 -0
  415. package/skills/video-production/SKILL.md +52 -52
  416. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  417. package/skills/video-production/templates/production-plan.md +104 -104
  418. package/vibe/config.json +29 -29
  419. package/vibe/constitution.md +227 -227
  420. package/vibe/rules/principles/communication-guide.md +98 -98
  421. package/vibe/rules/principles/development-philosophy.md +52 -52
  422. package/vibe/rules/principles/quick-start.md +102 -102
  423. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  424. package/vibe/rules/quality/checklist.md +276 -276
  425. package/vibe/rules/quality/performance.md +236 -236
  426. package/vibe/rules/quality/testing-strategy.md +440 -440
  427. package/vibe/rules/standards/anti-patterns.md +541 -541
  428. package/vibe/rules/standards/code-structure.md +291 -291
  429. package/vibe/rules/standards/complexity-metrics.md +313 -313
  430. package/vibe/rules/standards/git-workflow.md +237 -237
  431. package/vibe/rules/standards/naming-conventions.md +198 -198
  432. package/vibe/rules/standards/security.md +305 -305
  433. package/vibe/rules/writing/document-style.md +74 -74
  434. package/vibe/setup.sh +31 -31
  435. package/vibe/templates/claudemd-template.md +74 -74
  436. package/vibe/templates/constitution-template.md +267 -267
  437. package/vibe/templates/contract-backend-template.md +526 -526
  438. package/vibe/templates/contract-frontend-template.md +599 -599
  439. package/vibe/templates/feature-template.md +96 -96
  440. package/vibe/templates/plan-template.md +194 -194
  441. package/vibe/templates/spec-template.md +221 -221
  442. package/vibe/ui-ux-data/charts.csv +26 -26
  443. package/vibe/ui-ux-data/colors.csv +97 -97
  444. package/vibe/ui-ux-data/icons.csv +101 -101
  445. package/vibe/ui-ux-data/landing.csv +31 -31
  446. package/vibe/ui-ux-data/products.csv +96 -96
  447. package/vibe/ui-ux-data/react-performance.csv +45 -45
  448. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  449. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  450. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  451. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  452. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  453. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  454. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  455. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  456. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  457. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  458. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  459. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  460. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  461. package/vibe/ui-ux-data/styles.csv +68 -68
  462. package/vibe/ui-ux-data/typography.csv +57 -57
  463. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  464. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  465. package/vibe/ui-ux-data/version.json +31 -31
  466. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,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