@su-record/vibe 2.16.4 → 3.0.0

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 (267) hide show
  1. package/CLAUDE.md +8 -8
  2. package/README.en.md +46 -29
  3. package/README.md +41 -24
  4. package/agents/acceptance-tester.md +56 -0
  5. package/agents/architect.md +25 -67
  6. package/agents/build-error-resolver.md +28 -97
  7. package/agents/code-reviewer.md +89 -0
  8. package/agents/diagrammer.md +34 -169
  9. package/agents/documenter.md +43 -0
  10. package/agents/e2e-tester.md +46 -281
  11. package/agents/event/event-ops.md +54 -77
  12. package/agents/event/event-planner.md +63 -0
  13. package/agents/figma/figma-engineer.md +76 -0
  14. package/agents/implementer.md +26 -41
  15. package/agents/security-reviewer.md +56 -0
  16. package/agents/tester.md +37 -33
  17. package/agents/ui/design-reviewer.md +62 -0
  18. package/agents/ui/design-system-gen.md +63 -0
  19. package/dist/cli/commands/remove.d.ts.map +1 -1
  20. package/dist/cli/commands/remove.js +8 -10
  21. package/dist/cli/commands/remove.js.map +1 -1
  22. package/dist/cli/index.d.ts +0 -4
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +0 -4
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/llm/model-refresh.js +1 -1
  27. package/dist/cli/llm/model-refresh.js.map +1 -1
  28. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  29. package/dist/cli/postinstall/claude-agents.js +16 -77
  30. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  31. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  32. package/dist/cli/postinstall/constants.js +80 -296
  33. package/dist/cli/postinstall/constants.js.map +1 -1
  34. package/dist/cli/postinstall/cursor-agents.d.ts +5 -0
  35. package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -1
  36. package/dist/cli/postinstall/cursor-agents.js +26 -68
  37. package/dist/cli/postinstall/cursor-agents.js.map +1 -1
  38. package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -1
  39. package/dist/cli/postinstall/cursor-skills.js +26 -30
  40. package/dist/cli/postinstall/cursor-skills.js.map +1 -1
  41. package/dist/cli/postinstall/main.d.ts.map +1 -1
  42. package/dist/cli/postinstall/main.js +0 -2
  43. package/dist/cli/postinstall/main.js.map +1 -1
  44. package/dist/cli/setup/Provisioner.d.ts.map +1 -1
  45. package/dist/cli/setup/Provisioner.js +19 -21
  46. package/dist/cli/setup/Provisioner.js.map +1 -1
  47. package/dist/cli/utils.d.ts +4 -1
  48. package/dist/cli/utils.d.ts.map +1 -1
  49. package/dist/cli/utils.js +4 -1
  50. package/dist/cli/utils.js.map +1 -1
  51. package/dist/infra/lib/FrameworkDetector.js +4 -4
  52. package/dist/infra/lib/FrameworkDetector.js.map +1 -1
  53. package/dist/infra/lib/OrchestrateWorkflow.js +2 -2
  54. package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
  55. package/dist/infra/lib/browser/launch.js +1 -1
  56. package/dist/infra/lib/browser/launch.js.map +1 -1
  57. package/dist/infra/lib/browser/types.d.ts +1 -1
  58. package/dist/infra/lib/browser/types.js +1 -1
  59. package/dist/infra/lib/constants.d.ts +1 -1
  60. package/dist/infra/lib/constants.d.ts.map +1 -1
  61. package/dist/infra/lib/constants.js +4 -5
  62. package/dist/infra/lib/constants.js.map +1 -1
  63. package/dist/infra/lib/evolution/__tests__/integration.test.js +7 -7
  64. package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -1
  65. package/dist/infra/lib/memory/index.d.ts +0 -2
  66. package/dist/infra/lib/memory/index.d.ts.map +1 -1
  67. package/dist/infra/lib/memory/index.js +0 -2
  68. package/dist/infra/lib/memory/index.js.map +1 -1
  69. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +1 -1
  70. package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
  71. package/dist/tools/index.d.ts +0 -4
  72. package/dist/tools/index.d.ts.map +1 -1
  73. package/dist/tools/index.js +0 -4
  74. package/dist/tools/index.js.map +1 -1
  75. package/dist/tools/memory/autoSaveContext.d.ts +0 -1
  76. package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
  77. package/dist/tools/memory/autoSaveContext.js +13 -27
  78. package/dist/tools/memory/autoSaveContext.js.map +1 -1
  79. package/hooks/scripts/__tests__/code-check-detectors.test.js +2 -2
  80. package/hooks/scripts/__tests__/run-ledger.test.js +1 -1
  81. package/hooks/scripts/__tests__/scope-from-spec.test.js +12 -12
  82. package/hooks/scripts/__tests__/step-counter.test.js +1 -1
  83. package/hooks/scripts/code-check.js +16 -203
  84. package/hooks/scripts/context-save.js +0 -11
  85. package/hooks/scripts/lib/scope-from-spec.js +9 -6
  86. package/hooks/scripts/post-edit-dispatcher.js +1 -1
  87. package/hooks/scripts/prompt-dispatcher.js +7 -18
  88. package/hooks/scripts/session-start.js +25 -35
  89. package/package.json +2 -4
  90. package/skills/agents-md/SKILL.md +62 -15
  91. package/skills/arch-guard/SKILL.md +1 -1
  92. package/skills/brand-assets/SKILL.md +2 -2
  93. package/skills/capability-loop/SKILL.md +1 -1
  94. package/skills/chub-usage/SKILL.md +1 -1
  95. package/skills/commerce-patterns/SKILL.md +2 -2
  96. package/skills/commit-push-pr/SKILL.md +0 -1
  97. package/skills/context7-usage/SKILL.md +1 -1
  98. package/skills/design-refine/SKILL.md +140 -0
  99. package/skills/{design-polish → design-refine}/templates/polish-report.md +1 -1
  100. package/skills/{design-normalize → design-refine}/templates/token-audit.md +3 -3
  101. package/skills/design-review/SKILL.md +143 -0
  102. package/skills/{design-audit → design-review}/agents/a11y-auditor.md +1 -1
  103. package/skills/{design-audit → design-review}/agents/performance-auditor.md +1 -1
  104. package/skills/{design-audit → design-review}/agents/responsive-auditor.md +1 -1
  105. package/skills/{design-audit → design-review}/agents/slop-detector.md +1 -1
  106. package/skills/{design-audit → design-review}/frameworks/core-web-vitals.md +1 -1
  107. package/skills/{design-audit → design-review}/frameworks/wcag-checklist.md +1 -1
  108. package/skills/{design-audit → design-review}/orchestrator.md +3 -3
  109. package/skills/{design-critique → design-review}/templates/critique-report.md +3 -3
  110. package/skills/{design-audit → design-review}/templates/report.md +3 -3
  111. package/skills/design-teach/SKILL.md +11 -11
  112. package/skills/docs/SKILL.md +14 -16
  113. package/skills/e2e-commerce/SKILL.md +1 -1
  114. package/skills/event-comms/SKILL.md +1 -1
  115. package/skills/event-ops/SKILL.md +2 -2
  116. package/skills/event-planning/SKILL.md +1 -1
  117. package/skills/exec-plan/SKILL.md +2 -2
  118. package/skills/figma/SKILL.md +240 -148
  119. package/skills/figma/rubrics/css-mapping.md +125 -0
  120. package/skills/git-worktree/SKILL.md +1 -1
  121. package/skills/handoff/SKILL.md +1 -1
  122. package/skills/parallel-research/SKILL.md +14 -28
  123. package/skills/priority-todos/SKILL.md +1 -1
  124. package/skills/regress/SKILL.md +11 -0
  125. package/skills/restraint/SKILL.md +72 -0
  126. package/skills/seo-checklist/SKILL.md +2 -2
  127. package/skills/spec/SKILL.md +65 -836
  128. package/skills/test/SKILL.md +3 -3
  129. package/skills/tool-fallback/SKILL.md +2 -2
  130. package/skills/vercel-react-best-practices/SKILL.md +1 -1
  131. package/skills/vibe/SKILL.md +20 -35
  132. package/skills/vibe.analyze/SKILL.md +7 -9
  133. package/skills/vibe.docs/SKILL.md +1 -1
  134. package/skills/vibe.event/SKILL.md +27 -27
  135. package/skills/vibe.figma/SKILL.md +14 -18
  136. package/skills/vibe.harness/SKILL.md +5 -5
  137. package/skills/vibe.reason/SKILL.md +0 -2
  138. package/skills/vibe.review/SKILL.md +45 -49
  139. package/skills/vibe.run/SKILL.md +2 -5
  140. package/skills/vibe.run/references/parallel-agents.md +33 -98
  141. package/skills/vibe.spec/SKILL.md +38 -535
  142. package/skills/vibe.utils/SKILL.md +3 -3
  143. package/skills/vibe.verify/SKILL.md +70 -542
  144. package/skills/video-production/SKILL.md +1 -1
  145. package/vibe/rules/orchestrator-contract.md +5 -4
  146. package/vibe/rules/quality/performance.md +1 -1
  147. package/vibe/templates/claudemd-template.md +1 -1
  148. package/vibe/templates/spec-template.md +35 -185
  149. package/agents/architect-low.md +0 -41
  150. package/agents/architect-medium.md +0 -59
  151. package/agents/compounder.md +0 -265
  152. package/agents/docs/api-documenter.md +0 -99
  153. package/agents/docs/changelog-writer.md +0 -93
  154. package/agents/event/event-comms.md +0 -78
  155. package/agents/event/event-content.md +0 -68
  156. package/agents/event/event-image.md +0 -95
  157. package/agents/event/event-scheduler.md +0 -69
  158. package/agents/event/event-speaker.md +0 -86
  159. package/agents/explorer-low.md +0 -42
  160. package/agents/explorer-medium.md +0 -59
  161. package/agents/explorer.md +0 -48
  162. package/agents/figma/figma-analyst.md +0 -56
  163. package/agents/figma/figma-architect.md +0 -116
  164. package/agents/figma/figma-auditor.md +0 -86
  165. package/agents/figma/figma-builder.md +0 -104
  166. package/agents/implementer-low.md +0 -43
  167. package/agents/implementer-medium.md +0 -52
  168. package/agents/junior-mentor.md +0 -141
  169. package/agents/planning/requirements-analyst.md +0 -84
  170. package/agents/planning/ux-advisor.md +0 -83
  171. package/agents/qa/acceptance-tester.md +0 -86
  172. package/agents/qa/edge-case-finder.md +0 -93
  173. package/agents/qa/qa-coordinator.md +0 -131
  174. package/agents/refactor-cleaner.md +0 -143
  175. package/agents/research/best-practices.md +0 -199
  176. package/agents/research/codebase-patterns.md +0 -157
  177. package/agents/research/framework-docs.md +0 -188
  178. package/agents/research/security-advisory.md +0 -213
  179. package/agents/review/architecture-reviewer.md +0 -107
  180. package/agents/review/complexity-reviewer.md +0 -116
  181. package/agents/review/data-integrity-reviewer.md +0 -88
  182. package/agents/review/git-history-reviewer.md +0 -103
  183. package/agents/review/performance-reviewer.md +0 -86
  184. package/agents/review/python-reviewer.md +0 -150
  185. package/agents/review/rails-reviewer.md +0 -139
  186. package/agents/review/react-reviewer.md +0 -144
  187. package/agents/review/security-reviewer.md +0 -80
  188. package/agents/review/simplicity-reviewer.md +0 -140
  189. package/agents/review/test-coverage-reviewer.md +0 -116
  190. package/agents/review/typescript-reviewer.md +0 -127
  191. package/agents/searcher.md +0 -54
  192. package/agents/simplifier.md +0 -124
  193. package/agents/teams/debug-team.md +0 -74
  194. package/agents/teams/dev-team.md +0 -92
  195. package/agents/teams/docs-team.md +0 -84
  196. package/agents/teams/figma-team.md +0 -89
  197. package/agents/teams/fullstack-team.md +0 -87
  198. package/agents/teams/lite-team.md +0 -73
  199. package/agents/teams/migration-team.md +0 -82
  200. package/agents/teams/refactor-team.md +0 -98
  201. package/agents/teams/research-team.md +0 -90
  202. package/agents/teams/review-debate-team.md +0 -129
  203. package/agents/teams/security-team.md +0 -85
  204. package/agents/ui/ui-a11y-auditor.md +0 -93
  205. package/agents/ui/ui-antipattern-detector.md +0 -102
  206. package/agents/ui/ui-dataviz-advisor.md +0 -69
  207. package/agents/ui/ui-design-system-gen.md +0 -57
  208. package/agents/ui/ui-industry-analyzer.md +0 -49
  209. package/agents/ui/ui-layout-architect.md +0 -65
  210. package/agents/ui/ui-stack-implementer.md +0 -68
  211. package/agents/ui/ux-compliance-reviewer.md +0 -81
  212. package/agents/ui-previewer.md +0 -262
  213. package/hooks/scripts/__tests__/keyword-detector.test.js +0 -242
  214. package/hooks/scripts/keyword-detector.js +0 -226
  215. package/skills/characterization-test/SKILL.md +0 -209
  216. package/skills/characterization-test/agents/behavior-capturer.md +0 -50
  217. package/skills/characterization-test/agents/coverage-checker.md +0 -54
  218. package/skills/characterization-test/agents/reporter.md +0 -50
  219. package/skills/characterization-test/agents/test-writer.md +0 -49
  220. package/skills/characterization-test/rubrics/coverage-criteria.md +0 -53
  221. package/skills/characterization-test/templates/test-template.ts +0 -101
  222. package/skills/claude-md-guide/SKILL.md +0 -353
  223. package/skills/claude-md-guide/rubrics/anti-patterns.md +0 -88
  224. package/skills/design-audit/SKILL.md +0 -154
  225. package/skills/design-critique/SKILL.md +0 -140
  226. package/skills/design-distill/SKILL.md +0 -131
  227. package/skills/design-normalize/SKILL.md +0 -135
  228. package/skills/design-polish/SKILL.md +0 -132
  229. package/skills/figma-convert/SKILL.md +0 -236
  230. package/skills/figma-extract/SKILL.md +0 -242
  231. package/skills/interview/SKILL.md +0 -358
  232. package/skills/interview/checklists/api.md +0 -101
  233. package/skills/interview/checklists/feature.md +0 -88
  234. package/skills/interview/checklists/library.md +0 -95
  235. package/skills/interview/checklists/mobile.md +0 -89
  236. package/skills/interview/checklists/webapp.md +0 -97
  237. package/skills/interview/checklists/website.md +0 -99
  238. package/skills/plan/SKILL.md +0 -254
  239. package/skills/rob-pike/SKILL.md +0 -66
  240. package/skills/spec/references/askuser-examples.md +0 -57
  241. package/skills/spec/references/example-session.md +0 -87
  242. package/skills/spec/references/templates.md +0 -194
  243. package/skills/spec-review/SKILL.md +0 -725
  244. package/skills/systematic-debugging/SKILL.md +0 -142
  245. package/skills/techdebt/SKILL.md +0 -126
  246. package/skills/techdebt/agents/analyzer.md +0 -50
  247. package/skills/techdebt/agents/fixer.md +0 -41
  248. package/skills/techdebt/agents/reviewer.md +0 -47
  249. package/skills/techdebt/agents/scanner.md +0 -44
  250. package/skills/techdebt/orchestrator.md +0 -72
  251. package/skills/techdebt/rubrics/severity.md +0 -51
  252. package/skills/techdebt/scripts/scan.js +0 -90
  253. package/skills/techdebt/templates/report.md +0 -86
  254. package/skills/typescript-advanced-types/SKILL.md +0 -68
  255. package/skills/typescript-advanced-types/rubrics/type-patterns.md +0 -109
  256. package/skills/yagni-ladder/SKILL.md +0 -90
  257. /package/skills/{claude-md-guide → agents-md}/templates/claude-md.md +0 -0
  258. /package/skills/{design-polish → design-refine}/rubrics/polish-checklist.md +0 -0
  259. /package/skills/{design-normalize → design-refine}/rubrics/token-naming.md +0 -0
  260. /package/skills/{design-distill → design-refine}/templates/design-system.md +0 -0
  261. /package/skills/{design-audit → design-review}/agents/scorer.md +0 -0
  262. /package/skills/{design-audit → design-review}/rubrics/ai-slop-patterns.md +0 -0
  263. /package/skills/{design-audit → design-review}/rubrics/scoring.md +0 -0
  264. /package/skills/{design-critique → design-review}/rubrics/ux-heuristics.md +0 -0
  265. /package/skills/{figma-convert → figma}/rubrics/conversion-rules.md +0 -0
  266. /package/skills/{figma-extract → figma}/rubrics/image-rules.md +0 -0
  267. /package/skills/{figma-convert → figma}/templates/component.md +0 -0
