@su-record/vibe 2.8.48 → 2.8.50

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 (414) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +169 -169
  3. package/LICENSE +21 -21
  4. package/README.md +694 -554
  5. package/agents/architect-low.md +41 -41
  6. package/agents/architect-medium.md +59 -59
  7. package/agents/architect.md +80 -80
  8. package/agents/build-error-resolver.md +115 -115
  9. package/agents/compounder.md +261 -261
  10. package/agents/diagrammer.md +178 -178
  11. package/agents/docs/api-documenter.md +99 -99
  12. package/agents/docs/changelog-writer.md +93 -93
  13. package/agents/e2e-tester.md +294 -294
  14. package/agents/event/event-comms.md +78 -78
  15. package/agents/event/event-content.md +68 -68
  16. package/agents/event/event-image.md +95 -95
  17. package/agents/event/event-ops.md +84 -84
  18. package/agents/event/event-scheduler.md +69 -69
  19. package/agents/event/event-speaker.md +86 -86
  20. package/agents/explorer-low.md +42 -42
  21. package/agents/explorer-medium.md +59 -59
  22. package/agents/explorer.md +48 -48
  23. package/agents/implementer-low.md +43 -43
  24. package/agents/implementer-medium.md +52 -52
  25. package/agents/implementer.md +54 -54
  26. package/agents/junior-mentor.md +141 -141
  27. package/agents/planning/requirements-analyst.md +84 -84
  28. package/agents/planning/ux-advisor.md +83 -83
  29. package/agents/qa/acceptance-tester.md +86 -86
  30. package/agents/qa/edge-case-finder.md +93 -93
  31. package/agents/qa/qa-coordinator.md +131 -131
  32. package/agents/refactor-cleaner.md +143 -143
  33. package/agents/research/best-practices-agent.md +199 -199
  34. package/agents/research/codebase-patterns-agent.md +157 -157
  35. package/agents/research/framework-docs-agent.md +188 -188
  36. package/agents/research/security-advisory-agent.md +213 -213
  37. package/agents/review/architecture-reviewer.md +107 -107
  38. package/agents/review/complexity-reviewer.md +116 -116
  39. package/agents/review/data-integrity-reviewer.md +88 -88
  40. package/agents/review/git-history-reviewer.md +103 -103
  41. package/agents/review/performance-reviewer.md +86 -86
  42. package/agents/review/python-reviewer.md +150 -150
  43. package/agents/review/rails-reviewer.md +139 -139
  44. package/agents/review/react-reviewer.md +144 -144
  45. package/agents/review/security-reviewer.md +80 -80
  46. package/agents/review/simplicity-reviewer.md +140 -140
  47. package/agents/review/test-coverage-reviewer.md +116 -116
  48. package/agents/review/typescript-reviewer.md +127 -127
  49. package/agents/searcher.md +54 -54
  50. package/agents/simplifier.md +120 -120
  51. package/agents/tester.md +49 -49
  52. package/agents/ui/ui-a11y-auditor.md +93 -93
  53. package/agents/ui/ui-antipattern-detector.md +102 -102
  54. package/agents/ui/ui-dataviz-advisor.md +69 -69
  55. package/agents/ui/ui-design-system-gen.md +57 -57
  56. package/agents/ui/ui-industry-analyzer.md +49 -49
  57. package/agents/ui/ui-layout-architect.md +65 -65
  58. package/agents/ui/ui-stack-implementer.md +68 -68
  59. package/agents/ui/ux-compliance-reviewer.md +81 -81
  60. package/agents/ui-previewer.md +258 -258
  61. package/commands/vibe.analyze.md +379 -379
  62. package/commands/vibe.docs.md +32 -32
  63. package/commands/vibe.event.md +163 -163
  64. package/commands/vibe.figma.md +69 -69
  65. package/commands/vibe.review.md +686 -686
  66. package/commands/vibe.run.md +2276 -2276
  67. package/commands/vibe.spec.md +1195 -1195
  68. package/commands/vibe.spec.review.md +609 -609
  69. package/commands/vibe.trace.md +259 -259
  70. package/commands/vibe.utils.md +413 -413
  71. package/commands/vibe.verify.md +510 -510
  72. package/dist/cli/collaborator.js +52 -52
  73. package/dist/cli/commands/config.js +9 -9
  74. package/dist/cli/commands/evolution.js +12 -12
  75. package/dist/cli/commands/figma.js +20 -20
  76. package/dist/cli/commands/info.js +53 -53
  77. package/dist/cli/commands/init.js +5 -5
  78. package/dist/cli/commands/remove.js +14 -14
  79. package/dist/cli/commands/sentinel.js +27 -27
  80. package/dist/cli/commands/skills.js +5 -5
  81. package/dist/cli/commands/slack.js +10 -10
  82. package/dist/cli/commands/stats.js +6 -6
  83. package/dist/cli/commands/telegram.js +12 -12
  84. package/dist/cli/detect.js +32 -32
  85. package/dist/cli/index.js +53 -53
  86. package/dist/cli/llm/claude-commands.js +16 -16
  87. package/dist/cli/llm/config.js +18 -18
  88. package/dist/cli/llm/gemini-commands.js +16 -16
  89. package/dist/cli/llm/gpt-commands.js +19 -19
  90. package/dist/cli/llm/help.js +21 -21
  91. package/dist/cli/postinstall/cursor-agents.js +32 -32
  92. package/dist/cli/postinstall/cursor-rules.js +83 -83
  93. package/dist/cli/postinstall/cursor-skills.js +743 -743
  94. package/dist/cli/setup/Provisioner.js +42 -42
  95. package/dist/infra/lib/DeepInit.js +24 -24
  96. package/dist/infra/lib/IterationTracker.js +11 -11
  97. package/dist/infra/lib/PythonParser.js +108 -108
  98. package/dist/infra/lib/ReviewRace.js +96 -96
  99. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  100. package/dist/infra/lib/SkillQualityGate.js +9 -9
  101. package/dist/infra/lib/SkillRepository.js +159 -159
  102. package/dist/infra/lib/UltraQA.js +99 -99
  103. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  104. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  105. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  106. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  107. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  108. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  109. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  110. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  111. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  112. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  113. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  114. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  115. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  116. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  117. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  118. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  119. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  120. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  121. package/dist/infra/lib/gemini/orchestration.js +5 -5
  122. package/dist/infra/lib/gpt/orchestration.js +4 -4
  123. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  124. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  125. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  126. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  127. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  128. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  129. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  130. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  131. package/dist/infra/orchestrator/AgentManager.js +12 -12
  132. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  133. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  134. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  135. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  136. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  137. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  138. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  139. package/dist/tools/memory/getMemoryGraph.js +12 -12
  140. package/dist/tools/memory/getSessionContext.js +9 -9
  141. package/dist/tools/memory/linkMemories.js +14 -14
  142. package/dist/tools/memory/listMemories.js +4 -4
  143. package/dist/tools/memory/recallMemory.js +4 -4
  144. package/dist/tools/memory/saveMemory.js +4 -4
  145. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  146. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  147. package/dist/tools/semantic/astGrep.test.js +6 -6
  148. package/dist/tools/spec/prdParser.test.js +171 -171
  149. package/dist/tools/spec/specGenerator.js +169 -169
  150. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  151. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  152. package/hooks/gemini-hooks.json +73 -73
  153. package/hooks/hooks.json +170 -170
  154. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  155. package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -286
  156. package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -210
  157. package/hooks/scripts/auto-commit.js +97 -65
  158. package/hooks/scripts/auto-format.js +64 -64
  159. package/hooks/scripts/auto-test.js +81 -81
  160. package/hooks/scripts/code-check.js +268 -216
  161. package/hooks/scripts/codex-detect.js +46 -46
  162. package/hooks/scripts/codex-review-gate.js +80 -80
  163. package/hooks/scripts/command-log.js +32 -32
  164. package/hooks/scripts/context-save.js +353 -353
  165. package/hooks/scripts/evolution-engine.js +91 -91
  166. package/hooks/scripts/figma-extract.js +477 -477
  167. package/hooks/scripts/hud-status.js +321 -321
  168. package/hooks/scripts/keyword-detector.js +214 -214
  169. package/hooks/scripts/llm-orchestrate.js +572 -555
  170. package/hooks/scripts/post-edit.js +32 -32
  171. package/hooks/scripts/pr-test-gate.js +52 -52
  172. package/hooks/scripts/pre-tool-guard.js +159 -159
  173. package/hooks/scripts/prompt-dispatcher.js +185 -185
  174. package/hooks/scripts/sentinel-guard.js +131 -131
  175. package/hooks/scripts/session-start.js +177 -106
  176. package/hooks/scripts/skill-injector.js +83 -83
  177. package/hooks/scripts/stop-notify.js +209 -209
  178. package/hooks/scripts/utils.js +243 -186
  179. package/languages/csharp-unity.md +515 -515
  180. package/languages/gdscript-godot.md +470 -470
  181. package/languages/ruby-rails.md +489 -489
  182. package/languages/typescript-angular.md +433 -433
  183. package/languages/typescript-astro.md +416 -416
  184. package/languages/typescript-electron.md +406 -406
  185. package/languages/typescript-nestjs.md +524 -524
  186. package/languages/typescript-svelte.md +407 -407
  187. package/languages/typescript-tauri.md +365 -365
  188. package/package.json +101 -100
  189. package/skills/agents-md/SKILL.md +121 -121
  190. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  191. package/skills/agents-md/templates/agents-md.md +36 -36
  192. package/skills/arch-guard/SKILL.md +181 -181
  193. package/skills/arch-guard/agents/detector.md +48 -48
  194. package/skills/arch-guard/agents/reporter.md +48 -48
  195. package/skills/arch-guard/agents/rule-generator.md +49 -49
  196. package/skills/arch-guard/agents/violation-checker.md +51 -51
  197. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  198. package/skills/arch-guard/frameworks/solid.md +102 -102
  199. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  200. package/skills/arch-guard/templates/arch-rules.json +47 -47
  201. package/skills/arch-guard/templates/violation-report.md +53 -53
  202. package/skills/brand-assets/SKILL.md +147 -147
  203. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  204. package/skills/brand-assets/templates/brand-guide.md +161 -161
  205. package/skills/capability-loop/SKILL.md +168 -168
  206. package/skills/capability-loop/agents/capability-designer.md +61 -61
  207. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  208. package/skills/capability-loop/agents/implementer.md +50 -50
  209. package/skills/capability-loop/agents/tester.md +53 -53
  210. package/skills/capability-loop/templates/capability-spec.md +118 -118
  211. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  212. package/skills/characterization-test/SKILL.md +207 -207
  213. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  214. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  215. package/skills/characterization-test/agents/reporter.md +50 -50
  216. package/skills/characterization-test/agents/test-writer.md +49 -49
  217. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  218. package/skills/characterization-test/templates/test-template.ts +101 -101
  219. package/skills/chub-usage/SKILL.md +115 -115
  220. package/skills/claude-md-guide/SKILL.md +351 -351
  221. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  222. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  223. package/skills/commerce-patterns/SKILL.md +64 -64
  224. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  225. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  226. package/skills/commit-push-pr/SKILL.md +77 -77
  227. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  228. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  229. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  230. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  231. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  232. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  233. package/skills/context7-usage/SKILL.md +106 -106
  234. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  235. package/skills/create-prd/SKILL.md +90 -90
  236. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  237. package/skills/create-prd/agents/prioritizer.md +60 -60
  238. package/skills/create-prd/agents/requirements-writer.md +48 -48
  239. package/skills/create-prd/agents/researcher.md +55 -55
  240. package/skills/create-prd/agents/reviewer.md +54 -54
  241. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  242. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  243. package/skills/create-prd/orchestrator.md +70 -70
  244. package/skills/create-prd/rubrics/completeness.md +58 -58
  245. package/skills/create-prd/templates/prd.md +139 -139
  246. package/skills/design-audit/SKILL.md +152 -152
  247. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  248. package/skills/design-audit/agents/performance-auditor.md +46 -46
  249. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  250. package/skills/design-audit/agents/scorer.md +47 -47
  251. package/skills/design-audit/agents/slop-detector.md +47 -47
  252. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  253. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  254. package/skills/design-audit/orchestrator.md +64 -64
  255. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  256. package/skills/design-audit/rubrics/scoring.md +63 -63
  257. package/skills/design-audit/templates/report.md +88 -88
  258. package/skills/design-critique/SKILL.md +139 -139
  259. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  260. package/skills/design-critique/templates/critique-report.md +86 -86
  261. package/skills/design-distill/SKILL.md +130 -130
  262. package/skills/design-distill/templates/design-system.md +132 -132
  263. package/skills/design-normalize/SKILL.md +133 -133
  264. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  265. package/skills/design-normalize/templates/token-audit.md +89 -89
  266. package/skills/design-polish/SKILL.md +131 -131
  267. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  268. package/skills/design-polish/templates/polish-report.md +64 -64
  269. package/skills/design-teach/SKILL.md +182 -182
  270. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  271. package/skills/design-teach/templates/design-context.json +36 -36
  272. package/skills/e2e-commerce/SKILL.md +62 -62
  273. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  274. package/skills/event-comms/SKILL.md +162 -162
  275. package/skills/event-comms/templates/email-invite.md +99 -99
  276. package/skills/event-comms/templates/sns-post.md +133 -133
  277. package/skills/event-ops/SKILL.md +198 -198
  278. package/skills/event-ops/rubrics/contingency.md +85 -85
  279. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  280. package/skills/event-planning/SKILL.md +132 -132
  281. package/skills/event-planning/rubrics/timeline.md +70 -70
  282. package/skills/event-planning/templates/event-plan.md +91 -91
  283. package/skills/exec-plan/SKILL.md +149 -149
  284. package/skills/exec-plan/agents/decomposer.md +47 -47
  285. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  286. package/skills/exec-plan/agents/estimator.md +43 -43
  287. package/skills/exec-plan/agents/validator.md +55 -55
  288. package/skills/exec-plan/orchestrator.md +70 -70
  289. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  290. package/skills/exec-plan/templates/plan.md +147 -147
  291. package/skills/git-worktree/SKILL.md +73 -73
  292. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  293. package/skills/handoff/SKILL.md +110 -110
  294. package/skills/handoff/agents/context-summarizer.md +51 -51
  295. package/skills/handoff/agents/document-writer.md +63 -63
  296. package/skills/handoff/agents/state-collector.md +53 -53
  297. package/skills/handoff/agents/verifier.md +48 -48
  298. package/skills/handoff/rubrics/completeness.md +62 -62
  299. package/skills/handoff/templates/handoff.md +107 -107
  300. package/skills/parallel-research/SKILL.md +89 -89
  301. package/skills/parallel-research/agents/best-practices.md +43 -43
  302. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  303. package/skills/parallel-research/agents/framework-docs.md +45 -45
  304. package/skills/parallel-research/agents/security-advisory.md +46 -46
  305. package/skills/parallel-research/agents/synthesizer.md +52 -52
  306. package/skills/parallel-research/experts/best-practices.md +50 -50
  307. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  308. package/skills/parallel-research/experts/framework-docs.md +65 -65
  309. package/skills/parallel-research/experts/security-advisory.md +69 -69
  310. package/skills/parallel-research/orchestrator.md +65 -65
  311. package/skills/parallel-research/templates/synthesis.md +101 -101
  312. package/skills/prioritization-frameworks/SKILL.md +87 -87
  313. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  314. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  315. package/skills/priority-todos/SKILL.md +64 -64
  316. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  317. package/skills/priority-todos/templates/todo-board.md +59 -59
  318. package/skills/seo-checklist/SKILL.md +58 -58
  319. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  320. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  321. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  322. package/skills/techdebt/SKILL.md +124 -124
  323. package/skills/techdebt/agents/analyzer.md +50 -50
  324. package/skills/techdebt/agents/fixer.md +41 -41
  325. package/skills/techdebt/agents/reviewer.md +47 -47
  326. package/skills/techdebt/agents/scanner.md +44 -44
  327. package/skills/techdebt/orchestrator.md +70 -70
  328. package/skills/techdebt/rubrics/severity.md +51 -51
  329. package/skills/techdebt/scripts/scan.js +90 -90
  330. package/skills/techdebt/templates/report.md +86 -86
  331. package/skills/tool-fallback/SKILL.md +104 -104
  332. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  333. package/skills/typescript-advanced-types/SKILL.md +67 -67
  334. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  335. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  336. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  337. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  338. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  339. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  340. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  341. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  342. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  343. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  344. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  345. package/skills/user-personas/SKILL.md +75 -75
  346. package/skills/user-personas/rubrics/research-methods.md +56 -56
  347. package/skills/user-personas/templates/persona.md +89 -89
  348. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  349. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  350. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  351. package/skills/vibe.docs/SKILL.md +171 -171
  352. package/skills/vibe.docs/templates/architecture.md +80 -80
  353. package/skills/vibe.docs/templates/readme.md +84 -84
  354. package/skills/vibe.docs/templates/release-notes.md +74 -74
  355. package/skills/vibe.figma/SKILL.md +982 -1064
  356. package/skills/vibe.figma/rubrics/extraction-checklist.md +51 -51
  357. package/skills/vibe.figma/templates/component-index.md +126 -126
  358. package/skills/vibe.figma/templates/figma-handoff.md +100 -100
  359. package/skills/vibe.figma/templates/remapped-tree.md +277 -277
  360. package/skills/vibe.figma.convert/SKILL.md +511 -553
  361. package/skills/vibe.figma.convert/rubrics/conversion-rules.md +113 -129
  362. package/skills/vibe.figma.convert/templates/component.md +140 -140
  363. package/skills/vibe.figma.extract/SKILL.md +300 -312
  364. package/skills/vibe.figma.extract/rubrics/image-rules.md +137 -145
  365. package/skills/video-production/SKILL.md +52 -52
  366. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  367. package/skills/video-production/templates/production-plan.md +104 -104
  368. package/vibe/config.json +29 -29
  369. package/vibe/constitution.md +227 -227
  370. package/vibe/rules/principles/communication-guide.md +98 -98
  371. package/vibe/rules/principles/development-philosophy.md +52 -52
  372. package/vibe/rules/principles/quick-start.md +102 -102
  373. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  374. package/vibe/rules/quality/checklist.md +276 -276
  375. package/vibe/rules/quality/performance.md +236 -236
  376. package/vibe/rules/quality/testing-strategy.md +440 -440
  377. package/vibe/rules/standards/anti-patterns.md +541 -541
  378. package/vibe/rules/standards/code-structure.md +291 -291
  379. package/vibe/rules/standards/complexity-metrics.md +313 -313
  380. package/vibe/rules/standards/git-workflow.md +237 -237
  381. package/vibe/rules/standards/naming-conventions.md +198 -198
  382. package/vibe/rules/standards/security.md +305 -305
  383. package/vibe/rules/writing/document-style.md +74 -74
  384. package/vibe/setup.sh +31 -31
  385. package/vibe/templates/constitution-template.md +252 -252
  386. package/vibe/templates/contract-backend-template.md +526 -526
  387. package/vibe/templates/contract-frontend-template.md +599 -599
  388. package/vibe/templates/feature-template.md +96 -96
  389. package/vibe/templates/spec-template.md +221 -221
  390. package/vibe/ui-ux-data/charts.csv +26 -26
  391. package/vibe/ui-ux-data/colors.csv +97 -97
  392. package/vibe/ui-ux-data/icons.csv +101 -101
  393. package/vibe/ui-ux-data/landing.csv +31 -31
  394. package/vibe/ui-ux-data/products.csv +96 -96
  395. package/vibe/ui-ux-data/react-performance.csv +45 -45
  396. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  397. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  398. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  399. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  400. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  401. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  402. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  403. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  404. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  405. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  406. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  407. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  408. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  409. package/vibe/ui-ux-data/styles.csv +68 -68
  410. package/vibe/ui-ux-data/typography.csv +57 -57
  411. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  412. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  413. package/vibe/ui-ux-data/version.json +31 -31
  414. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,686 +1,686 @@
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
- > **Agent Teams**: 개별 리뷰어의 발견을 팀으로 토론하여 우선순위를 검증하고 오탐을 제거합니다.
359
- > 설정: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` + `teammateMode: in-process` (`~/.claude/settings.json` 전역 — postinstall 자동 설정)
360
-
361
- **팀 구성:**
362
-
363
- | 팀원 | 역할 |
364
- |------|------|
365
- | security-reviewer (리더) | P1/P2 이슈 종합, 보안 이슈 최종 판정, 합의 주도 |
366
- | architecture-reviewer | 구조적 영향 평가, 숨겨진 결합도 식별 |
367
- | performance-reviewer | 성능 영향 평가, 부하 시나리오 검증 |
368
- | simplicity-reviewer | 과잉 설계 지적, 더 단순한 대안 제시 |
369
-
370
- **실행 순서:**
371
-
372
- 1. `TeamCreate(team_name="review-debate-{feature}")` — 팀 + 공유 태스크 리스트 생성
373
- 2. 4개 팀원 병렬 생성 — 각각 `Task(team_name=..., name=..., subagent_type=...)` 으로 spawn
374
- 3. 팀원들이 공유 TaskList에서 이슈를 claim하고, SendMessage로 교차 검증
375
- 4. 리더(security-reviewer)가 팀 합의 결과 종합 → 검증된 P1/P2 목록 출력
376
- 5. 모든 팀원 shutdown_request → TeamDelete로 정리
377
-
378
- **팀원 spawn 패턴:**
379
-
380
- ```text
381
- TeamCreate(team_name="review-debate-{feature}", description="Review debate for {feature}")
382
-
383
- # 4개 병렬 spawn
384
- Task(team_name="review-debate-{feature}", name="security-reviewer", subagent_type="security-reviewer",
385
- mode="bypassPermissions",
386
- prompt="리뷰 토론 팀 리더. Phase 2에서 발견된 P1/P2 이슈를 팀과 함께 검증하세요.
387
- Phase 2 결과: {phase2_findings}
388
- 역할: 보안 이슈 최종 판정, 팀원 간 우선순위 충돌 해결, 최종 합의 요약 작성.
389
- TaskList를 확인하고 이슈를 claim하세요. 각 이슈에 대해 팀원에게 SendMessage로 검증을 요청하세요.
390
- 모든 이슈 검증 완료 후 최종 합의 결과를 작성하세요.")
391
-
392
- Task(team_name="review-debate-{feature}", name="architecture-reviewer", subagent_type="architecture-reviewer",
393
- mode="bypassPermissions",
394
- prompt="리뷰 토론 팀 아키텍처 담당. Phase 2 결과: {phase2_findings}
395
- 역할: 각 이슈의 구조적 영향 평가, 숨겨진 결합도/의존성 식별.
396
- 아키텍처 관점에서 우선순위 변경이 필요하면 security-reviewer에게 SendMessage로 알리세요.
397
- TaskList에서 아키텍처 관련 이슈를 claim하세요.")
398
-
399
- Task(team_name="review-debate-{feature}", name="performance-reviewer", subagent_type="performance-reviewer",
400
- mode="bypassPermissions",
401
- prompt="리뷰 토론 팀 성능 담당. Phase 2 결과: {phase2_findings}
402
- 역할: 성능 영향 평가, 부하 시 cascading failure 가능성 검증.
403
- 성능 관점에서 P2→P1 승격이 필요하면 security-reviewer에게 SendMessage로 알리세요.
404
- TaskList에서 성능 관련 이슈를 claim하세요.")
405
-
406
- Task(team_name="review-debate-{feature}", name="simplicity-reviewer", subagent_type="simplicity-reviewer",
407
- mode="bypassPermissions",
408
- prompt="리뷰 토론 팀 복잡도 담당. Phase 2 결과: {phase2_findings}
409
- 역할: 과잉 진단(오탐) 식별, 더 단순한 수정 방안 제시.
410
- 오탐이나 P1→P2 강등이 필요하면 security-reviewer에게 SendMessage로 알리세요.
411
- TaskList에서 복잡도/단순화 관련 이슈를 claim하세요.")
412
- ```
413
-
414
- **팀원 간 통신 예시:**
415
-
416
- ```text
417
- architecture-reviewer → security-reviewer: "Unbounded query는 부하 시 cascading failure 가능. P2→P1 승격 제안"
418
- simplicity-reviewer → security-reviewer: "CSRF on read-only endpoint는 side effect 없음. P1→P2 강등 제안"
419
- performance-reviewer → architecture-reviewer: "N+1 query가 현재 데이터 규모에서는 영향 없으나 확장 시 문제. 의견?"
420
- security-reviewer → broadcast: "최종 합의: SQL Injection P1 유지, Unbounded query P1 승격, CSRF P2 강등, Circular dep 오탐 제거"
421
- ```
422
-
423
- **토론 결과 예시:**
424
-
425
- ```
426
- 🤝 REVIEW DEBATE RESULTS
427
-
428
- Team Consensus (4 reviewers):
429
-
430
- ✅ Validated P1 (unanimous):
431
- 1. [SECURITY] SQL Injection — 4/4 agree critical
432
-
433
- ⬆️ Upgraded P2→P1 (debate result):
434
- 2. [PERF] Unbounded query — architecture-reviewer pointed out
435
- cascading failure risk under load → team agreed P1
436
-
437
- ⬇️ Downgraded P1→P2 (debate result):
438
- 3. [SECURITY] CSRF on read-only endpoint — simplicity-reviewer
439
- noted endpoint has no side effects → team agreed P2
440
-
441
- ❌ Removed (false positive):
442
- 4. [ARCH] "Circular dependency" — architecture-reviewer confirmed
443
- this is intentional bi-directional reference, not a cycle
444
-
445
- 🆕 New findings (team discussion):
446
- 5. [DATA] Race condition in concurrent updates — emerged from
447
- security + performance discussion
448
- ```
449
-
450
- ### Phase 5: Auto-Fix (P1/P2)
451
-
452
- **Auto-fixable issues are resolved immediately:**
453
-
454
- ```
455
- 🔧 AUTO-FIX Starting...
456
-
457
- P1 Critical:
458
- 1. [SECURITY] SQL Injection → Fixed with parameterized query ✅
459
- 2. [DATA] Missing transaction rollback → Added try-finally ✅
460
-
461
- P2 Important:
462
- 3. [PERF] N+1 query → Added select_related ✅
463
- 4. [ARCH] Circular dependency → Separated dependencies ✅
464
- 5. [TEST] Missing edge case → Added test ✅
465
-
466
- 🔍 Re-validating...
467
- ✅ Build successful
468
- ✅ Tests passed
469
-
470
- ✅ 5 issues auto-fixed!
471
- ```
472
-
473
- **Cases that cannot be auto-fixed:**
474
- - Requires large-scale architecture changes
475
- - Requires business logic decisions
476
- - Requires user confirmation
477
-
478
- → Manual handling instructions in Phase 6
479
-
480
- ### Auto-Fix 실패 시 Codex Rescue (Codex 플러그인 활성화 시)
481
-
482
- P1/P2 auto-fix **3회 실패** 시, Codex에 위임:
483
-
484
- ```
485
- /codex:rescue "Fix {priority} issue: {issue-description}. File: {file-path}"
486
- ```
487
-
488
- Codex 수정 완료 후 해당 리뷰 에이전트가 재검증.
489
-
490
- ### Phase 6: Todo File Creation (Items Requiring Manual Handling)
491
-
492
- Save **remaining** findings to `.claude/vibe/todos/`:
493
-
494
- ```
495
- {priority}-{category}-{short-desc}.md
496
-
497
- Examples:
498
- - P2-arch-large-refactor.md (Cannot be auto-fixed)
499
- - P3-style-extract-helper.md (Backlog)
500
- ```
501
-
502
- ## Output
503
-
504
- ```
505
- CODE REVIEW SUMMARY
506
- PR #123: Add user authentication
507
-
508
- Reviewers: 13 agents
509
- ⏱️ Started: {start_time}
510
- ⏱️ Completed: {getCurrentTime 결과}
511
-
512
- Score: 92/100 (Good) ← Score after auto-fix
513
-
514
- Issues Found:
515
- - P1 Critical: 2 → 0 (✅ Auto-fixed)
516
- - P2 Important: 5 → 1 (✅ 4 auto-fixed)
517
- - P3 Nice-to-have: 3 (Backlog)
518
-
519
- Auto-Fixed: 6 issues
520
- - [SECURITY] SQL Injection ✅
521
- - [DATA] Transaction rollback ✅
522
- - [PERF] N+1 query ✅
523
- - [ARCH] Circular dependency ✅
524
- - [PERF] Unnecessary loop ✅
525
- - [TEST] Missing edge case ✅
526
-
527
- Remaining (Manual handling required):
528
- - P2-arch-large-refactor.md (Architecture decision required)
529
- - P3-style-extract-helper.md (Backlog)
530
- - P3-docs-add-readme.md (Backlog)
531
-
532
- ✅ MERGE READY (P1/P2 resolved)
533
- ```
534
-
535
- ### Phase 7: Guide to Fix Workflow (Manual Handling Items)
536
-
537
- **Choose workflow when handling remaining issues:**
538
-
539
- ```
540
- ## Fix Workflow
541
-
542
- Choose a workflow to fix the discovered issues:
543
-
544
- | Task Scale | Recommended Approach |
545
- |------------|---------------------|
546
- | Simple fix (1-2 files) | Plan Mode |
547
- | Complex fix (3+ files, validation needed) | /vibe.spec |
548
-
549
- 1. `/vibe.spec "fix: issue-name"` - VIBE workflow (SPEC validation + re-review)
550
- 2. Plan Mode - Quick fix (for simple tasks)
551
-
552
- Which approach would you like to proceed with?
553
- ```
554
-
555
- - Wait for user's choice before proceeding
556
- - If user chooses VIBE → wait for `/vibe.spec` command
557
- - If user chooses Plan Mode → proceed with EnterPlanMode
558
-
559
- ## Core Tools (Code Analysis)
560
-
561
- ### Tool Invocation
562
-
563
- All tools are called via:
564
-
565
- ```bash
566
- 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)))"
567
- ```
568
-
569
- ### Recommended Tools for Review
570
-
571
- | Tool | Purpose | When to Use |
572
- |------|---------|-------------|
573
- | `validateCodeQuality` | Code quality check | Overall code quality scan |
574
- | `analyzeComplexity` | Complexity metrics | Check function complexity |
575
- | `findSymbol` | Find definitions | Locate implementations |
576
- | `findReferences` | Find all usages | Track symbol usage |
577
- | `saveMemory` | Save findings | Store important review findings |
578
-
579
- ### Example Tool Usage in Review
580
-
581
- **1. Validate code quality before review:**
582
-
583
- ```bash
584
- 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)))"
585
- ```
586
-
587
- **2. Analyze complexity of changed files:**
588
-
589
- ```bash
590
- 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)))"
591
- ```
592
-
593
- **3. Save critical finding for reference:**
594
-
595
- ```bash
596
- 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)))"
597
- ```
598
-
599
- ---
600
-
601
- ## Quality Gate (Mandatory)
602
-
603
- ### Review Quality Checklist
604
-
605
- Before completing review, check P1-critical items. P2/P3 items are best-effort:
606
-
607
- | Category | Check Item | Weight |
608
- |----------|------------|--------|
609
- | **Security** | OWASP Top 10 vulnerabilities scanned | 20% |
610
- | **Security** | Authentication/authorization verified | 10% |
611
- | **Security** | Sensitive data exposure checked | 10% |
612
- | **Performance** | N+1 queries detected and flagged | 10% |
613
- | **Performance** | Memory leaks checked | 5% |
614
- | **Architecture** | Layer violations detected | 10% |
615
- | **Architecture** | Circular dependencies checked | 5% |
616
- | **Code Quality** | Complexity limits enforced | 10% |
617
- | **Code Quality** | Forbidden patterns detected | 10% |
618
- | **Testing** | Test coverage gaps identified | 5% |
619
- | **Documentation** | Public API documentation checked | 5% |
620
-
621
- ### Review Score Calculation
622
-
623
- ```
624
- Score = 100 - (P1 × 20) - (P2 × 5) - (P3 × 1)
625
-
626
- Grades:
627
- - 95-100: ✅ EXCELLENT - Merge ready
628
- - 90-94: ⚠️ GOOD - Minor fixes required before merge
629
- - 80-89: ⚠️ FAIR - Must fix P2 issues
630
- - 0-79: ❌ POOR - Block merge, fix P1/P2
631
- ```
632
-
633
- ### Merge Decision Matrix
634
-
635
- | P1 Count | P2 Count | Decision |
636
- |----------|----------|----------|
637
- | 0 | 0-2 | ✅ MERGE READY |
638
- | 0 | 3+ | ⚠️ FIX P2 FIRST |
639
- | 1+ | Any | ❌ BLOCKED |
640
-
641
- ### Auto-Fix Capability Matrix
642
-
643
- | Issue Type | Auto-Fixable | Method |
644
- |------------|--------------|--------|
645
- | SQL Injection | ✅ Yes | Parameterized query |
646
- | Missing transaction | ✅ Yes | Add try-finally |
647
- | N+1 query | ✅ Yes | Add eager loading |
648
- | Circular dependency | ⚠️ Partial | Suggest restructure |
649
- | Missing tests | ✅ Yes | Generate test skeleton |
650
- | Hardcoded secrets | ❌ No | Flag for manual review |
651
- | Architecture violation | ❌ No | Suggest refactoring plan |
652
-
653
- ### Forbidden Patterns (P1 Critical)
654
-
655
- | Pattern | Risk Level | Detection Method |
656
- |---------|------------|------------------|
657
- | Hardcoded credentials | Critical | Regex + entropy scan |
658
- | SQL string concatenation | Critical | AST analysis |
659
- | `eval()` or `exec()` | Critical | AST analysis |
660
- | Disabled CSRF protection | Critical | Config scan |
661
- | Debug mode in production | Critical | Config scan |
662
- | Unvalidated redirects | High | URL pattern scan |
663
-
664
- ### Review Output Requirements
665
-
666
- Every review MUST produce:
667
-
668
- 1. **Summary Statistics**
669
- - Total issues by priority (P1/P2/P3)
670
- - Auto-fixed count
671
- - Remaining manual fixes
672
-
673
- 2. **Detailed Findings**
674
- - File path and line number
675
- - Issue description
676
- - Recommended fix
677
- - Auto-fix status (applied/pending/manual)
678
-
679
- 3. **Quality Score**
680
- - Numerical score (0-100)
681
- - Grade (EXCELLENT/GOOD/FAIR/POOR)
682
- - Merge recommendation
683
-
684
- ---
685
-
686
- 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
+ > **Agent Teams**: 개별 리뷰어의 발견을 팀으로 토론하여 우선순위를 검증하고 오탐을 제거합니다.
359
+ > 설정: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` + `teammateMode: in-process` (`~/.claude/settings.json` 전역 — postinstall 자동 설정)
360
+
361
+ **팀 구성:**
362
+
363
+ | 팀원 | 역할 |
364
+ |------|------|
365
+ | security-reviewer (리더) | P1/P2 이슈 종합, 보안 이슈 최종 판정, 합의 주도 |
366
+ | architecture-reviewer | 구조적 영향 평가, 숨겨진 결합도 식별 |
367
+ | performance-reviewer | 성능 영향 평가, 부하 시나리오 검증 |
368
+ | simplicity-reviewer | 과잉 설계 지적, 더 단순한 대안 제시 |
369
+
370
+ **실행 순서:**
371
+
372
+ 1. `TeamCreate(team_name="review-debate-{feature}")` — 팀 + 공유 태스크 리스트 생성
373
+ 2. 4개 팀원 병렬 생성 — 각각 `Task(team_name=..., name=..., subagent_type=...)` 으로 spawn
374
+ 3. 팀원들이 공유 TaskList에서 이슈를 claim하고, SendMessage로 교차 검증
375
+ 4. 리더(security-reviewer)가 팀 합의 결과 종합 → 검증된 P1/P2 목록 출력
376
+ 5. 모든 팀원 shutdown_request → TeamDelete로 정리
377
+
378
+ **팀원 spawn 패턴:**
379
+
380
+ ```text
381
+ TeamCreate(team_name="review-debate-{feature}", description="Review debate for {feature}")
382
+
383
+ # 4개 병렬 spawn
384
+ Task(team_name="review-debate-{feature}", name="security-reviewer", subagent_type="security-reviewer",
385
+ mode="bypassPermissions",
386
+ prompt="리뷰 토론 팀 리더. Phase 2에서 발견된 P1/P2 이슈를 팀과 함께 검증하세요.
387
+ Phase 2 결과: {phase2_findings}
388
+ 역할: 보안 이슈 최종 판정, 팀원 간 우선순위 충돌 해결, 최종 합의 요약 작성.
389
+ TaskList를 확인하고 이슈를 claim하세요. 각 이슈에 대해 팀원에게 SendMessage로 검증을 요청하세요.
390
+ 모든 이슈 검증 완료 후 최종 합의 결과를 작성하세요.")
391
+
392
+ Task(team_name="review-debate-{feature}", name="architecture-reviewer", subagent_type="architecture-reviewer",
393
+ mode="bypassPermissions",
394
+ prompt="리뷰 토론 팀 아키텍처 담당. Phase 2 결과: {phase2_findings}
395
+ 역할: 각 이슈의 구조적 영향 평가, 숨겨진 결합도/의존성 식별.
396
+ 아키텍처 관점에서 우선순위 변경이 필요하면 security-reviewer에게 SendMessage로 알리세요.
397
+ TaskList에서 아키텍처 관련 이슈를 claim하세요.")
398
+
399
+ Task(team_name="review-debate-{feature}", name="performance-reviewer", subagent_type="performance-reviewer",
400
+ mode="bypassPermissions",
401
+ prompt="리뷰 토론 팀 성능 담당. Phase 2 결과: {phase2_findings}
402
+ 역할: 성능 영향 평가, 부하 시 cascading failure 가능성 검증.
403
+ 성능 관점에서 P2→P1 승격이 필요하면 security-reviewer에게 SendMessage로 알리세요.
404
+ TaskList에서 성능 관련 이슈를 claim하세요.")
405
+
406
+ Task(team_name="review-debate-{feature}", name="simplicity-reviewer", subagent_type="simplicity-reviewer",
407
+ mode="bypassPermissions",
408
+ prompt="리뷰 토론 팀 복잡도 담당. Phase 2 결과: {phase2_findings}
409
+ 역할: 과잉 진단(오탐) 식별, 더 단순한 수정 방안 제시.
410
+ 오탐이나 P1→P2 강등이 필요하면 security-reviewer에게 SendMessage로 알리세요.
411
+ TaskList에서 복잡도/단순화 관련 이슈를 claim하세요.")
412
+ ```
413
+
414
+ **팀원 간 통신 예시:**
415
+
416
+ ```text
417
+ architecture-reviewer → security-reviewer: "Unbounded query는 부하 시 cascading failure 가능. P2→P1 승격 제안"
418
+ simplicity-reviewer → security-reviewer: "CSRF on read-only endpoint는 side effect 없음. P1→P2 강등 제안"
419
+ performance-reviewer → architecture-reviewer: "N+1 query가 현재 데이터 규모에서는 영향 없으나 확장 시 문제. 의견?"
420
+ security-reviewer → broadcast: "최종 합의: SQL Injection P1 유지, Unbounded query P1 승격, CSRF P2 강등, Circular dep 오탐 제거"
421
+ ```
422
+
423
+ **토론 결과 예시:**
424
+
425
+ ```
426
+ 🤝 REVIEW DEBATE RESULTS
427
+
428
+ Team Consensus (4 reviewers):
429
+
430
+ ✅ Validated P1 (unanimous):
431
+ 1. [SECURITY] SQL Injection — 4/4 agree critical
432
+
433
+ ⬆️ Upgraded P2→P1 (debate result):
434
+ 2. [PERF] Unbounded query — architecture-reviewer pointed out
435
+ cascading failure risk under load → team agreed P1
436
+
437
+ ⬇️ Downgraded P1→P2 (debate result):
438
+ 3. [SECURITY] CSRF on read-only endpoint — simplicity-reviewer
439
+ noted endpoint has no side effects → team agreed P2
440
+
441
+ ❌ Removed (false positive):
442
+ 4. [ARCH] "Circular dependency" — architecture-reviewer confirmed
443
+ this is intentional bi-directional reference, not a cycle
444
+
445
+ 🆕 New findings (team discussion):
446
+ 5. [DATA] Race condition in concurrent updates — emerged from
447
+ security + performance discussion
448
+ ```
449
+
450
+ ### Phase 5: Auto-Fix (P1/P2)
451
+
452
+ **Auto-fixable issues are resolved immediately:**
453
+
454
+ ```
455
+ 🔧 AUTO-FIX Starting...
456
+
457
+ P1 Critical:
458
+ 1. [SECURITY] SQL Injection → Fixed with parameterized query ✅
459
+ 2. [DATA] Missing transaction rollback → Added try-finally ✅
460
+
461
+ P2 Important:
462
+ 3. [PERF] N+1 query → Added select_related ✅
463
+ 4. [ARCH] Circular dependency → Separated dependencies ✅
464
+ 5. [TEST] Missing edge case → Added test ✅
465
+
466
+ 🔍 Re-validating...
467
+ ✅ Build successful
468
+ ✅ Tests passed
469
+
470
+ ✅ 5 issues auto-fixed!
471
+ ```
472
+
473
+ **Cases that cannot be auto-fixed:**
474
+ - Requires large-scale architecture changes
475
+ - Requires business logic decisions
476
+ - Requires user confirmation
477
+
478
+ → Manual handling instructions in Phase 6
479
+
480
+ ### Auto-Fix 실패 시 Codex Rescue (Codex 플러그인 활성화 시)
481
+
482
+ P1/P2 auto-fix **3회 실패** 시, Codex에 위임:
483
+
484
+ ```
485
+ /codex:rescue "Fix {priority} issue: {issue-description}. File: {file-path}"
486
+ ```
487
+
488
+ Codex 수정 완료 후 해당 리뷰 에이전트가 재검증.
489
+
490
+ ### Phase 6: Todo File Creation (Items Requiring Manual Handling)
491
+
492
+ Save **remaining** findings to `.claude/vibe/todos/`:
493
+
494
+ ```
495
+ {priority}-{category}-{short-desc}.md
496
+
497
+ Examples:
498
+ - P2-arch-large-refactor.md (Cannot be auto-fixed)
499
+ - P3-style-extract-helper.md (Backlog)
500
+ ```
501
+
502
+ ## Output
503
+
504
+ ```
505
+ CODE REVIEW SUMMARY
506
+ PR #123: Add user authentication
507
+
508
+ Reviewers: 13 agents
509
+ ⏱️ Started: {start_time}
510
+ ⏱️ Completed: {getCurrentTime 결과}
511
+
512
+ Score: 92/100 (Good) ← Score after auto-fix
513
+
514
+ Issues Found:
515
+ - P1 Critical: 2 → 0 (✅ Auto-fixed)
516
+ - P2 Important: 5 → 1 (✅ 4 auto-fixed)
517
+ - P3 Nice-to-have: 3 (Backlog)
518
+
519
+ Auto-Fixed: 6 issues
520
+ - [SECURITY] SQL Injection ✅
521
+ - [DATA] Transaction rollback ✅
522
+ - [PERF] N+1 query ✅
523
+ - [ARCH] Circular dependency ✅
524
+ - [PERF] Unnecessary loop ✅
525
+ - [TEST] Missing edge case ✅
526
+
527
+ Remaining (Manual handling required):
528
+ - P2-arch-large-refactor.md (Architecture decision required)
529
+ - P3-style-extract-helper.md (Backlog)
530
+ - P3-docs-add-readme.md (Backlog)
531
+
532
+ ✅ MERGE READY (P1/P2 resolved)
533
+ ```
534
+
535
+ ### Phase 7: Guide to Fix Workflow (Manual Handling Items)
536
+
537
+ **Choose workflow when handling remaining issues:**
538
+
539
+ ```
540
+ ## Fix Workflow
541
+
542
+ Choose a workflow to fix the discovered issues:
543
+
544
+ | Task Scale | Recommended Approach |
545
+ |------------|---------------------|
546
+ | Simple fix (1-2 files) | Plan Mode |
547
+ | Complex fix (3+ files, validation needed) | /vibe.spec |
548
+
549
+ 1. `/vibe.spec "fix: issue-name"` - VIBE workflow (SPEC validation + re-review)
550
+ 2. Plan Mode - Quick fix (for simple tasks)
551
+
552
+ Which approach would you like to proceed with?
553
+ ```
554
+
555
+ - Wait for user's choice before proceeding
556
+ - If user chooses VIBE → wait for `/vibe.spec` command
557
+ - If user chooses Plan Mode → proceed with EnterPlanMode
558
+
559
+ ## Core Tools (Code Analysis)
560
+
561
+ ### Tool Invocation
562
+
563
+ All tools are called via:
564
+
565
+ ```bash
566
+ 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)))"
567
+ ```
568
+
569
+ ### Recommended Tools for Review
570
+
571
+ | Tool | Purpose | When to Use |
572
+ |------|---------|-------------|
573
+ | `validateCodeQuality` | Code quality check | Overall code quality scan |
574
+ | `analyzeComplexity` | Complexity metrics | Check function complexity |
575
+ | `findSymbol` | Find definitions | Locate implementations |
576
+ | `findReferences` | Find all usages | Track symbol usage |
577
+ | `saveMemory` | Save findings | Store important review findings |
578
+
579
+ ### Example Tool Usage in Review
580
+
581
+ **1. Validate code quality before review:**
582
+
583
+ ```bash
584
+ 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)))"
585
+ ```
586
+
587
+ **2. Analyze complexity of changed files:**
588
+
589
+ ```bash
590
+ 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)))"
591
+ ```
592
+
593
+ **3. Save critical finding for reference:**
594
+
595
+ ```bash
596
+ 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)))"
597
+ ```
598
+
599
+ ---
600
+
601
+ ## Quality Gate (Mandatory)
602
+
603
+ ### Review Quality Checklist
604
+
605
+ Before completing review, check P1-critical items. P2/P3 items are best-effort:
606
+
607
+ | Category | Check Item | Weight |
608
+ |----------|------------|--------|
609
+ | **Security** | OWASP Top 10 vulnerabilities scanned | 20% |
610
+ | **Security** | Authentication/authorization verified | 10% |
611
+ | **Security** | Sensitive data exposure checked | 10% |
612
+ | **Performance** | N+1 queries detected and flagged | 10% |
613
+ | **Performance** | Memory leaks checked | 5% |
614
+ | **Architecture** | Layer violations detected | 10% |
615
+ | **Architecture** | Circular dependencies checked | 5% |
616
+ | **Code Quality** | Complexity limits enforced | 10% |
617
+ | **Code Quality** | Forbidden patterns detected | 10% |
618
+ | **Testing** | Test coverage gaps identified | 5% |
619
+ | **Documentation** | Public API documentation checked | 5% |
620
+
621
+ ### Review Score Calculation
622
+
623
+ ```
624
+ Score = 100 - (P1 × 20) - (P2 × 5) - (P3 × 1)
625
+
626
+ Grades:
627
+ - 95-100: ✅ EXCELLENT - Merge ready
628
+ - 90-94: ⚠️ GOOD - Minor fixes required before merge
629
+ - 80-89: ⚠️ FAIR - Must fix P2 issues
630
+ - 0-79: ❌ POOR - Block merge, fix P1/P2
631
+ ```
632
+
633
+ ### Merge Decision Matrix
634
+
635
+ | P1 Count | P2 Count | Decision |
636
+ |----------|----------|----------|
637
+ | 0 | 0-2 | ✅ MERGE READY |
638
+ | 0 | 3+ | ⚠️ FIX P2 FIRST |
639
+ | 1+ | Any | ❌ BLOCKED |
640
+
641
+ ### Auto-Fix Capability Matrix
642
+
643
+ | Issue Type | Auto-Fixable | Method |
644
+ |------------|--------------|--------|
645
+ | SQL Injection | ✅ Yes | Parameterized query |
646
+ | Missing transaction | ✅ Yes | Add try-finally |
647
+ | N+1 query | ✅ Yes | Add eager loading |
648
+ | Circular dependency | ⚠️ Partial | Suggest restructure |
649
+ | Missing tests | ✅ Yes | Generate test skeleton |
650
+ | Hardcoded secrets | ❌ No | Flag for manual review |
651
+ | Architecture violation | ❌ No | Suggest refactoring plan |
652
+
653
+ ### Forbidden Patterns (P1 Critical)
654
+
655
+ | Pattern | Risk Level | Detection Method |
656
+ |---------|------------|------------------|
657
+ | Hardcoded credentials | Critical | Regex + entropy scan |
658
+ | SQL string concatenation | Critical | AST analysis |
659
+ | `eval()` or `exec()` | Critical | AST analysis |
660
+ | Disabled CSRF protection | Critical | Config scan |
661
+ | Debug mode in production | Critical | Config scan |
662
+ | Unvalidated redirects | High | URL pattern scan |
663
+
664
+ ### Review Output Requirements
665
+
666
+ Every review MUST produce:
667
+
668
+ 1. **Summary Statistics**
669
+ - Total issues by priority (P1/P2/P3)
670
+ - Auto-fixed count
671
+ - Remaining manual fixes
672
+
673
+ 2. **Detailed Findings**
674
+ - File path and line number
675
+ - Issue description
676
+ - Recommended fix
677
+ - Auto-fix status (applied/pending/manual)
678
+
679
+ 3. **Quality Score**
680
+ - Numerical score (0-100)
681
+ - Grade (EXCELLENT/GOOD/FAIR/POOR)
682
+ - Merge recommendation
683
+
684
+ ---
685
+
686
+ ARGUMENTS: $ARGUMENTS