@su-record/vibe 2.8.49 → 2.8.51

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