@@ -72,10 +72,10 @@ Written to `~/.vibe/test-reports/<YYYYMMDD-HHmm>-<harness>.{json,md}`. Exact sch
72
72
  ],
73
73
  "hooks": [
74
74
  { "name": "pre-tool-guard", "status": "pass", "tests": "38/38" },
75
- { "name": "keyword-detector", "status": "pass", "tests": "12/12" }
75
+ { "name": "scope-guard", "status": "pass", "tests": "12/12" }
76
76
  ],
77
77
  "agents": [
78
- { "name": "explorer", "status": "pass" }
78
+ { "name": "implementer", "status": "pass" }
79
79
  ]
80
80
  },
81
81
  "failed": [
@@ -111,7 +111,7 @@ Written to `~/.vibe/test-reports/<YYYYMMDD-HHmm>-<harness>.{json,md}`. Exact sch
111
111
  ## Failures
112
112
 
113
113
  - **skills / spec** — invocation includes `auto` but triggers array is empty
114
- - **agents / explorer** — agent file not found
114
+ - **agents / implementer** — agent file not found
115
115
  ```
116
116
 
117
117
  If `failed` is empty, replace the Failures section with `_All probes passed._`.
@@ -3,8 +3,8 @@ name: tool-fallback
3
3
  invocation: [auto]
4
4
  tier: optional
5
5
  description: "Tool failure fallback strategies with circuit breaker. Auto-activates on API errors, search failures, timeouts, 429, 5xx, overloaded errors."
6
- triggers: [API error, search failure, timeout, 429, 5xx, overloaded, fallback, circuit breaker]
7
- priority: 80
6
+ triggers: [search failure, 429, 5xx, overloaded, fallback, circuit breaker, rate limit]
7
+ priority: 60
8
8
  ---
9
9
 
10
10
  # Tool Fallback Strategies
@@ -3,7 +3,7 @@ name: vercel-react-best-practices
3
3
  invocation: [auto]
4
4
  tier: core
5
5
  description: "React/Next.js performance gotchas from Vercel engineering. Non-intuitive pitfalls that LLMs commonly miss."
6
- triggers: [react, next.js, performance, optimization, vercel, component, rendering]
6
+ triggers: [react, next.js, vercel, react performance, re-render, rendering waterfall]
7
7
  priority: 60
8
8
  ---
9
9
 
@@ -31,7 +31,7 @@ user-invocable: true
31
31
  - **동적 파이프라인**: 의도/입력 종류에 따라 매번 다른 스킬 체인 구성. 미리 정해진 고정 흐름 아님.
32
32
  - **무제한 라우팅**: 라우팅 표는 빠른 경로일 뿐 닫힌 화이트리스트가 아니다. 설치된 모든 `vibe.*` 스킬이 라우팅 후보이며, 표에 없는 요구사항도 description 기반 의미 매칭으로 처리한다 (Catch-all).
33
33
  - **하네스 정규화 (추론 앞단)**: vibe는 CC(추론)·Codex(직역) 어느 하네스의 암묵적 동작에도 의존하지 않는다. `/vibe`가 모호한 NL을 **명시적·직역 가능한 지시로 먼저 전개**하고, 하위 skill은 모호한 입력을 받지 않는다. 이로써 모든 하네스에서 동일 결과 + CC급 편의를 제공한다. 전문: `vibe/rules/principles/dual-harness-doctrine.md`.
34
- - **Smart Resume**: `.vibe/{interviews,plans,specs,features}/` 감지하여 "이어서 진행?" 자동 제안.
34
+ - **Smart Resume**: `.vibe/{specs,features}/` 감지하여 "이어서 진행?" 자동 제안 (레거시 `.vibe/{interviews,plans}/` 는 입력 컨텍스트로만 인식).
35
35
  - **SPEC 확정 1회 승인 → 루프**: SPEC(Done의 정의 + 수용 기준)을 사용자와 확정하는 것이 유일한 의무적 사람 개입. 승인 후에는 `vibe/rules/loop-contract.md`의 ANCHOR→ACT→JUDGE→RECORD 루프를 게이트 전부 통과할 때까지 자동 반복한다. 루프 종료 = 게이트 통과 또는 stuck 또는 max_iterations 도달.
36
36
  - **위임자 역할**: `/vibe` 본인은 코드를 직접 쓰지 않는다. 라우팅·설계·실행 위임만 한다.
37
37
 
@@ -56,8 +56,8 @@ user-invocable: true
56
56
 
57
57
  | 의도 | 신호 | 기본 파이프라인 |
58
58
  |---|---|---|
59
- | **new feature** | "만들어줘", "추가", 신규 아이디어, 입력 없이 빈 호출 | interviewplanspec review run verify contract trace |
60
- | **figma-driven UI** | figma.com URL, "디자인", 이미지/PDF + UI 단어 | figma-extractfigma-convert → run → verify |
59
+ | **new feature** | "만들어줘", "추가", 신규 아이디어, 입력 없이 빈 호출 | specrunverify (trace/contract 사용자 요청 또는 SPEC API Contract 섹션이 있을 때만) |
60
+ | **figma-driven UI** | figma.com URL, "디자인", 이미지/PDF + UI 단어 | figma (Extract Convert Mode) → run → verify |
61
61
  | **clone existing UI** | 일반 웹사이트 URL + "비슷한", "클론", "이런 느낌" | clone → run → verify |
62
62
  | **resume in-progress** | feature name + `.vibe/specs/{name}.md` 존재 | (resume 지점부터) |
63
63
  | **review only** | "리뷰", "검토만", 코드/SPEC 첨부 + "확인" | review |
@@ -92,18 +92,17 @@ user-invocable: true
92
92
  .vibe/.last-feature 존재 → 직전 feature 이름 추출
93
93
  .vibe/specs/{feature}/ 또는 .vibe/specs/{feature}.md 존재 → spec 단계 완료
94
94
  .vibe/features/{feature}/ 또는 .vibe/features/{feature}.feature 존재 → feature 단계 완료
95
- .vibe/plans/{feature}.md 존재 → plan 단계 완료
96
- .vibe/interviews/{feature}.md 존재 → interview 단계 완료
95
+ .vibe/plans/{feature}.md · .vibe/interviews/{feature}.md 존재 → 레거시 아티팩트 (구버전) — spec 패스의 입력 컨텍스트로만 사용, 재생성 금지
97
96
  ```
98
97
 
99
98
  감지된 진행 상태가 있으면 사용자에게 명시:
100
99
 
101
100
  ```
102
101
  🔍 진행 중인 작업 감지: "login"
103
- interview · ✅ plan · ✅ spec · ⏳ review
102
+ ✅ spec · ⏳ run
104
103
 
105
- 이어서 review 부터 진행할까요? 아니면 새 작업?
106
- [1] 이어서 review
104
+ 이어서 run 부터 진행할까요? 아니면 새 작업?
105
+ [1] 이어서 run
107
106
  [2] 새 작업 (위 요구사항으로)
108
107
  [3] 취소
109
108
  ```
@@ -126,32 +125,21 @@ Input: 자연어 ("패럴랙스 웹사이트 만들어줘")
126
125
  Resume: 없음 (신규)
127
126
  Keywords: 없음
128
127
 
129
- Phase 1: /vibe.spec → interview plan spec review
128
+ Phase 1: /vibe.spec → 단일 패스 SPEC + 승인 (유일한 의무 게이트)
130
129
  Phase 2: /vibe.figma → UI 디자인 트랙 (type=website 감지)
131
130
  Phase 3: /vibe.run → 구현
132
131
  Phase 4: /vibe.verify → 검증
133
- Phase 5: /vibe.contract → API 계약 검증
134
- Phase 6: /vibe.trace → RTM 출력
135
132
 
136
- 예상: 6 phase, 중단 게이트 2회 (interview 후, plan 후)
133
+ 예상: 4 phase, 사람 개입 1회 (SPEC 승인)
137
134
  ```
138
135
 
139
- ### Phase 4: 승인 게이트
136
+ 설계된 파이프라인은 요약 출력 후 바로 실행한다 — **별도의 파이프라인 승인 게이트는 없다.** 유일한 의무적 사람 개입은 spec 단계 안의 SPEC 확정 승인이다 (loop-contract SSOT).
140
137
 
141
- ```
142
- 파이프라인으로 진행할까요?
143
- [1] 진행
144
- [2] 수정 (어느 phase 빼거나 추가)
145
- [3] 취소
146
- ```
147
-
148
- **Skip 조건:**
149
- - `automationLevel: autonomous` 설정 (`.vibe/config.json`) 또는 `ultrawork`/`ulw` 별칭 → SPEC 승인 게이트만 skip, 루프는 정상 동작
138
+ **SPEC 승인 skip 조건:**
139
+ - `automationLevel: autonomous` 설정 (`.vibe/config.json`) 또는 `ultrawork`/`ulw` 별칭 → SPEC 승인 게이트 skip, 루프는 정상 동작
150
140
  - `--max-iter 1` 또는 `quick` 별칭 → 1회 시도 후 종료
151
141
 
152
- > 참고: Phase 4 승인 게이트는 **파이프라인 설계 승인**이다. SPEC 확정 시점의 승인(loop-contract의 "유일한 의무 개입")과 구별된다.
153
-
154
- ### Phase 5: 체인 실행
142
+ ### Phase 4: 체인 실행
155
143
 
156
144
  승인된 파이프라인을 순차 호출:
157
145
 
@@ -166,18 +154,18 @@ Phase 6: /vibe.trace → RTM 출력
166
154
  ```
167
155
 
168
156
  각 phase 종료 후 JUDGE 단계:
169
- - 게이트 통과 (P1=0 ∧ verifyPassed) → 루프 종료, Phase 6 보고
157
+ - 게이트 통과 (P1=0 ∧ verifyPassed) → 루프 종료, Phase 5 보고
170
158
  - 게이트 미통과 → RECORD(run-ledger + loop-history.jsonl) 후 다음 ANCHOR로
171
159
  - stuck(연속 2회 동일 findings 해시) → `automationLevel: confirm`이면 사용자 질문; `autonomous`이면 TODO 기록 후 루프 종료
172
160
  - max_iterations(기본 10) 도달 → 잔여를 인박스로 이월
173
161
 
174
- ### Phase 6: 종료 보고
162
+ ### Phase 5: 종료 보고
175
163
 
176
164
  ```
177
165
  ✅ /vibe 완료
178
166
 
179
167
  실행 파이프라인:
180
- ✅ /vibe.spec (interview + plan + spec + review)
168
+ ✅ /vibe.spec (단일 패스 SPEC + 승인)
181
169
  ✅ /vibe.figma (UI 디자인 트랙)
182
170
  ✅ /vibe.run (구현)
183
171
  ✅ /vibe.verify (검증 — 9/9 통과)
@@ -203,7 +191,7 @@ Phase 6: /vibe.trace → RTM 출력
203
191
  → Intent: figma-driven UI
204
192
  → Resume: 없음
205
193
  → Pipeline:
206
- 1. /vibe.figma (figma-extract + figma-convert)
194
+ 1. /vibe.figma (figma Extract + Convert Mode)
207
195
  2. /vibe.spec (생성된 SPEC 자동 보정)
208
196
  3. /vibe.run
209
197
  4. /vibe.verify
@@ -290,13 +278,10 @@ Phase 6: /vibe.trace → RTM 출력
290
278
  [Phase 3: 파이프라인 설계]
291
279
  ...
292
280
 
293
- [Phase 4: 승인 게이트]
294
- 사용자 응답 대기...
295
-
296
- [Phase 5: 실행]
297
- ...
281
+ [Phase 4: 실행]
282
+ ... (SPEC 승인은 spec 단계 내부의 1회 게이트)
298
283
 
299
- [Phase 6: 종료 보고]
284
+ [Phase 5: 종료 보고]
300
285
  ...
301
286
  ```
302
287
 
@@ -87,31 +87,31 @@ Read `CLAUDE.md`, `package.json`, `pyproject.toml`, etc. to identify tech stack:
87
87
 
88
88
  #### 3. Explore Related Code (Parallel Sub-Agents)
89
89
 
90
- **MANDATORY: Always use explorer sub-agents. Never explore in main session.**
90
+ **MANDATORY: Always use native Explore sub-agents. Never explore in main session.**
91
91
 
92
- > Why: 3 explorer-low agents return ~600 tokens of summaries to main session.
92
+ > Why: 3 Explore agents return ~600 tokens of summaries to main session.
93
93
  > Direct Glob/Grep/Read in main session would add 5-15K tokens of raw content.
94
94
 
95
95
  **Parallel exploration (ALL in ONE message):**
96
96
 
97
97
  ```text
98
- Agent(subagent_type="explorer-low", model="haiku",
98
+ Agent(subagent_type="Explore", model="haiku",
99
99
  prompt="Find all [FEATURE] related API endpoints. List file paths, HTTP methods, routes, and auth requirements.")
100
100
 
101
- Agent(subagent_type="explorer-low", model="haiku",
101
+ Agent(subagent_type="Explore", model="haiku",
102
102
  prompt="Find all [FEATURE] related services, business logic, and utility functions. Map dependencies.")
103
103
 
104
- Agent(subagent_type="explorer-low", model="haiku",
104
+ Agent(subagent_type="Explore", model="haiku",
105
105
  prompt="Find all [FEATURE] related data models, schemas, and database queries. Document relationships and key fields.")
106
106
  ```
107
107
 
108
108
  **Scale for large projects (6+ related files):**
109
109
 
110
110
  ```text
111
- Agent(subagent_type="explorer-low", model="haiku",
111
+ Agent(subagent_type="Explore", model="haiku",
112
112
  prompt="Find all test files related to [FEATURE]. Identify tested vs untested paths.")
113
113
 
114
- Agent(subagent_type="explorer-low", model="haiku",
114
+ Agent(subagent_type="Explore", model="haiku",
115
115
  prompt="Analyze [FEATURE] configuration, environment variables, and external integrations.")
116
116
  ```
117
117
 
@@ -430,8 +430,6 @@ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index
430
430
 
431
431
  | Tool | Purpose | When to Use |
432
432
  |------|---------|-------------|
433
- | `findSymbol` | Find symbol definitions | Locate function/class implementations |
434
- | `findReferences` | Find all references | Track usage patterns |
435
433
  | `analyzeComplexity` | Complexity analysis | Measure complexity metrics |
436
434
  | `validateCodeQuality` | Quality validation | Check code quality standards |
437
435
  | `saveMemory` | Save analysis results | Persist findings for future sessions |
@@ -16,7 +16,7 @@ Generate or update project documentation by analyzing the actual codebase.
16
16
  /vibe.docs guide # 사용자 가이드 (docs/GUIDE.md)
17
17
  /vibe.docs arch # 아키텍처 문서 + Mermaid 다이어그램 (docs/ARCHITECTURE.md)
18
18
  /vibe.docs release # 릴리즈 노트 (git history 기반)
19
- /vibe.docs agent # CLAUDE.md / AGENTS.md 생성·동기화 (claude-md-guide + agents-md 검증 필수)
19
+ /vibe.docs agent # CLAUDE.md / AGENTS.md 생성·동기화 (agents-md 검증 필수)
20
20
  ```
21
21
 
22
22
  ## Pipeline Position
@@ -42,11 +42,11 @@ Automate community event planning with D-Day based proactive execution.
42
42
  └── DWK: 9 steps (D-30 → D+3)
43
43
 
44
44
  5. AUTO-EXECUTE pending deliverables
45
- ├── Content drafts → event-content agent
46
- ├── Image generation → event-image agent
47
- ├── SMS/email drafts → event-comms agent
48
- ├── Ops materials → event-ops agent
49
- └── Speaker research → event-speaker agent
45
+ ├── Content drafts → event-planner agent
46
+ ├── Speaker research → event-planner agent
47
+ ├── Image generation → event-ops agent
48
+ ├── SMS/email drafts → event-ops agent
49
+ └── Ops materials → event-ops agent
50
50
 
51
51
  6. REQUEST confirmation for send actions
52
52
  ├── SMS actual send
@@ -73,41 +73,41 @@ Automate community event planning with D-Day based proactive execution.
73
73
 
74
74
  | Phase | Agents Triggered | Outputs |
75
75
  |-------|-----------------|---------|
76
- | D-60 | event-speaker | 3 topic suggestions + speaker research |
77
- | D-45 | event-speaker | DM + email outreach drafts |
78
- | D-40 | event-comms | Topic confirmation request email |
79
- | D-28 | event-content, event-image, event-comms | Intro + 2 images + 3 SMS + 1 email |
80
- | D-30 | event-content, event-comms | LinkedIn/Threads promo + SMS send(✅) |
81
- | D-14 | event-content | LinkedIn/Threads reminder |
82
- | D-3 | event-comms | BCC email + SMS send(✅) |
76
+ | D-60 | event-planner | 3 topic suggestions + speaker research |
77
+ | D-45 | event-planner | DM + email outreach drafts |
78
+ | D-40 | event-ops | Topic confirmation request email |
79
+ | D-28 | event-planner, event-ops | Intro + 2 images + 3 SMS + 1 email |
80
+ | D-30 | event-planner, event-ops | LinkedIn/Threads promo + SMS send(✅) |
81
+ | D-14 | event-planner | LinkedIn/Threads reminder |
82
+ | D-3 | event-ops | BCC email + SMS send(✅) |
83
83
  | D-1 | event-ops | Nametags + checklist + PPTX + SMS(✅) |
84
- | D-Day | event-comms | Day-of SMS(✅) |
85
- | D+1 | event-content, event-ops | Review posts + settlement |
84
+ | D-Day | event-ops | Day-of SMS(✅) |
85
+ | D+1 | event-planner, event-ops | Review posts + settlement |
86
86
  | D+2 | — | Site update (manual) |
87
87
 
88
88
  ### Webinar Phases
89
89
 
90
90
  | Phase | Agents Triggered | Outputs |
91
91
  |-------|-----------------|---------|
92
- | Planning | event-content, event-image, event-comms | Intro + 3 images + SMS + email |
93
- | Planning | event-content | LinkedIn/Threads promo |
94
- | D-4 | event-comms | Zoom(manual) + BCC email + SMS(✅) |
95
- | D-Day | event-comms, event-ops | SMS(✅) + slides |
96
- | D+1 | event-content | Review posts |
92
+ | Planning | event-planner, event-ops | Intro + 3 images + SMS + email |
93
+ | Planning | event-planner | LinkedIn/Threads promo |
94
+ | D-4 | event-ops | Zoom(manual) + BCC email + SMS(✅) |
95
+ | D-Day | event-ops | SMS(✅) + slides |
96
+ | D+1 | event-planner | Review posts |
97
97
 
98
98
  ### DWK Phases
99
99
 
100
100
  | Phase | Agents Triggered | Outputs |
101
101
  |-------|-----------------|---------|
102
- | D-30 | event-speaker | 3 topics + speaker research |
103
- | D-25 | event-speaker | DM + email outreach |
104
- | D-20 | event-comms | Topic confirmation email |
105
- | D-16 | event-content, event-image, event-comms | Intro + 2 images + SMS + email |
106
- | D-15 | event-content | LinkedIn/Threads promo |
107
- | D-3 | event-comms | BCC email + SMS(✅) |
102
+ | D-30 | event-planner | 3 topics + speaker research |
103
+ | D-25 | event-planner | DM + email outreach |
104
+ | D-20 | event-ops | Topic confirmation email |
105
+ | D-16 | event-planner, event-ops | Intro + 2 images + SMS + email |
106
+ | D-15 | event-planner | LinkedIn/Threads promo |
107
+ | D-3 | event-ops | BCC email + SMS(✅) |
108
108
  | D-1 | event-ops | Slido plan + PPTX + SNS remind(✅) |
109
- | D-Day | event-comms, event-ops | SMS(✅) + nametags(offline) |
110
- | D+3 | event-content, event-ops | Review + settlement |
109
+ | D-Day | event-ops | SMS(✅) + nametags(offline) |
110
+ | D+3 | event-planner, event-ops | Review + settlement |
111
111
 
112
112
  ## State File Format
113
113
 
@@ -158,8 +158,7 @@ Load skill `figma` — Phase 1 Storyboard
158
158
  ### Phase 2 — 재료 확보
159
159
 
160
160
  ```
161
- Load skill `figma-extract`
162
- Load skill `figma` — Phase 2 (코디네이터: MO/PC 병렬 워커)
161
+ Load skill `figma` — Phase 2 Extract Mode (코디네이터: MO/PC 병렬 워커)
163
162
 
164
163
  Phase 0에서 수집한 URL 중 "design"으로 자동 분류된 항목 (MO/PC)을 사용.
165
164
  → tree.json + bg/ + content/ + sections/ (검증용)
@@ -181,8 +180,7 @@ Load skill `figma` — Phase 3
181
180
  ### Phase 4 — BP별 스태틱 구현 (컨벤션 준수)
182
181
 
183
182
  ```
184
- Load skill `figma-convert`
185
- Load skill `figma` — Phase 4
183
+ Load skill `figma` — Phase 4 Convert Mode
186
184
 
187
185
  재사용 매칭 (BLOCKING):
188
186
  ① component-index.json 매칭 → import (새로 만들지 않음)
@@ -191,7 +189,7 @@ Load skill `figma` — Phase 4
191
189
  ⛔ figma-to-scss.js 강제 / figma-validate.js PASS 없이 다음 섹션 금지
192
190
 
193
191
  ⤵ Phase 4 후처리
194
- Load skill `design-normalize`
192
+ Load skill `design-refine` — normalize 모드
195
193
  → 매칭 안 된 하드코딩 값 → MASTER.md 토큰으로 정렬
196
194
  → 새 토큰 필요 항목은 review 큐에 기록
197
195
  ```
@@ -216,17 +214,17 @@ Load skill `figma` — Phase 6 (시각 검증 루프, P1=0까지)
216
214
  - Figma MCP/변환기가 삼킨 값이 여기서 드러난다.
217
215
 
218
216
  ⤵ Phase 6 후처리
219
- Load skill `design-audit`
217
+ Load skill `design-review` — audit 모드
220
218
  → 5-dimension 점검 (a11y, performance, responsive, theming, AI slop)
221
219
  → P1 finding은 review 큐에 기록 (read-only)
222
220
 
223
221
  ⤵ Phase 6.5 (hasEmitDesignMd == true 시)
224
- → resolved tokens (Color/Typography/Spacing) + design-audit 산출물을
222
+ → resolved tokens (Color/Typography/Spacing) + design-review(audit) 산출물을
225
223
  DESIGN.md (Stitch 9 섹션) 으로 정제해 프로젝트 루트에 저장
226
224
  → 첫 줄: `<!-- design-md-version: 1 -->`
227
225
  → `vibe.design lint` 자동 통과 확인
228
226
 
229
- ⛔ Phase 6 + design-audit 완료 전까지 "완료 요약" 출력 금지.
227
+ ⛔ Phase 6 + design-review(audit) 완료 전까지 "완료 요약" 출력 금지.
230
228
  ```
231
229
 
232
230
  ---
@@ -260,8 +258,7 @@ Load skill `figma` — Phase 1
260
258
  ### Phase 2 — 재료 확보
261
259
 
262
260
  ```
263
- Load skill `figma-extract`
264
- Load skill `figma` — Phase 2
261
+ Load skill `figma` — Phase 2 Extract Mode
265
262
  → Branch 1 Phase 2와 동일 (design URL로 추출)
266
263
 
267
264
  🚦 Audit gate: Branch 1과 동일하게 `auditSummary.p1 > 0` 이면 Phase 3 진입 금지.
@@ -276,14 +273,13 @@ Load skill `figma` — Phase 3 (figma-refine.js 강제)
276
273
  ### Phase 4 — BP별 스태틱 구현 (Standalone 모드)
277
274
 
278
275
  ```
279
- Load skill `figma-convert`
280
- Load skill `figma` — Phase 4
276
+ Load skill `figma` — Phase 4 Convert Mode
281
277
 
282
278
  ⛔ 재사용 매칭 SKIP — 새 컴포넌트 자유 생성
283
279
  ✅ 새 토큰 자유 생성 (피처 스코프 네이밍: $feature-color-xxx)
284
280
  ✅ figma-to-scss.js / figma-validate.js는 그대로 강제
285
281
 
286
- ❌ design-normalize 호출 금지 (이 Branch는 토큰 alignment 대상이 아님)
282
+ ❌ design-refine(normalize) 호출 금지 (이 Branch는 토큰 alignment 대상이 아님)
287
283
  ```
288
284
 
289
285
  ### Phase 5 — 컴파일 게이트
@@ -300,15 +296,15 @@ Load skill `figma` — Phase 6 (시각 검증 루프, P1=0까지)
300
296
  Raw-vs-computed 재조정: Branch 1과 동일 — tree.json `raw` ↔ getComputedStyle 비교.
301
297
 
302
298
  ⤵ Phase 6 후처리
303
- Load skill `design-audit`
299
+ Load skill `design-review` — audit 모드
304
300
  → a11y는 항상 검증. 컨벤션 무시 모드여도 접근성은 양보 불가.
305
301
 
306
302
  ⤵ Phase 6.5 (hasEmitDesignMd == true 시)
307
- → resolved tokens + design-audit 산출물을
303
+ → resolved tokens + design-review(audit) 산출물을
308
304
  DESIGN.md (Stitch 9 섹션) 으로 정제해 프로젝트 루트에 저장
309
305
  → 첫 줄: `<!-- design-md-version: 1 -->`
310
306
 
311
- ⛔ Phase 6 + design-audit 완료 전까지 "완료 요약" 출력 금지.
307
+ ⛔ Phase 6 + design-review(audit) 완료 전까지 "완료 요약" 출력 금지.
312
308
  ```
313
309
 
314
310
  ---
@@ -612,7 +608,7 @@ Load skill `figma:figma-generate-design` — Step 3+: Assemble Sections (디자
612
608
 
613
609
  ```
614
610
  ❌ Branch 1 도중 figma:figma-use / figma:figma-generate-design 호출 금지 (READ 모드)
615
- ❌ Branch 2 도중 design-normalize 호출 금지 (독립 모드)
616
- ❌ Branch 3 도중 figma-extract / figma-convert / figma-refine.js 호출 금지 (WRITE 모드)
611
+ ❌ Branch 2 도중 design-refine(normalize) 호출 금지 (독립 모드)
612
+ ❌ Branch 3 도중 figma 스킬의 Extract/Convert Mode · figma-refine.js 호출 금지 (WRITE 모드)
617
613
  ❌ Branch 결정 후 다른 Branch의 Phase로 점프 금지
618
614
  ```
@@ -30,16 +30,16 @@ When items are N/A, **remove their points from the total** rather than scoring 0
30
30
 
31
31
  ### 1. Collect Project State (Parallel Agents)
32
32
 
33
- Dispatch 3 explorer agents in a single message:
33
+ Dispatch 3 native Explore agents in a single message:
34
34
 
35
35
  ```text
36
- Agent(subagent_type="explorer-low", model="haiku",
36
+ Agent(subagent_type="Explore", model="haiku",
37
37
  prompt="Check project scaffolding: 1) Does docs/ exist with business documents? 2) Does .dev/ exist for AI logs? 3) Is src/ organized by role (not flat)? 4) Is tests/ separate from src/? 5) List top-level directory structure.")
38
38
 
39
- Agent(subagent_type="explorer-low", model="haiku",
39
+ Agent(subagent_type="Explore", model="haiku",
40
40
  prompt="Check project context and boundaries: 1) Does CLAUDE.md exist? How many lines? 2) Does .claude/rules/ or .vibe/ exist? How many rule files? 3) Does .claude/settings.local.json exist with hooks? 4) Does .vibe/config.json exist? 5) Are there any .claude/skills/ directories?")
41
41
 
42
- Agent(subagent_type="explorer-low", model="haiku",
42
+ Agent(subagent_type="Explore", model="haiku",
43
43
  prompt="Check project planning, execution, and verification: 1) Are there SPEC files in .vibe/specs/? 2) Are there Feature (BDD) files in .vibe/features/? 3) Are there test files? How many? 4) Is there CI config (.github/workflows, etc.)? 5) Are there .dev/learnings/ files?")
44
44
  ```
45
45
 
@@ -81,7 +81,7 @@ Agent(subagent_type="explorer-low", model="haiku",
81
81
  | Item | Criteria | Points |
82
82
  |------|----------|--------|
83
83
  | Agents or skills | Specialized agents or skills defined | /5 |
84
- | Team composition | Agent teams (architect + implementer + tester, etc.) | /4 |
84
+ | Parallel composition | Parallel native subagents (architect + implementer + tester, etc.) | /4 |
85
85
  | Permission model | Per-agent permission separation (read-only vs write) | /3 |
86
86
  | Non-code workflows | Support for documentation, research, and other non-code tasks | /3 |
87
87
 
@@ -198,8 +198,6 @@ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index
198
198
 
199
199
  | Tool | Purpose | When to Use |
200
200
  |------|---------|-------------|
201
- | `findSymbol` | Find symbol definitions | Locate potential problem areas |
202
- | `findReferences` | Find all references | Trace data/control flow |
203
201
  | `analyzeComplexity` | Complexity analysis | Identify high-risk complex code |
204
202
  | `saveMemory` | Save reasoning progress | Store hypothesis verification results |
205
203
  | `recallMemory` | Recall saved memory | Retrieve previous reasoning context |
@@ -222,78 +222,76 @@ Read CLAUDE.md -> Explicit tech stack declaration
222
222
  5. If no SPEC files exist → Skip (reviews work without SPEC too)
223
223
  ```
224
224
 
225
- ### Phase 2: Parallel Agent Review (STACK-AWARE) via Orchestrator
225
+ ### Phase 2: Parallel Agent Review (STACK-AWARE)
226
226
 
227
- **Execution via Orchestrator (12+ agents in parallel):**
228
- ```bash
229
- 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)))"
230
- ```
227
+ **Spawn the reviewers as concurrent native subagents in ONE message** — one `code-reviewer` instance per focus plus `security-reviewer`, each scoped to the changed files:
231
228
 
232
- **Example:**
233
- ```bash
234
- # Review changed files with TypeScript + React stack
235
- 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)))"
236
229
  ```
230
+ Task (code-reviewer): "Review [FILES] — focus: correctness" (concurrent)
231
+ Task (code-reviewer): "Review [FILES] — focus: data-integrity" (concurrent)
232
+ Task (code-reviewer): "Review [FILES] — focus: performance" (concurrent)
233
+ Task (code-reviewer): "Review [FILES] — focus: architecture" (concurrent)
234
+ Task (security-reviewer): "Review [FILES] for vulnerabilities" (concurrent)
235
+ ```
236
+
237
+ Stack-specific focus (`idioms`) is added when the diff touches that stack's files. Collect all results, then dedupe/merge findings before Phase 3.
237
238
 
238
- **Core Reviewers (Always Run):**
239
- | Agent | Focus |
239
+ **Core Reviewers (Always Run — parallel `code-reviewer` instances, one per focus, plus `security-reviewer`):**
240
+ | Agent (focus) | Focus |
240
241
  |-------|-------|
241
242
  | security-reviewer | OWASP Top 10, vulnerabilities |
242
- | data-integrity-reviewer | Data validation, constraints |
243
- | performance-reviewer | N+1 queries, memory leaks |
244
- | architecture-reviewer | Layer violations, cycles |
245
- | complexity-reviewer | Cyclomatic complexity, length |
246
- | simplicity-reviewer | Over-abstraction, dead code |
247
- | git-history-reviewer | Churn files, risk patterns |
248
- | test-coverage-reviewer | Missing tests, edge cases |
249
-
250
- **Stack-Specific Reviewers (Conditional):**
251
- | Agent | Condition |
243
+ | code-reviewer (focus: correctness) | Logic errors, edge cases |
244
+ | code-reviewer (focus: data-integrity) | Data validation, constraints |
245
+ | code-reviewer (focus: performance) | N+1 queries, memory leaks |
246
+ | code-reviewer (focus: architecture) | Layer violations, cycles |
247
+ | code-reviewer (focus: complexity) | Cyclomatic complexity, length, over-abstraction, dead code |
248
+ | code-reviewer (focus: git-history) | Churn files, risk patterns |
249
+ | code-reviewer (focus: test-coverage) | Missing tests, edge cases |
250
+
251
+ **Stack-Specific Review (Conditional — one extra `code-reviewer` instance):**
252
+ | Agent (focus) | Condition |
252
253
  |-------|-----------|
253
- | python-reviewer | .py files in diff |
254
- | typescript-reviewer | .ts/.tsx files OR tsconfig |
255
- | rails-reviewer | Gemfile has rails |
256
- | react-reviewer | package.json has react |
254
+ | code-reviewer (focus: idioms) | Language/framework files in diff (.py / .ts / .tsx / Gemfile rails / package.json react) — prompt states the detected stack |
257
255
 
258
256
  ### Phase 2.5: UI/UX Review Agents (Auto-triggered)
259
257
 
260
258
  > **활성화 조건**: 변경된 파일 중 UI 파일 존재 (`.tsx`, `.jsx`, `.vue`, `.svelte`, `.html`, `.css`, `.scss`)
261
259
  > **비활성화**: `.vibe/config.json`에 `"uiUxAnalysis": false` 설정
262
260
 
263
- **기존 12+ 리뷰 에이전트와 병렬 실행:**
261
+ **기존 Phase 2 리뷰 에이전트와 병렬 실행 — `design-reviewer` 인스턴스 3개 (관점별):**
264
262
 
265
- | Agent | Role | Output |
263
+ | Agent (관점) | Role | Output |
266
264
  |-------|------|--------|
267
- | ⑥ ux-compliance-reviewer | UX 가이드라인 준수 검증 | P1/P2/P3 findings |
268
- | ⑦ ui-a11y-auditor | WCAG 2.1 AA 접근성 감사 | P1/P2/P3 findings |
269
- | ⑧ ui-antipattern-detector | UI 안티패턴 + 디자인 시스템 일관성 | P1/P2/P3 findings |
265
+ | ⑥ design-reviewer (UX 준수) | UX 가이드라인 준수 검증 | P1/P2/P3 findings |
266
+ | ⑦ design-reviewer (접근성) | WCAG 2.1 AA 접근성 감사 | P1/P2/P3 findings |
267
+ | ⑧ design-reviewer (안티패턴) | UI 안티패턴 + 디자인 시스템 일관성 | P1/P2/P3 findings |
270
268
 
271
269
  **실행 방법 — 기존 Phase 2 에이전트와 병렬 실행:**
272
270
 
273
271
  ```text
274
272
  # ⑥ UX 준수 검증 (Haiku)
275
- Task(subagent_type="ux-compliance-reviewer",
273
+ Task(subagent_type="design-reviewer",
276
274
  prompt="Review UI files for UX guideline compliance: {changed_ui_files}. Use core_ui_search against ux-guidelines and web-interface domains.")
277
275
 
278
276
  # ⑦ 접근성 감사 (Haiku)
279
- Task(subagent_type="ui-a11y-auditor",
277
+ Task(subagent_type="design-reviewer",
280
278
  prompt="Audit UI files for WCAG 2.1 AA compliance: {changed_ui_files}.")
281
279
 
282
280
  # ⑧ 안티패턴 검출 (Haiku)
283
- Task(subagent_type="ui-antipattern-detector",
281
+ Task(subagent_type="design-reviewer",
284
282
  prompt="Detect UI anti-patterns in: {changed_ui_files}. Check against MASTER.md if exists at .vibe/design-system/{project}/MASTER.md.")
285
283
  ```
286
284
 
287
285
  #### Visual P1 Baseline
288
286
 
289
287
  - 프로젝트 루트에 `DESIGN.md` 가 존재하면 **시각 P1 의 1 차 baseline** 으로 사용한다 (§2 Color Palette / §7 Do's & Don'ts).
290
- - `DESIGN.md` 부재 시 기존 폴백을 사용 (WCAG 2.1 AA + `MASTER.md` + design-audit 기본 5 차원).
288
+ - `DESIGN.md` 부재 시 기존 폴백을 사용 (WCAG 2.1 AA + `MASTER.md` + design-review(audit 모드) 기본 5 차원).
291
289
  - v1 범위: hex 컬러 드리프트만 P1 후보. spacing / font 드리프트는 Phase 2+ 에서 추가.
292
290
  - 안티패턴 검출(⑧) 은 `DESIGN.md §7` 의 "DON'T" 항목을 우선 규칙으로 사용한다.
293
291
 
294
292
  **findings 통합**: ⑥⑦⑧ findings를 기존 findings[]와 병합 → P1/P2/P3 통합 정렬
295
293
 
296
- **⑦ Critical finding 에스컬레이션**: ui-a11y-auditor의 P1 finding은 Review Debate Team(Phase 4.5)에 자동 포함
294
+ **⑦ Critical finding 에스컬레이션**: design-reviewer(접근성)의 P1 finding은 Review Debate(Phase 4.5)에 자동 포함
297
295
 
298
296
  ### Phase 2.7: Boundary Mismatch Detection (Integration Coherence)
299
297
 
@@ -362,36 +360,36 @@ P3 NICE-TO-HAVE (Enhancement) - N issues
362
360
  4. [STYLE] Consider extracting helper function
363
361
  ```
364
362
 
365
- ### Phase 4.5: Agent Teams Review Debate
363
+ ### Phase 4.5: Review Debate (parallel native subagents)
366
364
 
367
- > **팀 정의**: `agents/teams/review-debate-team.md` 참조 (Code Review 컨텍스트)
368
- > 설정: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` + `teammateMode: in-process` (`~/.claude/settings.json` 전역 postinstall 자동 설정)
365
+ > P1/P2 findings 검증하기 위해 네이티브 서브에이전트를 병렬로 스폰한다 —
366
+ > `security-reviewer` + `code-reviewer` 인스턴스(서로 다른 focus)가 각 finding 을 교차 검증(validate / upgrade / downgrade / remove)한다.
369
367
 
370
368
  **토론 결과 예시:**
371
369
 
372
370
  ```
373
371
  🤝 REVIEW DEBATE RESULTS
374
372
 
375
- Team Consensus (4 reviewers):
373
+ Consensus (4 parallel reviewers):
376
374
 
377
375
  ✅ Validated P1 (unanimous):
378
376
  1. [SECURITY] SQL Injection — 4/4 agree critical
379
377
 
380
378
  ⬆️ Upgraded P2→P1 (debate result):
381
- 2. [PERF] Unbounded query — architecture-reviewer pointed out
382
- cascading failure risk under load → team agreed P1
379
+ 2. [PERF] Unbounded query — code-reviewer (focus: architecture) pointed out
380
+ cascading failure risk under load → agreed P1
383
381
 
384
382
  ⬇️ Downgraded P1→P2 (debate result):
385
- 3. [SECURITY] CSRF on read-only endpoint — simplicity-reviewer
386
- noted endpoint has no side effects → team agreed P2
383
+ 3. [SECURITY] CSRF on read-only endpoint — code-reviewer (focus: complexity)
384
+ noted endpoint has no side effects → agreed P2
387
385
 
388
386
  ❌ Removed (false positive):
389
- 4. [ARCH] "Circular dependency" — architecture-reviewer confirmed
387
+ 4. [ARCH] "Circular dependency" — code-reviewer (focus: architecture) confirmed
390
388
  this is intentional bi-directional reference, not a cycle
391
389
 
392
- 🆕 New findings (team discussion):
390
+ 🆕 New findings (cross-review discussion):
393
391
  5. [DATA] Race condition in concurrent updates — emerged from
394
- security + performance discussion
392
+ security + performance cross-review
395
393
  ```
396
394
 
397
395
  ### Phase 5: Auto-Fix (P1/P2)
@@ -452,7 +450,7 @@ Examples:
452
450
  CODE REVIEW SUMMARY
453
451
  PR #123: Add user authentication
454
452
 
455
- Reviewers: 13 agents
453
+ Reviewers: security-reviewer + 8 code-reviewer instances (per-focus) + 3 design-reviewer instances (UI)
456
454
  ⏱️ Started: {start_time}
457
455
  ⏱️ Completed: {getCurrentTime 결과}
458
456
 
@@ -519,8 +517,6 @@ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index
519
517
  |------|---------|-------------|
520
518
  | `validateCodeQuality` | Code quality check | Overall code quality scan |
521
519
  | `analyzeComplexity` | Complexity metrics | Check function complexity |
522
- | `findSymbol` | Find definitions | Locate implementations |
523
- | `findReferences` | Find all usages | Track symbol usage |
524
520
  | `saveMemory` | Save findings | Store important review findings |
525
521
 
526
522
  ### Example Tool Usage in Review