@su-record/vibe 2.9.4 → 2.9.5

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