@su-record/vibe 2.7.11 → 2.7.13

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 (1677) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +126 -222
  3. package/LICENSE +21 -21
  4. package/README.md +449 -580
  5. package/agents/architect-low.md +41 -41
  6. package/agents/architect-medium.md +59 -59
  7. package/agents/architect.md +80 -80
  8. package/agents/build-error-resolver.md +115 -115
  9. package/agents/compounder.md +261 -261
  10. package/agents/diagrammer.md +178 -178
  11. package/agents/docs/api-documenter.md +99 -99
  12. package/agents/docs/changelog-writer.md +93 -93
  13. package/agents/e2e-tester.md +294 -266
  14. package/agents/explorer-low.md +42 -42
  15. package/agents/explorer-medium.md +59 -59
  16. package/agents/explorer.md +48 -48
  17. package/agents/implementer-low.md +43 -43
  18. package/agents/implementer-medium.md +52 -52
  19. package/agents/implementer.md +54 -54
  20. package/agents/junior-mentor.md +141 -141
  21. package/agents/planning/requirements-analyst.md +84 -84
  22. package/agents/planning/ux-advisor.md +83 -83
  23. package/agents/qa/acceptance-tester.md +86 -86
  24. package/agents/qa/edge-case-finder.md +93 -93
  25. package/agents/refactor-cleaner.md +143 -143
  26. package/agents/research/best-practices-agent.md +199 -199
  27. package/agents/research/codebase-patterns-agent.md +157 -157
  28. package/agents/research/framework-docs-agent.md +188 -188
  29. package/agents/research/security-advisory-agent.md +213 -213
  30. package/agents/review/architecture-reviewer.md +107 -107
  31. package/agents/review/complexity-reviewer.md +116 -116
  32. package/agents/review/data-integrity-reviewer.md +88 -88
  33. package/agents/review/git-history-reviewer.md +103 -103
  34. package/agents/review/performance-reviewer.md +86 -86
  35. package/agents/review/python-reviewer.md +150 -150
  36. package/agents/review/rails-reviewer.md +139 -139
  37. package/agents/review/react-reviewer.md +144 -144
  38. package/agents/review/security-reviewer.md +80 -80
  39. package/agents/review/simplicity-reviewer.md +140 -140
  40. package/agents/review/test-coverage-reviewer.md +116 -116
  41. package/agents/review/typescript-reviewer.md +127 -127
  42. package/agents/searcher.md +54 -54
  43. package/agents/simplifier.md +120 -120
  44. package/agents/tester.md +49 -49
  45. package/agents/ui/ui-a11y-auditor.md +93 -93
  46. package/agents/ui/ui-antipattern-detector.md +94 -94
  47. package/agents/ui/ui-dataviz-advisor.md +69 -69
  48. package/agents/ui/ui-design-system-gen.md +57 -57
  49. package/agents/ui/ui-industry-analyzer.md +49 -49
  50. package/agents/ui/ui-layout-architect.md +65 -65
  51. package/agents/ui/ui-stack-implementer.md +68 -68
  52. package/agents/ui/ux-compliance-reviewer.md +81 -81
  53. package/agents/ui-previewer.md +260 -260
  54. package/commands/vibe.analyze.md +8 -0
  55. package/commands/vibe.review.md +10 -3
  56. package/commands/vibe.run.md +2078 -1939
  57. package/commands/vibe.spec.md +10 -10
  58. package/commands/vibe.spec.review.md +565 -558
  59. package/commands/vibe.utils.md +413 -413
  60. package/commands/vibe.verify.md +45 -0
  61. package/dist/cli/auth.d.ts +1 -1
  62. package/dist/cli/auth.d.ts.map +1 -1
  63. package/dist/cli/auth.js +16 -14
  64. package/dist/cli/auth.js.map +1 -1
  65. package/dist/cli/collaborator.js +52 -52
  66. package/dist/cli/commands/evolution.js +12 -12
  67. package/dist/cli/commands/index.d.ts +1 -0
  68. package/dist/cli/commands/index.d.ts.map +1 -1
  69. package/dist/cli/commands/index.js +1 -0
  70. package/dist/cli/commands/index.js.map +1 -1
  71. package/dist/cli/commands/info.d.ts.map +1 -1
  72. package/dist/cli/commands/info.js +60 -69
  73. package/dist/cli/commands/info.js.map +1 -1
  74. package/dist/cli/commands/init.d.ts.map +1 -1
  75. package/dist/cli/commands/init.js +9 -7
  76. package/dist/cli/commands/init.js.map +1 -1
  77. package/dist/cli/commands/remove.js +14 -14
  78. package/dist/cli/commands/sentinel.js +27 -27
  79. package/dist/cli/commands/setup.js +1 -1
  80. package/dist/cli/commands/setup.js.map +1 -1
  81. package/dist/cli/commands/skills.d.ts +13 -0
  82. package/dist/cli/commands/skills.d.ts.map +1 -0
  83. package/dist/cli/commands/skills.js +83 -0
  84. package/dist/cli/commands/skills.js.map +1 -0
  85. package/dist/cli/commands/slack.js +10 -10
  86. package/dist/cli/commands/telegram.js +12 -12
  87. package/dist/cli/commands/update.d.ts.map +1 -1
  88. package/dist/cli/commands/update.js +6 -4
  89. package/dist/cli/commands/update.js.map +1 -1
  90. package/dist/cli/detect.js +32 -32
  91. package/dist/cli/index.d.ts.map +1 -1
  92. package/dist/cli/index.js +64 -51
  93. package/dist/cli/index.js.map +1 -1
  94. package/dist/cli/llm/claude-commands.js +16 -16
  95. package/dist/cli/llm/config.js +19 -19
  96. package/dist/cli/llm/config.js.map +1 -1
  97. package/dist/cli/llm/gemini-commands.d.ts +4 -6
  98. package/dist/cli/llm/gemini-commands.d.ts.map +1 -1
  99. package/dist/cli/llm/gemini-commands.js +52 -322
  100. package/dist/cli/llm/gemini-commands.js.map +1 -1
  101. package/dist/cli/llm/gpt-commands.js +21 -21
  102. package/dist/cli/llm/gpt-commands.js.map +1 -1
  103. package/dist/cli/llm/help.js +21 -21
  104. package/dist/cli/postinstall/constants.d.ts +8 -0
  105. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  106. package/dist/cli/postinstall/constants.js +34 -1
  107. package/dist/cli/postinstall/constants.js.map +1 -1
  108. package/dist/cli/postinstall/cursor-agents.js +32 -32
  109. package/dist/cli/postinstall/cursor-rules.js +83 -83
  110. package/dist/cli/postinstall/cursor-skills.js +743 -743
  111. package/dist/cli/postinstall/index.d.ts +1 -1
  112. package/dist/cli/postinstall/index.d.ts.map +1 -1
  113. package/dist/cli/postinstall/index.js +1 -1
  114. package/dist/cli/postinstall/index.js.map +1 -1
  115. package/dist/cli/postinstall/inline-skills.js +1 -1
  116. package/dist/cli/postinstall/inline-skills.js.map +1 -1
  117. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  118. package/dist/cli/setup/ProjectSetup.js +5 -0
  119. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  120. package/dist/cli/setup/Provisioner.js +42 -42
  121. package/dist/cli/types.d.ts +3 -16
  122. package/dist/cli/types.d.ts.map +1 -1
  123. package/dist/cli/utils.d.ts +0 -9
  124. package/dist/cli/utils.d.ts.map +1 -1
  125. package/dist/cli/utils.js +0 -28
  126. package/dist/cli/utils.js.map +1 -1
  127. package/dist/infra/lib/DeepInit.js +24 -24
  128. package/dist/infra/lib/IterationTracker.js +11 -11
  129. package/dist/infra/lib/PythonParser.js +108 -108
  130. package/dist/infra/lib/ReviewRace.js +96 -96
  131. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  132. package/dist/infra/lib/SkillQualityGate.js +9 -9
  133. package/dist/infra/lib/SkillRepository.js +159 -159
  134. package/dist/infra/lib/UltraQA.js +99 -99
  135. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  136. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  137. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  138. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  139. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  140. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  141. package/dist/infra/lib/config/GlobalConfigManager.d.ts +0 -2
  142. package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +1 -1
  143. package/dist/infra/lib/config/GlobalConfigManager.js +0 -27
  144. package/dist/infra/lib/config/GlobalConfigManager.js.map +1 -1
  145. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  146. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  147. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  148. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  149. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  150. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  151. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  152. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  153. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  154. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  155. package/dist/infra/lib/gemini/auth.d.ts +4 -16
  156. package/dist/infra/lib/gemini/auth.d.ts.map +1 -1
  157. package/dist/infra/lib/gemini/auth.js +10 -405
  158. package/dist/infra/lib/gemini/auth.js.map +1 -1
  159. package/dist/infra/lib/gemini/capabilities.d.ts +4 -8
  160. package/dist/infra/lib/gemini/capabilities.d.ts.map +1 -1
  161. package/dist/infra/lib/gemini/capabilities.js +8 -166
  162. package/dist/infra/lib/gemini/capabilities.js.map +1 -1
  163. package/dist/infra/lib/gemini/chat.d.ts +4 -13
  164. package/dist/infra/lib/gemini/chat.d.ts.map +1 -1
  165. package/dist/infra/lib/gemini/chat.js +10 -323
  166. package/dist/infra/lib/gemini/chat.js.map +1 -1
  167. package/dist/infra/lib/gemini/completion.d.ts +5 -15
  168. package/dist/infra/lib/gemini/completion.d.ts.map +1 -1
  169. package/dist/infra/lib/gemini/completion.js +6 -97
  170. package/dist/infra/lib/gemini/completion.js.map +1 -1
  171. package/dist/infra/lib/gemini/constants.d.ts +2 -31
  172. package/dist/infra/lib/gemini/constants.d.ts.map +1 -1
  173. package/dist/infra/lib/gemini/constants.js +2 -77
  174. package/dist/infra/lib/gemini/constants.js.map +1 -1
  175. package/dist/infra/lib/gemini/index.d.ts +5 -8
  176. package/dist/infra/lib/gemini/index.d.ts.map +1 -1
  177. package/dist/infra/lib/gemini/index.js +4 -7
  178. package/dist/infra/lib/gemini/index.js.map +1 -1
  179. package/dist/infra/lib/gemini/models.d.ts +3 -4
  180. package/dist/infra/lib/gemini/models.d.ts.map +1 -1
  181. package/dist/infra/lib/gemini/models.js +8 -84
  182. package/dist/infra/lib/gemini/models.js.map +1 -1
  183. package/dist/infra/lib/gemini/orchestration.js +5 -5
  184. package/dist/infra/lib/gemini/types.d.ts +16 -44
  185. package/dist/infra/lib/gemini/types.d.ts.map +1 -1
  186. package/dist/infra/lib/gemini/types.js +1 -1
  187. package/dist/infra/lib/gpt/auth.d.ts +2 -5
  188. package/dist/infra/lib/gpt/auth.d.ts.map +1 -1
  189. package/dist/infra/lib/gpt/auth.js +8 -38
  190. package/dist/infra/lib/gpt/auth.js.map +1 -1
  191. package/dist/infra/lib/gpt/chat.d.ts +3 -3
  192. package/dist/infra/lib/gpt/chat.d.ts.map +1 -1
  193. package/dist/infra/lib/gpt/chat.js +37 -53
  194. package/dist/infra/lib/gpt/chat.js.map +1 -1
  195. package/dist/infra/lib/gpt/constants.d.ts +2 -5
  196. package/dist/infra/lib/gpt/constants.d.ts.map +1 -1
  197. package/dist/infra/lib/gpt/constants.js +4 -9
  198. package/dist/infra/lib/gpt/constants.js.map +1 -1
  199. package/dist/infra/lib/gpt/embedding.d.ts +1 -1
  200. package/dist/infra/lib/gpt/embedding.js +3 -3
  201. package/dist/infra/lib/gpt/embedding.js.map +1 -1
  202. package/dist/infra/lib/gpt/oauth.d.ts +6 -39
  203. package/dist/infra/lib/gpt/oauth.d.ts.map +1 -1
  204. package/dist/infra/lib/gpt/oauth.js +8 -340
  205. package/dist/infra/lib/gpt/oauth.js.map +1 -1
  206. package/dist/infra/lib/gpt/orchestration.js +5 -5
  207. package/dist/infra/lib/gpt/orchestration.js.map +1 -1
  208. package/dist/infra/lib/gpt/specializations.d.ts +2 -2
  209. package/dist/infra/lib/gpt/specializations.js +3 -3
  210. package/dist/infra/lib/gpt/specializations.js.map +1 -1
  211. package/dist/infra/lib/gpt/types.d.ts +1 -1
  212. package/dist/infra/lib/gpt/types.d.ts.map +1 -1
  213. package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts +2 -2
  214. package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts.map +1 -1
  215. package/dist/infra/lib/llm/auth/AuthProfileManager.js.map +1 -1
  216. package/dist/infra/lib/llm/auth/AuthProfileManager.test.js +1 -1
  217. package/dist/infra/lib/llm/auth/AuthProfileManager.test.js.map +1 -1
  218. package/dist/infra/lib/llm/auth/TokenRefresher.d.ts +1 -1
  219. package/dist/infra/lib/llm/auth/TokenRefresher.js +1 -1
  220. package/dist/infra/lib/llm/auth/index.d.ts +2 -12
  221. package/dist/infra/lib/llm/auth/index.d.ts.map +1 -1
  222. package/dist/infra/lib/llm/auth/index.js +5 -63
  223. package/dist/infra/lib/llm/auth/index.js.map +1 -1
  224. package/dist/infra/lib/llm/types.d.ts +1 -1
  225. package/dist/infra/lib/llm/types.d.ts.map +1 -1
  226. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  227. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  228. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  229. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  230. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  231. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  232. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  233. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  234. package/dist/infra/orchestrator/AgentManager.js +12 -12
  235. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  236. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  237. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  238. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  239. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  240. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  241. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  242. package/dist/tools/memory/getMemoryGraph.js +12 -12
  243. package/dist/tools/memory/getSessionContext.js +9 -9
  244. package/dist/tools/memory/linkMemories.js +14 -14
  245. package/dist/tools/memory/listMemories.js +4 -4
  246. package/dist/tools/memory/recallMemory.js +4 -4
  247. package/dist/tools/memory/saveMemory.js +4 -4
  248. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  249. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  250. package/dist/tools/semantic/astGrep.test.js +6 -6
  251. package/dist/tools/spec/prdParser.test.js +171 -171
  252. package/dist/tools/spec/specGenerator.js +169 -169
  253. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  254. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  255. package/hooks/gemini-hooks.json +73 -73
  256. package/hooks/hooks.json +137 -137
  257. package/hooks/scripts/code-check.js +70 -70
  258. package/hooks/scripts/context-save.js +212 -212
  259. package/hooks/scripts/hud-status.js +291 -291
  260. package/hooks/scripts/keyword-detector.js +214 -214
  261. package/hooks/scripts/llm-orchestrate.js +475 -646
  262. package/hooks/scripts/post-edit.js +32 -32
  263. package/hooks/scripts/pre-tool-guard.js +125 -125
  264. package/hooks/scripts/prompt-dispatcher.js +185 -185
  265. package/hooks/scripts/sentinel-guard.js +104 -104
  266. package/hooks/scripts/session-start.js +106 -106
  267. package/hooks/scripts/stop-notify.js +209 -209
  268. package/hooks/scripts/utils.js +100 -100
  269. package/languages/csharp-unity.md +515 -515
  270. package/languages/gdscript-godot.md +470 -470
  271. package/languages/ruby-rails.md +489 -489
  272. package/languages/typescript-angular.md +433 -433
  273. package/languages/typescript-astro.md +416 -416
  274. package/languages/typescript-electron.md +406 -406
  275. package/languages/typescript-nestjs.md +524 -524
  276. package/languages/typescript-svelte.md +407 -407
  277. package/languages/typescript-tauri.md +365 -365
  278. package/package.json +121 -121
  279. package/skills/agents-md/SKILL.md +120 -120
  280. package/skills/arch-guard/SKILL.md +180 -0
  281. package/skills/brand-assets/SKILL.md +146 -146
  282. package/skills/capability-loop/SKILL.md +167 -0
  283. package/skills/characterization-test/SKILL.md +206 -206
  284. package/skills/commerce-patterns/SKILL.md +59 -59
  285. package/skills/commit-push-pr/SKILL.md +75 -75
  286. package/skills/context7-usage/SKILL.md +105 -105
  287. package/skills/core-capabilities/SKILL.md +48 -48
  288. package/skills/e2e-commerce/SKILL.md +57 -57
  289. package/skills/exec-plan/SKILL.md +147 -0
  290. package/skills/frontend-design/SKILL.md +73 -73
  291. package/skills/git-worktree/SKILL.md +72 -72
  292. package/skills/handoff/SKILL.md +109 -109
  293. package/skills/parallel-research/SKILL.md +87 -87
  294. package/skills/priority-todos/SKILL.md +63 -63
  295. package/skills/seo-checklist/SKILL.md +57 -57
  296. package/skills/techdebt/SKILL.md +122 -122
  297. package/skills/tool-fallback/SKILL.md +103 -103
  298. package/skills/typescript-advanced-types/SKILL.md +65 -65
  299. package/skills/ui-ux-pro-max/SKILL.md +206 -206
  300. package/skills/vercel-react-best-practices/SKILL.md +59 -59
  301. package/skills/video-production/SKILL.md +51 -51
  302. package/vibe/config.json +29 -29
  303. package/vibe/constitution.md +227 -227
  304. package/vibe/rules/principles/communication-guide.md +98 -98
  305. package/vibe/rules/principles/development-philosophy.md +52 -52
  306. package/vibe/rules/principles/quick-start.md +102 -102
  307. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  308. package/vibe/rules/quality/checklist.md +276 -276
  309. package/vibe/rules/quality/performance.md +236 -236
  310. package/vibe/rules/quality/testing-strategy.md +440 -440
  311. package/vibe/rules/standards/anti-patterns.md +541 -541
  312. package/vibe/rules/standards/code-structure.md +291 -291
  313. package/vibe/rules/standards/complexity-metrics.md +313 -313
  314. package/vibe/rules/standards/git-workflow.md +237 -237
  315. package/vibe/rules/standards/naming-conventions.md +198 -198
  316. package/vibe/rules/standards/security.md +305 -305
  317. package/vibe/rules/writing/document-style.md +74 -74
  318. package/vibe/setup.sh +31 -31
  319. package/vibe/templates/constitution-template.md +252 -252
  320. package/vibe/templates/contract-backend-template.md +526 -526
  321. package/vibe/templates/contract-frontend-template.md +599 -599
  322. package/vibe/templates/feature-template.md +96 -96
  323. package/vibe/templates/spec-template.md +221 -221
  324. package/vibe/ui-ux-data/charts.csv +26 -26
  325. package/vibe/ui-ux-data/colors.csv +97 -97
  326. package/vibe/ui-ux-data/icons.csv +101 -101
  327. package/vibe/ui-ux-data/landing.csv +31 -31
  328. package/vibe/ui-ux-data/products.csv +96 -96
  329. package/vibe/ui-ux-data/react-performance.csv +45 -45
  330. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  331. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  332. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  333. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  334. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  335. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  336. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  337. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  338. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  339. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  340. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  341. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  342. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  343. package/vibe/ui-ux-data/styles.csv +68 -68
  344. package/vibe/ui-ux-data/typography.csv +57 -57
  345. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  346. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  347. package/vibe/ui-ux-data/version.json +31 -31
  348. package/vibe/ui-ux-data/web-interface.csv +31 -31
  349. package/commands/vibe.voice.md +0 -79
  350. package/dist/agent/AgentLoop.d.ts +0 -97
  351. package/dist/agent/AgentLoop.d.ts.map +0 -1
  352. package/dist/agent/AgentLoop.js +0 -546
  353. package/dist/agent/AgentLoop.js.map +0 -1
  354. package/dist/agent/ConversationState.d.ts +0 -29
  355. package/dist/agent/ConversationState.d.ts.map +0 -1
  356. package/dist/agent/ConversationState.js +0 -107
  357. package/dist/agent/ConversationState.js.map +0 -1
  358. package/dist/agent/ConversationStore.d.ts +0 -31
  359. package/dist/agent/ConversationStore.d.ts.map +0 -1
  360. package/dist/agent/ConversationStore.integration.test.d.ts +0 -2
  361. package/dist/agent/ConversationStore.integration.test.d.ts.map +0 -1
  362. package/dist/agent/ConversationStore.integration.test.js +0 -162
  363. package/dist/agent/ConversationStore.integration.test.js.map +0 -1
  364. package/dist/agent/ConversationStore.js +0 -126
  365. package/dist/agent/ConversationStore.js.map +0 -1
  366. package/dist/agent/ConversationStore.test.d.ts +0 -2
  367. package/dist/agent/ConversationStore.test.d.ts.map +0 -1
  368. package/dist/agent/ConversationStore.test.js +0 -93
  369. package/dist/agent/ConversationStore.test.js.map +0 -1
  370. package/dist/agent/HeadModelSelector.d.ts +0 -36
  371. package/dist/agent/HeadModelSelector.d.ts.map +0 -1
  372. package/dist/agent/HeadModelSelector.js +0 -124
  373. package/dist/agent/HeadModelSelector.js.map +0 -1
  374. package/dist/agent/RateLimiter.d.ts +0 -44
  375. package/dist/agent/RateLimiter.d.ts.map +0 -1
  376. package/dist/agent/RateLimiter.js +0 -71
  377. package/dist/agent/RateLimiter.js.map +0 -1
  378. package/dist/agent/SystemPrompt.d.ts +0 -35
  379. package/dist/agent/SystemPrompt.d.ts.map +0 -1
  380. package/dist/agent/SystemPrompt.js +0 -151
  381. package/dist/agent/SystemPrompt.js.map +0 -1
  382. package/dist/agent/ToolExecutor.d.ts +0 -33
  383. package/dist/agent/ToolExecutor.d.ts.map +0 -1
  384. package/dist/agent/ToolExecutor.js +0 -123
  385. package/dist/agent/ToolExecutor.js.map +0 -1
  386. package/dist/agent/ToolRegistry.d.ts +0 -37
  387. package/dist/agent/ToolRegistry.d.ts.map +0 -1
  388. package/dist/agent/ToolRegistry.js +0 -125
  389. package/dist/agent/ToolRegistry.js.map +0 -1
  390. package/dist/agent/__tests__/AgentLoop.test.d.ts +0 -6
  391. package/dist/agent/__tests__/AgentLoop.test.d.ts.map +0 -1
  392. package/dist/agent/__tests__/AgentLoop.test.js +0 -208
  393. package/dist/agent/__tests__/AgentLoop.test.js.map +0 -1
  394. package/dist/agent/__tests__/ConversationState.test.d.ts +0 -6
  395. package/dist/agent/__tests__/ConversationState.test.d.ts.map +0 -1
  396. package/dist/agent/__tests__/ConversationState.test.js +0 -102
  397. package/dist/agent/__tests__/ConversationState.test.js.map +0 -1
  398. package/dist/agent/__tests__/HeadModelSelector.test.d.ts +0 -6
  399. package/dist/agent/__tests__/HeadModelSelector.test.d.ts.map +0 -1
  400. package/dist/agent/__tests__/HeadModelSelector.test.js +0 -132
  401. package/dist/agent/__tests__/HeadModelSelector.test.js.map +0 -1
  402. package/dist/agent/__tests__/JobManager.test.d.ts +0 -6
  403. package/dist/agent/__tests__/JobManager.test.d.ts.map +0 -1
  404. package/dist/agent/__tests__/JobManager.test.js +0 -197
  405. package/dist/agent/__tests__/JobManager.test.js.map +0 -1
  406. package/dist/agent/__tests__/MediaPreprocessor.test.d.ts +0 -6
  407. package/dist/agent/__tests__/MediaPreprocessor.test.d.ts.map +0 -1
  408. package/dist/agent/__tests__/MediaPreprocessor.test.js +0 -163
  409. package/dist/agent/__tests__/MediaPreprocessor.test.js.map +0 -1
  410. package/dist/agent/__tests__/ToolExecutor.test.d.ts +0 -6
  411. package/dist/agent/__tests__/ToolExecutor.test.d.ts.map +0 -1
  412. package/dist/agent/__tests__/ToolExecutor.test.js +0 -140
  413. package/dist/agent/__tests__/ToolExecutor.test.js.map +0 -1
  414. package/dist/agent/__tests__/ToolRegistry.test.d.ts +0 -6
  415. package/dist/agent/__tests__/ToolRegistry.test.d.ts.map +0 -1
  416. package/dist/agent/__tests__/ToolRegistry.test.js +0 -172
  417. package/dist/agent/__tests__/ToolRegistry.test.js.map +0 -1
  418. package/dist/agent/__tests__/tools.test.d.ts +0 -6
  419. package/dist/agent/__tests__/tools.test.d.ts.map +0 -1
  420. package/dist/agent/__tests__/tools.test.js +0 -177
  421. package/dist/agent/__tests__/tools.test.js.map +0 -1
  422. package/dist/agent/index.d.ts +0 -19
  423. package/dist/agent/index.d.ts.map +0 -1
  424. package/dist/agent/index.js +0 -18
  425. package/dist/agent/index.js.map +0 -1
  426. package/dist/agent/jobs/JobManager.d.ts +0 -46
  427. package/dist/agent/jobs/JobManager.d.ts.map +0 -1
  428. package/dist/agent/jobs/JobManager.js +0 -213
  429. package/dist/agent/jobs/JobManager.js.map +0 -1
  430. package/dist/agent/jobs/ProgressReporter.d.ts +0 -32
  431. package/dist/agent/jobs/ProgressReporter.d.ts.map +0 -1
  432. package/dist/agent/jobs/ProgressReporter.js +0 -82
  433. package/dist/agent/jobs/ProgressReporter.js.map +0 -1
  434. package/dist/agent/jobs/types.d.ts +0 -32
  435. package/dist/agent/jobs/types.d.ts.map +0 -1
  436. package/dist/agent/jobs/types.js +0 -6
  437. package/dist/agent/jobs/types.js.map +0 -1
  438. package/dist/agent/policy-integration.test.d.ts +0 -6
  439. package/dist/agent/policy-integration.test.d.ts.map +0 -1
  440. package/dist/agent/policy-integration.test.js +0 -148
  441. package/dist/agent/policy-integration.test.js.map +0 -1
  442. package/dist/agent/preprocessors/MediaPreprocessor.d.ts +0 -63
  443. package/dist/agent/preprocessors/MediaPreprocessor.d.ts.map +0 -1
  444. package/dist/agent/preprocessors/MediaPreprocessor.js +0 -320
  445. package/dist/agent/preprocessors/MediaPreprocessor.js.map +0 -1
  446. package/dist/agent/providers/claude-head.d.ts +0 -17
  447. package/dist/agent/providers/claude-head.d.ts.map +0 -1
  448. package/dist/agent/providers/claude-head.js +0 -124
  449. package/dist/agent/providers/claude-head.js.map +0 -1
  450. package/dist/agent/providers/gpt-head.d.ts +0 -30
  451. package/dist/agent/providers/gpt-head.d.ts.map +0 -1
  452. package/dist/agent/providers/gpt-head.js +0 -359
  453. package/dist/agent/providers/gpt-head.js.map +0 -1
  454. package/dist/agent/tools/claude-code.d.ts +0 -11
  455. package/dist/agent/tools/claude-code.d.ts.map +0 -1
  456. package/dist/agent/tools/claude-code.js +0 -148
  457. package/dist/agent/tools/claude-code.js.map +0 -1
  458. package/dist/agent/tools/dm-pair.d.ts +0 -23
  459. package/dist/agent/tools/dm-pair.d.ts.map +0 -1
  460. package/dist/agent/tools/dm-pair.js +0 -70
  461. package/dist/agent/tools/dm-pair.js.map +0 -1
  462. package/dist/agent/tools/dm-pair.test.d.ts +0 -6
  463. package/dist/agent/tools/dm-pair.test.d.ts.map +0 -1
  464. package/dist/agent/tools/dm-pair.test.js +0 -106
  465. package/dist/agent/tools/dm-pair.test.js.map +0 -1
  466. package/dist/agent/tools/gemini-stt.d.ts +0 -9
  467. package/dist/agent/tools/gemini-stt.d.ts.map +0 -1
  468. package/dist/agent/tools/gemini-stt.js +0 -33
  469. package/dist/agent/tools/gemini-stt.js.map +0 -1
  470. package/dist/agent/tools/google-search.d.ts +0 -9
  471. package/dist/agent/tools/google-search.d.ts.map +0 -1
  472. package/dist/agent/tools/google-search.js +0 -38
  473. package/dist/agent/tools/google-search.js.map +0 -1
  474. package/dist/agent/tools/index.d.ts +0 -22
  475. package/dist/agent/tools/index.d.ts.map +0 -1
  476. package/dist/agent/tools/index.js +0 -37
  477. package/dist/agent/tools/index.js.map +0 -1
  478. package/dist/agent/tools/kimi-analyze.d.ts +0 -9
  479. package/dist/agent/tools/kimi-analyze.d.ts.map +0 -1
  480. package/dist/agent/tools/kimi-analyze.js +0 -49
  481. package/dist/agent/tools/kimi-analyze.js.map +0 -1
  482. package/dist/agent/tools/manage-memory.d.ts +0 -10
  483. package/dist/agent/tools/manage-memory.d.ts.map +0 -1
  484. package/dist/agent/tools/manage-memory.js +0 -70
  485. package/dist/agent/tools/manage-memory.js.map +0 -1
  486. package/dist/agent/tools/send-imessage.d.ts +0 -19
  487. package/dist/agent/tools/send-imessage.d.ts.map +0 -1
  488. package/dist/agent/tools/send-imessage.js +0 -67
  489. package/dist/agent/tools/send-imessage.js.map +0 -1
  490. package/dist/agent/tools/send-slack.d.ts +0 -21
  491. package/dist/agent/tools/send-slack.d.ts.map +0 -1
  492. package/dist/agent/tools/send-slack.js +0 -63
  493. package/dist/agent/tools/send-slack.js.map +0 -1
  494. package/dist/agent/tools/send-telegram.d.ts +0 -20
  495. package/dist/agent/tools/send-telegram.d.ts.map +0 -1
  496. package/dist/agent/tools/send-telegram.js +0 -58
  497. package/dist/agent/tools/send-telegram.js.map +0 -1
  498. package/dist/agent/tools/vision-analyze.d.ts +0 -11
  499. package/dist/agent/tools/vision-analyze.d.ts.map +0 -1
  500. package/dist/agent/tools/vision-analyze.js +0 -103
  501. package/dist/agent/tools/vision-analyze.js.map +0 -1
  502. package/dist/agent/tools/vision-capture.d.ts +0 -13
  503. package/dist/agent/tools/vision-capture.d.ts.map +0 -1
  504. package/dist/agent/tools/vision-capture.js +0 -87
  505. package/dist/agent/tools/vision-capture.js.map +0 -1
  506. package/dist/agent/tools/web-browse.d.ts +0 -20
  507. package/dist/agent/tools/web-browse.d.ts.map +0 -1
  508. package/dist/agent/tools/web-browse.js +0 -196
  509. package/dist/agent/tools/web-browse.js.map +0 -1
  510. package/dist/agent/types.d.ts +0 -151
  511. package/dist/agent/types.d.ts.map +0 -1
  512. package/dist/agent/types.js +0 -6
  513. package/dist/agent/types.js.map +0 -1
  514. package/dist/bridge/telegram-assistant-bridge.d.ts +0 -10
  515. package/dist/bridge/telegram-assistant-bridge.d.ts.map +0 -1
  516. package/dist/bridge/telegram-assistant-bridge.js +0 -274
  517. package/dist/bridge/telegram-assistant-bridge.js.map +0 -1
  518. package/dist/bridge/telegram-bridge.d.ts +0 -10
  519. package/dist/bridge/telegram-bridge.d.ts.map +0 -1
  520. package/dist/bridge/telegram-bridge.js +0 -154
  521. package/dist/bridge/telegram-bridge.js.map +0 -1
  522. package/dist/cli/commands/autostart.d.ts +0 -19
  523. package/dist/cli/commands/autostart.d.ts.map +0 -1
  524. package/dist/cli/commands/autostart.js +0 -213
  525. package/dist/cli/commands/autostart.js.map +0 -1
  526. package/dist/cli/commands/browser.d.ts +0 -12
  527. package/dist/cli/commands/browser.d.ts.map +0 -1
  528. package/dist/cli/commands/browser.js +0 -50
  529. package/dist/cli/commands/browser.js.map +0 -1
  530. package/dist/cli/commands/daemon.d.ts +0 -16
  531. package/dist/cli/commands/daemon.d.ts.map +0 -1
  532. package/dist/cli/commands/daemon.js +0 -277
  533. package/dist/cli/commands/daemon.js.map +0 -1
  534. package/dist/cli/commands/device.d.ts +0 -9
  535. package/dist/cli/commands/device.d.ts.map +0 -1
  536. package/dist/cli/commands/device.js +0 -56
  537. package/dist/cli/commands/device.js.map +0 -1
  538. package/dist/cli/commands/google.d.ts +0 -12
  539. package/dist/cli/commands/google.d.ts.map +0 -1
  540. package/dist/cli/commands/google.js +0 -83
  541. package/dist/cli/commands/google.js.map +0 -1
  542. package/dist/cli/commands/imessage.d.ts +0 -11
  543. package/dist/cli/commands/imessage.d.ts.map +0 -1
  544. package/dist/cli/commands/imessage.js +0 -85
  545. package/dist/cli/commands/imessage.js.map +0 -1
  546. package/dist/cli/commands/interface.d.ts +0 -15
  547. package/dist/cli/commands/interface.d.ts.map +0 -1
  548. package/dist/cli/commands/interface.js +0 -167
  549. package/dist/cli/commands/interface.js.map +0 -1
  550. package/dist/cli/commands/job.d.ts +0 -14
  551. package/dist/cli/commands/job.d.ts.map +0 -1
  552. package/dist/cli/commands/job.js +0 -170
  553. package/dist/cli/commands/job.js.map +0 -1
  554. package/dist/cli/commands/pc.d.ts +0 -12
  555. package/dist/cli/commands/pc.d.ts.map +0 -1
  556. package/dist/cli/commands/pc.js +0 -75
  557. package/dist/cli/commands/pc.js.map +0 -1
  558. package/dist/cli/commands/policy.d.ts +0 -10
  559. package/dist/cli/commands/policy.d.ts.map +0 -1
  560. package/dist/cli/commands/policy.js +0 -75
  561. package/dist/cli/commands/policy.js.map +0 -1
  562. package/dist/cli/commands/sandbox.d.ts +0 -10
  563. package/dist/cli/commands/sandbox.d.ts.map +0 -1
  564. package/dist/cli/commands/sandbox.js +0 -53
  565. package/dist/cli/commands/sandbox.js.map +0 -1
  566. package/dist/cli/commands/sync.d.ts +0 -9
  567. package/dist/cli/commands/sync.d.ts.map +0 -1
  568. package/dist/cli/commands/sync.js +0 -167
  569. package/dist/cli/commands/sync.js.map +0 -1
  570. package/dist/cli/commands/vision.d.ts +0 -12
  571. package/dist/cli/commands/vision.d.ts.map +0 -1
  572. package/dist/cli/commands/vision.js +0 -74
  573. package/dist/cli/commands/vision.js.map +0 -1
  574. package/dist/cli/commands/voice.d.ts +0 -12
  575. package/dist/cli/commands/voice.d.ts.map +0 -1
  576. package/dist/cli/commands/voice.js +0 -67
  577. package/dist/cli/commands/voice.js.map +0 -1
  578. package/dist/cli/commands/webhook.d.ts +0 -9
  579. package/dist/cli/commands/webhook.d.ts.map +0 -1
  580. package/dist/cli/commands/webhook.js +0 -85
  581. package/dist/cli/commands/webhook.js.map +0 -1
  582. package/dist/cli/hud.d.ts +0 -46
  583. package/dist/cli/hud.d.ts.map +0 -1
  584. package/dist/cli/hud.js +0 -392
  585. package/dist/cli/hud.js.map +0 -1
  586. package/dist/cli/llm/az-commands.d.ts +0 -12
  587. package/dist/cli/llm/az-commands.d.ts.map +0 -1
  588. package/dist/cli/llm/az-commands.js +0 -99
  589. package/dist/cli/llm/az-commands.js.map +0 -1
  590. package/dist/cli/llm/kimi-commands.d.ts +0 -12
  591. package/dist/cli/llm/kimi-commands.d.ts.map +0 -1
  592. package/dist/cli/llm/kimi-commands.js +0 -100
  593. package/dist/cli/llm/kimi-commands.js.map +0 -1
  594. package/dist/cli/llm/nvidia-commands.d.ts +0 -16
  595. package/dist/cli/llm/nvidia-commands.d.ts.map +0 -1
  596. package/dist/cli/llm/nvidia-commands.js +0 -105
  597. package/dist/cli/llm/nvidia-commands.js.map +0 -1
  598. package/dist/cli/llm/priority-commands.d.ts +0 -18
  599. package/dist/cli/llm/priority-commands.d.ts.map +0 -1
  600. package/dist/cli/llm/priority-commands.js +0 -69
  601. package/dist/cli/llm/priority-commands.js.map +0 -1
  602. package/dist/cli/postinstall/npmrc.d.ts +0 -9
  603. package/dist/cli/postinstall/npmrc.d.ts.map +0 -1
  604. package/dist/cli/postinstall/npmrc.js +0 -80
  605. package/dist/cli/postinstall/npmrc.js.map +0 -1
  606. package/dist/daemon/DaemonIPC.d.ts +0 -40
  607. package/dist/daemon/DaemonIPC.d.ts.map +0 -1
  608. package/dist/daemon/DaemonIPC.js +0 -327
  609. package/dist/daemon/DaemonIPC.js.map +0 -1
  610. package/dist/daemon/InterfaceManager.d.ts +0 -62
  611. package/dist/daemon/InterfaceManager.d.ts.map +0 -1
  612. package/dist/daemon/InterfaceManager.js +0 -785
  613. package/dist/daemon/InterfaceManager.js.map +0 -1
  614. package/dist/daemon/SessionPool.d.ts +0 -80
  615. package/dist/daemon/SessionPool.d.ts.map +0 -1
  616. package/dist/daemon/SessionPool.js +0 -414
  617. package/dist/daemon/SessionPool.js.map +0 -1
  618. package/dist/daemon/VibeDaemon.d.ts +0 -69
  619. package/dist/daemon/VibeDaemon.d.ts.map +0 -1
  620. package/dist/daemon/VibeDaemon.js +0 -400
  621. package/dist/daemon/VibeDaemon.js.map +0 -1
  622. package/dist/daemon/daemon.test.d.ts +0 -6
  623. package/dist/daemon/daemon.test.d.ts.map +0 -1
  624. package/dist/daemon/daemon.test.js +0 -348
  625. package/dist/daemon/daemon.test.js.map +0 -1
  626. package/dist/daemon/index.d.ts +0 -10
  627. package/dist/daemon/index.d.ts.map +0 -1
  628. package/dist/daemon/index.js +0 -9
  629. package/dist/daemon/index.js.map +0 -1
  630. package/dist/daemon/pipeline.test.d.ts +0 -6
  631. package/dist/daemon/pipeline.test.d.ts.map +0 -1
  632. package/dist/daemon/pipeline.test.js +0 -258
  633. package/dist/daemon/pipeline.test.js.map +0 -1
  634. package/dist/daemon/preflight.d.ts +0 -23
  635. package/dist/daemon/preflight.d.ts.map +0 -1
  636. package/dist/daemon/preflight.js +0 -204
  637. package/dist/daemon/preflight.js.map +0 -1
  638. package/dist/daemon/preflight.test.d.ts +0 -6
  639. package/dist/daemon/preflight.test.d.ts.map +0 -1
  640. package/dist/daemon/preflight.test.js +0 -88
  641. package/dist/daemon/preflight.test.js.map +0 -1
  642. package/dist/daemon/types.d.ts +0 -117
  643. package/dist/daemon/types.d.ts.map +0 -1
  644. package/dist/daemon/types.js +0 -15
  645. package/dist/daemon/types.js.map +0 -1
  646. package/dist/infra/lib/az/auth.d.ts +0 -15
  647. package/dist/infra/lib/az/auth.d.ts.map +0 -1
  648. package/dist/infra/lib/az/auth.js +0 -67
  649. package/dist/infra/lib/az/auth.js.map +0 -1
  650. package/dist/infra/lib/az/chat.d.ts +0 -26
  651. package/dist/infra/lib/az/chat.d.ts.map +0 -1
  652. package/dist/infra/lib/az/chat.js +0 -116
  653. package/dist/infra/lib/az/chat.js.map +0 -1
  654. package/dist/infra/lib/az/embedding.d.ts +0 -13
  655. package/dist/infra/lib/az/embedding.d.ts.map +0 -1
  656. package/dist/infra/lib/az/embedding.js +0 -60
  657. package/dist/infra/lib/az/embedding.js.map +0 -1
  658. package/dist/infra/lib/az/index.d.ts +0 -9
  659. package/dist/infra/lib/az/index.d.ts.map +0 -1
  660. package/dist/infra/lib/az/index.js +0 -9
  661. package/dist/infra/lib/az/index.js.map +0 -1
  662. package/dist/infra/lib/az/orchestration.d.ts +0 -11
  663. package/dist/infra/lib/az/orchestration.d.ts.map +0 -1
  664. package/dist/infra/lib/az/orchestration.js +0 -24
  665. package/dist/infra/lib/az/orchestration.js.map +0 -1
  666. package/dist/infra/lib/az/types.d.ts +0 -35
  667. package/dist/infra/lib/az/types.d.ts.map +0 -1
  668. package/dist/infra/lib/az/types.js +0 -5
  669. package/dist/infra/lib/az/types.js.map +0 -1
  670. package/dist/infra/lib/az-api.d.ts +0 -5
  671. package/dist/infra/lib/az-api.d.ts.map +0 -1
  672. package/dist/infra/lib/az-api.js +0 -5
  673. package/dist/infra/lib/az-api.js.map +0 -1
  674. package/dist/infra/lib/az-constants.d.ts +0 -44
  675. package/dist/infra/lib/az-constants.d.ts.map +0 -1
  676. package/dist/infra/lib/az-constants.js +0 -58
  677. package/dist/infra/lib/az-constants.js.map +0 -1
  678. package/dist/infra/lib/az-storage.d.ts +0 -12
  679. package/dist/infra/lib/az-storage.d.ts.map +0 -1
  680. package/dist/infra/lib/az-storage.js +0 -59
  681. package/dist/infra/lib/az-storage.js.map +0 -1
  682. package/dist/infra/lib/claude-storage.d.ts +0 -12
  683. package/dist/infra/lib/claude-storage.d.ts.map +0 -1
  684. package/dist/infra/lib/claude-storage.js +0 -59
  685. package/dist/infra/lib/claude-storage.js.map +0 -1
  686. package/dist/infra/lib/gemini-api.d.ts +0 -13
  687. package/dist/infra/lib/gemini-api.d.ts.map +0 -1
  688. package/dist/infra/lib/gemini-api.js +0 -13
  689. package/dist/infra/lib/gemini-api.js.map +0 -1
  690. package/dist/infra/lib/gemini-constants.d.ts +0 -19
  691. package/dist/infra/lib/gemini-constants.d.ts.map +0 -1
  692. package/dist/infra/lib/gemini-constants.js +0 -34
  693. package/dist/infra/lib/gemini-constants.js.map +0 -1
  694. package/dist/infra/lib/gemini-oauth.d.ts +0 -60
  695. package/dist/infra/lib/gemini-oauth.d.ts.map +0 -1
  696. package/dist/infra/lib/gemini-oauth.js +0 -386
  697. package/dist/infra/lib/gemini-oauth.js.map +0 -1
  698. package/dist/infra/lib/gemini-storage.d.ts +0 -64
  699. package/dist/infra/lib/gemini-storage.d.ts.map +0 -1
  700. package/dist/infra/lib/gemini-storage.js +0 -177
  701. package/dist/infra/lib/gemini-storage.js.map +0 -1
  702. package/dist/infra/lib/gpt-api.d.ts +0 -13
  703. package/dist/infra/lib/gpt-api.d.ts.map +0 -1
  704. package/dist/infra/lib/gpt-api.js +0 -13
  705. package/dist/infra/lib/gpt-api.js.map +0 -1
  706. package/dist/infra/lib/gpt-constants.d.ts +0 -12
  707. package/dist/infra/lib/gpt-constants.d.ts.map +0 -1
  708. package/dist/infra/lib/gpt-constants.js +0 -18
  709. package/dist/infra/lib/gpt-constants.js.map +0 -1
  710. package/dist/infra/lib/gpt-oauth.d.ts +0 -66
  711. package/dist/infra/lib/gpt-oauth.d.ts.map +0 -1
  712. package/dist/infra/lib/gpt-oauth.js +0 -389
  713. package/dist/infra/lib/gpt-oauth.js.map +0 -1
  714. package/dist/infra/lib/gpt-storage.d.ts +0 -64
  715. package/dist/infra/lib/gpt-storage.d.ts.map +0 -1
  716. package/dist/infra/lib/gpt-storage.js +0 -180
  717. package/dist/infra/lib/gpt-storage.js.map +0 -1
  718. package/dist/infra/lib/kimi/auth.d.ts +0 -10
  719. package/dist/infra/lib/kimi/auth.d.ts.map +0 -1
  720. package/dist/infra/lib/kimi/auth.js +0 -45
  721. package/dist/infra/lib/kimi/auth.js.map +0 -1
  722. package/dist/infra/lib/kimi/chat.d.ts +0 -26
  723. package/dist/infra/lib/kimi/chat.d.ts.map +0 -1
  724. package/dist/infra/lib/kimi/chat.js +0 -115
  725. package/dist/infra/lib/kimi/chat.js.map +0 -1
  726. package/dist/infra/lib/kimi/index.d.ts +0 -8
  727. package/dist/infra/lib/kimi/index.d.ts.map +0 -1
  728. package/dist/infra/lib/kimi/index.js +0 -8
  729. package/dist/infra/lib/kimi/index.js.map +0 -1
  730. package/dist/infra/lib/kimi/orchestration.d.ts +0 -10
  731. package/dist/infra/lib/kimi/orchestration.d.ts.map +0 -1
  732. package/dist/infra/lib/kimi/orchestration.js +0 -22
  733. package/dist/infra/lib/kimi/orchestration.js.map +0 -1
  734. package/dist/infra/lib/kimi/types.d.ts +0 -30
  735. package/dist/infra/lib/kimi/types.d.ts.map +0 -1
  736. package/dist/infra/lib/kimi/types.js +0 -5
  737. package/dist/infra/lib/kimi/types.js.map +0 -1
  738. package/dist/infra/lib/kimi-api.d.ts +0 -5
  739. package/dist/infra/lib/kimi-api.d.ts.map +0 -1
  740. package/dist/infra/lib/kimi-api.js +0 -5
  741. package/dist/infra/lib/kimi-api.js.map +0 -1
  742. package/dist/infra/lib/kimi-constants.d.ts +0 -27
  743. package/dist/infra/lib/kimi-constants.d.ts.map +0 -1
  744. package/dist/infra/lib/kimi-constants.js +0 -31
  745. package/dist/infra/lib/kimi-constants.js.map +0 -1
  746. package/dist/infra/lib/kimi-storage.d.ts +0 -12
  747. package/dist/infra/lib/kimi-storage.d.ts.map +0 -1
  748. package/dist/infra/lib/kimi-storage.js +0 -59
  749. package/dist/infra/lib/kimi-storage.js.map +0 -1
  750. package/dist/infra/lib/priority-config.d.ts +0 -39
  751. package/dist/infra/lib/priority-config.d.ts.map +0 -1
  752. package/dist/infra/lib/priority-config.js +0 -137
  753. package/dist/infra/lib/priority-config.js.map +0 -1
  754. package/dist/infra/lib/sync/constants.d.ts +0 -21
  755. package/dist/infra/lib/sync/constants.d.ts.map +0 -1
  756. package/dist/infra/lib/sync/constants.js +0 -78
  757. package/dist/infra/lib/sync/constants.js.map +0 -1
  758. package/dist/infra/lib/sync/crypto.d.ts +0 -23
  759. package/dist/infra/lib/sync/crypto.d.ts.map +0 -1
  760. package/dist/infra/lib/sync/crypto.js +0 -55
  761. package/dist/infra/lib/sync/crypto.js.map +0 -1
  762. package/dist/infra/lib/sync/drive.d.ts +0 -22
  763. package/dist/infra/lib/sync/drive.d.ts.map +0 -1
  764. package/dist/infra/lib/sync/drive.js +0 -99
  765. package/dist/infra/lib/sync/drive.js.map +0 -1
  766. package/dist/infra/lib/sync/index.d.ts +0 -9
  767. package/dist/infra/lib/sync/index.d.ts.map +0 -1
  768. package/dist/infra/lib/sync/index.js +0 -9
  769. package/dist/infra/lib/sync/index.js.map +0 -1
  770. package/dist/infra/lib/sync/oauth.d.ts +0 -12
  771. package/dist/infra/lib/sync/oauth.d.ts.map +0 -1
  772. package/dist/infra/lib/sync/oauth.js +0 -157
  773. package/dist/infra/lib/sync/oauth.js.map +0 -1
  774. package/dist/infra/lib/sync/storage.d.ts +0 -21
  775. package/dist/infra/lib/sync/storage.d.ts.map +0 -1
  776. package/dist/infra/lib/sync/storage.js +0 -32
  777. package/dist/infra/lib/sync/storage.js.map +0 -1
  778. package/dist/infra/policy/Evidence.d.ts +0 -30
  779. package/dist/infra/policy/Evidence.d.ts.map +0 -1
  780. package/dist/infra/policy/Evidence.js +0 -134
  781. package/dist/infra/policy/Evidence.js.map +0 -1
  782. package/dist/infra/policy/PolicyEngine.d.ts +0 -34
  783. package/dist/infra/policy/PolicyEngine.d.ts.map +0 -1
  784. package/dist/infra/policy/PolicyEngine.js +0 -219
  785. package/dist/infra/policy/PolicyEngine.js.map +0 -1
  786. package/dist/infra/policy/PolicyStore.d.ts +0 -36
  787. package/dist/infra/policy/PolicyStore.d.ts.map +0 -1
  788. package/dist/infra/policy/PolicyStore.js +0 -160
  789. package/dist/infra/policy/PolicyStore.js.map +0 -1
  790. package/dist/infra/policy/RiskCalculator.d.ts +0 -20
  791. package/dist/infra/policy/RiskCalculator.d.ts.map +0 -1
  792. package/dist/infra/policy/RiskCalculator.js +0 -64
  793. package/dist/infra/policy/RiskCalculator.js.map +0 -1
  794. package/dist/infra/policy/default-policies.d.ts +0 -13
  795. package/dist/infra/policy/default-policies.d.ts.map +0 -1
  796. package/dist/infra/policy/default-policies.js +0 -99
  797. package/dist/infra/policy/default-policies.js.map +0 -1
  798. package/dist/infra/policy/index.d.ts +0 -11
  799. package/dist/infra/policy/index.d.ts.map +0 -1
  800. package/dist/infra/policy/index.js +0 -10
  801. package/dist/infra/policy/index.js.map +0 -1
  802. package/dist/infra/policy/policy.test.d.ts +0 -5
  803. package/dist/infra/policy/policy.test.d.ts.map +0 -1
  804. package/dist/infra/policy/policy.test.js +0 -628
  805. package/dist/infra/policy/policy.test.js.map +0 -1
  806. package/dist/infra/policy/types.d.ts +0 -71
  807. package/dist/infra/policy/types.d.ts.map +0 -1
  808. package/dist/infra/policy/types.js +0 -18
  809. package/dist/infra/policy/types.js.map +0 -1
  810. package/dist/interface/BaseInterface.d.ts +0 -37
  811. package/dist/interface/BaseInterface.d.ts.map +0 -1
  812. package/dist/interface/BaseInterface.js +0 -105
  813. package/dist/interface/BaseInterface.js.map +0 -1
  814. package/dist/interface/ClaudeCodeBridge.d.ts +0 -38
  815. package/dist/interface/ClaudeCodeBridge.d.ts.map +0 -1
  816. package/dist/interface/ClaudeCodeBridge.js +0 -216
  817. package/dist/interface/ClaudeCodeBridge.js.map +0 -1
  818. package/dist/interface/imessage/IMessageBot.d.ts +0 -33
  819. package/dist/interface/imessage/IMessageBot.d.ts.map +0 -1
  820. package/dist/interface/imessage/IMessageBot.js +0 -222
  821. package/dist/interface/imessage/IMessageBot.js.map +0 -1
  822. package/dist/interface/imessage/IMessageFormatter.d.ts +0 -15
  823. package/dist/interface/imessage/IMessageFormatter.d.ts.map +0 -1
  824. package/dist/interface/imessage/IMessageFormatter.js +0 -81
  825. package/dist/interface/imessage/IMessageFormatter.js.map +0 -1
  826. package/dist/interface/imessage/IMessageRpcClient.d.ts +0 -39
  827. package/dist/interface/imessage/IMessageRpcClient.d.ts.map +0 -1
  828. package/dist/interface/imessage/IMessageRpcClient.js +0 -174
  829. package/dist/interface/imessage/IMessageRpcClient.js.map +0 -1
  830. package/dist/interface/imessage/IMessageSender.d.ts +0 -19
  831. package/dist/interface/imessage/IMessageSender.d.ts.map +0 -1
  832. package/dist/interface/imessage/IMessageSender.js +0 -136
  833. package/dist/interface/imessage/IMessageSender.js.map +0 -1
  834. package/dist/interface/imessage/__tests__/IMessageBot.test.d.ts +0 -5
  835. package/dist/interface/imessage/__tests__/IMessageBot.test.d.ts.map +0 -1
  836. package/dist/interface/imessage/__tests__/IMessageBot.test.js +0 -60
  837. package/dist/interface/imessage/__tests__/IMessageBot.test.js.map +0 -1
  838. package/dist/interface/imessage/__tests__/IMessageFormatter.test.d.ts +0 -5
  839. package/dist/interface/imessage/__tests__/IMessageFormatter.test.d.ts.map +0 -1
  840. package/dist/interface/imessage/__tests__/IMessageFormatter.test.js +0 -110
  841. package/dist/interface/imessage/__tests__/IMessageFormatter.test.js.map +0 -1
  842. package/dist/interface/imessage/__tests__/IMessageSender.test.d.ts +0 -5
  843. package/dist/interface/imessage/__tests__/IMessageSender.test.d.ts.map +0 -1
  844. package/dist/interface/imessage/__tests__/IMessageSender.test.js +0 -67
  845. package/dist/interface/imessage/__tests__/IMessageSender.test.js.map +0 -1
  846. package/dist/interface/imessage/index.d.ts +0 -8
  847. package/dist/interface/imessage/index.d.ts.map +0 -1
  848. package/dist/interface/imessage/index.js +0 -8
  849. package/dist/interface/imessage/index.js.map +0 -1
  850. package/dist/interface/index.d.ts +0 -26
  851. package/dist/interface/index.d.ts.map +0 -1
  852. package/dist/interface/index.js +0 -26
  853. package/dist/interface/index.js.map +0 -1
  854. package/dist/interface/interface.test.d.ts +0 -5
  855. package/dist/interface/interface.test.d.ts.map +0 -1
  856. package/dist/interface/interface.test.js +0 -442
  857. package/dist/interface/interface.test.js.map +0 -1
  858. package/dist/interface/slack/SlackBot.d.ts +0 -83
  859. package/dist/interface/slack/SlackBot.d.ts.map +0 -1
  860. package/dist/interface/slack/SlackBot.js +0 -563
  861. package/dist/interface/slack/SlackBot.js.map +0 -1
  862. package/dist/interface/slack/SlackFormatter.d.ts +0 -19
  863. package/dist/interface/slack/SlackFormatter.d.ts.map +0 -1
  864. package/dist/interface/slack/SlackFormatter.js +0 -76
  865. package/dist/interface/slack/SlackFormatter.js.map +0 -1
  866. package/dist/interface/slack/__tests__/SlackBot.test.d.ts +0 -5
  867. package/dist/interface/slack/__tests__/SlackBot.test.d.ts.map +0 -1
  868. package/dist/interface/slack/__tests__/SlackBot.test.js +0 -37
  869. package/dist/interface/slack/__tests__/SlackBot.test.js.map +0 -1
  870. package/dist/interface/slack/__tests__/SlackFormatter.test.d.ts +0 -5
  871. package/dist/interface/slack/__tests__/SlackFormatter.test.d.ts.map +0 -1
  872. package/dist/interface/slack/__tests__/SlackFormatter.test.js +0 -93
  873. package/dist/interface/slack/__tests__/SlackFormatter.test.js.map +0 -1
  874. package/dist/interface/slack/index.d.ts +0 -7
  875. package/dist/interface/slack/index.d.ts.map +0 -1
  876. package/dist/interface/slack/index.js +0 -7
  877. package/dist/interface/slack/index.js.map +0 -1
  878. package/dist/interface/telegram/TelegramBot.d.ts +0 -60
  879. package/dist/interface/telegram/TelegramBot.d.ts.map +0 -1
  880. package/dist/interface/telegram/TelegramBot.js +0 -400
  881. package/dist/interface/telegram/TelegramBot.js.map +0 -1
  882. package/dist/interface/telegram/TelegramFormatter.d.ts +0 -19
  883. package/dist/interface/telegram/TelegramFormatter.d.ts.map +0 -1
  884. package/dist/interface/telegram/TelegramFormatter.js +0 -66
  885. package/dist/interface/telegram/TelegramFormatter.js.map +0 -1
  886. package/dist/interface/types.d.ts +0 -167
  887. package/dist/interface/types.d.ts.map +0 -1
  888. package/dist/interface/types.js +0 -6
  889. package/dist/interface/types.js.map +0 -1
  890. package/dist/interface/utils/MessageCombiner.d.ts +0 -14
  891. package/dist/interface/utils/MessageCombiner.d.ts.map +0 -1
  892. package/dist/interface/utils/MessageCombiner.js +0 -48
  893. package/dist/interface/utils/MessageCombiner.js.map +0 -1
  894. package/dist/interface/vision/AdaptiveFrameSampler.d.ts +0 -44
  895. package/dist/interface/vision/AdaptiveFrameSampler.d.ts.map +0 -1
  896. package/dist/interface/vision/AdaptiveFrameSampler.js +0 -109
  897. package/dist/interface/vision/AdaptiveFrameSampler.js.map +0 -1
  898. package/dist/interface/vision/AdaptiveFrameSampler.test.d.ts +0 -7
  899. package/dist/interface/vision/AdaptiveFrameSampler.test.d.ts.map +0 -1
  900. package/dist/interface/vision/AdaptiveFrameSampler.test.js +0 -113
  901. package/dist/interface/vision/AdaptiveFrameSampler.test.js.map +0 -1
  902. package/dist/interface/vision/GeminiLive.d.ts +0 -37
  903. package/dist/interface/vision/GeminiLive.d.ts.map +0 -1
  904. package/dist/interface/vision/GeminiLive.js +0 -272
  905. package/dist/interface/vision/GeminiLive.js.map +0 -1
  906. package/dist/interface/vision/GeminiLive.test.d.ts +0 -6
  907. package/dist/interface/vision/GeminiLive.test.d.ts.map +0 -1
  908. package/dist/interface/vision/GeminiLive.test.js +0 -40
  909. package/dist/interface/vision/GeminiLive.test.js.map +0 -1
  910. package/dist/interface/vision/GeminiLiveStream.d.ts +0 -55
  911. package/dist/interface/vision/GeminiLiveStream.d.ts.map +0 -1
  912. package/dist/interface/vision/GeminiLiveStream.js +0 -213
  913. package/dist/interface/vision/GeminiLiveStream.js.map +0 -1
  914. package/dist/interface/vision/GeminiVision.d.ts +0 -25
  915. package/dist/interface/vision/GeminiVision.d.ts.map +0 -1
  916. package/dist/interface/vision/GeminiVision.js +0 -202
  917. package/dist/interface/vision/GeminiVision.js.map +0 -1
  918. package/dist/interface/vision/ScreenCapture.d.ts +0 -77
  919. package/dist/interface/vision/ScreenCapture.d.ts.map +0 -1
  920. package/dist/interface/vision/ScreenCapture.js +0 -314
  921. package/dist/interface/vision/ScreenCapture.js.map +0 -1
  922. package/dist/interface/vision/ScreenCaptureEngine.d.ts +0 -55
  923. package/dist/interface/vision/ScreenCaptureEngine.d.ts.map +0 -1
  924. package/dist/interface/vision/ScreenCaptureEngine.js +0 -223
  925. package/dist/interface/vision/ScreenCaptureEngine.js.map +0 -1
  926. package/dist/interface/vision/ScreenCaptureEngine.test.d.ts +0 -8
  927. package/dist/interface/vision/ScreenCaptureEngine.test.d.ts.map +0 -1
  928. package/dist/interface/vision/ScreenCaptureEngine.test.js +0 -175
  929. package/dist/interface/vision/ScreenCaptureEngine.test.js.map +0 -1
  930. package/dist/interface/vision/VisionInterface.d.ts +0 -26
  931. package/dist/interface/vision/VisionInterface.d.ts.map +0 -1
  932. package/dist/interface/vision/VisionInterface.js +0 -105
  933. package/dist/interface/vision/VisionInterface.js.map +0 -1
  934. package/dist/interface/vision/VisionSession.d.ts +0 -66
  935. package/dist/interface/vision/VisionSession.d.ts.map +0 -1
  936. package/dist/interface/vision/VisionSession.js +0 -274
  937. package/dist/interface/vision/VisionSession.js.map +0 -1
  938. package/dist/interface/vision/VisionSession.test.d.ts +0 -7
  939. package/dist/interface/vision/VisionSession.test.d.ts.map +0 -1
  940. package/dist/interface/vision/VisionSession.test.js +0 -218
  941. package/dist/interface/vision/VisionSession.test.js.map +0 -1
  942. package/dist/interface/vision/__tests__/GeminiVision.test.d.ts +0 -5
  943. package/dist/interface/vision/__tests__/GeminiVision.test.d.ts.map +0 -1
  944. package/dist/interface/vision/__tests__/GeminiVision.test.js +0 -92
  945. package/dist/interface/vision/__tests__/GeminiVision.test.js.map +0 -1
  946. package/dist/interface/vision/__tests__/ScreenCapture.test.d.ts +0 -5
  947. package/dist/interface/vision/__tests__/ScreenCapture.test.d.ts.map +0 -1
  948. package/dist/interface/vision/__tests__/ScreenCapture.test.js +0 -24
  949. package/dist/interface/vision/__tests__/ScreenCapture.test.js.map +0 -1
  950. package/dist/interface/vision/__tests__/VisionInterface.test.d.ts +0 -5
  951. package/dist/interface/vision/__tests__/VisionInterface.test.d.ts.map +0 -1
  952. package/dist/interface/vision/__tests__/VisionInterface.test.js +0 -59
  953. package/dist/interface/vision/__tests__/VisionInterface.test.js.map +0 -1
  954. package/dist/interface/vision/index.d.ts +0 -20
  955. package/dist/interface/vision/index.d.ts.map +0 -1
  956. package/dist/interface/vision/index.js +0 -16
  957. package/dist/interface/vision/index.js.map +0 -1
  958. package/dist/interface/vision/types.d.ts +0 -79
  959. package/dist/interface/vision/types.d.ts.map +0 -1
  960. package/dist/interface/vision/types.js +0 -22
  961. package/dist/interface/vision/types.js.map +0 -1
  962. package/dist/interface/voice/STTProvider.d.ts +0 -48
  963. package/dist/interface/voice/STTProvider.d.ts.map +0 -1
  964. package/dist/interface/voice/STTProvider.js +0 -254
  965. package/dist/interface/voice/STTProvider.js.map +0 -1
  966. package/dist/interface/voice/STTProvider.test.d.ts +0 -8
  967. package/dist/interface/voice/STTProvider.test.d.ts.map +0 -1
  968. package/dist/interface/voice/STTProvider.test.js +0 -144
  969. package/dist/interface/voice/STTProvider.test.js.map +0 -1
  970. package/dist/interface/voice/TTSProvider.d.ts +0 -44
  971. package/dist/interface/voice/TTSProvider.d.ts.map +0 -1
  972. package/dist/interface/voice/TTSProvider.js +0 -252
  973. package/dist/interface/voice/TTSProvider.js.map +0 -1
  974. package/dist/interface/voice/TTSProvider.test.d.ts +0 -8
  975. package/dist/interface/voice/TTSProvider.test.d.ts.map +0 -1
  976. package/dist/interface/voice/TTSProvider.test.js +0 -143
  977. package/dist/interface/voice/TTSProvider.test.js.map +0 -1
  978. package/dist/interface/voice/VADProcessor.d.ts +0 -34
  979. package/dist/interface/voice/VADProcessor.d.ts.map +0 -1
  980. package/dist/interface/voice/VADProcessor.js +0 -116
  981. package/dist/interface/voice/VADProcessor.js.map +0 -1
  982. package/dist/interface/voice/VADProcessor.test.d.ts +0 -8
  983. package/dist/interface/voice/VADProcessor.test.d.ts.map +0 -1
  984. package/dist/interface/voice/VADProcessor.test.js +0 -159
  985. package/dist/interface/voice/VADProcessor.test.js.map +0 -1
  986. package/dist/interface/voice/VoiceSession.d.ts +0 -77
  987. package/dist/interface/voice/VoiceSession.d.ts.map +0 -1
  988. package/dist/interface/voice/VoiceSession.js +0 -249
  989. package/dist/interface/voice/VoiceSession.js.map +0 -1
  990. package/dist/interface/voice/VoiceSession.test.d.ts +0 -8
  991. package/dist/interface/voice/VoiceSession.test.d.ts.map +0 -1
  992. package/dist/interface/voice/VoiceSession.test.js +0 -260
  993. package/dist/interface/voice/VoiceSession.test.js.map +0 -1
  994. package/dist/interface/voice/VoiceWebSocket.d.ts +0 -52
  995. package/dist/interface/voice/VoiceWebSocket.d.ts.map +0 -1
  996. package/dist/interface/voice/VoiceWebSocket.js +0 -165
  997. package/dist/interface/voice/VoiceWebSocket.js.map +0 -1
  998. package/dist/interface/voice/types.d.ts +0 -144
  999. package/dist/interface/voice/types.d.ts.map +0 -1
  1000. package/dist/interface/voice/types.js +0 -23
  1001. package/dist/interface/voice/types.js.map +0 -1
  1002. package/dist/interface/voice/types.test.d.ts +0 -8
  1003. package/dist/interface/voice/types.test.d.ts.map +0 -1
  1004. package/dist/interface/voice/types.test.js +0 -90
  1005. package/dist/interface/voice/types.test.js.map +0 -1
  1006. package/dist/interface/web/WebServer.d.ts +0 -80
  1007. package/dist/interface/web/WebServer.d.ts.map +0 -1
  1008. package/dist/interface/web/WebServer.js +0 -999
  1009. package/dist/interface/web/WebServer.js.map +0 -1
  1010. package/dist/interface/web/__tests__/WebServer.test.d.ts +0 -5
  1011. package/dist/interface/web/__tests__/WebServer.test.d.ts.map +0 -1
  1012. package/dist/interface/web/__tests__/WebServer.test.js +0 -345
  1013. package/dist/interface/web/__tests__/WebServer.test.js.map +0 -1
  1014. package/dist/interface/web/types.d.ts +0 -109
  1015. package/dist/interface/web/types.d.ts.map +0 -1
  1016. package/dist/interface/web/types.js +0 -67
  1017. package/dist/interface/web/types.js.map +0 -1
  1018. package/dist/interface/webhook/WebhookHandler.d.ts +0 -45
  1019. package/dist/interface/webhook/WebhookHandler.d.ts.map +0 -1
  1020. package/dist/interface/webhook/WebhookHandler.js +0 -273
  1021. package/dist/interface/webhook/WebhookHandler.js.map +0 -1
  1022. package/dist/job/ActionPlanGenerator.d.ts +0 -21
  1023. package/dist/job/ActionPlanGenerator.d.ts.map +0 -1
  1024. package/dist/job/ActionPlanGenerator.js +0 -153
  1025. package/dist/job/ActionPlanGenerator.js.map +0 -1
  1026. package/dist/job/AgentJobManager.d.ts +0 -46
  1027. package/dist/job/AgentJobManager.d.ts.map +0 -1
  1028. package/dist/job/AgentJobManager.js +0 -213
  1029. package/dist/job/AgentJobManager.js.map +0 -1
  1030. package/dist/job/AgentJobManager.test.d.ts +0 -6
  1031. package/dist/job/AgentJobManager.test.d.ts.map +0 -1
  1032. package/dist/job/AgentJobManager.test.js +0 -197
  1033. package/dist/job/AgentJobManager.test.js.map +0 -1
  1034. package/dist/job/IntentParser.d.ts +0 -21
  1035. package/dist/job/IntentParser.d.ts.map +0 -1
  1036. package/dist/job/IntentParser.js +0 -142
  1037. package/dist/job/IntentParser.js.map +0 -1
  1038. package/dist/job/JobManager.d.ts +0 -54
  1039. package/dist/job/JobManager.d.ts.map +0 -1
  1040. package/dist/job/JobManager.js +0 -220
  1041. package/dist/job/JobManager.js.map +0 -1
  1042. package/dist/job/JobQueue.d.ts +0 -41
  1043. package/dist/job/JobQueue.d.ts.map +0 -1
  1044. package/dist/job/JobQueue.js +0 -153
  1045. package/dist/job/JobQueue.js.map +0 -1
  1046. package/dist/job/JobStore.d.ts +0 -36
  1047. package/dist/job/JobStore.d.ts.map +0 -1
  1048. package/dist/job/JobStore.js +0 -260
  1049. package/dist/job/JobStore.js.map +0 -1
  1050. package/dist/job/ProgressReporter.d.ts +0 -32
  1051. package/dist/job/ProgressReporter.d.ts.map +0 -1
  1052. package/dist/job/ProgressReporter.js +0 -82
  1053. package/dist/job/ProgressReporter.js.map +0 -1
  1054. package/dist/job/agent-job-types.d.ts +0 -32
  1055. package/dist/job/agent-job-types.d.ts.map +0 -1
  1056. package/dist/job/agent-job-types.js +0 -6
  1057. package/dist/job/agent-job-types.js.map +0 -1
  1058. package/dist/job/index.d.ts +0 -15
  1059. package/dist/job/index.d.ts.map +0 -1
  1060. package/dist/job/index.js +0 -15
  1061. package/dist/job/index.js.map +0 -1
  1062. package/dist/job/job.test.d.ts +0 -5
  1063. package/dist/job/job.test.d.ts.map +0 -1
  1064. package/dist/job/job.test.js +0 -303
  1065. package/dist/job/job.test.js.map +0 -1
  1066. package/dist/job/types.d.ts +0 -82
  1067. package/dist/job/types.d.ts.map +0 -1
  1068. package/dist/job/types.js +0 -40
  1069. package/dist/job/types.js.map +0 -1
  1070. package/dist/orchestrator/AgentAnnouncer.d.ts +0 -64
  1071. package/dist/orchestrator/AgentAnnouncer.d.ts.map +0 -1
  1072. package/dist/orchestrator/AgentAnnouncer.js +0 -127
  1073. package/dist/orchestrator/AgentAnnouncer.js.map +0 -1
  1074. package/dist/orchestrator/AgentAnnouncer.test.d.ts +0 -5
  1075. package/dist/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
  1076. package/dist/orchestrator/AgentAnnouncer.test.js +0 -119
  1077. package/dist/orchestrator/AgentAnnouncer.test.js.map +0 -1
  1078. package/dist/orchestrator/AgentExecutor.d.ts +0 -23
  1079. package/dist/orchestrator/AgentExecutor.d.ts.map +0 -1
  1080. package/dist/orchestrator/AgentExecutor.js +0 -231
  1081. package/dist/orchestrator/AgentExecutor.js.map +0 -1
  1082. package/dist/orchestrator/AgentManager.d.ts +0 -73
  1083. package/dist/orchestrator/AgentManager.d.ts.map +0 -1
  1084. package/dist/orchestrator/AgentManager.js +0 -184
  1085. package/dist/orchestrator/AgentManager.js.map +0 -1
  1086. package/dist/orchestrator/AgentRegistry.d.ts +0 -76
  1087. package/dist/orchestrator/AgentRegistry.d.ts.map +0 -1
  1088. package/dist/orchestrator/AgentRegistry.js +0 -217
  1089. package/dist/orchestrator/AgentRegistry.js.map +0 -1
  1090. package/dist/orchestrator/AgentRegistry.test.d.ts +0 -5
  1091. package/dist/orchestrator/AgentRegistry.test.d.ts.map +0 -1
  1092. package/dist/orchestrator/AgentRegistry.test.js +0 -122
  1093. package/dist/orchestrator/AgentRegistry.test.js.map +0 -1
  1094. package/dist/orchestrator/BackgroundManager.d.ts +0 -114
  1095. package/dist/orchestrator/BackgroundManager.d.ts.map +0 -1
  1096. package/dist/orchestrator/BackgroundManager.js +0 -517
  1097. package/dist/orchestrator/BackgroundManager.js.map +0 -1
  1098. package/dist/orchestrator/BackgroundManager.test.d.ts +0 -6
  1099. package/dist/orchestrator/BackgroundManager.test.d.ts.map +0 -1
  1100. package/dist/orchestrator/BackgroundManager.test.js +0 -162
  1101. package/dist/orchestrator/BackgroundManager.test.js.map +0 -1
  1102. package/dist/orchestrator/CheckpointManager.d.ts +0 -54
  1103. package/dist/orchestrator/CheckpointManager.d.ts.map +0 -1
  1104. package/dist/orchestrator/CheckpointManager.js +0 -121
  1105. package/dist/orchestrator/CheckpointManager.js.map +0 -1
  1106. package/dist/orchestrator/LLMCluster.d.ts +0 -91
  1107. package/dist/orchestrator/LLMCluster.d.ts.map +0 -1
  1108. package/dist/orchestrator/LLMCluster.js +0 -124
  1109. package/dist/orchestrator/LLMCluster.js.map +0 -1
  1110. package/dist/orchestrator/MultiLlmResearch.d.ts +0 -27
  1111. package/dist/orchestrator/MultiLlmResearch.d.ts.map +0 -1
  1112. package/dist/orchestrator/MultiLlmResearch.js +0 -145
  1113. package/dist/orchestrator/MultiLlmResearch.js.map +0 -1
  1114. package/dist/orchestrator/PhasePipeline.d.ts +0 -123
  1115. package/dist/orchestrator/PhasePipeline.d.ts.map +0 -1
  1116. package/dist/orchestrator/PhasePipeline.js +0 -382
  1117. package/dist/orchestrator/PhasePipeline.js.map +0 -1
  1118. package/dist/orchestrator/PhaseResultStore.d.ts +0 -39
  1119. package/dist/orchestrator/PhaseResultStore.d.ts.map +0 -1
  1120. package/dist/orchestrator/PhaseResultStore.js +0 -151
  1121. package/dist/orchestrator/PhaseResultStore.js.map +0 -1
  1122. package/dist/orchestrator/SessionStore.d.ts +0 -41
  1123. package/dist/orchestrator/SessionStore.d.ts.map +0 -1
  1124. package/dist/orchestrator/SessionStore.js +0 -117
  1125. package/dist/orchestrator/SessionStore.js.map +0 -1
  1126. package/dist/orchestrator/SmartRouter.d.ts +0 -77
  1127. package/dist/orchestrator/SmartRouter.d.ts.map +0 -1
  1128. package/dist/orchestrator/SmartRouter.js +0 -305
  1129. package/dist/orchestrator/SmartRouter.js.map +0 -1
  1130. package/dist/orchestrator/SwarmOrchestrator.d.ts +0 -144
  1131. package/dist/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
  1132. package/dist/orchestrator/SwarmOrchestrator.js +0 -361
  1133. package/dist/orchestrator/SwarmOrchestrator.js.map +0 -1
  1134. package/dist/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
  1135. package/dist/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
  1136. package/dist/orchestrator/SwarmOrchestrator.test.js +0 -95
  1137. package/dist/orchestrator/SwarmOrchestrator.test.js.map +0 -1
  1138. package/dist/orchestrator/agentDiscovery.d.ts +0 -18
  1139. package/dist/orchestrator/agentDiscovery.d.ts.map +0 -1
  1140. package/dist/orchestrator/agentDiscovery.js +0 -175
  1141. package/dist/orchestrator/agentDiscovery.js.map +0 -1
  1142. package/dist/orchestrator/backgroundAgent.d.ts +0 -15
  1143. package/dist/orchestrator/backgroundAgent.d.ts.map +0 -1
  1144. package/dist/orchestrator/backgroundAgent.js +0 -16
  1145. package/dist/orchestrator/backgroundAgent.js.map +0 -1
  1146. package/dist/orchestrator/index.d.ts +0 -213
  1147. package/dist/orchestrator/index.d.ts.map +0 -1
  1148. package/dist/orchestrator/index.js +0 -391
  1149. package/dist/orchestrator/index.js.map +0 -1
  1150. package/dist/orchestrator/orchestrator.d.ts +0 -63
  1151. package/dist/orchestrator/orchestrator.d.ts.map +0 -1
  1152. package/dist/orchestrator/orchestrator.js +0 -217
  1153. package/dist/orchestrator/orchestrator.js.map +0 -1
  1154. package/dist/orchestrator/parallelResearch.d.ts +0 -30
  1155. package/dist/orchestrator/parallelResearch.d.ts.map +0 -1
  1156. package/dist/orchestrator/parallelResearch.js +0 -247
  1157. package/dist/orchestrator/parallelResearch.js.map +0 -1
  1158. package/dist/orchestrator/types.d.ts +0 -185
  1159. package/dist/orchestrator/types.d.ts.map +0 -1
  1160. package/dist/orchestrator/types.js +0 -21
  1161. package/dist/orchestrator/types.js.map +0 -1
  1162. package/dist/pc/CommandDispatcher.d.ts +0 -31
  1163. package/dist/pc/CommandDispatcher.d.ts.map +0 -1
  1164. package/dist/pc/CommandDispatcher.js +0 -132
  1165. package/dist/pc/CommandDispatcher.js.map +0 -1
  1166. package/dist/pc/CommandDispatcher.test.d.ts +0 -2
  1167. package/dist/pc/CommandDispatcher.test.d.ts.map +0 -1
  1168. package/dist/pc/CommandDispatcher.test.js +0 -360
  1169. package/dist/pc/CommandDispatcher.test.js.map +0 -1
  1170. package/dist/pc/ModuleRegistry.d.ts +0 -40
  1171. package/dist/pc/ModuleRegistry.d.ts.map +0 -1
  1172. package/dist/pc/ModuleRegistry.js +0 -163
  1173. package/dist/pc/ModuleRegistry.js.map +0 -1
  1174. package/dist/pc/ResultFormatter.d.ts +0 -27
  1175. package/dist/pc/ResultFormatter.d.ts.map +0 -1
  1176. package/dist/pc/ResultFormatter.js +0 -128
  1177. package/dist/pc/ResultFormatter.js.map +0 -1
  1178. package/dist/pc/ResultFormatter.test.d.ts +0 -2
  1179. package/dist/pc/ResultFormatter.test.d.ts.map +0 -1
  1180. package/dist/pc/ResultFormatter.test.js +0 -115
  1181. package/dist/pc/ResultFormatter.test.js.map +0 -1
  1182. package/dist/pc/SecurityGate.d.ts +0 -53
  1183. package/dist/pc/SecurityGate.d.ts.map +0 -1
  1184. package/dist/pc/SecurityGate.js +0 -142
  1185. package/dist/pc/SecurityGate.js.map +0 -1
  1186. package/dist/pc/SecurityGate.test.d.ts +0 -2
  1187. package/dist/pc/SecurityGate.test.d.ts.map +0 -1
  1188. package/dist/pc/SecurityGate.test.js +0 -160
  1189. package/dist/pc/SecurityGate.test.js.map +0 -1
  1190. package/dist/pc/SessionContext.d.ts +0 -31
  1191. package/dist/pc/SessionContext.d.ts.map +0 -1
  1192. package/dist/pc/SessionContext.js +0 -108
  1193. package/dist/pc/SessionContext.js.map +0 -1
  1194. package/dist/pc/browser/BrowserActions.d.ts +0 -22
  1195. package/dist/pc/browser/BrowserActions.d.ts.map +0 -1
  1196. package/dist/pc/browser/BrowserActions.js +0 -223
  1197. package/dist/pc/browser/BrowserActions.js.map +0 -1
  1198. package/dist/pc/browser/BrowserActions.test.d.ts +0 -7
  1199. package/dist/pc/browser/BrowserActions.test.d.ts.map +0 -1
  1200. package/dist/pc/browser/BrowserActions.test.js +0 -150
  1201. package/dist/pc/browser/BrowserActions.test.js.map +0 -1
  1202. package/dist/pc/browser/BrowserService.d.ts +0 -66
  1203. package/dist/pc/browser/BrowserService.d.ts.map +0 -1
  1204. package/dist/pc/browser/BrowserService.js +0 -319
  1205. package/dist/pc/browser/BrowserService.js.map +0 -1
  1206. package/dist/pc/browser/BrowserService.test.d.ts +0 -7
  1207. package/dist/pc/browser/BrowserService.test.d.ts.map +0 -1
  1208. package/dist/pc/browser/BrowserService.test.js +0 -160
  1209. package/dist/pc/browser/BrowserService.test.js.map +0 -1
  1210. package/dist/pc/browser/RefLocator.d.ts +0 -39
  1211. package/dist/pc/browser/RefLocator.d.ts.map +0 -1
  1212. package/dist/pc/browser/RefLocator.js +0 -88
  1213. package/dist/pc/browser/RefLocator.js.map +0 -1
  1214. package/dist/pc/browser/RoleSnapshotManager.d.ts +0 -22
  1215. package/dist/pc/browser/RoleSnapshotManager.d.ts.map +0 -1
  1216. package/dist/pc/browser/RoleSnapshotManager.js +0 -143
  1217. package/dist/pc/browser/RoleSnapshotManager.js.map +0 -1
  1218. package/dist/pc/browser/RoleSnapshotManager.test.d.ts +0 -7
  1219. package/dist/pc/browser/RoleSnapshotManager.test.d.ts.map +0 -1
  1220. package/dist/pc/browser/RoleSnapshotManager.test.js +0 -152
  1221. package/dist/pc/browser/RoleSnapshotManager.test.js.map +0 -1
  1222. package/dist/pc/browser/Security.test.d.ts +0 -7
  1223. package/dist/pc/browser/Security.test.d.ts.map +0 -1
  1224. package/dist/pc/browser/Security.test.js +0 -171
  1225. package/dist/pc/browser/Security.test.js.map +0 -1
  1226. package/dist/pc/browser/types.d.ts +0 -142
  1227. package/dist/pc/browser/types.d.ts.map +0 -1
  1228. package/dist/pc/browser/types.js +0 -60
  1229. package/dist/pc/browser/types.js.map +0 -1
  1230. package/dist/pc/google/OAuthFlow.d.ts +0 -58
  1231. package/dist/pc/google/OAuthFlow.d.ts.map +0 -1
  1232. package/dist/pc/google/OAuthFlow.js +0 -322
  1233. package/dist/pc/google/OAuthFlow.js.map +0 -1
  1234. package/dist/pc/google/OAuthFlow.test.d.ts +0 -7
  1235. package/dist/pc/google/OAuthFlow.test.d.ts.map +0 -1
  1236. package/dist/pc/google/OAuthFlow.test.js +0 -178
  1237. package/dist/pc/google/OAuthFlow.test.js.map +0 -1
  1238. package/dist/pc/google/ScopeManager.d.ts +0 -28
  1239. package/dist/pc/google/ScopeManager.d.ts.map +0 -1
  1240. package/dist/pc/google/ScopeManager.js +0 -75
  1241. package/dist/pc/google/ScopeManager.js.map +0 -1
  1242. package/dist/pc/google/TokenStore.d.ts +0 -49
  1243. package/dist/pc/google/TokenStore.d.ts.map +0 -1
  1244. package/dist/pc/google/TokenStore.js +0 -324
  1245. package/dist/pc/google/TokenStore.js.map +0 -1
  1246. package/dist/pc/google/TokenStore.test.d.ts +0 -7
  1247. package/dist/pc/google/TokenStore.test.d.ts.map +0 -1
  1248. package/dist/pc/google/TokenStore.test.js +0 -134
  1249. package/dist/pc/google/TokenStore.test.js.map +0 -1
  1250. package/dist/pc/google/services/CalendarService.d.ts +0 -45
  1251. package/dist/pc/google/services/CalendarService.d.ts.map +0 -1
  1252. package/dist/pc/google/services/CalendarService.js +0 -148
  1253. package/dist/pc/google/services/CalendarService.js.map +0 -1
  1254. package/dist/pc/google/services/DriveService.d.ts +0 -33
  1255. package/dist/pc/google/services/DriveService.d.ts.map +0 -1
  1256. package/dist/pc/google/services/DriveService.js +0 -199
  1257. package/dist/pc/google/services/DriveService.js.map +0 -1
  1258. package/dist/pc/google/services/GmailService.d.ts +0 -50
  1259. package/dist/pc/google/services/GmailService.d.ts.map +0 -1
  1260. package/dist/pc/google/services/GmailService.js +0 -177
  1261. package/dist/pc/google/services/GmailService.js.map +0 -1
  1262. package/dist/pc/google/services/Services.test.d.ts +0 -8
  1263. package/dist/pc/google/services/Services.test.d.ts.map +0 -1
  1264. package/dist/pc/google/services/Services.test.js +0 -148
  1265. package/dist/pc/google/services/Services.test.js.map +0 -1
  1266. package/dist/pc/google/services/SheetsService.d.ts +0 -27
  1267. package/dist/pc/google/services/SheetsService.d.ts.map +0 -1
  1268. package/dist/pc/google/services/SheetsService.js +0 -107
  1269. package/dist/pc/google/services/SheetsService.js.map +0 -1
  1270. package/dist/pc/google/types.d.ts +0 -97
  1271. package/dist/pc/google/types.d.ts.map +0 -1
  1272. package/dist/pc/google/types.js +0 -39
  1273. package/dist/pc/google/types.js.map +0 -1
  1274. package/dist/pc/google/types.test.d.ts +0 -8
  1275. package/dist/pc/google/types.test.d.ts.map +0 -1
  1276. package/dist/pc/google/types.test.js +0 -131
  1277. package/dist/pc/google/types.test.js.map +0 -1
  1278. package/dist/pc/sandbox/ContainerConfig.d.ts +0 -24
  1279. package/dist/pc/sandbox/ContainerConfig.d.ts.map +0 -1
  1280. package/dist/pc/sandbox/ContainerConfig.js +0 -103
  1281. package/dist/pc/sandbox/ContainerConfig.js.map +0 -1
  1282. package/dist/pc/sandbox/ContainerManager.d.ts +0 -31
  1283. package/dist/pc/sandbox/ContainerManager.d.ts.map +0 -1
  1284. package/dist/pc/sandbox/ContainerManager.js +0 -245
  1285. package/dist/pc/sandbox/ContainerManager.js.map +0 -1
  1286. package/dist/pc/sandbox/ContainerManager.test.d.ts +0 -2
  1287. package/dist/pc/sandbox/ContainerManager.test.d.ts.map +0 -1
  1288. package/dist/pc/sandbox/ContainerManager.test.js +0 -249
  1289. package/dist/pc/sandbox/ContainerManager.test.js.map +0 -1
  1290. package/dist/pc/sandbox/ExecAllowlist.d.ts +0 -35
  1291. package/dist/pc/sandbox/ExecAllowlist.d.ts.map +0 -1
  1292. package/dist/pc/sandbox/ExecAllowlist.js +0 -148
  1293. package/dist/pc/sandbox/ExecAllowlist.js.map +0 -1
  1294. package/dist/pc/sandbox/ExecAllowlist.test.d.ts +0 -2
  1295. package/dist/pc/sandbox/ExecAllowlist.test.d.ts.map +0 -1
  1296. package/dist/pc/sandbox/ExecAllowlist.test.js +0 -210
  1297. package/dist/pc/sandbox/ExecAllowlist.test.js.map +0 -1
  1298. package/dist/pc/sandbox/SandboxBrowser.d.ts +0 -29
  1299. package/dist/pc/sandbox/SandboxBrowser.d.ts.map +0 -1
  1300. package/dist/pc/sandbox/SandboxBrowser.js +0 -72
  1301. package/dist/pc/sandbox/SandboxBrowser.js.map +0 -1
  1302. package/dist/pc/sandbox/ToolPolicy.d.ts +0 -24
  1303. package/dist/pc/sandbox/ToolPolicy.d.ts.map +0 -1
  1304. package/dist/pc/sandbox/ToolPolicy.js +0 -127
  1305. package/dist/pc/sandbox/ToolPolicy.js.map +0 -1
  1306. package/dist/pc/sandbox/ToolPolicy.test.d.ts +0 -2
  1307. package/dist/pc/sandbox/ToolPolicy.test.d.ts.map +0 -1
  1308. package/dist/pc/sandbox/ToolPolicy.test.js +0 -189
  1309. package/dist/pc/sandbox/ToolPolicy.test.js.map +0 -1
  1310. package/dist/pc/sandbox/types.d.ts +0 -109
  1311. package/dist/pc/sandbox/types.d.ts.map +0 -1
  1312. package/dist/pc/sandbox/types.js +0 -26
  1313. package/dist/pc/sandbox/types.js.map +0 -1
  1314. package/dist/pc/types.d.ts +0 -84
  1315. package/dist/pc/types.d.ts.map +0 -1
  1316. package/dist/pc/types.js +0 -7
  1317. package/dist/pc/types.js.map +0 -1
  1318. package/dist/policy/Evidence.d.ts +0 -30
  1319. package/dist/policy/Evidence.d.ts.map +0 -1
  1320. package/dist/policy/Evidence.js +0 -134
  1321. package/dist/policy/Evidence.js.map +0 -1
  1322. package/dist/policy/PolicyEngine.d.ts +0 -34
  1323. package/dist/policy/PolicyEngine.d.ts.map +0 -1
  1324. package/dist/policy/PolicyEngine.js +0 -219
  1325. package/dist/policy/PolicyEngine.js.map +0 -1
  1326. package/dist/policy/PolicyStore.d.ts +0 -36
  1327. package/dist/policy/PolicyStore.d.ts.map +0 -1
  1328. package/dist/policy/PolicyStore.js +0 -160
  1329. package/dist/policy/PolicyStore.js.map +0 -1
  1330. package/dist/policy/RiskCalculator.d.ts +0 -20
  1331. package/dist/policy/RiskCalculator.d.ts.map +0 -1
  1332. package/dist/policy/RiskCalculator.js +0 -64
  1333. package/dist/policy/RiskCalculator.js.map +0 -1
  1334. package/dist/policy/default-policies.d.ts +0 -13
  1335. package/dist/policy/default-policies.d.ts.map +0 -1
  1336. package/dist/policy/default-policies.js +0 -99
  1337. package/dist/policy/default-policies.js.map +0 -1
  1338. package/dist/policy/index.d.ts +0 -11
  1339. package/dist/policy/index.d.ts.map +0 -1
  1340. package/dist/policy/index.js +0 -10
  1341. package/dist/policy/index.js.map +0 -1
  1342. package/dist/policy/policy.test.d.ts +0 -5
  1343. package/dist/policy/policy.test.d.ts.map +0 -1
  1344. package/dist/policy/policy.test.js +0 -628
  1345. package/dist/policy/policy.test.js.map +0 -1
  1346. package/dist/policy/types.d.ts +0 -71
  1347. package/dist/policy/types.d.ts.map +0 -1
  1348. package/dist/policy/types.js +0 -18
  1349. package/dist/policy/types.js.map +0 -1
  1350. package/dist/router/ModelARouter.d.ts +0 -79
  1351. package/dist/router/ModelARouter.d.ts.map +0 -1
  1352. package/dist/router/ModelARouter.js +0 -325
  1353. package/dist/router/ModelARouter.js.map +0 -1
  1354. package/dist/router/ModelARouter.test.d.ts +0 -6
  1355. package/dist/router/ModelARouter.test.d.ts.map +0 -1
  1356. package/dist/router/ModelARouter.test.js +0 -100
  1357. package/dist/router/ModelARouter.test.js.map +0 -1
  1358. package/dist/router/MultiChannelRouter.d.ts +0 -54
  1359. package/dist/router/MultiChannelRouter.d.ts.map +0 -1
  1360. package/dist/router/MultiChannelRouter.js +0 -138
  1361. package/dist/router/MultiChannelRouter.js.map +0 -1
  1362. package/dist/router/RouteRegistry.d.ts +0 -23
  1363. package/dist/router/RouteRegistry.d.ts.map +0 -1
  1364. package/dist/router/RouteRegistry.js +0 -42
  1365. package/dist/router/RouteRegistry.js.map +0 -1
  1366. package/dist/router/browser/BrowserAgent.d.ts +0 -30
  1367. package/dist/router/browser/BrowserAgent.d.ts.map +0 -1
  1368. package/dist/router/browser/BrowserAgent.js +0 -232
  1369. package/dist/router/browser/BrowserAgent.js.map +0 -1
  1370. package/dist/router/browser/BrowserManager.d.ts +0 -36
  1371. package/dist/router/browser/BrowserManager.d.ts.map +0 -1
  1372. package/dist/router/browser/BrowserManager.js +0 -106
  1373. package/dist/router/browser/BrowserManager.js.map +0 -1
  1374. package/dist/router/browser/BrowserPool.d.ts +0 -37
  1375. package/dist/router/browser/BrowserPool.d.ts.map +0 -1
  1376. package/dist/router/browser/BrowserPool.js +0 -114
  1377. package/dist/router/browser/BrowserPool.js.map +0 -1
  1378. package/dist/router/handlers/GitOpsHandler.d.ts +0 -24
  1379. package/dist/router/handlers/GitOpsHandler.d.ts.map +0 -1
  1380. package/dist/router/handlers/GitOpsHandler.js +0 -66
  1381. package/dist/router/handlers/GitOpsHandler.js.map +0 -1
  1382. package/dist/router/index.d.ts +0 -22
  1383. package/dist/router/index.d.ts.map +0 -1
  1384. package/dist/router/index.js +0 -29
  1385. package/dist/router/index.js.map +0 -1
  1386. package/dist/router/index.test.d.ts +0 -2
  1387. package/dist/router/index.test.d.ts.map +0 -1
  1388. package/dist/router/index.test.js +0 -78
  1389. package/dist/router/index.test.js.map +0 -1
  1390. package/dist/router/notifications/NotificationManager.d.ts +0 -37
  1391. package/dist/router/notifications/NotificationManager.d.ts.map +0 -1
  1392. package/dist/router/notifications/NotificationManager.js +0 -118
  1393. package/dist/router/notifications/NotificationManager.js.map +0 -1
  1394. package/dist/router/planner/TaskExecutor.d.ts +0 -48
  1395. package/dist/router/planner/TaskExecutor.d.ts.map +0 -1
  1396. package/dist/router/planner/TaskExecutor.js +0 -160
  1397. package/dist/router/planner/TaskExecutor.js.map +0 -1
  1398. package/dist/router/planner/TaskExecutor.test.d.ts +0 -6
  1399. package/dist/router/planner/TaskExecutor.test.d.ts.map +0 -1
  1400. package/dist/router/planner/TaskExecutor.test.js +0 -121
  1401. package/dist/router/planner/TaskExecutor.test.js.map +0 -1
  1402. package/dist/router/planner/TaskPlanner.d.ts +0 -37
  1403. package/dist/router/planner/TaskPlanner.d.ts.map +0 -1
  1404. package/dist/router/planner/TaskPlanner.js +0 -176
  1405. package/dist/router/planner/TaskPlanner.js.map +0 -1
  1406. package/dist/router/planner/TaskPlanner.test.d.ts +0 -6
  1407. package/dist/router/planner/TaskPlanner.test.d.ts.map +0 -1
  1408. package/dist/router/planner/TaskPlanner.test.js +0 -119
  1409. package/dist/router/planner/TaskPlanner.test.js.map +0 -1
  1410. package/dist/router/qa/TelegramQABridge.d.ts +0 -37
  1411. package/dist/router/qa/TelegramQABridge.d.ts.map +0 -1
  1412. package/dist/router/qa/TelegramQABridge.js +0 -147
  1413. package/dist/router/qa/TelegramQABridge.js.map +0 -1
  1414. package/dist/router/qa/TelegramQABridge.test.d.ts +0 -6
  1415. package/dist/router/qa/TelegramQABridge.test.d.ts.map +0 -1
  1416. package/dist/router/qa/TelegramQABridge.test.js +0 -143
  1417. package/dist/router/qa/TelegramQABridge.test.js.map +0 -1
  1418. package/dist/router/resolvers/RepoResolver.d.ts +0 -29
  1419. package/dist/router/resolvers/RepoResolver.d.ts.map +0 -1
  1420. package/dist/router/resolvers/RepoResolver.js +0 -105
  1421. package/dist/router/resolvers/RepoResolver.js.map +0 -1
  1422. package/dist/router/resolvers/RepoResolver.test.d.ts +0 -6
  1423. package/dist/router/resolvers/RepoResolver.test.d.ts.map +0 -1
  1424. package/dist/router/resolvers/RepoResolver.test.js +0 -92
  1425. package/dist/router/resolvers/RepoResolver.test.js.map +0 -1
  1426. package/dist/router/routes/BaseRoute.d.ts +0 -22
  1427. package/dist/router/routes/BaseRoute.d.ts.map +0 -1
  1428. package/dist/router/routes/BaseRoute.js +0 -55
  1429. package/dist/router/routes/BaseRoute.js.map +0 -1
  1430. package/dist/router/routes/BrowseRoute.d.ts +0 -21
  1431. package/dist/router/routes/BrowseRoute.d.ts.map +0 -1
  1432. package/dist/router/routes/BrowseRoute.js +0 -121
  1433. package/dist/router/routes/BrowseRoute.js.map +0 -1
  1434. package/dist/router/routes/CompositeRoute.d.ts +0 -28
  1435. package/dist/router/routes/CompositeRoute.d.ts.map +0 -1
  1436. package/dist/router/routes/CompositeRoute.js +0 -125
  1437. package/dist/router/routes/CompositeRoute.js.map +0 -1
  1438. package/dist/router/routes/CompositeRoute.test.d.ts +0 -6
  1439. package/dist/router/routes/CompositeRoute.test.d.ts.map +0 -1
  1440. package/dist/router/routes/CompositeRoute.test.js +0 -82
  1441. package/dist/router/routes/CompositeRoute.test.js.map +0 -1
  1442. package/dist/router/routes/DevRoute.d.ts +0 -26
  1443. package/dist/router/routes/DevRoute.d.ts.map +0 -1
  1444. package/dist/router/routes/DevRoute.js +0 -118
  1445. package/dist/router/routes/DevRoute.js.map +0 -1
  1446. package/dist/router/routes/GoogleRoute.d.ts +0 -46
  1447. package/dist/router/routes/GoogleRoute.d.ts.map +0 -1
  1448. package/dist/router/routes/GoogleRoute.js +0 -293
  1449. package/dist/router/routes/GoogleRoute.js.map +0 -1
  1450. package/dist/router/routes/GoogleRoute.test.d.ts +0 -6
  1451. package/dist/router/routes/GoogleRoute.test.d.ts.map +0 -1
  1452. package/dist/router/routes/GoogleRoute.test.js +0 -171
  1453. package/dist/router/routes/GoogleRoute.test.js.map +0 -1
  1454. package/dist/router/routes/MonitorRoute.d.ts +0 -25
  1455. package/dist/router/routes/MonitorRoute.d.ts.map +0 -1
  1456. package/dist/router/routes/MonitorRoute.js +0 -112
  1457. package/dist/router/routes/MonitorRoute.js.map +0 -1
  1458. package/dist/router/routes/MonitorRoute.test.d.ts +0 -6
  1459. package/dist/router/routes/MonitorRoute.test.d.ts.map +0 -1
  1460. package/dist/router/routes/MonitorRoute.test.js +0 -97
  1461. package/dist/router/routes/MonitorRoute.test.js.map +0 -1
  1462. package/dist/router/routes/ResearchRoute.d.ts +0 -25
  1463. package/dist/router/routes/ResearchRoute.d.ts.map +0 -1
  1464. package/dist/router/routes/ResearchRoute.js +0 -113
  1465. package/dist/router/routes/ResearchRoute.js.map +0 -1
  1466. package/dist/router/routes/ResearchRoute.test.d.ts +0 -6
  1467. package/dist/router/routes/ResearchRoute.test.d.ts.map +0 -1
  1468. package/dist/router/routes/ResearchRoute.test.js +0 -104
  1469. package/dist/router/routes/ResearchRoute.test.js.map +0 -1
  1470. package/dist/router/routes/UtilityRoute.d.ts +0 -32
  1471. package/dist/router/routes/UtilityRoute.d.ts.map +0 -1
  1472. package/dist/router/routes/UtilityRoute.js +0 -144
  1473. package/dist/router/routes/UtilityRoute.js.map +0 -1
  1474. package/dist/router/routes/UtilityRoute.test.d.ts +0 -6
  1475. package/dist/router/routes/UtilityRoute.test.d.ts.map +0 -1
  1476. package/dist/router/routes/UtilityRoute.test.js +0 -134
  1477. package/dist/router/routes/UtilityRoute.test.js.map +0 -1
  1478. package/dist/router/services/BookmarkService.d.ts +0 -34
  1479. package/dist/router/services/BookmarkService.d.ts.map +0 -1
  1480. package/dist/router/services/BookmarkService.js +0 -86
  1481. package/dist/router/services/BookmarkService.js.map +0 -1
  1482. package/dist/router/services/BookmarkService.test.d.ts +0 -6
  1483. package/dist/router/services/BookmarkService.test.d.ts.map +0 -1
  1484. package/dist/router/services/BookmarkService.test.js +0 -82
  1485. package/dist/router/services/BookmarkService.test.js.map +0 -1
  1486. package/dist/router/services/CalendarService.d.ts +0 -30
  1487. package/dist/router/services/CalendarService.d.ts.map +0 -1
  1488. package/dist/router/services/CalendarService.js +0 -168
  1489. package/dist/router/services/CalendarService.js.map +0 -1
  1490. package/dist/router/services/CalendarService.test.d.ts +0 -6
  1491. package/dist/router/services/CalendarService.test.d.ts.map +0 -1
  1492. package/dist/router/services/CalendarService.test.js +0 -107
  1493. package/dist/router/services/CalendarService.test.js.map +0 -1
  1494. package/dist/router/services/ContentSummarizer.d.ts +0 -32
  1495. package/dist/router/services/ContentSummarizer.d.ts.map +0 -1
  1496. package/dist/router/services/ContentSummarizer.js +0 -108
  1497. package/dist/router/services/ContentSummarizer.js.map +0 -1
  1498. package/dist/router/services/ContentSummarizer.test.d.ts +0 -6
  1499. package/dist/router/services/ContentSummarizer.test.d.ts.map +0 -1
  1500. package/dist/router/services/ContentSummarizer.test.js +0 -82
  1501. package/dist/router/services/ContentSummarizer.test.js.map +0 -1
  1502. package/dist/router/services/DailyReportGenerator.d.ts +0 -34
  1503. package/dist/router/services/DailyReportGenerator.d.ts.map +0 -1
  1504. package/dist/router/services/DailyReportGenerator.js +0 -110
  1505. package/dist/router/services/DailyReportGenerator.js.map +0 -1
  1506. package/dist/router/services/DocumentGenerator.d.ts +0 -20
  1507. package/dist/router/services/DocumentGenerator.d.ts.map +0 -1
  1508. package/dist/router/services/DocumentGenerator.js +0 -34
  1509. package/dist/router/services/DocumentGenerator.js.map +0 -1
  1510. package/dist/router/services/DriveService.d.ts +0 -29
  1511. package/dist/router/services/DriveService.d.ts.map +0 -1
  1512. package/dist/router/services/DriveService.js +0 -176
  1513. package/dist/router/services/DriveService.js.map +0 -1
  1514. package/dist/router/services/DriveService.test.d.ts +0 -6
  1515. package/dist/router/services/DriveService.test.d.ts.map +0 -1
  1516. package/dist/router/services/DriveService.test.js +0 -83
  1517. package/dist/router/services/DriveService.test.js.map +0 -1
  1518. package/dist/router/services/FileAnalyzer.d.ts +0 -26
  1519. package/dist/router/services/FileAnalyzer.d.ts.map +0 -1
  1520. package/dist/router/services/FileAnalyzer.js +0 -82
  1521. package/dist/router/services/FileAnalyzer.js.map +0 -1
  1522. package/dist/router/services/GitHubMonitor.d.ts +0 -38
  1523. package/dist/router/services/GitHubMonitor.d.ts.map +0 -1
  1524. package/dist/router/services/GitHubMonitor.js +0 -82
  1525. package/dist/router/services/GitHubMonitor.js.map +0 -1
  1526. package/dist/router/services/GitHubMonitor.test.d.ts +0 -6
  1527. package/dist/router/services/GitHubMonitor.test.d.ts.map +0 -1
  1528. package/dist/router/services/GitHubMonitor.test.js +0 -103
  1529. package/dist/router/services/GitHubMonitor.test.js.map +0 -1
  1530. package/dist/router/services/GmailService.d.ts +0 -28
  1531. package/dist/router/services/GmailService.d.ts.map +0 -1
  1532. package/dist/router/services/GmailService.js +0 -169
  1533. package/dist/router/services/GmailService.js.map +0 -1
  1534. package/dist/router/services/GmailService.test.d.ts +0 -6
  1535. package/dist/router/services/GmailService.test.d.ts.map +0 -1
  1536. package/dist/router/services/GmailService.test.js +0 -113
  1537. package/dist/router/services/GmailService.test.js.map +0 -1
  1538. package/dist/router/services/GoogleAuthManager.d.ts +0 -31
  1539. package/dist/router/services/GoogleAuthManager.d.ts.map +0 -1
  1540. package/dist/router/services/GoogleAuthManager.js +0 -219
  1541. package/dist/router/services/GoogleAuthManager.js.map +0 -1
  1542. package/dist/router/services/GoogleAuthManager.test.d.ts +0 -6
  1543. package/dist/router/services/GoogleAuthManager.test.d.ts.map +0 -1
  1544. package/dist/router/services/GoogleAuthManager.test.js +0 -153
  1545. package/dist/router/services/GoogleAuthManager.test.js.map +0 -1
  1546. package/dist/router/services/ImageGenerator.d.ts +0 -20
  1547. package/dist/router/services/ImageGenerator.d.ts.map +0 -1
  1548. package/dist/router/services/ImageGenerator.js +0 -41
  1549. package/dist/router/services/ImageGenerator.js.map +0 -1
  1550. package/dist/router/services/NoteService.d.ts +0 -36
  1551. package/dist/router/services/NoteService.d.ts.map +0 -1
  1552. package/dist/router/services/NoteService.js +0 -125
  1553. package/dist/router/services/NoteService.js.map +0 -1
  1554. package/dist/router/services/NoteService.test.d.ts +0 -6
  1555. package/dist/router/services/NoteService.test.d.ts.map +0 -1
  1556. package/dist/router/services/NoteService.test.js +0 -90
  1557. package/dist/router/services/NoteService.test.js.map +0 -1
  1558. package/dist/router/services/ProgressReporter.d.ts +0 -32
  1559. package/dist/router/services/ProgressReporter.d.ts.map +0 -1
  1560. package/dist/router/services/ProgressReporter.js +0 -81
  1561. package/dist/router/services/ProgressReporter.js.map +0 -1
  1562. package/dist/router/services/SchedulerEngine.d.ts +0 -55
  1563. package/dist/router/services/SchedulerEngine.d.ts.map +0 -1
  1564. package/dist/router/services/SchedulerEngine.js +0 -215
  1565. package/dist/router/services/SchedulerEngine.js.map +0 -1
  1566. package/dist/router/services/SchedulerEngine.test.d.ts +0 -6
  1567. package/dist/router/services/SchedulerEngine.test.d.ts.map +0 -1
  1568. package/dist/router/services/SchedulerEngine.test.js +0 -102
  1569. package/dist/router/services/SchedulerEngine.test.js.map +0 -1
  1570. package/dist/router/services/ScreenshotService.d.ts +0 -22
  1571. package/dist/router/services/ScreenshotService.d.ts.map +0 -1
  1572. package/dist/router/services/ScreenshotService.js +0 -39
  1573. package/dist/router/services/ScreenshotService.js.map +0 -1
  1574. package/dist/router/services/SheetsService.d.ts +0 -27
  1575. package/dist/router/services/SheetsService.d.ts.map +0 -1
  1576. package/dist/router/services/SheetsService.js +0 -91
  1577. package/dist/router/services/SheetsService.js.map +0 -1
  1578. package/dist/router/services/SheetsService.test.d.ts +0 -6
  1579. package/dist/router/services/SheetsService.test.d.ts.map +0 -1
  1580. package/dist/router/services/SheetsService.test.js +0 -86
  1581. package/dist/router/services/SheetsService.test.js.map +0 -1
  1582. package/dist/router/services/TranslationService.d.ts +0 -21
  1583. package/dist/router/services/TranslationService.d.ts.map +0 -1
  1584. package/dist/router/services/TranslationService.js +0 -76
  1585. package/dist/router/services/TranslationService.js.map +0 -1
  1586. package/dist/router/services/TranslationService.test.d.ts +0 -6
  1587. package/dist/router/services/TranslationService.test.d.ts.map +0 -1
  1588. package/dist/router/services/TranslationService.test.js +0 -61
  1589. package/dist/router/services/TranslationService.test.js.map +0 -1
  1590. package/dist/router/services/WebSearchService.d.ts +0 -24
  1591. package/dist/router/services/WebSearchService.d.ts.map +0 -1
  1592. package/dist/router/services/WebSearchService.js +0 -78
  1593. package/dist/router/services/WebSearchService.js.map +0 -1
  1594. package/dist/router/services/WebSearchService.test.d.ts +0 -6
  1595. package/dist/router/services/WebSearchService.test.d.ts.map +0 -1
  1596. package/dist/router/services/WebSearchService.test.js +0 -75
  1597. package/dist/router/services/WebSearchService.test.js.map +0 -1
  1598. package/dist/router/services/YouTubeService.d.ts +0 -30
  1599. package/dist/router/services/YouTubeService.d.ts.map +0 -1
  1600. package/dist/router/services/YouTubeService.js +0 -145
  1601. package/dist/router/services/YouTubeService.js.map +0 -1
  1602. package/dist/router/services/YouTubeService.test.d.ts +0 -6
  1603. package/dist/router/services/YouTubeService.test.d.ts.map +0 -1
  1604. package/dist/router/services/YouTubeService.test.js +0 -128
  1605. package/dist/router/services/YouTubeService.test.js.map +0 -1
  1606. package/dist/router/services/google-types.d.ts +0 -222
  1607. package/dist/router/services/google-types.d.ts.map +0 -1
  1608. package/dist/router/services/google-types.js +0 -6
  1609. package/dist/router/services/google-types.js.map +0 -1
  1610. package/dist/router/sessions/DevSessionManager.d.ts +0 -39
  1611. package/dist/router/sessions/DevSessionManager.d.ts.map +0 -1
  1612. package/dist/router/sessions/DevSessionManager.js +0 -151
  1613. package/dist/router/sessions/DevSessionManager.js.map +0 -1
  1614. package/dist/router/types.d.ts +0 -117
  1615. package/dist/router/types.d.ts.map +0 -1
  1616. package/dist/router/types.js +0 -25
  1617. package/dist/router/types.js.map +0 -1
  1618. package/dist/sync/ConflictResolver.d.ts +0 -29
  1619. package/dist/sync/ConflictResolver.d.ts.map +0 -1
  1620. package/dist/sync/ConflictResolver.js +0 -106
  1621. package/dist/sync/ConflictResolver.js.map +0 -1
  1622. package/dist/sync/DataSerializer.d.ts +0 -33
  1623. package/dist/sync/DataSerializer.d.ts.map +0 -1
  1624. package/dist/sync/DataSerializer.js +0 -207
  1625. package/dist/sync/DataSerializer.js.map +0 -1
  1626. package/dist/sync/DeviceManager.d.ts +0 -31
  1627. package/dist/sync/DeviceManager.d.ts.map +0 -1
  1628. package/dist/sync/DeviceManager.js +0 -141
  1629. package/dist/sync/DeviceManager.js.map +0 -1
  1630. package/dist/sync/SyncEngine.d.ts +0 -56
  1631. package/dist/sync/SyncEngine.d.ts.map +0 -1
  1632. package/dist/sync/SyncEngine.js +0 -172
  1633. package/dist/sync/SyncEngine.js.map +0 -1
  1634. package/dist/sync/SyncStore.d.ts +0 -46
  1635. package/dist/sync/SyncStore.d.ts.map +0 -1
  1636. package/dist/sync/SyncStore.js +0 -219
  1637. package/dist/sync/SyncStore.js.map +0 -1
  1638. package/dist/sync/index.d.ts +0 -12
  1639. package/dist/sync/index.d.ts.map +0 -1
  1640. package/dist/sync/index.js +0 -11
  1641. package/dist/sync/index.js.map +0 -1
  1642. package/dist/sync/sync.test.d.ts +0 -5
  1643. package/dist/sync/sync.test.d.ts.map +0 -1
  1644. package/dist/sync/sync.test.js +0 -416
  1645. package/dist/sync/sync.test.js.map +0 -1
  1646. package/dist/sync/types.d.ts +0 -80
  1647. package/dist/sync/types.d.ts.map +0 -1
  1648. package/dist/sync/types.js +0 -12
  1649. package/dist/sync/types.js.map +0 -1
  1650. package/dist/tools/browser/index.d.ts +0 -47
  1651. package/dist/tools/browser/index.d.ts.map +0 -1
  1652. package/dist/tools/browser/index.js +0 -413
  1653. package/dist/tools/browser/index.js.map +0 -1
  1654. package/dist/tools/google/index.d.ts +0 -84
  1655. package/dist/tools/google/index.d.ts.map +0 -1
  1656. package/dist/tools/google/index.js +0 -508
  1657. package/dist/tools/google/index.js.map +0 -1
  1658. package/dist/tools/integration/index.d.ts +0 -24
  1659. package/dist/tools/integration/index.d.ts.map +0 -1
  1660. package/dist/tools/integration/index.js +0 -223
  1661. package/dist/tools/integration/index.js.map +0 -1
  1662. package/dist/tools/sandbox/index.d.ts +0 -25
  1663. package/dist/tools/sandbox/index.d.ts.map +0 -1
  1664. package/dist/tools/sandbox/index.js +0 -255
  1665. package/dist/tools/sandbox/index.js.map +0 -1
  1666. package/dist/tools/vision/index.d.ts +0 -45
  1667. package/dist/tools/vision/index.d.ts.map +0 -1
  1668. package/dist/tools/vision/index.js +0 -328
  1669. package/dist/tools/vision/index.js.map +0 -1
  1670. package/dist/tools/voice/index.d.ts +0 -24
  1671. package/dist/tools/voice/index.d.ts.map +0 -1
  1672. package/dist/tools/voice/index.js +0 -204
  1673. package/dist/tools/voice/index.js.map +0 -1
  1674. package/dist/types/tool.d.ts +0 -64
  1675. package/dist/types/tool.d.ts.map +0 -1
  1676. package/dist/types/tool.js +0 -3
  1677. package/dist/types/tool.js.map +0 -1
@@ -1,1939 +1,2078 @@
1
- ---
2
- description: Execute implementation from SPEC
3
- argument-hint: "feature name" or --phase N
4
- ---
5
-
6
- # /vibe.run
7
-
8
- Execute **Scenario-Driven Implementation** with automatic quality verification.
9
-
10
- > **Core Principle**: Scenarios are both the implementation unit and verification criteria. All scenarios passing = Quality guaranteed.
11
-
12
- ## Usage
13
-
14
- ```
15
- /vibe.run "feature-name" # Full implementation
16
- /vibe.run "feature-name" --phase 1 # Specific Phase only
17
- /vibe.run "feature-name" ultrawork # ULTRAWORK mode (recommended)
18
- /vibe.run "feature-name" ulw # Short alias for ultrawork
19
- ```
20
-
21
- ---
22
-
23
- > **⏱️ Timer**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
24
-
25
- ## **Scenario-Driven Development (SDD)**
26
-
27
- > Automate **Scenario = Implementation = Verification** so even non-developers can trust quality
28
-
29
- ### Core Flow
30
-
31
- ```
32
- ┌─────────────────────────────────────────────────────────────────┐
33
- │ SCENARIO-DRIVEN IMPLEMENTATION │
34
- │ │
35
- │ Load Feature file │
36
- │ ↓ │
37
- │ ┌──────────────────────────────────────────────────────────┐ │
38
- │ │ Scenario 1: Happy Path │ │
39
- │ │ Given → When → Then │ │
40
- │ │ ↓ │ │
41
- │ [Implement] → [Verify immediately] → ✅ Pass
42
- └──────────────────────────────────────────────────────────┘
43
-
44
- ┌──────────────────────────────────────────────────────────┐
45
- │ Scenario 2: Edge Case │
46
- │ │ Given When Then │ │
47
- │ ││ │
48
- │ │ [Implement] → [Verify] → ❌ Fail → [Fix] → ✅ Pass │ │
49
- └──────────────────────────────────────────────────────────┘
50
-
51
- ┌──────────────────────────────────────────────────────────┐
52
- │ Scenario N: ... │
53
- │ │ [Implement] [Verify immediately] → ✅ Pass │ │
54
- └──────────────────────────────────────────────────────────┘
55
- │ ↓
56
- ┌──────────────────────────────────────────────────────────┐
57
- 📊 QUALITY REPORT
58
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ │
59
- Scenarios: 5/5 passed ✅
60
- │ │ Quality score: 94/100 │ │
61
- │ │ Build: | Tests: │ │
62
- │ └──────────────────────────────────────────────────────────┘ │
63
- └─────────────────────────────────────────────────────────────────┘
64
- ```
65
-
66
- ### Scenario = Implementation Unit
67
-
68
- **Traditional approach (Phase-based)**:
69
- ```
70
- Phase 1 → Phase 2 → Phase 3 → ... → Verify at the end
71
-
72
- "Where did it go wrong?"
73
- ```
74
-
75
- **SDD approach (Scenario-based)**:
76
- ```
77
- Scenario 1 → Implement → Verify ✅
78
- Scenario 2 → Implement → Verify
79
- Scenario 3 → Implement → Verify ❌ → Fix → ✅
80
- ...
81
- All pass = Quality guaranteed
82
- ```
83
-
84
- ### Automated Verification
85
-
86
- After implementing each scenario, **automatic verification**:
87
-
88
- | Verification Item | Auto Check |
89
- |-------------------|------------|
90
- | Given (precondition) | State/data preparation confirmed |
91
- | When (action) | Feature execution possible |
92
- | Then (result) | Expected result matches |
93
- | Code quality | Complexity, style, security |
94
-
95
- ### Auto-Fix on Failure
96
-
97
- ```
98
- Scenario verification failed
99
-
100
- [Root cause analysis] - Which Then condition failed?
101
-
102
- [Implement fix] - Fix only that part
103
-
104
- [Re-verify] - Check again
105
-
106
- Repeat until pass (max 3 times)
107
- ```
108
-
109
- ---
110
-
111
- ## **ULTRAWORK Mode** (ulw)
112
-
113
- > Include `ultrawork` or `ulw` in your command to activate **maximum performance mode**.
114
-
115
- ### What ULTRAWORK Enables
116
-
117
- When you include `ultrawork` (or `ulw`), ALL of these activate automatically:
118
-
119
- | Feature | Description |
120
- |---------|-------------|
121
- | **Parallel Exploration** | 3+ Task(haiku) agents run simultaneously |
122
- | **Boulder Loop** | Auto-continues until ALL phases complete |
123
- | **Context Compression** | Aggressive auto-save at 70%+ context |
124
- | **No Pause** | Doesn't wait for confirmation between phases |
125
- | **External LLMs** | Auto-consults GPT/Gemini if enabled |
126
- | **Error Recovery** | Auto-retries on failure (up to 3 times) |
127
- | **Race Review (v2.6.9)** | Multi-LLM review (GPT+Gemini) with cross-validation |
128
-
129
- ### Boulder Loop (Inspired by Sisyphus)
130
-
131
- Like Sisyphus rolling the boulder, ULTRAWORK **keeps going until done**:
132
-
133
- ```
134
- ┌─────────────────────────────────────────────────────────────────┐
135
- │ BOULDER LOOP (ultrawork) │
136
- │ │
137
- │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
138
- │ │ Phase 1 │───→│ Phase 2 │───→│ Phase 3 │───→│ Phase N │ │
139
- │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
140
- │ │ │ │ │ │
141
- │ ↓ ↓ ↓ ↓ │
142
- │ [Parallel] [Parallel] [Parallel] [Parallel] │
143
- │ [Implement] [Implement] [Implement] [Implement] │
144
- │ [Test] [Test] [Test] [Test] │
145
- │ │ │ │ │ │
146
- │ └───────────────┴───────────────┴───────────────┘ │
147
- │ │ │
148
- │ ↓ │
149
- │ ┌──────────────┐ │
150
- │ │ ALL DONE? │ │
151
- │ └──────────────┘ │
152
- │ │ │ │
153
- │ NO YES │
154
- │ │ │ │
155
- ↓ │
156
- [Continue] [🎉 Complete!] │
157
- │ │
158
- │ NO STOPPING until acceptance criteria met or error limit hit │
159
- └─────────────────────────────────────────────────────────────────┘
160
- ```
161
-
162
- ### Ralph Loop (Completion Verification) - CRITICAL
163
-
164
- > **Inspired by [ghuntley.com/ralph](https://ghuntley.com/ralph)**: "Deterministically bad in an undeterministic world" - Keep iterating until TRULY complete.
165
-
166
- **Problem**: AI often claims "complete" when implementation is partial.
167
-
168
- **Solution**: RTM-based automated coverage verification with iteration tracking.
169
-
170
- ```
171
- ┌─────────────────────────────────────────────────────────────────┐
172
- │ RALPH LOOP (Mandatory) │
173
- │ │
174
- │ After ALL phases complete: │
175
- │ │
176
- │ ┌──────────────────────────────────────────────────────────┐ │
177
- │ │ RTM COVERAGE VERIFICATION [Iteration {{ITER}}/{{MAX}}] │ │
178
- │ │ │ │
179
- │ │ Generate RTM via core tools: │ │
180
- │ │ → generateTraceabilityMatrix("{feature-name}") │ │
181
- │ │ │ │
182
- │ │ Coverage Metrics (automated): │ │
183
- │ │ □ Requirements coverage: {coveragePercent}% │ │
184
- │ │ □ SPEC → Feature mapping: {featureCovered}/{total} │ │
185
- │ │ □ Feature Test mapping: {testCovered}/{total} │ │
186
- │ │ □ Build successful? │ │
187
- │ │ □ Tests passing? │ │
188
- │ │ │ │
189
- │ │ UNCOVERED: {uncoveredRequirements[]} │ │
190
- │ └──────────────────────────────────────────────────────────┘ │
191
-
192
- ┌──────────┴──────────┐
193
- Coverage ≥ 95%?
194
- └──────────┬──────────┘
195
- │ │
196
- NO YES
197
- │ │
198
- ↓ ↓
199
- ┌────────────────┐ ┌────────────────┐
200
- IMPLEMENT │ │ ✅ TRULY DONE │ │
201
- UNCOVERED
202
- REQUIREMENTS │ │ Report final │ │
203
- (auto-extract) │ RTM coverage │ │
204
- └───────┬────────┘ └────────────────┘
205
-
206
- └──────────→ [Re-generate RTM]
207
-
208
- MAX_ITERATIONS: 5 (prevent infinite loops)
209
- COVERAGE_THRESHOLD: 95% (quality gate)
210
- ZERO TOLERANCE for scope reduction
211
- └─────────────────────────────────────────────────────────────────┘
212
- ```
213
-
214
- **Ralph Loop with RTM:**
215
-
216
- ```bash
217
- # Generate RTM for coverage verification
218
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.generateTraceabilityMatrix('{feature-name}', {projectPath: process.cwd()}).then(r => console.log(JSON.stringify(r, null, 2))))"
219
- ```
220
-
221
- **RTM provides automated metrics:**
222
-
223
- | Metric | Description |
224
- |--------|-------------|
225
- | `totalRequirements` | Total REQ-* items in SPEC |
226
- | `specCovered` | Requirements with SPEC mapping |
227
- | `featureCovered` | Requirements with Feature scenarios |
228
- | `testCovered` | Requirements with test files |
229
- | `coveragePercent` | Overall coverage percentage |
230
- | `uncoveredRequirements` | List of missing REQ-* IDs |
231
-
232
- **Ralph Loop Rules:**
233
-
234
- | Rule | Description |
235
- |------|-------------|
236
- | **No Scope Reduction** | Never say "simplified" or "basic version" - implement FULL request |
237
- | **Iteration Tracking** | Display `[{{ITER}}/{{MAX}}]` to show progress |
238
- | **RTM-Based Gap List** | Use `uncoveredRequirements` array - no manual comparison |
239
- | **Coverage Threshold** | Must reach 95% coverage to complete |
240
- | **Max Iterations** | Stop at 5 iterations (report remaining gaps) |
241
-
242
- **Ralph Loop Output Format:**
243
-
244
- ```
245
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
246
- 🔄 RALPH VERIFICATION [Iteration 1/5]
247
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
248
-
249
- 📊 RTM Coverage Report: login
250
-
251
- Requirements Traceability:
252
- Total Requirements: 9
253
- SPEC Covered: 9/9 (100%)
254
- Feature Covered: 5/9 (55%)
255
- Test Covered: 4/9 (44%)
256
-
257
- ✅ REQ-login-001: Login form UI → Scenario 1 → login.test.ts
258
- REQ-login-002: Email validation → Scenario 2 → validation.test.ts
259
- REQ-login-003: Password validation → Scenario 2 → validation.test.ts
260
- ❌ REQ-login-004: Remember me checkbox → NOT IMPLEMENTED
261
- ❌ REQ-login-005: Forgot password link → NOT IMPLEMENTED
262
- REQ-login-006: API integration → Scenario 3 → api.test.ts
263
- ❌ REQ-login-007: Loading state → NOT IMPLEMENTED
264
- ❌ REQ-login-008: Error toast NOT IMPLEMENTED
265
- ✅ REQ-login-009: Session storage → Scenario 4 → (no test)
266
-
267
- Overall Coverage: 55% ⚠️ BELOW 95% THRESHOLD
268
-
269
- UNCOVERED REQUIREMENTS (auto-extracted from RTM):
270
- 1. REQ-login-004: Remember me checkbox
271
- 2. REQ-login-005: Forgot password link
272
- 3. REQ-login-007: Loading state
273
- 4. REQ-login-008: Error toast notifications
274
-
275
- ⚠️ NOT COMPLETE - Implementing uncovered requirements...
276
-
277
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
278
- 🔄 RALPH VERIFICATION [Iteration 2/5]
279
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
280
-
281
- 📊 RTM Coverage Report: login
282
-
283
- Requirements Traceability:
284
- Total Requirements: 9
285
- SPEC Covered: 9/9 (100%)
286
- Feature Covered: 9/9 (100%)
287
- Test Covered: 9/9 (100%)
288
-
289
- Overall Coverage: 100% ✅ ABOVE 95% THRESHOLD
290
-
291
- Build: ✅ Passed
292
- Tests: 12/12 Passed
293
- Type Check: No errors
294
-
295
- RALPH VERIFIED COMPLETE!
296
-
297
- 📄 RTM saved: .claude/vibe/rtm/login-rtm.md
298
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
299
- ```
300
-
301
- **When to Trigger Ralph Loop:**
302
-
303
- 1. After all phases complete
304
- 2. Before final quality report
305
- 3. Whenever user says "ultrawork" or "ralph"
306
-
307
- **Forbidden Responses (VIOLATIONS):**
308
-
309
- | NEVER Say | ✅ Instead |
310
- |-------------|-----------|
311
- | "I've implemented a basic version" | Implement the FULL version |
312
- | "This is a simplified approach" | Implement as specified |
313
- | "You can add X later" | Add X now |
314
- | "For demonstration purposes" | Implement production-ready |
315
- | "The core functionality is done" | ALL functionality must be done |
316
-
317
- ### ULTRAWORK Example
318
-
319
- ```
320
- User: /vibe.run "brick-game" ultrawork
321
-
322
- Claude:
323
- 🚀 ULTRAWORK MODE ACTIVATED
324
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
325
-
326
- 📄 SPEC: .claude/vibe/specs/brick-game.md
327
- 🎯 4 Phases detected
328
- Boulder Loop: ENABLED (will continue until all phases complete)
329
- 🔄 Auto-retry: ON (max 3 per phase)
330
- 💾 Context compression: AGGRESSIVE
331
-
332
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
333
- 🏔️ BOULDER ROLLING... Phase 1/4
334
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
335
-
336
- ⚡ [PARALLEL] Launching 3 exploration agents...
337
- Exploration complete (7.2s)
338
- 🔨 Implementing...
339
- Phase 1 complete
340
-
341
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
342
- 🏔️ BOULDER ROLLING... Phase 2/4
343
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
344
-
345
- [PARALLEL] Launching 3 exploration agents...
346
- ✅ Exploration complete (6.8s)
347
- 🔨 Implementing...
348
- Test failed: collision detection
349
- 🔄 Auto-retry 1/3...
350
- 🔨 Fixing...
351
- Phase 2 complete
352
-
353
- [...continues automatically...]
354
-
355
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
356
- 🎉 BOULDER REACHED THE TOP!
357
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
358
-
359
- All 4 phases complete
360
- All acceptance criteria passed
361
- Build succeeded
362
- ✅ Tests passed
363
-
364
- ⏱️ Total: 8m 24s
365
- 📊 Retries: 2
366
- 💾 Context saved: 3 checkpoints
367
- ```
368
-
369
- ### Normal vs ULTRAWORK Comparison
370
-
371
- | Aspect | Normal | ULTRAWORK |
372
- |--------|--------|-----------|
373
- | Phase transition | May pause | Auto-continues |
374
- | On error | Reports and stops | Auto-retries (3x) |
375
- | Context 70%+ | Warning only | Auto-compress + save |
376
- | Exploration | Sequential possible | FORCED parallel |
377
- | Completion | Phase-by-phase | Until ALL done |
378
-
379
- ---
380
-
381
- ## Rules Reference
382
-
383
- **Must follow `~/.claude/vibe/rules/` (global):**
384
-
385
- - `core/development-philosophy.md` - Surgical precision, modify only requested scope
386
- - `core/quick-start.md` - Korean, DRY, SRP, YAGNI
387
- - `standards/complexity-metrics.md` - Functions ≤20 lines, nesting ≤3 levels
388
- - `quality/checklist.md` - Code quality checklist
389
-
390
- **Language guide:** `~/.claude/vibe/languages/{stack}.md` (global reference)
391
-
392
- ---
393
-
394
- ## Coding Guidelines (Mandatory)
395
-
396
- ### Type Safety: Use Types Explicitly
397
-
398
- > **Core Principle**: Use types explicitly in every language that has a type system!
399
-
400
- Type definitions are not just language syntax — they are a **core engineering philosophy for simplifying and controlling complex software**.
401
-
402
- ### Applies to ALL Typed Languages
403
-
404
- | Category | Languages | Key Principle |
405
- |----------|-----------|---------------|
406
- | **Static Typed** | Java, C#, C++, Go, Rust, Swift, Kotlin, Scala | Types = compile-time contracts |
407
- | **Gradual Typed** | TypeScript, Python (typing), PHP (typed), Ruby (RBS) | Types = optional safety nets |
408
- | **Functional** | Haskell, OCaml, F#, Elm | Types = logical proofs |
409
-
410
- ### Universal Anti-Patterns (All Languages)
411
-
412
- | Forbidden Pattern | Why | ✅ Instead |
413
- |---------------------|-----|-----------|
414
- | Type escape hatches (`any`, `Any`, `Object`, `void*`, `interface{}`) | Loses type info, runtime errors | Concrete types or `unknown` + guards |
415
- | Type suppression (`@ts-ignore`, `# type: ignore`, `@SuppressWarnings`) | Hides errors | Fix actual type issues |
416
- | Raw generic types (`List`, `Map` without params) | Loses type safety | `List<User>`, `Map<String, Order>` |
417
- | Excessive casting (`as`, `(Type)`, `unsafe`) | Bypasses compiler | Type guards or pattern matching |
418
-
419
- ### Language-Specific Guidelines
420
-
421
- **TypeScript/JavaScript:**
422
- ```typescript
423
- // ❌ BAD
424
- function process(data: any): any { return data.foo; }
425
-
426
- // ✅ GOOD
427
- function process(data: unknown): Result {
428
- if (isValidData(data)) return data.foo;
429
- throw new Error('Invalid');
430
- }
431
- ```
432
-
433
- **Python:**
434
- ```python
435
- # ❌ BAD
436
- def process(data: Any) -> Any: return data["key"]
437
-
438
- # ✅ GOOD
439
- def process(data: UserData) -> str: return data["name"]
440
- ```
441
-
442
- **Java/Kotlin:**
443
- ```java
444
- // BAD
445
- List items = new ArrayList(); // Raw type
446
- Object data = getData(); // Lost type info
447
-
448
- // ✅ GOOD
449
- List<User> users = new ArrayList<>();
450
- User user = getUser();
451
- ```
452
-
453
- **Go:**
454
- ```go
455
- // ❌ BAD
456
- func process(data interface{}) interface{} { ... }
457
-
458
- // GOOD
459
- func process(data UserRequest) (UserResponse, error) { ... }
460
- ```
461
-
462
- **Rust:**
463
- ```rust
464
- // BAD (unnecessary unsafe or Box<dyn Any>)
465
- let data: Box<dyn Any> = get_data();
466
-
467
- // ✅ GOOD
468
- let data: UserData = get_data()?;
469
- ```
470
-
471
- **C#:**
472
- ```csharp
473
- // BAD
474
- object data = GetData();
475
- dynamic result = Process(data);
476
-
477
- // ✅ GOOD
478
- UserData data = GetData();
479
- Result result = Process(data);
480
- ```
481
-
482
- ### Type Safety Rules (Universal)
483
-
484
- | Rule | Description |
485
- |------|-------------|
486
- | **Boundary Validation** | Validate only at system boundaries (API, JSON, user input) |
487
- | **Internal Trust** | After validation, pass only precise types internally |
488
- | **No Type Escape** | Never use escape hatches to "fix" type errors |
489
- | **Explicit Signatures** | Specify types in function/method signatures |
490
- | **Generics with Params** | Always use generics with type parameters |
491
-
492
- ### Quality Gate: Type Violations Block Merge
493
-
494
- | Violation | Action |
495
- |-----------|--------|
496
- | Type escape hatches (`any`, `Any`, `Object`, `interface{}`, etc.) | ❌ Block |
497
- | Type suppression comments | ❌ Block |
498
- | Raw generic types | ❌ Block |
499
- | Missing function return types | ⚠️ Warning |
500
- | Excessive type casting | ⚠️ Warning |
501
-
502
- ## Description
503
-
504
- Read PTCF structured SPEC document and execute implementation immediately.
505
-
506
- > **PLAN, TASKS documents unnecessary** - SPEC is the executable prompt
507
-
508
- ## Model Orchestration (Intelligent Routing)
509
-
510
- Automatically select optimal model based on **task complexity analysis**.
511
-
512
- ### Complexity-Based Model Selection
513
-
514
- | Complexity Score | Model | When to Use |
515
- |------------------|-------|-------------|
516
- | 0-7 (Low) | **Haiku** | Simple fixes, searches, single file changes |
517
- | 8-19 (Medium) | **Sonnet** | Standard features, 3-5 files, integrations |
518
- | 20+ (High) | **Opus** | Architecture, security, multi-service, 6+ files |
519
-
520
- ### Complexity Signals
521
-
522
- The following signals increase complexity score:
523
-
524
- | Signal | Score |
525
- |--------|-------|
526
- | Architecture change | +15 |
527
- | Security implication | +12 |
528
- | Multi-service | +8 |
529
- | Refactoring | +12 |
530
- | 6+ files | +15 |
531
- | 3-5 files | +8 |
532
- | New feature | +5 |
533
- | Bug fix | -3 |
534
- | Documentation | -5 |
535
-
536
- ### Agent Tier System
537
-
538
- Each agent has tier variants for cost optimization:
539
-
540
- | Agent | Low (Haiku) | Medium (Sonnet) | High (Opus) |
541
- |-------|-------------|-----------------|-------------|
542
- | explorer | explorer-low | explorer-medium | explorer |
543
- | implementer | implementer-low | implementer-medium | implementer |
544
- | architect | architect-low | architect-medium | architect |
545
-
546
- ### Task Calls by Role
547
-
548
- | Task Type | Model | Task Parameter |
549
- |-----------|-------|----------------|
550
- | Simple search | Haiku | `model: "haiku"` |
551
- | Codebase exploration | Haiku/Sonnet | Auto-selected |
552
- | Core implementation | Sonnet | `model: "sonnet"` |
553
- | Test writing | Haiku | `model: "haiku"` |
554
- | Architecture decisions | Opus | Main session |
555
- | Final review | Opus | Main session |
556
-
557
- ### External LLM Usage (When Enabled)
558
-
559
- When external LLMs are enabled in `.claude/vibe/config.json`:
560
-
561
- | Role | Method | Condition |
562
- |------|--------|-----------|
563
- | User direct query | `gpt.question`, `gemini.question` | Hook auto-handles |
564
- | Internal orchestration | Call global script via Bash | Claude calls directly |
565
-
566
- **User questions (Hook auto-handles):**
567
- - `gpt.question` - GPT architecture consultation
568
- - `gemini.question` - Gemini Q&A/consultation
569
-
570
- **Claude internal calls (directly via Bash):**
571
- ```bash
572
- # Usage: node llm-orchestrate.js <provider> <mode> [systemPrompt] [prompt]
573
- # - If systemPrompt omitted, uses default
574
- # - If systemPrompt is "-", uses default and treats next argument as prompt
575
-
576
- # [LLM_SCRIPT] = {{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js
577
-
578
- # GPT call (short prompt - CLI arg)
579
- node "[LLM_SCRIPT]" gpt orchestrate-json "[question content]"
580
-
581
- # Gemini call
582
- node "[LLM_SCRIPT]" gemini orchestrate-json "[question content]"
583
-
584
- # Custom system prompt usage
585
- node "[LLM_SCRIPT]" gpt orchestrate-json "You are a code reviewer" "[question content]"
586
-
587
- # Long prompt - use --input file (write JSON file first with Write tool)
588
- # JSON format: {"prompt": "your prompt here"}
589
- node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/input.json"
590
- ```
591
-
592
- ### External LLM Fallback
593
-
594
- **IMPORTANT**: When GPT/Gemini hook fails, Claude MUST handle the task directly:
595
-
596
- **Fallback behavior**:
597
- - Do NOT retry the external LLM call
598
- - Claude handles the task using its own capabilities
599
- - Continue with the implementation without interruption
600
- - Log the fallback but don't block progress
601
-
602
- ## Core Tools (Semantic Analysis & Memory)
603
-
604
- Use core tools for accurate codebase understanding and session continuity.
605
-
606
- ### Tool Invocation
607
-
608
- All tools are called via:
609
- ```bash
610
- 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)))"
611
- ```
612
-
613
- ### Semantic Analysis Tools
614
-
615
- | Tool | Purpose | Usage |
616
- |------|---------|-------|
617
- | `findSymbol` | Find symbol definitions | `{symbolName: 'functionName', searchPath: '.'}` |
618
- | `findReferences` | Find all references | `{symbolName: 'functionName', searchPath: '.'}` |
619
- | `analyzeComplexity` | Analyze code complexity | `{filePath: 'src/file.ts'}` |
620
- | `validateCodeQuality` | Validate code quality | `{filePath: 'src/file.ts'}` |
621
-
622
- **Example - Find symbol:**
623
- ```bash
624
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.findSymbol({symbolName: 'login', searchPath: '.'}).then(r => console.log(r.content[0].text)))"
625
- ```
626
-
627
- ### Memory Tools
628
-
629
- | Tool | Purpose | Usage |
630
- |------|---------|-------|
631
- | `saveMemory` | Save important decisions | `{key: 'decision-name', value: 'content', category: 'project'}` |
632
- | `recallMemory` | Recall saved memory | `{key: 'decision-name'}` |
633
- | `listMemories` | List all memories | `{category: 'project'}` |
634
-
635
- **Example - Save important decision:**
636
- ```bash
637
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.saveMemory({key: 'auth-pattern', value: 'Using JWT with refresh tokens', category: 'project'}).then(r => console.log(r.content[0].text)))"
638
- ```
639
-
640
- ### Session Management (Auto via Hooks)
641
-
642
- - **Session start**: Hook auto-calls `startSession` to restore previous context
643
- - **Context 80%+**: Hook auto-calls `autoSaveContext` to preserve state
644
-
645
- ## Process
646
-
647
- ### 1. Load SPEC + Feature
648
-
649
- **Search order (check BOTH file AND folder):**
650
-
651
- ```
652
- Step 1: Check if SPLIT structure exists (folder)
653
- 📁 .claude/vibe/specs/{feature-name}/ → Folder with _index.md + phase files
654
- 📁 .claude/vibe/features/{feature-name}/ → Folder with _index.feature + phase files
655
-
656
- Step 2: If no folder, check single file
657
- 📄 .claude/vibe/specs/{feature-name}.md → Single SPEC file
658
- 📄 .claude/vibe/features/{feature-name}.feature Single Feature file
659
-
660
- Step 3: If neither exists Error
661
- ```
662
-
663
- **Split structure (folder) detected:**
664
- ```
665
- 📁 .claude/vibe/specs/{feature-name}/
666
- ├── _index.md → Master SPEC (read first for overview)
667
- ├── phase-1-{name}.md → Phase 1 SPEC
668
- ├── phase-2-{name}.md → Phase 2 SPEC
669
- └── ...
670
-
671
- 📁 .claude/vibe/features/{feature-name}/
672
- ├── _index.feature → Master Feature (read first for scenario overview)
673
- ├── phase-1-{name}.feature Phase 1 scenarios
674
- ├── phase-2-{name}.feature Phase 2 scenarios
675
- └── ...
676
-
677
- → Load _index.md first, then load phase files in order
678
- Execute phases sequentially (or per --phase flag)
679
- ```
680
-
681
- **Single file detected:**
682
- ```
683
- 📄 .claude/vibe/specs/{feature-name}.md → SPEC (structure, constraints, context)
684
- 📄 .claude/vibe/features/{feature-name}.feature → Feature (scenario = implementation unit)
685
- ```
686
-
687
- **Error if NEITHER file NOR folder found:**
688
- ```
689
- SPEC not found. Searched:
690
- - .claude/vibe/specs/{feature-name}/ (folder)
691
- - .claude/vibe/specs/{feature-name}.md (file)
692
-
693
- Run /vibe.spec "{feature-name}" first.
694
- ```
695
-
696
- ### 2. Extract Scenario List
697
-
698
- Extract all Scenarios from Feature file:
699
-
700
- ```markdown
701
- ## Scenarios to Implement
702
-
703
- | # | Scenario | Status |
704
- |---|----------|--------|
705
- | 1 | Valid login success | ⬜ |
706
- | 2 | Invalid password error | ⬜ |
707
- | 3 | Email format validation | ⬜ |
708
- | 4 | Password reset link | ⬜ |
709
-
710
- Total: 4 scenarios
711
- ```
712
-
713
- ### 3. Scenario-by-Scenario Implementation (Core)
714
-
715
- **For each scenario**:
716
-
717
- ```
718
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
719
- 🎯 Scenario 1/4: Valid login success
720
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
721
-
722
- Given: User is registered
723
- When: Login with valid email and password
724
- Then: Login success + JWT token returned
725
-
726
- [Step 1] Analyzing implementation...
727
- - Required files: auth.service.ts, login.controller.ts
728
- - Exploring related code...
729
-
730
- [Step 2] Implementing...
731
- auth.service.ts - Added login() method
732
- ✅ login.controller.ts - POST /login endpoint
733
-
734
- [Step 3] Verifying...
735
- ✅ Given: Test user creation possible
736
- ✅ When: Login API call succeeded
737
- Then: JWT token return confirmed
738
-
739
- Scenario 1 passed!
740
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
741
- ```
742
-
743
- **On failure**:
744
-
745
- ```
746
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
747
- 🎯 Scenario 2/4: Invalid password error
748
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
749
-
750
- [Step 3] Verifying...
751
- ✅ Given: Test user exists
752
- When: Login attempt with wrong password
753
- ❌ Then: "Invalid credentials" error message
754
- Actual: "Error occurred" returned
755
-
756
- [Auto-fix 1/3]
757
- Cause: Error message not properly set
758
- Fix: auth.service.ts line 42
759
-
760
- [Re-verify]
761
- Then: "Invalid credentials" error message
762
-
763
- Scenario 2 passed! (1 fix)
764
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
765
- ```
766
-
767
- ---
768
-
769
- ## **CRITICAL: Parallel Sub-Agent Execution**
770
-
771
- > **MUST USE PARALLEL TASK CALLS** - This is REQUIRED, not optional.
772
- > Sequential execution when parallel is possible = VIOLATION of this workflow.
773
-
774
- ### Mandatory Parallel Exploration (Phase Start)
775
-
776
- **BEFORE any implementation, you MUST launch these Task calls IN PARALLEL (single message, multiple tool calls):**
777
-
778
- ```
779
- ┌─────────────────────────────────────────────────────────────────┐
780
- │ STEP 1: PARALLEL EXPLORATION (REQUIRED) │
781
- │ │
782
- │ Launch ALL of these in ONE message: │
783
- │ │
784
- │ Task(haiku) ─┬─→ "Analyze related files in <context>" │
785
- │ │ │
786
- │ Task(haiku) ─┼─→ "Check dependencies and imports" │
787
- │ │ │
788
- │ Task(haiku) ─┴─→ "Find existing patterns and conventions" │
789
- │ │
790
- │ [If GPT enabled] Bash: node "[LLM_SCRIPT]" gpt-spark orchestrate-json "[question]"
791
- │ [If Gemini enabled] Bash: node "[LLM_SCRIPT]" gemini orchestrate-json "[question]"
792
- └─────────────────────────────────────────────────────────────────┘
793
-
794
- (wait for all to complete)
795
- ┌─────────────────────────────────────────────────────────────────┐
796
- │ STEP 2: SYNTHESIZE (Opus) │
797
- │ - Review all exploration results │
798
- - Decide implementation approach │
799
- - Identify files to modify/create │
800
- └─────────────────────────────────────────────────────────────────┘
801
-
802
-
803
- ┌─────────────────────────────────────────────────────────────────┐
804
- │ STEP 3: IMPLEMENT + BACKGROUND AGENTS (PARALLEL) │
805
- │ │
806
- Main Agent (sonnet): │
807
- └─→ Execute current phase implementation │
808
- │ │
809
- Background Agents (haiku, run_in_background=true):
810
- │ ├─→ Task: "Prepare Phase N+1 - analyze required files" │
811
- │ ├─→ Task: "Pre-generate test cases for current implementation" │
812
- │ └─→ Task: "Search for related types/interfaces needed" │
813
- │ │
814
- │ [ULTRAWORK] All 4 agents run simultaneously! │
815
- └─────────────────────────────────────────────────────────────────┘
816
-
817
- (main completes, check backgrounds)
818
- ┌─────────────────────────────────────────────────────────────────┐
819
- │ STEP 4: TEST + PHASE PIPELINING │
820
- │ │
821
- Current Phase: │
822
- └─→ Task(haiku): Write tests using pre-generated cases │
823
- │ │
824
- │ Next Phase Prep (from background results): │
825
- │ └─→ Already have file analysis, ready to start immediately │
826
- └─────────────────────────────────────────────────────────────────┘
827
- ```
828
-
829
- ### Parallel Task Call Pattern (MUST FOLLOW)
830
-
831
- **Correct - Single message with multiple parallel Tasks:**
832
- ```
833
- <message>
834
- Task(haiku, "Analyze src/components/ for existing patterns")
835
- Task(haiku, "Check package.json dependencies")
836
- Task(haiku, "Find usage of similar features in codebase")
837
- </message>
838
- → All 3 run simultaneously, ~3x faster
839
- ```
840
-
841
- **WRONG - Sequential calls (DO NOT DO THIS):**
842
- ```
843
- <message>Task(haiku, "Analyze...")</message>
844
- <message>Task(haiku, "Check...")</message>
845
- <message>Task(haiku, "Find...")</message>
846
- 3x slower, wastes time
847
- ```
848
-
849
- ### Background Agent Pattern (ULTRAWORK) via Orchestrator
850
-
851
- **Launch background agents for next phase via Orchestrator:**
852
- ```bash
853
- # Start background agent (doesn't block)
854
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => o.runAgent('Phase 2 prep: Analyze auth API endpoints', 'phase2-prep').then(r => console.log(r.content[0].text)))"
855
-
856
- # Multiple backgrounds in parallel
857
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(async o => {
858
- await Promise.all([
859
- o.runAgent('Phase 2 prep: Analyze auth API endpoints', 'phase2-prep'),
860
- o.runAgent('Pre-generate test cases for login form', 'test-prep'),
861
- o.runAgent('Find existing validation patterns', 'pattern-finder')
862
- ]);
863
- console.log('All background agents started');
864
- })"
865
- ```
866
-
867
- **Check background agent status:**
868
- ```bash
869
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => console.log(o.status().content[0].text))"
870
- ```
871
-
872
- **Get result when ready:**
873
- ```bash
874
- node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => o.getResult('SESSION_ID').then(r => console.log(r.content[0].text)))"
875
- ```
876
-
877
- **Why Background Agents Matter:**
878
-
879
- | Without Background | With Background |
880
- |--------------------|-----------------|
881
- | Phase 1: 60s | Phase 1: 60s (+ backgrounds running) |
882
- | Phase 2 prep: 20s | Phase 2 prep: 0s (already done!) |
883
- | Phase 2: 60s | Phase 2: 60s |
884
- | **Total: 140s** | **Total: 120s** |
885
-
886
- For 5 phases: 4 × 20s saved = **80s faster**
887
-
888
- ### Why Parallel Matters
889
-
890
- | Approach | Time | Cache Benefit |
891
- |----------|------|---------------|
892
- | Sequential (3 Tasks) | ~30s | Cache cold on each |
893
- | **Parallel (3 Tasks)** | **~10s** | **Cache warmed once, shared** |
894
-
895
- core ProjectCache (LRU) caches ts-morph parsing results. Parallel calls share the warmed cache.
896
-
897
- ### UI/UX Design Intelligence (Auto-triggered before Phase 1)
898
-
899
- > **조건**: SPEC 또는 Feature에 UI/UX 키워드 포함 시 자동 실행
900
- > **비활성화**: `.claude/vibe/config.json`에 `"uiUxAnalysis": false` 설정
901
-
902
- **Phase 1 시작 전, 2 에이전트 자동 실행:**
903
-
904
- | Agent | Condition | Role |
905
- |-------|-----------|------|
906
- | ④ ui-stack-implementer | **항상 실행** | 프레임워크별 컴포넌트 가이드라인 제공 |
907
- | ⑤ ui-dataviz-advisor | **조건부** (chart/dashboard/visualization 키워드) | 차트/시각화 라이브러리 추천 |
908
-
909
- **실행 방법:**
910
-
911
- ```text
912
- # ④ 항상 실행 (Haiku)
913
- Task(subagent_type="ui-stack-implementer",
914
- prompt="Provide implementation guidelines for project '{project}' using {detected_stack}. Use core_ui_stack_search for framework-specific patterns.")
915
-
916
- # ⑤ 조건부 실행 (Haiku) — SPEC에 차트/대시보드/시각화 키워드 포함 시
917
- Task(subagent_type="ui-dataviz-advisor",
918
- prompt="Recommend data visualization approach for project '{project}'. Use core_ui_search for chart types and react-performance patterns.")
919
- ```
920
-
921
- **디자인 시스템 자동 참조:**
922
- - `.claude/vibe/design-system/{project}/MASTER.md` 존재 시 자동 로드
923
- - 구현 에이전트가 CSS 변수, 폰트, 색상 팔레트를 직접 참조
924
- - 페이지별 오버라이드 `pages/{page}.md` 존재 시 우선 적용
925
-
926
- ### Phase Execution Flow (ULTRAWORK Pipeline)
927
-
928
- ```
929
- Phase N Start
930
-
931
- ├─→ [PARALLEL] Task(haiku) × 3: Exploration
932
- - Related code analysis
933
- │ - Dependency check
934
- │ - Pattern discovery
935
-
936
- (all complete)
937
-
938
- ├─→ Opus: Synthesize and decide
939
-
940
- ├─→ [PARALLEL PIPELINE] ←── KEY SPEED OPTIMIZATION
941
- │ │
942
- │ ├─→ Main: Task(sonnet) Implementation
943
-
944
- └─→ Background (run_in_background=true):
945
- ├─→ Task(haiku): Phase N+1 file analysis
946
- ├─→ Task(haiku): Test case preparation
947
- └─→ Task(haiku): Type/interface lookup
948
-
949
- (main completes)
950
-
951
- ├─→ Task(haiku): Tests (uses pre-generated cases)
952
-
953
-
954
- Phase N Complete
955
-
956
- ↓ (Background results ready - NO WAIT for Phase N+1 exploration!)
957
-
958
- Phase N+1 Start (IMMEDIATE - exploration already done!)
959
- ```
960
-
961
- **Speed Comparison:**
962
-
963
- | Mode | Phase Time | 5 Phases Total |
964
- |------|------------|----------------|
965
- | Sequential | ~2min/phase | ~10min |
966
- | Parallel Exploration | ~1.5min/phase | ~7.5min |
967
- | **ULTRAWORK Pipeline** | **~1min/phase** | **~5min** |
968
-
969
- **Why Pipeline is Faster:**
970
- - Background agents prepare next phase WHILE current phase implements
971
- - No idle time between phases
972
- - Test cases pre-generated during implementation
973
- - Cache stays warm across parallel tasks
974
-
975
- ---
976
-
977
- ### Agent Teams Dev Team
978
-
979
- > **Agent Teams**: 에이전트들이 팀을 이루어 서로 소통하며 구현합니다.
980
- > 설정: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` + `teammateMode: in-process` (`~/.claude/settings.json` 전역 postinstall 자동 설정)
981
-
982
- **팀 구성:**
983
-
984
- | 팀원 | 역할 |
985
- |------|------|
986
- | architect (리더) | 설계 결정, 구현 방향 조율, SPEC 준수 검증, 팀 합의 주도 |
987
- | implementer | 핵심 비즈니스 로직 구현, architect 설계를 따라 코드 작성 |
988
- | tester | 구현 완료 즉시 테스트 작성, 실패 시 implementer에 피드백 |
989
- | security-reviewer | 실시간 보안 취약점 검증, 블로킹 이슈 식별 |
990
-
991
- **실행 순서:**
992
-
993
- 1. `TeamCreate(team_name="dev-{feature}")` + 공유 태스크 리스트 생성
994
- 2. 4개 팀원 병렬 생성 — 각각 `Task(team_name=..., name=..., subagent_type=...)` 으로 spawn
995
- 3. architect가 SPEC Phase를 분석하여 구현 계획 수립 → TaskList에 작업 등록
996
- 4. 팀원들이 TaskList에서 작업을 claim하고, SendMessage로 실시간 협업
997
- 5. 모든 시나리오 검증 완료 → 팀원 shutdown_request → TeamDelete로 정리
998
-
999
- **팀원 spawn 패턴:**
1000
-
1001
- ```text
1002
- TeamCreate(team_name="dev-{feature}", description="Implementation team for {feature} Phase {N}")
1003
-
1004
- # 4개 병렬 spawn
1005
- Task(team_name="dev-{feature}", name="architect", subagent_type="architect",
1006
- prompt="구현 리더. Phase {N}의 SPEC을 분석하고 구현 계획을 수립하세요.
1007
- SPEC: {spec_content}
1008
- Feature Scenarios: {scenarios}
1009
- 역할: 설계 결정, 구현 방향 조율, 팀원 간 충돌 해결, SPEC 준수 검증.
1010
- TaskList에 구현 작업을 등록하세요. implementer에게 설계를 SendMessage로 전달하세요.
1011
- 모든 시나리오가 통과할 때까지 팀을 조율하세요.")
1012
-
1013
- Task(team_name="dev-{feature}", name="implementer", subagent_type="implementer",
1014
- mode="bypassPermissions",
1015
- prompt="구현 팀 코드 담당. SPEC: {spec_content}
1016
- 역할: architect의 설계를 따라 프로덕션 코드 작성.
1017
- architect에게서 설계를 받으면 구현을 시작하세요.
1018
- 컴포넌트 구현 완료 tester에게 SendMessage로 테스트 요청하세요.
1019
- security-reviewer의 블로킹 이슈는 즉시 수정하세요.
1020
- TaskList에서 구현 작업을 claim하세요.")
1021
-
1022
- Task(team_name="dev-{feature}", name="tester", subagent_type="tester",
1023
- mode="bypassPermissions",
1024
- prompt="구현 팀 테스트 담당. SPEC: {spec_content}
1025
- 역할: implementer가 완료한 컴포넌트부터 즉시 테스트 작성.
1026
- 구현 전체를 기다리지 말고 컴포넌트 단위로 점진적 테스트하세요.
1027
- 테스트 실패 implementer에게 SendMessage로 피드백하세요.
1028
- edge case 발견 시 architect에게 설계 검토를 요청하세요.
1029
- TaskList에서 테스트 작업을 claim하세요.")
1030
-
1031
- Task(team_name="dev-{feature}", name="security-reviewer", subagent_type="security-reviewer",
1032
- mode="bypassPermissions",
1033
- prompt="구현 팀 보안 담당. SPEC: {spec_content}
1034
- 역할: 구현 코드의 보안 취약점 실시간 검증.
1035
- 보안 이슈는 BLOCKING — implementer에게 SendMessage로 즉시 수정 요청하세요.
1036
- 심각한 설계 결함 발견 architect에게 SendMessage로 알리세요.
1037
- TaskList에서 보안 검증 작업을 claim하세요.")
1038
- ```
1039
-
1040
- **팀원 간 통신 예시:**
1041
-
1042
- ```text
1043
- architect implementer: "Repository 패턴으로 데이터 접근 계층 분리해서 구현해주세요. 인터페이스는 TaskList에 등록했습니다"
1044
- implementer → tester: "LoginService 구현 완료. 정상/실패/잠금 시나리오 테스트 요청합니다"
1045
- security-reviewer implementer: "SQL injection 위험: raw query 사용 감지. parameterized query로 즉시 수정 필요"
1046
- tester architect: "edge case 3건 실패 ( 입력, 특수문자, 동시 요청). 설계 검토 요청합니다"
1047
- architect → broadcast: "Phase {N} 모든 시나리오 통과 확인. 구현 완료합니다"
1048
- ```
1049
-
1050
- **팀 모드 vs 기존 병렬 모드 비교:**
1051
-
1052
- | 측면 | 기존 병렬 모드 | Agent Teams |
1053
- |------|---------------|-------------|
1054
- | 통신 | 결과만 수집 | 실시간 상호 피드백 |
1055
- | 테스트 | 구현 별도 단계 | 구현과 동시 진행 |
1056
- | 보안 | 사후 리뷰 | 실시간 검증 |
1057
- | 설계 변경 | 메인 에이전트만 결정 | architect 주도 합의 |
1058
- | 오류 복구 | 재시도 루프 | 팀 내 즉시 피드백 |
1059
-
1060
- **활성화 조건 (Dev Team Full — 4명):**
1061
- - ULTRAWORK 모드 + 3개 이상 시나리오
1062
- - 또는 복잡도 점수 20+ (High)
1063
-
1064
- ### Agent Teams — Lite Team (Normal Mode)
1065
-
1066
- > **일반 모드에서도 팀 협업**. Dev Team의 축소 버전으로, 3개 이상 시나리오 시 자동 활성화.
1067
- > security-reviewer를 제외한 architect + implementer + tester 3명 구성.
1068
-
1069
- **팀 구성:**
1070
-
1071
- | 팀원 | 역할 |
1072
- |------|------|
1073
- | architect (리더) | 설계 결정, 시나리오 분석, 구현 방향 조율 |
1074
- | implementer | 핵심 비즈니스 로직 구현 |
1075
- | tester | 구현 완료 즉시 테스트 작성, 실패 시 피드백 |
1076
-
1077
- **spawn 패턴:**
1078
-
1079
- ```text
1080
- TeamCreate(team_name="lite-{feature}", description="Lite implementation team for {feature} Phase {N}")
1081
-
1082
- Task(team_name="lite-{feature}", name="architect", subagent_type="architect",
1083
- prompt="Lite 리더. Phase {N}의 SPEC을 분석하고 구현 계획을 수립하세요.
1084
- SPEC: {spec_content}
1085
- Feature Scenarios: {scenarios}
1086
- 역할: 설계 결정, 구현 방향 조율. TaskList에 작업을 등록하세요.
1087
- implementer에게 설계를 SendMessage로 전달하세요.")
1088
-
1089
- Task(team_name="lite-{feature}", name="implementer", subagent_type="implementer",
1090
- mode="bypassPermissions",
1091
- prompt="Lite 팀 코드 담당. SPEC: {spec_content}
1092
- 역할: architect의 설계를 따라 프로덕션 코드 작성.
1093
- 완료 tester에게 SendMessage로 테스트 요청하세요.")
1094
-
1095
- Task(team_name="lite-{feature}", name="tester", subagent_type="tester",
1096
- mode="bypassPermissions",
1097
- prompt="Lite 테스트 담당. SPEC: {spec_content}
1098
- 역할: implementer가 완료한 컴포넌트부터 즉시 테스트 작성.
1099
- 테스트 실패 시 implementer에게 SendMessage로 피드백하세요.")
1100
- ```
1101
-
1102
- **활성화 조건 (Lite Team 3명):**
1103
- - 일반 모드 + 3개 이상 시나리오
1104
- - 복잡도 점수 8-19 (Medium)
1105
- - 단순 구현(1-2 파일, 시나리오 2개 이하)에서는 기존 병렬 모드 유지
1106
-
1107
- **팀 선택 기준:**
1108
-
1109
- | 조건 | |
1110
- |------|-----|
1111
- | 시나리오 1-2개, 파일 1-2개 | 기존 병렬 모드 (팀 없음) |
1112
- | 시나리오 3개+, 일반 모드 | **Lite Team (3명)** |
1113
- | ULTRAWORK 또는 복잡도 20+ | Dev Team Full (4명) |
1114
-
1115
- ### Agent Teams — Review Team
1116
-
1117
- > P1/P2 이슈 교차 검증을 위한 보안+아키텍처+성능+단순성 전문 리뷰 팀.
1118
- > `/vibe.review` P1/P2 이슈가 발견되면 자동 활성화.
1119
-
1120
- **팀 구성:**
1121
-
1122
- | 팀원 | 역할 |
1123
- |------|------|
1124
- | security-reviewer (리더) | 보안 이슈 우선순위 결정, 교차 검증 주도, 오탐 제거 |
1125
- | architecture-reviewer | 아키텍처 위반 검증, 설계 패턴 평가 |
1126
- | performance-reviewer | 성능 병목 검증, N+1 쿼리/메모리 누수 확인 |
1127
- | simplicity-reviewer | 과도한 복잡성 검증, 불필요한 추상화 식별 |
1128
-
1129
- **spawn 패턴:**
1130
-
1131
- ```text
1132
- TeamCreate(team_name="review-{feature}", description="Cross-validation review team for {feature}")
1133
-
1134
- Task(team_name="review-{feature}", name="security-reviewer", subagent_type="security-reviewer",
1135
- mode="bypassPermissions",
1136
- prompt="Review team leader. Cross-validate P1/P2 issues found in parallel review.
1137
- Files: {changed_files}
1138
- Found issues: {p1_p2_issues}
1139
- Role: Verify each P1/P2 issue is genuine (not false positive). Prioritize by actual impact.
1140
- Send disputed findings to relevant reviewer for confirmation via SendMessage.")
1141
-
1142
- Task(team_name="review-{feature}", name="architecture-reviewer", subagent_type="architecture-reviewer",
1143
- mode="bypassPermissions",
1144
- prompt="Review team architecture expert. Validate architecture-related findings.
1145
- Files: {changed_files}
1146
- Role: Confirm or dispute architecture violations. Check SOLID principles and layer boundaries.")
1147
-
1148
- Task(team_name="review-{feature}", name="performance-reviewer", subagent_type="performance-reviewer",
1149
- mode="bypassPermissions",
1150
- prompt="Review team performance expert. Validate performance-related findings.
1151
- Files: {changed_files}
1152
- Role: Confirm or dispute performance issues. Run complexity analysis on flagged code.")
1153
-
1154
- Task(team_name="review-{feature}", name="simplicity-reviewer", subagent_type="simplicity-reviewer",
1155
- mode="bypassPermissions",
1156
- prompt="Review team simplicity advocate. Challenge over-engineering findings.
1157
- Files: {changed_files}
1158
- Role: Verify YAGNI violations. Confirm or dispute unnecessary abstraction flags.")
1159
- ```
1160
-
1161
- **팀원 통신 예시:**
1162
-
1163
- ```text
1164
- security-reviewer architecture-reviewer: "SQL injection finding in users.py:42 — is this pattern used elsewhere?"
1165
- architecture-reviewer security-reviewer: "Confirmed. Same pattern in orders.py:78. Elevate to P1."
1166
- performance-reviewer security-reviewer: "N+1 query finding is false positive — already uses prefetch_related."
1167
- security-reviewer broadcast: "Review complete. 2 P1 confirmed, 1 P2 downgraded to P3."
1168
- ```
1169
-
1170
- **활성화 조건:**
1171
-
1172
- - `/vibe.review` 실행 P1 또는 P2 이슈 2개 이상 발견 시
1173
- - Agent Teams 환경변수 활성화 상태
1174
-
1175
- ### Agent Teams Debug Team
1176
-
1177
- > 빌드/테스트 실패 시 아키텍트 진단 → 구현자 수정 → 테스터 검증 사이클.
1178
- > UltraQA 3회 실패 진입 시 또는 빌드 실패 3회+ 시 자동 활성화.
1179
-
1180
- **팀 구성:**
1181
-
1182
- | 팀원 | 역할 |
1183
- |------|------|
1184
- | architect (리더) | 근본 원인 진단, 수정 방향 설계, 아키텍처 레벨 문제 식별 |
1185
- | implementer | architect 진단에 따라 최소 diff 수정 적용 |
1186
- | tester | 수정 즉시 테스트 실행, 회귀 검증 |
1187
-
1188
- **spawn 패턴:**
1189
-
1190
- ```text
1191
- TeamCreate(team_name="debug-{feature}", description="Debug team for {feature} build/test failure")
1192
-
1193
- Task(team_name="debug-{feature}", name="architect", subagent_type="architect",
1194
- prompt="Debug team leader. Diagnose root cause of build/test failure.
1195
- Error: {error_output}
1196
- Failed files: {failed_files}
1197
- Previous attempts: {attempt_history}
1198
- Role: Analyze error, identify root cause (not symptoms). Design minimal fix.
1199
- Send diagnosis to implementer via SendMessage. If same failure 3x, escalate to user.")
1200
-
1201
- Task(team_name="debug-{feature}", name="implementer", subagent_type="implementer",
1202
- mode="bypassPermissions",
1203
- prompt="Debug team fixer. Apply minimal-diff fixes based on architect diagnosis.
1204
- Role: Wait for architect diagnosis. Apply ONLY the specific fix recommended.
1205
- Do NOT refactor surrounding code. Notify tester when fix is applied.")
1206
-
1207
- Task(team_name="debug-{feature}", name="tester", subagent_type="tester",
1208
- mode="bypassPermissions",
1209
- prompt="Debug team verifier. Run tests after each fix to verify resolution.
1210
- Role: Wait for implementer fix notification. Run failing tests.
1211
- Report results to architect. If still failing, provide detailed error output.")
1212
- ```
1213
-
1214
- **활성화 조건:**
1215
-
1216
- - 동일 빌드/테스트 실패 3회 이상
1217
- - UltraQA `architecture_question` 상태 진입 시
1218
-
1219
- ### Agent Teams Research Team
1220
-
1221
- > `/vibe.spec` Step 3 리서치 단계에서 4개 전문 리서치 에이전트가 팀으로 협업.
1222
- > 리서치 결과 교차 검증 충돌 해결.
1223
-
1224
- **팀 구성:**
1225
-
1226
- | 팀원 | 역할 |
1227
- |------|------|
1228
- | best-practices-agent (리더) | 베스트 프랙티스 수집, 리서치 통합, 충돌 해결 |
1229
- | security-advisory-agent | 보안 취약점 조사, CVE 확인, 보안 권장사항 |
1230
- | codebase-patterns-agent | 기존 코드베이스 패턴 분석, 유사 구현 참조 |
1231
- | framework-docs-agent | 프레임워크 최신 문서 확인, API 변경사항 추적 |
1232
-
1233
- **spawn 패턴:**
1234
-
1235
- ```text
1236
- TeamCreate(team_name="research-{feature}", description="Research team for {feature} SPEC")
1237
-
1238
- Task(team_name="research-{feature}", name="best-practices-agent", subagent_type="best-practices-agent",
1239
- prompt="Research team leader. Coordinate research for {feature} SPEC.
1240
- Tech stack: {tech_stack}
1241
- Requirements: {requirements}
1242
- Role: Collect best practices. Integrate findings from all researchers.
1243
- Resolve conflicting recommendations. Produce unified research summary.")
1244
-
1245
- Task(team_name="research-{feature}", name="security-advisory-agent", subagent_type="security-advisory-agent",
1246
- prompt="Research team security specialist. Check security advisories for {feature}.
1247
- Tech stack: {tech_stack}
1248
- Role: Check CVEs for dependencies. Identify security patterns to follow.
1249
- Share findings with best-practices-agent for integration.")
1250
-
1251
- Task(team_name="research-{feature}", name="codebase-patterns-agent", subagent_type="codebase-patterns-agent",
1252
- prompt="Research team codebase analyst. Analyze existing patterns for {feature}.
1253
- Project path: {project_path}
1254
- Role: Find similar implementations in codebase. Extract conventions and patterns.
1255
- Share findings with best-practices-agent.")
1256
-
1257
- Task(team_name="research-{feature}", name="framework-docs-agent", subagent_type="framework-docs-agent",
1258
- prompt="Research team docs specialist. Check latest framework docs for {feature}.
1259
- Tech stack: {tech_stack}
1260
- Role: Verify API usage against latest docs. Check for breaking changes.
1261
- Share findings with best-practices-agent.")
1262
- ```
1263
-
1264
- **활성화 조건:**
1265
-
1266
- - `/vibe.spec` Step 3 리서치 단계
1267
- - Agent Teams 환경변수 활성화 상태
1268
-
1269
- ### Agent Teams — Security Team
1270
-
1271
- > 보안 민감 코드 변경 시 전문 보안 검증 팀.
1272
- > 인증, 권한, 결제, 개인정보 관련 코드 변경 감지 시 자동 활성화.
1273
-
1274
- **팀 구성:**
1275
-
1276
- | 팀원 | 역할 |
1277
- |------|------|
1278
- | security-reviewer (리더) | OWASP Top 10 검증, 보안 이슈 우선순위 결정 |
1279
- | data-integrity-reviewer | 데이터 무결성, 트랜잭션 관리, 입력 검증 |
1280
- | security-advisory-agent | 사용 라이브러리 CVE 확인, 보안 패치 확인 |
1281
- | tester | 보안 테스트 케이스 작성, 침투 테스트 시나리오 검증 |
1282
-
1283
- **spawn 패턴:**
1284
-
1285
- ```text
1286
- TeamCreate(team_name="security-{feature}", description="Security audit team for {feature}")
1287
-
1288
- Task(team_name="security-{feature}", name="security-reviewer", subagent_type="security-reviewer",
1289
- mode="bypassPermissions",
1290
- prompt="Security team leader. Comprehensive security audit for {feature}.
1291
- Files: {changed_files}
1292
- Role: OWASP Top 10 check. XSS, CSRF, SQL injection, auth bypass.
1293
- Coordinate with data-integrity-reviewer for data flow analysis.
1294
- Any P1 finding blocks merge — notify team immediately.")
1295
-
1296
- Task(team_name="security-{feature}", name="data-integrity-reviewer", subagent_type="data-integrity-reviewer",
1297
- mode="bypassPermissions",
1298
- prompt="Security team data specialist. Verify data integrity for {feature}.
1299
- Files: {changed_files}
1300
- Role: Check transaction management, input validation, data sanitization.
1301
- Report findings to security-reviewer.")
1302
-
1303
- Task(team_name="security-{feature}", name="security-advisory-agent", subagent_type="security-advisory-agent",
1304
- prompt="Security team advisory specialist. Check dependencies for {feature}.
1305
- Role: Scan for known CVEs in project dependencies. Check security advisories.
1306
- Report critical findings to security-reviewer.")
1307
-
1308
- Task(team_name="security-{feature}", name="tester", subagent_type="tester",
1309
- mode="bypassPermissions",
1310
- prompt="Security team test specialist. Write security-focused tests for {feature}.
1311
- Files: {changed_files}
1312
- Role: Write tests for auth bypass, injection, permission escalation.
1313
- Report test results to security-reviewer.")
1314
- ```
1315
-
1316
- **활성화 조건:**
1317
-
1318
- - auth, payment, user-data, crypto 관련 파일 변경 감지 시
1319
- - 또는 수동으로 `security` 키워드 지정 시
1320
-
1321
- ### Agent Teams Migration Team
1322
-
1323
- > 프레임워크/라이브러리 마이그레이션 전문 팀.
1324
- > 대규모 의존성 업그레이드, 프레임워크 전환 활성화.
1325
-
1326
- **팀 구성:**
1327
-
1328
- | 팀원 | 역할 |
1329
- |------|------|
1330
- | architect (리더) | 마이그레이션 전략 설계, 호환성 분석, 단계별 계획 |
1331
- | implementer | 코드 변환 실행, API 변경 적용 |
1332
- | tester | 마이그레이션 후 회귀 테스트, 호환성 검증 |
1333
- | build-error-resolver | 빌드 에러 즉시 해결, 타입 에러 수정 |
1334
-
1335
- **spawn 패턴:**
1336
-
1337
- ```text
1338
- TeamCreate(team_name="migration-{feature}", description="Migration team for {feature}")
1339
-
1340
- Task(team_name="migration-{feature}", name="architect", subagent_type="architect",
1341
- prompt="Migration team leader. Plan migration strategy for {feature}.
1342
- From: {current_version}
1343
- To: {target_version}
1344
- Role: Analyze breaking changes. Create step-by-step migration plan.
1345
- Assign file groups to implementer. Monitor build-error-resolver for blockers.")
1346
-
1347
- Task(team_name="migration-{feature}", name="implementer", subagent_type="implementer",
1348
- mode="bypassPermissions",
1349
- prompt="Migration team implementer. Execute code migration for {feature}.
1350
- Role: Apply migration changes per architect plan. Work file-by-file.
1351
- Notify tester after each file group. Report blockers to architect.")
1352
-
1353
- Task(team_name="migration-{feature}", name="tester", subagent_type="tester",
1354
- mode="bypassPermissions",
1355
- prompt="Migration team tester. Verify migration correctness for {feature}.
1356
- Role: Run existing tests after each migration step. Add new tests for changed APIs.
1357
- Report regressions to implementer and architect.")
1358
-
1359
- Task(team_name="migration-{feature}", name="build-error-resolver", subagent_type="build-error-resolver",
1360
- mode="bypassPermissions",
1361
- prompt="Migration team build fixer. Resolve build errors during {feature} migration.
1362
- Role: Monitor build output. Apply minimal-diff type fixes for migration errors.
1363
- Notify implementer of patterns requiring broader changes.")
1364
- ```
1365
-
1366
- **활성화 조건:**
1367
-
1368
- - package.json 주요 의존성 버전 변경 감지
1369
- - 또는 수동으로 `migration` 키워드 지정
1370
-
1371
- ### Agent Teams — Fullstack Team
1372
-
1373
- > Frontend + Backend 동시 변경이 필요한 풀스택 기능 구현 팀.
1374
- > API 엔드포인트 + UI 컴포넌트를 동시에 개발.
1375
-
1376
- **팀 구성:**
1377
-
1378
- | 팀원 | 역할 |
1379
- |------|------|
1380
- | architect (리더) | API 인터페이스 설계, frontend/backend 분업 조율 |
1381
- | implementer-backend | Backend API, 데이터베이스, 서비스 로직 구현 |
1382
- | implementer-frontend | Frontend UI, 상태 관리, API 연동 구현 |
1383
- | tester | E2E 테스트, API 테스트, 통합 테스트 |
1384
-
1385
- **spawn 패턴:**
1386
-
1387
- ```text
1388
- TeamCreate(team_name="fullstack-{feature}", description="Fullstack team for {feature}")
1389
-
1390
- Task(team_name="fullstack-{feature}", name="architect", subagent_type="architect",
1391
- prompt="Fullstack team leader. Design API contract for {feature}.
1392
- SPEC: {spec_content}
1393
- Role: Define API endpoints (request/response schemas). Design data models.
1394
- Share API contract with both implementers. Coordinate integration timing.")
1395
-
1396
- Task(team_name="fullstack-{feature}", name="implementer-backend", subagent_type="implementer",
1397
- mode="bypassPermissions",
1398
- prompt="Fullstack team backend developer. Implement API for {feature}.
1399
- SPEC: {spec_content}
1400
- Role: Implement API endpoints per architect's contract. Create data models and services.
1401
- Notify implementer-frontend when endpoints are ready for integration.
1402
- Share API response samples with tester.")
1403
-
1404
- Task(team_name="fullstack-{feature}", name="implementer-frontend", subagent_type="implementer",
1405
- mode="bypassPermissions",
1406
- prompt="Fullstack team frontend developer. Implement UI for {feature}.
1407
- SPEC: {spec_content}
1408
- Role: Build UI components and pages per SPEC. Use architect's API contract for types.
1409
- Start with mock data, switch to real API when backend notifies readiness.
1410
- Notify tester when UI is ready for E2E testing.")
1411
-
1412
- Task(team_name="fullstack-{feature}", name="tester", subagent_type="tester",
1413
- mode="bypassPermissions",
1414
- prompt="Fullstack team tester. Write comprehensive tests for {feature}.
1415
- SPEC: {spec_content}
1416
- Role: Write API tests (after backend ready). Write E2E tests (after frontend ready).
1417
- Test API contract conformance. Report integration issues to architect.")
1418
- ```
1419
-
1420
- **활성화 조건:**
1421
-
1422
- - SPEC에 frontend + backend 파일이 모두 포함된 경우
1423
- - 또는 수동으로 `fullstack` 키워드 지정 시
1424
-
1425
- ---
1426
-
1427
- 1. **Related code analysis**: Task(haiku) explores `<context>` related code
1428
- 2. **File creation/modification**: Task(sonnet) implements per `<output_format>`
1429
- 3. **Constraint compliance**: Check `<constraints>`
1430
- 4. **Run verification**: Execute verification commands
1431
-
1432
- ### 4. Brand Assets Generation (Optional)
1433
-
1434
- When starting a **new project** with brand context in SPEC, auto-generate app icons and favicons:
1435
-
1436
- ```
1437
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1438
- 🎨 BRAND ASSETS GENERATION
1439
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1440
-
1441
- [Check] Brand assets exist? → Skip if favicon.ico exists
1442
- [Check] Gemini API configured? → Required for image generation
1443
- [Check] SPEC has brand context? Extract app name, colors, style
1444
-
1445
- [Generate] Creating app icon with Gemini Image API...
1446
- - Prompt: "App icon for [AppName], [style], [color]..."
1447
- - Generated: 512x512 master icon
1448
-
1449
- [Resize] Creating platform variants...
1450
- favicon.ico (16/32/48)
1451
- favicon-16x16.png
1452
- favicon-32x32.png
1453
- ✅ apple-touch-icon.png (180x180)
1454
- ✅ android-chrome-192x192.png
1455
- android-chrome-512x512.png
1456
- ✅ site.webmanifest
1457
-
1458
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1459
- ✅ Brand assets generated in public/
1460
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1461
- ```
1462
-
1463
- **SPEC Brand Context Example:**
1464
-
1465
- ```xml
1466
- <context>
1467
- Brand:
1468
- - App Name: MyApp
1469
- - Primary Color: #2F6BFF
1470
- - Style: Modern, minimalist, flat design
1471
- - Icon Concept: Abstract geometric shape
1472
- </context>
1473
- ```
1474
-
1475
- **Trigger Conditions:**
1476
- - First `/vibe.run` execution (no existing icons)
1477
- - SPEC contains brand/design context
1478
- - Gemini API key configured (`vibe gemini auth`)
1479
-
1480
- **Manual Generation:**
1481
- ```bash
1482
- # [LLM_SCRIPT] = {{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js
1483
- node "[LLM_SCRIPT]" gemini image "App icon for MyApp, primary color #2F6BFF, square format 1:1, simple recognizable design, works well at small sizes, no text or letters, solid or gradient background, modern minimalist" --output "./public/app-icon.png"
1484
- ```
1485
-
1486
- ---
1487
-
1488
- ### 5. Race Code Review (GPT + Gemini) + Auto-Fix (v2.6.9)
1489
-
1490
- After all scenarios are implemented, **GPT and Gemini review in parallel with cross-validation**:
1491
-
1492
- > **ULTRAWORK Default**: In ULTRAWORK mode, race review is automatically enabled.
1493
-
1494
- ```
1495
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1496
- 🏁 RACE CODE REVIEW (GPT + Gemini)
1497
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1498
-
1499
- [Step 1] Parallel review execution...
1500
- ├─ GPT-5.2-Codex: Reviewing...
1501
- └─ Gemini-3-Flash: Reviewing...
1502
-
1503
- [Step 2] Cross-validation results:
1504
- ┌───────────────────────────────────────────────────────────┐
1505
- Issue │ GPT │ Gemini │ Confidence│
1506
- │────────────────────────────────│─────│────────│───────────│
1507
- Timing attack in password │ ✅ │ ✅ │ 100% → P1 │
1508
- Rate limiting missing │ ✅ │ ✅ │ 100% → P1 │
1509
- │ Magic number usage │ ✅ │ ❌ │ 50% → P2 │
1510
- └───────────────────────────────────────────────────────────┘
1511
-
1512
- Summary: 3 issues (P1: 2, P2: 1)
1513
-
1514
- [Step 3] Auto-fixing P1/P2 issues...
1515
- auth.service.ts:24 - Applied timingSafeEqual (P1)
1516
- ✅ auth.controller.ts:15 - Added rate limiter (P1)
1517
- auth.service.ts:42 - Extracted constant (P2)
1518
-
1519
- [Step 4] Re-verifying...
1520
- Build succeeded
1521
- Tests passed
1522
-
1523
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1524
- Race review complete! 3 improvements (2 P1, 1 P2)
1525
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1526
- ```
1527
-
1528
- **Race Review Invocation (GPT + Gemini in parallel via Bash):**
1529
-
1530
- **🚨 Use --input file to avoid CLI argument length limits and Windows pipe issues.**
1531
-
1532
- 1. Save code to review into `[SCRATCHPAD]/review-code.txt` (using Write tool)
1533
- 2. Write JSON input file `[SCRATCHPAD]/review-input.json` (using Write tool):
1534
- - `{"prompt": "Review this code for security, performance, and best practices. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: [CODE_CONTENT]"}`
1535
- - Where `[CODE_CONTENT]` is the code text (properly JSON-escaped inside the prompt string)
1536
- 3. Script path: `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
1537
- 4. Run GPT + Gemini in PARALLEL (two Bash tool calls at once):
1538
-
1539
- ```bash
1540
- # GPT review (Bash tool call 1)
1541
- node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/review-input.json"
1542
- ```
1543
-
1544
- ```bash
1545
- # Gemini review (Bash tool call 2 - run in parallel)
1546
- node "[LLM_SCRIPT]" gemini orchestrate-json --input "[SCRATCHPAD]/review-input.json"
1547
- ```
1548
-
1549
- **Confidence-based Priority:**
1550
-
1551
- | Confidence | Priority | Action |
1552
- |------------|----------|--------|
1553
- | 100% (2/2) | P1 | Auto-fix immediately |
1554
- | 50% (1/2) | P2 | Auto-fix with review |
1555
-
1556
- **Fallback handling:**
1557
- - If one LLM fails → Use remaining LLM results (reduced confidence)
1558
- - If all fail → Skip and proceed (log warning)
1559
-
1560
- **Review application rules:**
1561
-
1562
- | Feedback Type | Action |
1563
- |---------------|--------|
1564
- | Security vulnerability (P1) | Auto-fix immediately |
1565
- | Performance improvement (P1/P2) | Auto-fix immediately |
1566
- | Best practices (P2) | Auto-fix |
1567
- | Style/preference (P3) | Apply selectively |
1568
-
1569
- **Conditions:**
1570
- - **ULTRAWORK**: Race review enabled by default
1571
- - **Normal mode**: Use `--race` flag to enable
1572
- - Must re-verify build/tests after fixes
1573
-
1574
- ### 6. Quality Report (Auto-generated)
1575
-
1576
- After all scenarios complete + Gemini review, **quality report is auto-generated**:
1577
-
1578
- ```
1579
- ┌─────────────────────────────────────────────────────────────────┐
1580
- │ 📊 QUALITY REPORT: login │
1581
- ├─────────────────────────────────────────────────────────────────┤
1582
- │ │
1583
- │ ✅ Scenarios: 4/4 passed │
1584
- │ │
1585
- ┌───────────────────────────────────────────────────────────┐ │
1586
- # Scenario │ Status │ Retries │ │ │
1587
- │ │───│───────────────────────────│────────│─────────│ │ │
1588
- │ │ 1 Valid login success │ ✅ │ 0 │ │ │
1589
- 2 │ Invalid password error │ ✅ │ 1 │ │ │
1590
- │ 3 │ Email format validation │ 0 │ │ │
1591
- │ 4 │ Password reset link │ 0 │ │ │
1592
- └───────────────────────────────────────────────────────────┘ │
1593
- │ │
1594
- 📈 Quality score: 94/100 │
1595
- │ │
1596
- │ ┌─────────────────────────────────────────────────────────┐ │
1597
- │ │ Item │ Result │ Notes │ │
1598
- │ │───────────────────│────────│─────────────────────────────│ │
1599
- │ │ Build │ ✅ │ npm run build succeeded │ │
1600
- │ │ Tests │ ✅ │ 12/12 passed │ │
1601
- │ │ Type check │ ✅ │ 0 errors │ │
1602
- │ │ Complexity │ ✅ │ All functions ≤30 lines │ │
1603
- │ │ Security │ ✅ │ 0 vulnerabilities │ │
1604
- │ │ Race review │ ✅ │ 3 improvements applied │ │
1605
- │ └─────────────────────────────────────────────────────────┘ │
1606
- │ │
1607
- ⏱️ Started: {start_time} │
1608
- ⏱️ Completed: {getCurrentTime 결과} │
1609
- │ │
1610
- └─────────────────────────────────────────────────────────────────┘
1611
- ```
1612
-
1613
- **What users should check**:
1614
- - Scenario pass rate (4/4 = 100%)
1615
- - Quality score (94/100)
1616
- - Build/test status
1617
-
1618
- **This alone is enough to trust quality.**
1619
-
1620
- ### 7. Update Feature File
1621
-
1622
- Auto-update scenario status:
1623
-
1624
- ```markdown
1625
- ## Coverage
1626
-
1627
- | Scenario | SPEC AC | Status |
1628
- |----------|---------|--------|
1629
- | Valid login success | AC-1 | |
1630
- | Invalid password error | AC-2 | ✅ |
1631
- | Email format validation | AC-3 | |
1632
- | Password reset link | AC-4 | ✅ |
1633
-
1634
- **Last verified**: 2024-01-15 14:32
1635
- **Quality score**: 94/100
1636
- ```
1637
-
1638
- ## TRUST 5 Principles
1639
-
1640
- Follow during implementation:
1641
-
1642
- | Principle | Description |
1643
- |-----------|-------------|
1644
- | **T**est-first | Write tests first |
1645
- | **R**eadable | Clear code |
1646
- | **U**nified | Consistent style |
1647
- | **S**ecured | Consider security |
1648
- | **T**rackable | Logging, monitoring |
1649
-
1650
- ## Input
1651
-
1652
- - `.claude/vibe/specs/{feature-name}.md` (PTCF SPEC)
1653
- - `.claude/vibe/features/{feature-name}.feature` (BDD)
1654
- - `CLAUDE.md` (project context)
1655
-
1656
- ## Output
1657
-
1658
- - Implemented code files
1659
- - Test files
1660
- - Updated SPEC document (checkmarks)
1661
-
1662
- ## Example
1663
-
1664
- ```
1665
- User: /vibe.run "login"
1666
-
1667
- Claude:
1668
- 📄 Loading SPEC: .claude/vibe/specs/login.md
1669
- 📄 Loading Feature: .claude/vibe/features/login.feature
1670
-
1671
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1672
- 📋 Scenarios to Implement
1673
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1674
-
1675
- | # | Scenario | Status |
1676
- |---|----------|--------|
1677
- | 1 | Valid login success | ⬜ |
1678
- | 2 | Invalid password error | ⬜ |
1679
- | 3 | Email format validation | ⬜ |
1680
- | 4 | Password reset link | ⬜ |
1681
-
1682
- Total: 4 scenarios
1683
-
1684
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1685
- 🎯 Scenario 1/4: Valid login success
1686
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1687
-
1688
- Given: User is registered
1689
- When: Login with valid email and password
1690
- Then: Login success + JWT token returned
1691
-
1692
- [PARALLEL] Exploring...
1693
- Exploration complete (2.1s)
1694
-
1695
- 🔨 Implementing...
1696
- auth.service.ts - Added login()
1697
- auth.controller.ts - POST /login
1698
-
1699
- 🔍 Verifying...
1700
- ✅ Given: OK
1701
- When: OK
1702
- ✅ Then: OK
1703
-
1704
- Scenario 1 passed!
1705
-
1706
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1707
- 🎯 Scenario 2/4: Invalid password error
1708
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1709
-
1710
- 🔨 Implementing...
1711
- auth.service.ts - Password validation logic
1712
-
1713
- 🔍 Verifying...
1714
- ✅ Given: OK
1715
- When: OK
1716
- ❌ Then: "Invalid credentials" error message
1717
- Actual: "Error" returned
1718
-
1719
- 🔄 Auto-fix 1/3...
1720
- Fix: auth.service.ts line 42
1721
-
1722
- 🔍 Re-verifying...
1723
- ✅ Then: OK
1724
-
1725
- Scenario 2 passed! (1 fix)
1726
-
1727
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1728
- 🎯 Scenario 3/4: Email format validation
1729
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1730
-
1731
- 🔨 Implementing...
1732
- 🔍 Verifying...
1733
- Scenario 3 passed!
1734
-
1735
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1736
- 🎯 Scenario 4/4: Password reset link
1737
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1738
-
1739
- 🔨 Implementing...
1740
- 🔍 Verifying...
1741
- Scenario 4 passed!
1742
-
1743
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1744
- 🔍 GEMINI CODE REVIEW
1745
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1746
-
1747
- 📤 Sending code to Gemini...
1748
- 📝 Gemini feedback:
1749
- 1. [Security] Need timing attack prevention → Fixing...
1750
- 2. [Performance] Unnecessary DB call → Fixing...
1751
-
1752
- 2 improvements auto-applied
1753
- 🔍 Re-verifying... Passed
1754
-
1755
- ┌─────────────────────────────────────────────────────────────────┐
1756
- │ 📊 QUALITY REPORT: login │
1757
- ├─────────────────────────────────────────────────────────────────┤
1758
- │ │
1759
- │ ✅ Scenarios: 4/4 passed │
1760
- │ │
1761
- │ | # | Scenario | Status | Retries | │
1762
- │ |---|───────────────────────|───────|─────────| │
1763
- │ | 1 | Valid login success | ✅ | 0 | │
1764
- │ | 2 | Invalid password error| ✅ | 1 | │
1765
- │ | 3 | Email format validation| ✅ | 0 | │
1766
- | 4 | Password reset link | ✅ | 0 |
1767
- │ │
1768
- │ 📈 Quality score: 94/100 │
1769
- │ Build: | Tests: | Types: | Gemini: (2 applied) │
1770
- │ │
1771
- │ ⏱️ Started: {start_time} │
1772
- │ ⏱️ Completed: {getCurrentTime 결과} │
1773
- └─────────────────────────────────────────────────────────────────┘
1774
-
1775
- 🎉 Implementation complete! All scenarios passed + Gemini review applied.
1776
-
1777
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1778
- 🔍 AUTO REVIEW (13+ Agents)
1779
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1780
-
1781
- [PARALLEL] 13 expert agents reviewing...
1782
- - security-reviewer ✅
1783
- - performance-reviewer
1784
- - architecture-reviewer
1785
- - ...
1786
-
1787
- 📋 Review results:
1788
- - P1 Critical: 0
1789
- - P2 Important: 2
1790
- - P3 Nice-to-have: 1
1791
-
1792
- 🔧 Auto-fixing P2 issues...
1793
- 1. [PERF] N+1 query → Fixed
1794
- 2. [ARCH] Circular dependency → Fixed
1795
-
1796
- ✅ Auto Review complete! 2 issues auto-resolved.
1797
- ```
1798
-
1799
- ### Phase-specific Execution
1800
-
1801
- ```
1802
- User: /vibe.run "brick-game" --phase 2
1803
-
1804
- Claude:
1805
- 📄 Reading SPEC: .claude/vibe/specs/brick-game.md
1806
- 🎯 Executing Phase 2 only.
1807
-
1808
- Phase 2: Game Logic
1809
- 1. [ ] Paddle movement implementation
1810
- 2. [ ] Ball physics engine
1811
- 3. [ ] Brick collision handling
1812
- 4. [ ] Score system
1813
- 5. [ ] Game over conditions
1814
-
1815
- ⚡ Launching parallel exploration...
1816
- [Task(haiku) × 3 launched in parallel]
1817
-
1818
- 🚀 Starting implementation...
1819
- ```
1820
-
1821
- ## Error Handling
1822
-
1823
- On failure:
1824
- 1. Check error message
1825
- 2. Review `<constraints>`
1826
- 3. Fix code and retry
1827
- 4. If continues to fail, report to user
1828
-
1829
- ---
1830
-
1831
- ## Quality Gate (Mandatory)
1832
-
1833
- ### Implementation Quality Checklist
1834
-
1835
- Before marking any scenario as complete, ALL items must pass:
1836
-
1837
- | Category | Check Item | Weight |
1838
- |----------|------------|--------|
1839
- | **Functionality** | All Given/When/Then conditions verified | 20% |
1840
- | **Functionality** | Edge cases handled per scenario | 10% |
1841
- | **Code Quality** | No `any` types in TypeScript | 10% |
1842
- | **Code Quality** | Functions ≤30 lines, nesting ≤3 levels | 10% |
1843
- | **Code Quality** | No hardcoded values (use constants) | 5% |
1844
- | **Security** | Input validation implemented | 10% |
1845
- | **Security** | Authentication/authorization checked | 5% |
1846
- | **Error Handling** | Try-catch or error states present | 10% |
1847
- | **Error Handling** | User-friendly error messages | 5% |
1848
- | **Testing** | Unit tests exist for core logic | 10% |
1849
- | **Performance** | No N+1 queries or unnecessary loops | 5% |
1850
-
1851
- ### Quality Score Calculation
1852
-
1853
- ```
1854
- Score = Σ(checked items × weight) / 100
1855
-
1856
- Grades:
1857
- - 95-100: ✅ EXCELLENT - Ready to merge
1858
- - 90-94: ⚠️ GOOD - Minor improvements required before merge
1859
- - 80-89: ⚠️ FAIR - Significant improvements required
1860
- - 0-79: ❌ POOR - Major fixes needed
1861
- ```
1862
-
1863
- ### Quality Gate Thresholds
1864
-
1865
- | Gate | Minimum Score | Condition |
1866
- |------|---------------|-----------|
1867
- | **Scenario Complete** | 95 | Each scenario must score ≥95 |
1868
- | **Phase Complete** | 95 | Average of all scenarios ≥95 |
1869
- | **Feature Complete** | 95 | All phases complete + Gemini review |
1870
-
1871
- ### Auto-Fix Triggers
1872
-
1873
- | Issue Type | Auto-Fix Action |
1874
- |------------|-----------------|
1875
- | Missing error handling | Add try-catch wrapper |
1876
- | Hardcoded values | Extract to constants file |
1877
- | Missing input validation | Add validation schema |
1878
- | Function too long | Suggest split points |
1879
- | N+1 query detected | Add eager loading |
1880
-
1881
- ### Forbidden Patterns (Block Merge)
1882
-
1883
- | Pattern | Why Forbidden | Detection |
1884
- |---------|---------------|-----------|
1885
- | `console.log` | Debug code in production | Regex scan |
1886
- | `// TODO` without issue | Untracked work | Comment scan |
1887
- | `any` type | Type safety bypass | TypeScript check |
1888
- | `@ts-ignore` | Type error suppression | TypeScript check |
1889
- | Empty catch blocks | Silent error swallowing | AST analysis |
1890
- | Commented-out code | Dead code | Comment scan |
1891
-
1892
- ---
1893
-
1894
- ## Auto-Retrospective (Post-Implementation)
1895
-
1896
- After ALL phases complete successfully, **automatically** perform a brief retrospective:
1897
-
1898
- ### Retrospective Template
1899
-
1900
- ```
1901
- ## Retrospective: {feature-name}
1902
-
1903
- ### What Worked
1904
- - [List effective patterns, tools, approaches used]
1905
-
1906
- ### What Didn't
1907
- - [List issues, failures, unexpected blockers]
1908
-
1909
- ### Key Decisions
1910
- - [Important architectural or implementation decisions made during this run]
1911
-
1912
- ### Lessons Learned
1913
- - [Principle format: "When X, do Y because Z"]
1914
- ```
1915
-
1916
- ### Execution Steps
1917
-
1918
- 1. Generate retrospective based on the implementation session
1919
- 2. Save to `.claude/vibe/retros/{feature-name}.md`
1920
- 3. Save key lessons via `core_save_memory` (for cross-session recall)
1921
- 4. Update `claude-progress.txt` with final status
1922
-
1923
- **Important:**
1924
-
1925
- - Keep it concise (under 20 lines)
1926
- - Focus on **project-specific** insights, not generic knowledge
1927
- - Only save to memory if the lesson is actionable and non-obvious
1928
-
1929
- ---
1930
-
1931
- ## Next Step
1932
-
1933
- ```
1934
- /vibe.verify "brick-game"
1935
- ```
1936
-
1937
- ---
1938
-
1939
- ARGUMENTS: $ARGUMENTS
1
+ ---
2
+ description: Execute implementation from SPEC
3
+ argument-hint: "feature name" or --phase N
4
+ ---
5
+
6
+ # /vibe.run
7
+
8
+ Execute **Scenario-Driven Implementation** with automatic quality verification.
9
+
10
+ > **Core Principle**: Scenarios are both the implementation unit and verification criteria. All scenarios passing = Quality guaranteed.
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ /vibe.run "feature-name" # Full implementation
16
+ /vibe.run "feature-name" --phase 1 # Specific Phase only
17
+ /vibe.run "feature-name" ultrawork # ULTRAWORK mode (recommended)
18
+ /vibe.run "feature-name" ulw # Short alias for ultrawork
19
+ ```
20
+
21
+ ---
22
+
23
+ > **⏱️ Timer**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
24
+
25
+ ## File Reading Policy (Mandatory)
26
+
27
+ - **SPEC/Feature 파일**: 반드시 `Read` 도구로 전체 파일을 읽을 (Grep 금지)
28
+ - **소스코드 파일**: 구현/수정 대상 파일은 반드시 `Read` 도구로 전체 읽은 후 작업할 것
29
+ - **Grep 사용 제한**: 파일 위치 탐색(어떤 파일에 있는지 찾기)에만 사용. 파일 내용 파악에는 반드시 Read 사용
30
+ - **에이전트 spawn 시**: 프롬프트에 "대상 파일을 Read 도구로 전체 읽은 후 구현하라"를 반드시 포함할 것
31
+ - **부분 읽기 금지**: Grep 결과의 주변 몇 줄만 보고 수정하지 말 것. 전체 맥락을 파악해야 기존 코드와 일관된 구현 가능
32
+
33
+ ## **Scenario-Driven Development (SDD)**
34
+
35
+ > Automate **Scenario = Implementation = Verification** so even non-developers can trust quality
36
+
37
+ ### Core Flow
38
+
39
+ ```
40
+ ┌─────────────────────────────────────────────────────────────────┐
41
+ SCENARIO-DRIVEN IMPLEMENTATION
42
+
43
+ Load Feature file
44
+
45
+ ┌──────────────────────────────────────────────────────────┐
46
+ │ │ Scenario 1: Happy Path │ │
47
+ │ │ Given → When → Then │ │
48
+ │ ││ │
49
+ │ [Implement] → [Verify immediately] → ✅ Pass │
50
+ └──────────────────────────────────────────────────────────┘
51
+
52
+ ┌──────────────────────────────────────────────────────────┐
53
+ │ │ Scenario 2: Edge Case │ │
54
+ │ Given → When → Then │
55
+
56
+ │ [Implement] → [Verify] → ❌ Fail → [Fix] → ✅ Pass │
57
+ └──────────────────────────────────────────────────────────┘
58
+
59
+ ┌──────────────────────────────────────────────────────────┐
60
+ │ │ Scenario N: ... │ │
61
+ │ │ [Implement] [Verify immediately] Pass │ │
62
+ │ └──────────────────────────────────────────────────────────┘ │
63
+ │ ↓ │
64
+ │ ┌──────────────────────────────────────────────────────────┐ │
65
+ │ │ 📊 QUALITY REPORT │ │
66
+ │ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ │
67
+ │ │ Scenarios: 5/5 passed ✅ │ │
68
+ │ │ Quality score: 94/100 │ │
69
+ │ │ Build: ✅ | Tests: ✅ │ │
70
+ │ └──────────────────────────────────────────────────────────┘ │
71
+ └─────────────────────────────────────────────────────────────────┘
72
+ ```
73
+
74
+ ### Scenario = Implementation Unit
75
+
76
+ **Traditional approach (Phase-based)**:
77
+ ```
78
+ Phase 1 → Phase 2 → Phase 3 ... → Verify at the end
79
+
80
+ "Where did it go wrong?"
81
+ ```
82
+
83
+ **SDD approach (Scenario-based)**:
84
+ ```
85
+ Scenario 1 → Implement → Verify ✅
86
+ Scenario 2 Implement Verify ✅
87
+ Scenario 3 → Implement → Verify ❌ → Fix → ✅
88
+ ...
89
+ All pass = Quality guaranteed
90
+ ```
91
+
92
+ ### Automated Verification (Closed Loop)
93
+
94
+ **자율적 AI 코딩 = 구현 + 검증 + 반복. 검증을 AI에게 맡기는 순간 루프가 닫힌다.**
95
+
96
+ After implementing each scenario, **automatic verification**:
97
+
98
+ | Verification Item | Auto Check | Method |
99
+ |-------------------|------------|--------|
100
+ | Given (precondition) | State/data preparation confirmed | Code analysis |
101
+ | When (action) | Feature execution possible | Code analysis + Build |
102
+ | Then (result) | Expected result matches | Code analysis + Test |
103
+ | Code quality | Complexity, style, security | Static analysis |
104
+ | **UI behavior** | **실제 브라우저에서 동작 확인** | **E2E Closed Loop** |
105
+
106
+ ### E2E Closed Loop (UI Scenarios)
107
+
108
+ **UI 시나리오가 포함된 Feature일 때 자동 활성화.**
109
+
110
+ ```
111
+ ┌─────────────────────────────────────────────────────────────────┐
112
+ │ CLOSED LOOP = 구현 + 검증 + 반복 │
113
+ │ │
114
+ │ Scenario 구현 완료 │
115
+ │ ↓ │
116
+ │ [E2E 검증] AI가 직접 브라우저 조작 │
117
+ │ │ (접근성 트리 기반 토큰 효율적)
118
+ │ ├─ PASS → Next scenario │
119
+ │ └─ FAIL Root cause analysis │
120
+ │ → Fix code (Read full file first) │
121
+ │ → Re-run failed scenario only │
122
+ │ → PASS? Next scenario │
123
+ │ → FAIL? Retry (max 3) │
124
+ │ │
125
+ │ 핵심: 검증이 가벼울수록 루프는 많이 돈다 │
126
+ │ - 접근성 트리: button "Sign In" = 15 chars │
127
+ │ - DOM 트리: div class="nav-wrapper mx-4..." = 200+ chars │
128
+ │ - 전자를 써야 한 세션에서 수십 개 시나리오 검증 가능 │
129
+ └─────────────────────────────────────────────────────────────────┘
130
+ ```
131
+
132
+ **Browser Tool Priority:**
133
+
134
+ | Priority | Tool | 용도 |
135
+ |----------|------|------|
136
+ | 1st | Agent Browser (접근성 트리) | AI 직접 조작, 최소 토큰 |
137
+ | 2nd | Playwright Test Runner | 테스트 코드 실행, pass/fail 반환 |
138
+ | 3rd | Playwright MCP (DOM) | 최후 수단, 토큰 비효율 |
139
+
140
+ **활성화 조건:**
141
+ - Feature 파일에 UI 관련 시나리오 존재 (form, button, page, navigate 등)
142
+ - `.claude/vibe/e2e/config.json`의 `closedLoop.enabled: true` (기본값)
143
+ - dev server가 실행 중 (`baseURL` 접근 가능)
144
+
145
+ ### Auto-Fix on Failure
146
+
147
+ ```
148
+ Scenario verification failed (코드 분석 또는 E2E)
149
+
150
+ [Collect evidence]
151
+ - E2E: screenshot, console errors, accessibility tree snapshot
152
+ - Code: build errors, test failures, type errors
153
+
154
+ [Root cause analysis] - Which Then condition failed?
155
+
156
+ [Read target file FULLY] - Grep으로 훑지 말 것
157
+
158
+ [Implement fix] - Fix only that part
159
+
160
+ [Re-verify] - Re-run ONLY failed scenario (save tokens)
161
+
162
+ Repeat until pass (max 3 times)
163
+ ```
164
+
165
+ ---
166
+
167
+ ## **ULTRAWORK Mode** (ulw)
168
+
169
+ > Include `ultrawork` or `ulw` in your command to activate **maximum performance mode**.
170
+
171
+ ### What ULTRAWORK Enables
172
+
173
+ When you include `ultrawork` (or `ulw`), ALL of these activate automatically:
174
+
175
+ | Feature | Description |
176
+ |---------|-------------|
177
+ | **Parallel Exploration** | 3+ Task(haiku) agents run simultaneously |
178
+ | **Boulder Loop** | Auto-continues until ALL phases complete |
179
+ | **Context Compression** | Aggressive auto-save at 70%+ context |
180
+ | **No Pause** | Doesn't wait for confirmation between phases |
181
+ | **External LLMs** | Auto-consults GPT/Gemini if enabled |
182
+ | **Error Recovery** | Auto-retries on failure (up to 3 times) |
183
+ | **Race Review (v2.6.9)** | Multi-LLM review (GPT+Gemini) with cross-validation |
184
+
185
+ ### Boulder Loop (Inspired by Sisyphus)
186
+
187
+ Like Sisyphus rolling the boulder, ULTRAWORK **keeps going until done**:
188
+
189
+ ```
190
+ ┌─────────────────────────────────────────────────────────────────┐
191
+ BOULDER LOOP (ultrawork)
192
+
193
+ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
194
+ Phase 1 │───→│ Phase 2 │───→│ Phase 3 │───→│ Phase N │ │
195
+ └──────────┘ └──────────┘ └──────────┘ └──────────┘
196
+ │ │ │ │
197
+ ↓ ↓ ↓ ↓
198
+ [Parallel] [Parallel] [Parallel] [Parallel]
199
+ [Implement] [Implement] [Implement] [Implement]
200
+ [Test] [Test] [Test] [Test]
201
+
202
+ └───────────────┴───────────────┴───────────────┘
203
+
204
+
205
+ ┌──────────────┐
206
+ │ ALL DONE?
207
+ └──────────────┘
208
+ │ │
209
+ NO YES
210
+ │ │
211
+ │ ↓ ↓ │
212
+ │ [Continue] [🎉 Complete!] │
213
+ │ │
214
+ │ NO STOPPING until acceptance criteria met or error limit hit │
215
+ └─────────────────────────────────────────────────────────────────┘
216
+ ```
217
+
218
+ ### Ralph Loop (Completion Verification) - CRITICAL
219
+
220
+ > **Inspired by [ghuntley.com/ralph](https://ghuntley.com/ralph)**: "Deterministically bad in an undeterministic world" - Keep iterating until TRULY complete.
221
+
222
+ **Problem**: AI often claims "complete" when implementation is partial.
223
+
224
+ **Solution**: RTM-based automated coverage verification with iteration tracking.
225
+
226
+ ```
227
+ ┌─────────────────────────────────────────────────────────────────┐
228
+ │ RALPH LOOP (Mandatory) │
229
+ │ │
230
+ │ After ALL phases complete: │
231
+ │ │
232
+ │ ┌──────────────────────────────────────────────────────────┐ │
233
+ │ │ RTM COVERAGE VERIFICATION [Iteration {{ITER}}/{{MAX}}] │ │
234
+ │ │ │ │
235
+ │ │ Generate RTM via core tools: │ │
236
+ │ │ → generateTraceabilityMatrix("{feature-name}") │ │
237
+ │ │ │ │
238
+ │ │ Coverage Metrics (automated): │ │
239
+ │ │ □ Requirements coverage: {coveragePercent}% │ │
240
+ │ │ □ SPEC Feature mapping: {featureCovered}/{total} │ │
241
+ │ │ □ Feature → Test mapping: {testCovered}/{total} │ │
242
+ │ │ □ Build successful? │ │
243
+ │ │ □ Tests passing? │ │
244
+ │ │ │ │
245
+ │ │ UNCOVERED: {uncoveredRequirements[]} │ │
246
+ │ └──────────────────────────────────────────────────────────┘ │
247
+ │ │ │
248
+ │ ┌──────────┴──────────┐ │
249
+ │ │ Coverage 95%? │ │
250
+ │ └──────────┬──────────┘ │
251
+ │ │ │ │
252
+ │ NO YES │
253
+ │ │ │ │
254
+ │ ↓ ↓ │
255
+ │ ┌────────────────┐ ┌────────────────┐ │
256
+ │ │ IMPLEMENT │ │ ✅ TRULY DONE │ │
257
+ │ │ UNCOVERED │ │ │ │
258
+ │ │ REQUIREMENTS │ Report final │ │
259
+ │ │ (auto-extract) │ │ RTM coverage │ │
260
+ │ └───────┬────────┘ └────────────────┘ │
261
+ │ │ │
262
+ │ └──────────→ [Re-generate RTM] │
263
+ │ │
264
+ │ MAX_ITERATIONS: 5 (prevent infinite loops) │
265
+ │ COVERAGE_THRESHOLD: 95% (quality gate)
266
+ │ ZERO TOLERANCE for scope reduction │
267
+ └─────────────────────────────────────────────────────────────────┘
268
+ ```
269
+
270
+ **Ralph Loop with RTM:**
271
+
272
+ ```bash
273
+ # Generate RTM for coverage verification
274
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.generateTraceabilityMatrix('{feature-name}', {projectPath: process.cwd()}).then(r => console.log(JSON.stringify(r, null, 2))))"
275
+ ```
276
+
277
+ **RTM provides automated metrics:**
278
+
279
+ | Metric | Description |
280
+ |--------|-------------|
281
+ | `totalRequirements` | Total REQ-* items in SPEC |
282
+ | `specCovered` | Requirements with SPEC mapping |
283
+ | `featureCovered` | Requirements with Feature scenarios |
284
+ | `testCovered` | Requirements with test files |
285
+ | `coveragePercent` | Overall coverage percentage |
286
+ | `uncoveredRequirements` | List of missing REQ-* IDs |
287
+
288
+ **Ralph Loop Rules:**
289
+
290
+ | Rule | Description |
291
+ |------|-------------|
292
+ | **No Scope Reduction** | Never say "simplified" or "basic version" - implement FULL request |
293
+ | **Iteration Tracking** | Display `[{{ITER}}/{{MAX}}]` to show progress |
294
+ | **RTM-Based Gap List** | Use `uncoveredRequirements` array - no manual comparison |
295
+ | **Coverage Threshold** | Must reach 95% coverage to complete |
296
+ | **Max Iterations** | Stop at 5 iterations (report remaining gaps) |
297
+
298
+ **Ralph Loop Output Format:**
299
+
300
+ ```
301
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
302
+ 🔄 RALPH VERIFICATION [Iteration 1/5]
303
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
304
+
305
+ 📊 RTM Coverage Report: login
306
+
307
+ Requirements Traceability:
308
+ Total Requirements: 9
309
+ SPEC Covered: 9/9 (100%)
310
+ Feature Covered: 5/9 (55%)
311
+ Test Covered: 4/9 (44%)
312
+
313
+ REQ-login-001: Login form UI Scenario 1 login.test.ts
314
+ REQ-login-002: Email validation Scenario 2 → validation.test.ts
315
+ REQ-login-003: Password validation Scenario 2 validation.test.ts
316
+ ❌ REQ-login-004: Remember me checkbox → NOT IMPLEMENTED
317
+ REQ-login-005: Forgot password link → NOT IMPLEMENTED
318
+ ✅ REQ-login-006: API integration → Scenario 3 → api.test.ts
319
+ ❌ REQ-login-007: Loading state → NOT IMPLEMENTED
320
+ ❌ REQ-login-008: Error toast → NOT IMPLEMENTED
321
+ ✅ REQ-login-009: Session storage → Scenario 4 → (no test)
322
+
323
+ Overall Coverage: 55% ⚠️ BELOW 95% THRESHOLD
324
+
325
+ UNCOVERED REQUIREMENTS (auto-extracted from RTM):
326
+ 1. REQ-login-004: Remember me checkbox
327
+ 2. REQ-login-005: Forgot password link
328
+ 3. REQ-login-007: Loading state
329
+ 4. REQ-login-008: Error toast notifications
330
+
331
+ ⚠️ NOT COMPLETE - Implementing uncovered requirements...
332
+
333
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
334
+ 🔄 RALPH VERIFICATION [Iteration 2/5]
335
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
336
+
337
+ 📊 RTM Coverage Report: login
338
+
339
+ Requirements Traceability:
340
+ Total Requirements: 9
341
+ SPEC Covered: 9/9 (100%)
342
+ Feature Covered: 9/9 (100%)
343
+ Test Covered: 9/9 (100%)
344
+
345
+ Overall Coverage: 100% ABOVE 95% THRESHOLD
346
+
347
+ Build: ✅ Passed
348
+ Tests: 12/12 Passed
349
+ Type Check: ✅ No errors
350
+
351
+ RALPH VERIFIED COMPLETE!
352
+
353
+ 📄 RTM saved: .claude/vibe/rtm/login-rtm.md
354
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
355
+ ```
356
+
357
+ **When to Trigger Ralph Loop:**
358
+
359
+ 1. After all phases complete
360
+ 2. Before final quality report
361
+ 3. Whenever user says "ultrawork" or "ralph"
362
+
363
+ **Forbidden Responses (VIOLATIONS):**
364
+
365
+ | NEVER Say | ✅ Instead |
366
+ |-------------|-----------|
367
+ | "I've implemented a basic version" | Implement the FULL version |
368
+ | "This is a simplified approach" | Implement as specified |
369
+ | "You can add X later" | Add X now |
370
+ | "For demonstration purposes" | Implement production-ready |
371
+ | "The core functionality is done" | ALL functionality must be done |
372
+
373
+ ### ULTRAWORK Example
374
+
375
+ ```
376
+ User: /vibe.run "brick-game" ultrawork
377
+
378
+ Claude:
379
+ 🚀 ULTRAWORK MODE ACTIVATED
380
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
381
+
382
+ 📄 SPEC: .claude/vibe/specs/brick-game.md
383
+ 🎯 4 Phases detected
384
+ ⚡ Boulder Loop: ENABLED (will continue until all phases complete)
385
+ 🔄 Auto-retry: ON (max 3 per phase)
386
+ 💾 Context compression: AGGRESSIVE
387
+
388
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
389
+ 🏔️ BOULDER ROLLING... Phase 1/4
390
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
391
+
392
+ ⚡ [PARALLEL] Launching 3 exploration agents...
393
+ ✅ Exploration complete (7.2s)
394
+ 🔨 Implementing...
395
+ ✅ Phase 1 complete
396
+
397
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
398
+ 🏔️ BOULDER ROLLING... Phase 2/4
399
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
400
+
401
+ ⚡ [PARALLEL] Launching 3 exploration agents...
402
+ Exploration complete (6.8s)
403
+ 🔨 Implementing...
404
+ Test failed: collision detection
405
+ 🔄 Auto-retry 1/3...
406
+ 🔨 Fixing...
407
+ Phase 2 complete
408
+
409
+ [...continues automatically...]
410
+
411
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
412
+ 🎉 BOULDER REACHED THE TOP!
413
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
414
+
415
+ All 4 phases complete
416
+ All acceptance criteria passed
417
+ Build succeeded
418
+ ✅ Tests passed
419
+
420
+ ⏱️ Total: 8m 24s
421
+ 📊 Retries: 2
422
+ 💾 Context saved: 3 checkpoints
423
+ ```
424
+
425
+ ### Normal vs ULTRAWORK Comparison
426
+
427
+ | Aspect | Normal | ULTRAWORK |
428
+ |--------|--------|-----------|
429
+ | Phase transition | May pause | Auto-continues |
430
+ | On error | Reports and stops | Auto-retries (3x) |
431
+ | Context 70%+ | Warning only | Auto-compress + save |
432
+ | Exploration | Sequential possible | FORCED parallel |
433
+ | Completion | Phase-by-phase | Until ALL done |
434
+
435
+ ---
436
+
437
+ ## Rules Reference
438
+
439
+ **Must follow `~/.claude/vibe/rules/` (global):**
440
+
441
+ - `core/development-philosophy.md` - Surgical precision, modify only requested scope
442
+ - `core/quick-start.md` - Korean, DRY, SRP, YAGNI
443
+ - `standards/complexity-metrics.md` - Functions ≤20 lines, nesting ≤3 levels
444
+ - `quality/checklist.md` - Code quality checklist
445
+
446
+ **Language guide:** `~/.claude/vibe/languages/{stack}.md` (global reference)
447
+
448
+ ---
449
+
450
+ ## Coding Guidelines (Mandatory)
451
+
452
+ ### Type Safety: Use Types Explicitly
453
+
454
+ > **Core Principle**: Use types explicitly in every language that has a type system!
455
+
456
+ Type definitions are not just language syntax — they are a **core engineering philosophy for simplifying and controlling complex software**.
457
+
458
+ ### Applies to ALL Typed Languages
459
+
460
+ | Category | Languages | Key Principle |
461
+ |----------|-----------|---------------|
462
+ | **Static Typed** | Java, C#, C++, Go, Rust, Swift, Kotlin, Scala | Types = compile-time contracts |
463
+ | **Gradual Typed** | TypeScript, Python (typing), PHP (typed), Ruby (RBS) | Types = optional safety nets |
464
+ | **Functional** | Haskell, OCaml, F#, Elm | Types = logical proofs |
465
+
466
+ ### Universal Anti-Patterns (All Languages)
467
+
468
+ | Forbidden Pattern | Why | ✅ Instead |
469
+ |---------------------|-----|-----------|
470
+ | Type escape hatches (`any`, `Any`, `Object`, `void*`, `interface{}`) | Loses type info, runtime errors | Concrete types or `unknown` + guards |
471
+ | Type suppression (`@ts-ignore`, `# type: ignore`, `@SuppressWarnings`) | Hides errors | Fix actual type issues |
472
+ | Raw generic types (`List`, `Map` without params) | Loses type safety | `List<User>`, `Map<String, Order>` |
473
+ | Excessive casting (`as`, `(Type)`, `unsafe`) | Bypasses compiler | Type guards or pattern matching |
474
+
475
+ ### Language-Specific Guidelines
476
+
477
+ **TypeScript/JavaScript:**
478
+ ```typescript
479
+ // BAD
480
+ function process(data: any): any { return data.foo; }
481
+
482
+ // GOOD
483
+ function process(data: unknown): Result {
484
+ if (isValidData(data)) return data.foo;
485
+ throw new Error('Invalid');
486
+ }
487
+ ```
488
+
489
+ **Python:**
490
+ ```python
491
+ # ❌ BAD
492
+ def process(data: Any) -> Any: return data["key"]
493
+
494
+ # GOOD
495
+ def process(data: UserData) -> str: return data["name"]
496
+ ```
497
+
498
+ **Java/Kotlin:**
499
+ ```java
500
+ // BAD
501
+ List items = new ArrayList(); // Raw type
502
+ Object data = getData(); // Lost type info
503
+
504
+ // GOOD
505
+ List<User> users = new ArrayList<>();
506
+ User user = getUser();
507
+ ```
508
+
509
+ **Go:**
510
+ ```go
511
+ // ❌ BAD
512
+ func process(data interface{}) interface{} { ... }
513
+
514
+ // GOOD
515
+ func process(data UserRequest) (UserResponse, error) { ... }
516
+ ```
517
+
518
+ **Rust:**
519
+ ```rust
520
+ // BAD (unnecessary unsafe or Box<dyn Any>)
521
+ let data: Box<dyn Any> = get_data();
522
+
523
+ // ✅ GOOD
524
+ let data: UserData = get_data()?;
525
+ ```
526
+
527
+ **C#:**
528
+ ```csharp
529
+ // BAD
530
+ object data = GetData();
531
+ dynamic result = Process(data);
532
+
533
+ // GOOD
534
+ UserData data = GetData();
535
+ Result result = Process(data);
536
+ ```
537
+
538
+ ### Type Safety Rules (Universal)
539
+
540
+ | Rule | Description |
541
+ |------|-------------|
542
+ | **Boundary Validation** | Validate only at system boundaries (API, JSON, user input) |
543
+ | **Internal Trust** | After validation, pass only precise types internally |
544
+ | **No Type Escape** | Never use escape hatches to "fix" type errors |
545
+ | **Explicit Signatures** | Specify types in function/method signatures |
546
+ | **Generics with Params** | Always use generics with type parameters |
547
+
548
+ ### Quality Gate: Type Violations Block Merge
549
+
550
+ | Violation | Action |
551
+ |-----------|--------|
552
+ | Type escape hatches (`any`, `Any`, `Object`, `interface{}`, etc.) | ❌ Block |
553
+ | Type suppression comments | Block |
554
+ | Raw generic types | Block |
555
+ | Missing function return types | ⚠️ Warning |
556
+ | Excessive type casting | ⚠️ Warning |
557
+
558
+ ## Description
559
+
560
+ Read PTCF structured SPEC document and execute implementation immediately.
561
+
562
+ > **PLAN, TASKS documents unnecessary** - SPEC is the executable prompt
563
+
564
+ ## Model Orchestration (Intelligent Routing)
565
+
566
+ Automatically select optimal model based on **task complexity analysis**.
567
+
568
+ ### Complexity-Based Model Selection
569
+
570
+ | Complexity Score | Model | When to Use |
571
+ |------------------|-------|-------------|
572
+ | 0-7 (Low) | **Haiku** | Simple fixes, searches, single file changes |
573
+ | 8-19 (Medium) | **Sonnet** | Standard features, 3-5 files, integrations |
574
+ | 20+ (High) | **Opus** | Architecture, security, multi-service, 6+ files |
575
+
576
+ ### Complexity Signals
577
+
578
+ The following signals increase complexity score:
579
+
580
+ | Signal | Score |
581
+ |--------|-------|
582
+ | Architecture change | +15 |
583
+ | Security implication | +12 |
584
+ | Multi-service | +8 |
585
+ | Refactoring | +12 |
586
+ | 6+ files | +15 |
587
+ | 3-5 files | +8 |
588
+ | New feature | +5 |
589
+ | Bug fix | -3 |
590
+ | Documentation | -5 |
591
+
592
+ ### Agent Tier System
593
+
594
+ Each agent has tier variants for cost optimization:
595
+
596
+ | Agent | Low (Haiku) | Medium (Sonnet) | High (Opus) |
597
+ |-------|-------------|-----------------|-------------|
598
+ | explorer | explorer-low | explorer-medium | explorer |
599
+ | implementer | implementer-low | implementer-medium | implementer |
600
+ | architect | architect-low | architect-medium | architect |
601
+
602
+ ### Task Calls by Role
603
+
604
+ | Task Type | Model | Task Parameter |
605
+ |-----------|-------|----------------|
606
+ | Simple search | Haiku | `model: "haiku"` |
607
+ | Codebase exploration | Haiku/Sonnet | Auto-selected |
608
+ | Core implementation | Sonnet | `model: "sonnet"` |
609
+ | Test writing | Haiku | `model: "haiku"` |
610
+ | Architecture decisions | Opus | Main session |
611
+ | Final review | Opus | Main session |
612
+
613
+ ### External LLM Usage (When Enabled)
614
+
615
+ When external LLMs are enabled in `.claude/vibe/config.json`:
616
+
617
+ | Role | Method | Condition |
618
+ |------|--------|-----------|
619
+ | User direct query | `gpt.question`, `gemini.question` | Hook auto-handles |
620
+ | Internal orchestration | Call global script via Bash | Claude calls directly |
621
+
622
+ **User questions (Hook auto-handles):**
623
+ - `gpt.question` - GPT architecture consultation
624
+ - `gemini.question` - Gemini Q&A/consultation
625
+
626
+ **Claude internal calls (directly via Bash):**
627
+ ```bash
628
+ # Usage: node llm-orchestrate.js <provider> <mode> [systemPrompt] [prompt]
629
+ # - If systemPrompt omitted, uses default
630
+ # - If systemPrompt is "-", uses default and treats next argument as prompt
631
+
632
+ # [LLM_SCRIPT] = {{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js
633
+
634
+ # GPT call (short prompt - CLI arg)
635
+ node "[LLM_SCRIPT]" gpt orchestrate-json "[question content]"
636
+
637
+ # Gemini call
638
+ node "[LLM_SCRIPT]" gemini orchestrate-json "[question content]"
639
+
640
+ # Custom system prompt usage
641
+ node "[LLM_SCRIPT]" gpt orchestrate-json "You are a code reviewer" "[question content]"
642
+
643
+ # Long prompt - use --input file (write JSON file first with Write tool)
644
+ # JSON format: {"prompt": "your prompt here"}
645
+ node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/input.json"
646
+ ```
647
+
648
+ ### External LLM Fallback
649
+
650
+ **IMPORTANT**: When GPT/Gemini hook fails, Claude MUST handle the task directly:
651
+
652
+ **Fallback behavior**:
653
+ - Do NOT retry the external LLM call
654
+ - Claude handles the task using its own capabilities
655
+ - Continue with the implementation without interruption
656
+ - Log the fallback but don't block progress
657
+
658
+ ## Core Tools (Semantic Analysis & Memory)
659
+
660
+ Use core tools for accurate codebase understanding and session continuity.
661
+
662
+ ### Tool Invocation
663
+
664
+ All tools are called via:
665
+ ```bash
666
+ 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)))"
667
+ ```
668
+
669
+ ### Semantic Analysis Tools
670
+
671
+ | Tool | Purpose | Usage |
672
+ |------|---------|-------|
673
+ | `findSymbol` | Find symbol definitions | `{symbolName: 'functionName', searchPath: '.'}` |
674
+ | `findReferences` | Find all references | `{symbolName: 'functionName', searchPath: '.'}` |
675
+ | `analyzeComplexity` | Analyze code complexity | `{filePath: 'src/file.ts'}` |
676
+ | `validateCodeQuality` | Validate code quality | `{filePath: 'src/file.ts'}` |
677
+
678
+ **Example - Find symbol:**
679
+ ```bash
680
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.findSymbol({symbolName: 'login', searchPath: '.'}).then(r => console.log(r.content[0].text)))"
681
+ ```
682
+
683
+ ### Memory Tools
684
+
685
+ | Tool | Purpose | Usage |
686
+ |------|---------|-------|
687
+ | `saveMemory` | Save important decisions | `{key: 'decision-name', value: 'content', category: 'project'}` |
688
+ | `recallMemory` | Recall saved memory | `{key: 'decision-name'}` |
689
+ | `listMemories` | List all memories | `{category: 'project'}` |
690
+
691
+ **Example - Save important decision:**
692
+ ```bash
693
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index.js').then(t => t.saveMemory({key: 'auth-pattern', value: 'Using JWT with refresh tokens', category: 'project'}).then(r => console.log(r.content[0].text)))"
694
+ ```
695
+
696
+ ### Session Management (Auto via Hooks)
697
+
698
+ - **Session start**: Hook auto-calls `startSession` to restore previous context
699
+ - **Context 80%+**: Hook auto-calls `autoSaveContext` to preserve state
700
+
701
+ ## Process
702
+
703
+ ### 1. Load SPEC + Feature
704
+
705
+ **Search order (check BOTH file AND folder):**
706
+
707
+ ```
708
+ Step 1: Check if SPLIT structure exists (folder)
709
+ 📁 .claude/vibe/specs/{feature-name}/ → Folder with _index.md + phase files
710
+ 📁 .claude/vibe/features/{feature-name}/ → Folder with _index.feature + phase files
711
+
712
+ Step 2: If no folder, check single file
713
+ 📄 .claude/vibe/specs/{feature-name}.md → Single SPEC file
714
+ 📄 .claude/vibe/features/{feature-name}.feature → Single Feature file
715
+
716
+ Step 3: If neither exists → Error
717
+ ```
718
+
719
+ **Split structure (folder) detected:**
720
+ ```
721
+ 📁 .claude/vibe/specs/{feature-name}/
722
+ ├── _index.md → Master SPEC (read first for overview)
723
+ ├── phase-1-{name}.md → Phase 1 SPEC
724
+ ├── phase-2-{name}.md → Phase 2 SPEC
725
+ └── ...
726
+
727
+ 📁 .claude/vibe/features/{feature-name}/
728
+ ├── _index.feature → Master Feature (read first for scenario overview)
729
+ ├── phase-1-{name}.feature → Phase 1 scenarios
730
+ ├── phase-2-{name}.feature → Phase 2 scenarios
731
+ └── ...
732
+
733
+ → Load _index.md first, then load phase files in order
734
+ Execute phases sequentially (or per --phase flag)
735
+ ```
736
+
737
+ **Single file detected:**
738
+ ```
739
+ 📄 .claude/vibe/specs/{feature-name}.md → SPEC (structure, constraints, context)
740
+ 📄 .claude/vibe/features/{feature-name}.feature → Feature (scenario = implementation unit)
741
+ ```
742
+
743
+ **Error if NEITHER file NOR folder found:**
744
+ ```
745
+ ❌ SPEC not found. Searched:
746
+ - .claude/vibe/specs/{feature-name}/ (folder)
747
+ - .claude/vibe/specs/{feature-name}.md (file)
748
+
749
+ Run /vibe.spec "{feature-name}" first.
750
+ ```
751
+
752
+ ### 1-1. Phase Isolation Protocol (Large SPEC Guard)
753
+
754
+ > **Problem**: Large SPECs (3+ phases, 5+ scenarios) overflow context — agent drifts from SPEC by Phase 3.
755
+ > **Solution**: Load only the current phase's SPEC section. Re-anchor before each scenario.
756
+
757
+ **Phase Isolation Rules (MANDATORY for 3+ phases):**
758
+
759
+ ```
760
+ ┌─────────────────────────────────────────────────────────────────┐
761
+ PHASE ISOLATION PROTOCOL │
762
+ │ │
763
+ │ ❌ WRONG: Load entire SPEC → implement all phases │
764
+ │ ✅ RIGHT: Load _index overview → per-phase load → implement │
765
+ │ │
766
+ │ Step A: Read _index.md (overview only — phase list, REQ IDs) │
767
+ │ Step B: For each Phase N: │
768
+ │ 1. RE-READ Phase N SPEC section (every time, no memory) │
769
+ │ 2. RE-READ Phase N Feature scenarios │
770
+ │ 3. Extract Phase N scope: files, scenarios, requirements │
771
+ │ 4. Implement Phase N scenarios │
772
+ │ 5. Verify Phase N │
773
+ │ 6. Write Phase Checkpoint → .claude/vibe/checkpoints/ │
774
+ │ 7. DISCARD Phase N details from working memory │
775
+ │ Step C: Next Phase — go to Step B │
776
+ └─────────────────────────────────────────────────────────────────┘
777
+ ```
778
+
779
+ **Phase Checkpoint Format** (`.claude/vibe/checkpoints/{feature}-phase-{N}.md`):
780
+
781
+ ```markdown
782
+ # Checkpoint: {feature} Phase {N}
783
+
784
+ ## Completed
785
+ - Scenario 1: {name} ✅
786
+ - Scenario 2: {name}
787
+
788
+ ## Files Changed
789
+ - src/auth.service.ts (added login(), validateToken())
790
+ - src/auth.controller.ts (POST /login, POST /refresh)
791
+
792
+ ## State for Next Phase
793
+ - Auth service exports: login(), logout(), validateToken(), refreshToken()
794
+ - JWT secret configured in .env (JWT_SECRET)
795
+ - Test baseline: 12 tests passing
796
+
797
+ ## Remaining Phases
798
+ - Phase {N+1}: {name} — {scenario count} scenarios
799
+ - Phase {N+2}: {name} — {scenario count} scenarios
800
+ ```
801
+
802
+ **SPEC Re-anchoring (Before EVERY scenario):**
803
+
804
+ ```
805
+ Before implementing Scenario X:
806
+ 1. Re-read the EXACT Given/When/Then from Feature file (not from memory!)
807
+ 2. Compare: "Am I about to implement what the SPEC says, or what I think it says?"
808
+ 3. If single-file SPEC: re-read only the current phase section (use line offsets)
809
+ 4. If split SPEC: re-read only phase-N-{name}.md
810
+ ```
811
+
812
+ **Scope Lock (Per Phase):**
813
+
814
+ ```
815
+ At Phase start, declare:
816
+ MODIFY: [list of files this phase will touch]
817
+ CREATE: [list of files this phase will create]
818
+ DO NOT TOUCH: everything else
819
+
820
+ If implementation requires files outside scope:
821
+ STOP. Re-read SPEC. Is this actually needed?
822
+ If yes: add to scope with explicit justification
823
+ → If no: you're drifting. Return to SPEC.
824
+ ```
825
+
826
+ **Context Pressure Handling:**
827
+
828
+ | Context Level | Action |
829
+ |---------------|--------|
830
+ | < 50% | Normal execution |
831
+ | 50-70% | Save checkpoint, trim exploration results |
832
+ | 70%+ | Save checkpoint → `/new` → resume from checkpoint |
833
+ | Phase boundary | Always save checkpoint regardless of context level |
834
+
835
+ ### 2. Extract Scenario List
836
+
837
+ Extract all Scenarios from Feature file:
838
+
839
+ ```markdown
840
+ ## Scenarios to Implement
841
+
842
+ | # | Scenario | Status |
843
+ |---|----------|--------|
844
+ | 1 | Valid login success | ⬜ |
845
+ | 2 | Invalid password error | ⬜ |
846
+ | 3 | Email format validation | ⬜ |
847
+ | 4 | Password reset link | ⬜ |
848
+
849
+ Total: 4 scenarios
850
+ ```
851
+
852
+ ### 3. Scenario-by-Scenario Implementation (Core)
853
+
854
+ **For each scenario**:
855
+
856
+ ```
857
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
858
+ 🎯 Scenario 1/4: Valid login success
859
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
860
+
861
+ Given: User is registered
862
+ When: Login with valid email and password
863
+ Then: Login success + JWT token returned
864
+
865
+ [Step 1] Analyzing implementation...
866
+ - Required files: auth.service.ts, login.controller.ts
867
+ - Exploring related code...
868
+
869
+ [Step 2] Implementing...
870
+ ✅ auth.service.ts - Added login() method
871
+ ✅ login.controller.ts - POST /login endpoint
872
+
873
+ [Step 3] Verifying...
874
+ Given: Test user creation possible
875
+ ✅ When: Login API call succeeded
876
+ ✅ Then: JWT token return confirmed
877
+
878
+ ✅ Scenario 1 passed!
879
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
880
+ ```
881
+
882
+ **On failure**:
883
+
884
+ ```
885
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
886
+ 🎯 Scenario 2/4: Invalid password error
887
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
888
+
889
+ [Step 3] Verifying...
890
+ Given: Test user exists
891
+ ✅ When: Login attempt with wrong password
892
+ Then: "Invalid credentials" error message
893
+ Actual: "Error occurred" returned
894
+
895
+ [Auto-fix 1/3]
896
+ Cause: Error message not properly set
897
+ Fix: auth.service.ts line 42
898
+
899
+ [Re-verify]
900
+ Then: "Invalid credentials" error message
901
+
902
+ Scenario 2 passed! (1 fix)
903
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
904
+ ```
905
+
906
+ ---
907
+
908
+ ## **CRITICAL: Parallel Sub-Agent Execution**
909
+
910
+ > **MUST USE PARALLEL TASK CALLS** - This is REQUIRED, not optional.
911
+ > Sequential execution when parallel is possible = VIOLATION of this workflow.
912
+
913
+ ### Mandatory Parallel Exploration (Phase Start)
914
+
915
+ **BEFORE any implementation, you MUST launch these Task calls IN PARALLEL (single message, multiple tool calls):**
916
+
917
+ ```
918
+ ┌─────────────────────────────────────────────────────────────────┐
919
+ │ STEP 1: PARALLEL EXPLORATION (REQUIRED) │
920
+ │ │
921
+ │ Launch ALL of these in ONE message: │
922
+ │ │
923
+ │ Task(haiku) ─┬─→ "Analyze related files in <context>" │
924
+ │ │ │
925
+ │ Task(haiku) ─┼─→ "Check dependencies and imports" │
926
+ │ │ │
927
+ │ Task(haiku) ─┴─→ "Find existing patterns and conventions" │
928
+ │ │
929
+ │ [If GPT enabled] Bash: node "[LLM_SCRIPT]" gpt-codex orchestrate-json "[question]"
930
+ [If Gemini enabled] Bash: node "[LLM_SCRIPT]" gemini orchestrate-json "[question]"
931
+ └─────────────────────────────────────────────────────────────────┘
932
+
933
+ (wait for all to complete)
934
+ ┌─────────────────────────────────────────────────────────────────┐
935
+ STEP 2: SYNTHESIZE (Opus) │
936
+ │ - Review all exploration results │
937
+ - Decide implementation approach │
938
+ │ - Identify files to modify/create │
939
+ └─────────────────────────────────────────────────────────────────┘
940
+
941
+
942
+ ┌─────────────────────────────────────────────────────────────────┐
943
+ STEP 3: IMPLEMENT + BACKGROUND AGENTS (PARALLEL)
944
+
945
+ Main Agent (sonnet):
946
+ └─→ Execute current phase implementation │
947
+
948
+ Background Agents (haiku, run_in_background=true): │
949
+ │ ├─→ Task: "Prepare Phase N+1 - analyze required files" │
950
+ ├─→ Task: "Pre-generate test cases for current implementation" │
951
+ │ └─→ Task: "Search for related types/interfaces needed" │
952
+
953
+ │ [ULTRAWORK] All 4 agents run simultaneously! │
954
+ └─────────────────────────────────────────────────────────────────┘
955
+
956
+ ↓ (main completes, check backgrounds)
957
+ ┌─────────────────────────────────────────────────────────────────┐
958
+ │ STEP 4: TEST + PHASE PIPELINING │
959
+ │ │
960
+ │ Current Phase: │
961
+ │ └─→ Task(haiku): Write tests using pre-generated cases │
962
+ │ │
963
+ │ Next Phase Prep (from background results): │
964
+ │ └─→ Already have file analysis, ready to start immediately │
965
+ └─────────────────────────────────────────────────────────────────┘
966
+ ```
967
+
968
+ ### Parallel Task Call Pattern (MUST FOLLOW)
969
+
970
+ **Correct - Single message with multiple parallel Tasks:**
971
+ ```
972
+ <message>
973
+ Task(haiku, "Analyze src/components/ for existing patterns")
974
+ Task(haiku, "Check package.json dependencies")
975
+ Task(haiku, "Find usage of similar features in codebase")
976
+ </message>
977
+ All 3 run simultaneously, ~3x faster
978
+ ```
979
+
980
+ **WRONG - Sequential calls (DO NOT DO THIS):**
981
+ ```
982
+ <message>Task(haiku, "Analyze...")</message>
983
+ <message>Task(haiku, "Check...")</message>
984
+ <message>Task(haiku, "Find...")</message>
985
+ → 3x slower, wastes time
986
+ ```
987
+
988
+ ### Background Agent Pattern (ULTRAWORK) via Orchestrator
989
+
990
+ **Launch background agents for next phase via Orchestrator:**
991
+ ```bash
992
+ # Start background agent (doesn't block)
993
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => o.runAgent('Phase 2 prep: Analyze auth API endpoints', 'phase2-prep').then(r => console.log(r.content[0].text)))"
994
+
995
+ # Multiple backgrounds in parallel
996
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(async o => {
997
+ await Promise.all([
998
+ o.runAgent('Phase 2 prep: Analyze auth API endpoints', 'phase2-prep'),
999
+ o.runAgent('Pre-generate test cases for login form', 'test-prep'),
1000
+ o.runAgent('Find existing validation patterns', 'pattern-finder')
1001
+ ]);
1002
+ console.log('All background agents started');
1003
+ })"
1004
+ ```
1005
+
1006
+ **Check background agent status:**
1007
+ ```bash
1008
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => console.log(o.status().content[0].text))"
1009
+ ```
1010
+
1011
+ **Get result when ready:**
1012
+ ```bash
1013
+ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/infra/orchestrator/index.js').then(o => o.getResult('SESSION_ID').then(r => console.log(r.content[0].text)))"
1014
+ ```
1015
+
1016
+ **Why Background Agents Matter:**
1017
+
1018
+ | Without Background | With Background |
1019
+ |--------------------|-----------------|
1020
+ | Phase 1: 60s | Phase 1: 60s (+ backgrounds running) |
1021
+ | Phase 2 prep: 20s | Phase 2 prep: 0s (already done!) |
1022
+ | Phase 2: 60s | Phase 2: 60s |
1023
+ | **Total: 140s** | **Total: 120s** |
1024
+
1025
+ For 5 phases: 4 × 20s saved = **80s faster**
1026
+
1027
+ ### Why Parallel Matters
1028
+
1029
+ | Approach | Time | Cache Benefit |
1030
+ |----------|------|---------------|
1031
+ | Sequential (3 Tasks) | ~30s | Cache cold on each |
1032
+ | **Parallel (3 Tasks)** | **~10s** | **Cache warmed once, shared** |
1033
+
1034
+ core ProjectCache (LRU) caches ts-morph parsing results. Parallel calls share the warmed cache.
1035
+
1036
+ ### UI/UX Design Intelligence (Auto-triggered before Phase 1)
1037
+
1038
+ > **조건**: SPEC 또는 Feature에 UI/UX 키워드 포함 시 자동 실행
1039
+ > **비활성화**: `.claude/vibe/config.json`에 `"uiUxAnalysis": false` 설정
1040
+
1041
+ **Phase 1 시작 전, 2개 에이전트 자동 실행:**
1042
+
1043
+ | Agent | Condition | Role |
1044
+ |-------|-----------|------|
1045
+ | ui-stack-implementer | **항상 실행** | 프레임워크별 컴포넌트 가이드라인 제공 |
1046
+ | ui-dataviz-advisor | **조건부** (chart/dashboard/visualization 키워드) | 차트/시각화 라이브러리 추천 |
1047
+
1048
+ **실행 방법:**
1049
+
1050
+ ```text
1051
+ # ④ 항상 실행 (Haiku)
1052
+ Task(subagent_type="ui-stack-implementer",
1053
+ prompt="Provide implementation guidelines for project '{project}' using {detected_stack}. Use core_ui_stack_search for framework-specific patterns.")
1054
+
1055
+ # 조건부 실행 (Haiku) SPEC에 차트/대시보드/시각화 키워드 포함
1056
+ Task(subagent_type="ui-dataviz-advisor",
1057
+ prompt="Recommend data visualization approach for project '{project}'. Use core_ui_search for chart types and react-performance patterns.")
1058
+ ```
1059
+
1060
+ **디자인 시스템 자동 참조:**
1061
+ - `.claude/vibe/design-system/{project}/MASTER.md` 존재 자동 로드
1062
+ - 구현 에이전트가 CSS 변수, 폰트, 색상 팔레트를 직접 참조
1063
+ - 페이지별 오버라이드 `pages/{page}.md` 존재 시 우선 적용
1064
+
1065
+ ### Phase Execution Flow (ULTRAWORK Pipeline)
1066
+
1067
+ ```
1068
+ Phase N Start
1069
+
1070
+ ├─→ [PARALLEL] Task(haiku) × 3: Exploration
1071
+ │ - Related code analysis
1072
+ │ - Dependency check
1073
+ │ - Pattern discovery
1074
+
1075
+ (all complete)
1076
+
1077
+ ├─→ Opus: Synthesize and decide
1078
+
1079
+ ├─→ [PARALLEL PIPELINE] ←── KEY SPEED OPTIMIZATION
1080
+ │ │
1081
+ │ ├─→ Main: Task(sonnet) Implementation
1082
+ │ │
1083
+ │ └─→ Background (run_in_background=true):
1084
+ │ ├─→ Task(haiku): Phase N+1 file analysis
1085
+ │ ├─→ Task(haiku): Test case preparation
1086
+ │ └─→ Task(haiku): Type/interface lookup
1087
+
1088
+ ↓ (main completes)
1089
+
1090
+ ├─→ Task(haiku): Tests (uses pre-generated cases)
1091
+
1092
+
1093
+ Phase N Complete
1094
+
1095
+ (Background results ready - NO WAIT for Phase N+1 exploration!)
1096
+
1097
+ Phase N+1 Start (IMMEDIATE - exploration already done!)
1098
+ ```
1099
+
1100
+ **Speed Comparison:**
1101
+
1102
+ | Mode | Phase Time | 5 Phases Total |
1103
+ |------|------------|----------------|
1104
+ | Sequential | ~2min/phase | ~10min |
1105
+ | Parallel Exploration | ~1.5min/phase | ~7.5min |
1106
+ | **ULTRAWORK Pipeline** | **~1min/phase** | **~5min** |
1107
+
1108
+ **Why Pipeline is Faster:**
1109
+ - Background agents prepare next phase WHILE current phase implements
1110
+ - No idle time between phases
1111
+ - Test cases pre-generated during implementation
1112
+ - Cache stays warm across parallel tasks
1113
+
1114
+ ---
1115
+
1116
+ ### Agent Teams — Dev Team
1117
+
1118
+ > **Agent Teams**: 에이전트들이 팀을 이루어 서로 소통하며 구현합니다.
1119
+ > 설정: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` + `teammateMode: in-process` (`~/.claude/settings.json` 전역 — postinstall 자동 설정)
1120
+
1121
+ **팀 구성:**
1122
+
1123
+ | 팀원 | 역할 |
1124
+ |------|------|
1125
+ | architect (리더) | 설계 결정, 구현 방향 조율, SPEC 준수 검증, 합의 주도 |
1126
+ | implementer | 핵심 비즈니스 로직 구현, architect 설계를 따라 코드 작성 |
1127
+ | tester | 구현 완료 즉시 테스트 작성, 실패 시 implementer에 피드백 |
1128
+ | security-reviewer | 실시간 보안 취약점 검증, 블로킹 이슈 식별 |
1129
+
1130
+ **실행 순서:**
1131
+
1132
+ 1. `TeamCreate(team_name="dev-{feature}")` + 공유 태스크 리스트 생성
1133
+ 2. 4개 팀원 병렬 생성 — 각각 `Task(team_name=..., name=..., subagent_type=...)` 으로 spawn
1134
+ 3. architect가 SPEC Phase를 분석하여 구현 계획 수립 → TaskList에 작업 등록
1135
+ 4. 팀원들이 TaskList에서 작업을 claim하고, SendMessage로 실시간 협업
1136
+ 5. 모든 시나리오 검증 완료 팀원 shutdown_request TeamDelete로 정리
1137
+
1138
+ **팀원 spawn 패턴:**
1139
+
1140
+ ```text
1141
+ TeamCreate(team_name="dev-{feature}", description="Implementation team for {feature} Phase {N}")
1142
+
1143
+ # 4개 병렬 spawn
1144
+ Task(team_name="dev-{feature}", name="architect", subagent_type="architect",
1145
+ prompt="구현 팀 리더. Phase {N}의 SPEC을 분석하고 구현 계획을 수립하세요.
1146
+ SPEC: {spec_content}
1147
+ Feature Scenarios: {scenarios}
1148
+ 역할: 설계 결정, 구현 방향 조율, 팀원 간 충돌 해결, SPEC 준수 검증.
1149
+ TaskList에 구현 작업을 등록하세요. implementer에게 설계를 SendMessage로 전달하세요.
1150
+ 모든 시나리오가 통과할 때까지 팀을 조율하세요.")
1151
+
1152
+ Task(team_name="dev-{feature}", name="implementer", subagent_type="implementer",
1153
+ mode="bypassPermissions",
1154
+ prompt="구현 팀 코드 담당. SPEC: {spec_content}
1155
+ 역할: architect의 설계를 따라 프로덕션 코드 작성.
1156
+ architect에게서 설계를 받으면 구현을 시작하세요.
1157
+ 컴포넌트 구현 완료 시 tester에게 SendMessage로 테스트 요청하세요.
1158
+ security-reviewer의 블로킹 이슈는 즉시 수정하세요.
1159
+ TaskList에서 구현 작업을 claim하세요.")
1160
+
1161
+ Task(team_name="dev-{feature}", name="tester", subagent_type="tester",
1162
+ mode="bypassPermissions",
1163
+ prompt="구현 팀 테스트 담당. SPEC: {spec_content}
1164
+ 역할: implementer가 완료한 컴포넌트부터 즉시 테스트 작성.
1165
+ 구현 전체를 기다리지 말고 컴포넌트 단위로 점진적 테스트하세요.
1166
+ 테스트 실패 implementer에게 SendMessage로 피드백하세요.
1167
+ edge case 발견 architect에게 설계 검토를 요청하세요.
1168
+ TaskList에서 테스트 작업을 claim하세요.")
1169
+
1170
+ Task(team_name="dev-{feature}", name="security-reviewer", subagent_type="security-reviewer",
1171
+ mode="bypassPermissions",
1172
+ prompt="구현 보안 담당. SPEC: {spec_content}
1173
+ 역할: 구현 코드의 보안 취약점 실시간 검증.
1174
+ 보안 이슈는 BLOCKING — implementer에게 SendMessage로 즉시 수정 요청하세요.
1175
+ 심각한 설계 결함 발견 architect에게 SendMessage로 알리세요.
1176
+ TaskList에서 보안 검증 작업을 claim하세요.")
1177
+ ```
1178
+
1179
+ **팀원 간 통신 예시:**
1180
+
1181
+ ```text
1182
+ architect implementer: "Repository 패턴으로 데이터 접근 계층 분리해서 구현해주세요. 인터페이스는 TaskList에 등록했습니다"
1183
+ implementer → tester: "LoginService 구현 완료. 정상/실패/잠금 시나리오 테스트 요청합니다"
1184
+ security-reviewer implementer: "SQL injection 위험: raw query 사용 감지. parameterized query로 즉시 수정 필요"
1185
+ tester architect: "edge case 3건 실패 (빈 입력, 특수문자, 동시 요청). 설계 검토 요청합니다"
1186
+ architect broadcast: "Phase {N} 모든 시나리오 통과 확인. 구현 완료합니다"
1187
+ ```
1188
+
1189
+ **팀 모드 vs 기존 병렬 모드 비교:**
1190
+
1191
+ | 측면 | 기존 병렬 모드 | Agent Teams |
1192
+ |------|---------------|-------------|
1193
+ | 통신 | 결과만 수집 | 실시간 상호 피드백 |
1194
+ | 테스트 | 구현 별도 단계 | 구현과 동시 진행 |
1195
+ | 보안 | 사후 리뷰 | 실시간 검증 |
1196
+ | 설계 변경 | 메인 에이전트만 결정 | architect 주도 팀 합의 |
1197
+ | 오류 복구 | 재시도 루프 | 팀 내 즉시 피드백 |
1198
+
1199
+ **활성화 조건 (Dev Team Full 4명):**
1200
+ - ULTRAWORK 모드 + 3개 이상 시나리오
1201
+ - 또는 복잡도 점수 20+ (High)
1202
+
1203
+ ### Agent Teams Lite Team (Normal Mode)
1204
+
1205
+ > **일반 모드에서도 협업**. Dev Team의 축소 버전으로, 3개 이상 시나리오 시 자동 활성화.
1206
+ > security-reviewer를 제외한 architect + implementer + tester 3명 구성.
1207
+
1208
+ **팀 구성:**
1209
+
1210
+ | 팀원 | 역할 |
1211
+ |------|------|
1212
+ | architect (리더) | 설계 결정, 시나리오 분석, 구현 방향 조율 |
1213
+ | implementer | 핵심 비즈니스 로직 구현 |
1214
+ | tester | 구현 완료 즉시 테스트 작성, 실패 시 피드백 |
1215
+
1216
+ **spawn 패턴:**
1217
+
1218
+ ```text
1219
+ TeamCreate(team_name="lite-{feature}", description="Lite implementation team for {feature} Phase {N}")
1220
+
1221
+ Task(team_name="lite-{feature}", name="architect", subagent_type="architect",
1222
+ prompt="Lite 리더. Phase {N}의 SPEC을 분석하고 구현 계획을 수립하세요.
1223
+ SPEC: {spec_content}
1224
+ Feature Scenarios: {scenarios}
1225
+ 역할: 설계 결정, 구현 방향 조율. TaskList에 작업을 등록하세요.
1226
+ implementer에게 설계를 SendMessage로 전달하세요.")
1227
+
1228
+ Task(team_name="lite-{feature}", name="implementer", subagent_type="implementer",
1229
+ mode="bypassPermissions",
1230
+ prompt="Lite 코드 담당. SPEC: {spec_content}
1231
+ 역할: architect의 설계를 따라 프로덕션 코드 작성.
1232
+ 완료 시 tester에게 SendMessage로 테스트 요청하세요.")
1233
+
1234
+ Task(team_name="lite-{feature}", name="tester", subagent_type="tester",
1235
+ mode="bypassPermissions",
1236
+ prompt="Lite 테스트 담당. SPEC: {spec_content}
1237
+ 역할: implementer가 완료한 컴포넌트부터 즉시 테스트 작성.
1238
+ 테스트 실패 시 implementer에게 SendMessage로 피드백하세요.")
1239
+ ```
1240
+
1241
+ **활성화 조건 (Lite Team — 3명):**
1242
+ - 일반 모드 + 3개 이상 시나리오
1243
+ - 복잡도 점수 8-19 (Medium)
1244
+ - 단순 구현(1-2 파일, 시나리오 2개 이하)에서는 기존 병렬 모드 유지
1245
+
1246
+ **팀 선택 기준:**
1247
+
1248
+ | 조건 | |
1249
+ |------|-----|
1250
+ | 시나리오 1-2개, 파일 1-2개 | 기존 병렬 모드 (팀 없음) |
1251
+ | 시나리오 3개+, 일반 모드 | **Lite Team (3명)** |
1252
+ | ULTRAWORK 또는 복잡도 20+ | Dev Team Full (4명) |
1253
+
1254
+ ### Agent Teams Review Team
1255
+
1256
+ > P1/P2 이슈 교차 검증을 위한 보안+아키텍처+성능+단순성 전문 리뷰 팀.
1257
+ > `/vibe.review` 시 P1/P2 이슈가 발견되면 자동 활성화.
1258
+
1259
+ **팀 구성:**
1260
+
1261
+ | 팀원 | 역할 |
1262
+ |------|------|
1263
+ | security-reviewer (리더) | 보안 이슈 우선순위 결정, 교차 검증 주도, 오탐 제거 |
1264
+ | architecture-reviewer | 아키텍처 위반 검증, 설계 패턴 평가 |
1265
+ | performance-reviewer | 성능 병목 검증, N+1 쿼리/메모리 누수 확인 |
1266
+ | simplicity-reviewer | 과도한 복잡성 검증, 불필요한 추상화 식별 |
1267
+
1268
+ **spawn 패턴:**
1269
+
1270
+ ```text
1271
+ TeamCreate(team_name="review-{feature}", description="Cross-validation review team for {feature}")
1272
+
1273
+ Task(team_name="review-{feature}", name="security-reviewer", subagent_type="security-reviewer",
1274
+ mode="bypassPermissions",
1275
+ prompt="Review team leader. Cross-validate P1/P2 issues found in parallel review.
1276
+ Files: {changed_files}
1277
+ Found issues: {p1_p2_issues}
1278
+ Role: Verify each P1/P2 issue is genuine (not false positive). Prioritize by actual impact.
1279
+ Send disputed findings to relevant reviewer for confirmation via SendMessage.")
1280
+
1281
+ Task(team_name="review-{feature}", name="architecture-reviewer", subagent_type="architecture-reviewer",
1282
+ mode="bypassPermissions",
1283
+ prompt="Review team architecture expert. Validate architecture-related findings.
1284
+ Files: {changed_files}
1285
+ Role: Confirm or dispute architecture violations. Check SOLID principles and layer boundaries.")
1286
+
1287
+ Task(team_name="review-{feature}", name="performance-reviewer", subagent_type="performance-reviewer",
1288
+ mode="bypassPermissions",
1289
+ prompt="Review team performance expert. Validate performance-related findings.
1290
+ Files: {changed_files}
1291
+ Role: Confirm or dispute performance issues. Run complexity analysis on flagged code.")
1292
+
1293
+ Task(team_name="review-{feature}", name="simplicity-reviewer", subagent_type="simplicity-reviewer",
1294
+ mode="bypassPermissions",
1295
+ prompt="Review team simplicity advocate. Challenge over-engineering findings.
1296
+ Files: {changed_files}
1297
+ Role: Verify YAGNI violations. Confirm or dispute unnecessary abstraction flags.")
1298
+ ```
1299
+
1300
+ **팀원 통신 예시:**
1301
+
1302
+ ```text
1303
+ security-reviewer → architecture-reviewer: "SQL injection finding in users.py:42 — is this pattern used elsewhere?"
1304
+ architecture-reviewer security-reviewer: "Confirmed. Same pattern in orders.py:78. Elevate to P1."
1305
+ performance-reviewer → security-reviewer: "N+1 query finding is false positive already uses prefetch_related."
1306
+ security-reviewer broadcast: "Review complete. 2 P1 confirmed, 1 P2 downgraded to P3."
1307
+ ```
1308
+
1309
+ **활성화 조건:**
1310
+
1311
+ - `/vibe.review` 실행 후 P1 또는 P2 이슈 2개 이상 발견 시
1312
+ - Agent Teams 환경변수 활성화 상태
1313
+
1314
+ ### Agent Teams — Debug Team
1315
+
1316
+ > 빌드/테스트 실패 시 아키텍트 진단 → 구현자 수정 → 테스터 검증 사이클.
1317
+ > UltraQA 3회 실패 진입 시 또는 빌드 실패 3회+ 시 자동 활성화.
1318
+
1319
+ **팀 구성:**
1320
+
1321
+ | 팀원 | 역할 |
1322
+ |------|------|
1323
+ | architect (리더) | 근본 원인 진단, 수정 방향 설계, 아키텍처 레벨 문제 식별 |
1324
+ | implementer | architect 진단에 따라 최소 diff 수정 적용 |
1325
+ | tester | 수정 후 즉시 테스트 실행, 회귀 검증 |
1326
+
1327
+ **spawn 패턴:**
1328
+
1329
+ ```text
1330
+ TeamCreate(team_name="debug-{feature}", description="Debug team for {feature} build/test failure")
1331
+
1332
+ Task(team_name="debug-{feature}", name="architect", subagent_type="architect",
1333
+ prompt="Debug team leader. Diagnose root cause of build/test failure.
1334
+ Error: {error_output}
1335
+ Failed files: {failed_files}
1336
+ Previous attempts: {attempt_history}
1337
+ Role: Analyze error, identify root cause (not symptoms). Design minimal fix.
1338
+ Send diagnosis to implementer via SendMessage. If same failure 3x, escalate to user.")
1339
+
1340
+ Task(team_name="debug-{feature}", name="implementer", subagent_type="implementer",
1341
+ mode="bypassPermissions",
1342
+ prompt="Debug team fixer. Apply minimal-diff fixes based on architect diagnosis.
1343
+ Role: Wait for architect diagnosis. Apply ONLY the specific fix recommended.
1344
+ Do NOT refactor surrounding code. Notify tester when fix is applied.")
1345
+
1346
+ Task(team_name="debug-{feature}", name="tester", subagent_type="tester",
1347
+ mode="bypassPermissions",
1348
+ prompt="Debug team verifier. Run tests after each fix to verify resolution.
1349
+ Role: Wait for implementer fix notification. Run failing tests.
1350
+ Report results to architect. If still failing, provide detailed error output.")
1351
+ ```
1352
+
1353
+ **활성화 조건:**
1354
+
1355
+ - 동일 빌드/테스트 실패 3회 이상
1356
+ - UltraQA `architecture_question` 상태 진입
1357
+
1358
+ ### Agent Teams — Research Team
1359
+
1360
+ > `/vibe.spec` Step 3 리서치 단계에서 4개 전문 리서치 에이전트가 팀으로 협업.
1361
+ > 리서치 결과 교차 검증 충돌 해결.
1362
+
1363
+ **팀 구성:**
1364
+
1365
+ | 팀원 | 역할 |
1366
+ |------|------|
1367
+ | best-practices-agent (리더) | 베스트 프랙티스 수집, 리서치 통합, 충돌 해결 |
1368
+ | security-advisory-agent | 보안 취약점 조사, CVE 확인, 보안 권장사항 |
1369
+ | codebase-patterns-agent | 기존 코드베이스 패턴 분석, 유사 구현 참조 |
1370
+ | framework-docs-agent | 프레임워크 최신 문서 확인, API 변경사항 추적 |
1371
+
1372
+ **spawn 패턴:**
1373
+
1374
+ ```text
1375
+ TeamCreate(team_name="research-{feature}", description="Research team for {feature} SPEC")
1376
+
1377
+ Task(team_name="research-{feature}", name="best-practices-agent", subagent_type="best-practices-agent",
1378
+ prompt="Research team leader. Coordinate research for {feature} SPEC.
1379
+ Tech stack: {tech_stack}
1380
+ Requirements: {requirements}
1381
+ Role: Collect best practices. Integrate findings from all researchers.
1382
+ Resolve conflicting recommendations. Produce unified research summary.")
1383
+
1384
+ Task(team_name="research-{feature}", name="security-advisory-agent", subagent_type="security-advisory-agent",
1385
+ prompt="Research team security specialist. Check security advisories for {feature}.
1386
+ Tech stack: {tech_stack}
1387
+ Role: Check CVEs for dependencies. Identify security patterns to follow.
1388
+ Share findings with best-practices-agent for integration.")
1389
+
1390
+ Task(team_name="research-{feature}", name="codebase-patterns-agent", subagent_type="codebase-patterns-agent",
1391
+ prompt="Research team codebase analyst. Analyze existing patterns for {feature}.
1392
+ Project path: {project_path}
1393
+ Role: Find similar implementations in codebase. Extract conventions and patterns.
1394
+ Share findings with best-practices-agent.")
1395
+
1396
+ Task(team_name="research-{feature}", name="framework-docs-agent", subagent_type="framework-docs-agent",
1397
+ prompt="Research team docs specialist. Check latest framework docs for {feature}.
1398
+ Tech stack: {tech_stack}
1399
+ Role: Verify API usage against latest docs. Check for breaking changes.
1400
+ Share findings with best-practices-agent.")
1401
+ ```
1402
+
1403
+ **활성화 조건:**
1404
+
1405
+ - `/vibe.spec` Step 3 리서치 단계
1406
+ - Agent Teams 환경변수 활성화 상태
1407
+
1408
+ ### Agent Teams Security Team
1409
+
1410
+ > 보안 민감 코드 변경 전문 보안 검증 팀.
1411
+ > 인증, 권한, 결제, 개인정보 관련 코드 변경 감지 시 자동 활성화.
1412
+
1413
+ **팀 구성:**
1414
+
1415
+ | 팀원 | 역할 |
1416
+ |------|------|
1417
+ | security-reviewer (리더) | OWASP Top 10 검증, 보안 이슈 우선순위 결정 |
1418
+ | data-integrity-reviewer | 데이터 무결성, 트랜잭션 관리, 입력 검증 |
1419
+ | security-advisory-agent | 사용 라이브러리 CVE 확인, 보안 패치 확인 |
1420
+ | tester | 보안 테스트 케이스 작성, 침투 테스트 시나리오 검증 |
1421
+
1422
+ **spawn 패턴:**
1423
+
1424
+ ```text
1425
+ TeamCreate(team_name="security-{feature}", description="Security audit team for {feature}")
1426
+
1427
+ Task(team_name="security-{feature}", name="security-reviewer", subagent_type="security-reviewer",
1428
+ mode="bypassPermissions",
1429
+ prompt="Security team leader. Comprehensive security audit for {feature}.
1430
+ Files: {changed_files}
1431
+ Role: OWASP Top 10 check. XSS, CSRF, SQL injection, auth bypass.
1432
+ Coordinate with data-integrity-reviewer for data flow analysis.
1433
+ Any P1 finding blocks merge — notify team immediately.")
1434
+
1435
+ Task(team_name="security-{feature}", name="data-integrity-reviewer", subagent_type="data-integrity-reviewer",
1436
+ mode="bypassPermissions",
1437
+ prompt="Security team data specialist. Verify data integrity for {feature}.
1438
+ Files: {changed_files}
1439
+ Role: Check transaction management, input validation, data sanitization.
1440
+ Report findings to security-reviewer.")
1441
+
1442
+ Task(team_name="security-{feature}", name="security-advisory-agent", subagent_type="security-advisory-agent",
1443
+ prompt="Security team advisory specialist. Check dependencies for {feature}.
1444
+ Role: Scan for known CVEs in project dependencies. Check security advisories.
1445
+ Report critical findings to security-reviewer.")
1446
+
1447
+ Task(team_name="security-{feature}", name="tester", subagent_type="tester",
1448
+ mode="bypassPermissions",
1449
+ prompt="Security team test specialist. Write security-focused tests for {feature}.
1450
+ Files: {changed_files}
1451
+ Role: Write tests for auth bypass, injection, permission escalation.
1452
+ Report test results to security-reviewer.")
1453
+ ```
1454
+
1455
+ **활성화 조건:**
1456
+
1457
+ - auth, payment, user-data, crypto 관련 파일 변경 감지 시
1458
+ - 또는 수동으로 `security` 키워드 지정 시
1459
+
1460
+ ### Agent Teams — Migration Team
1461
+
1462
+ > 프레임워크/라이브러리 마이그레이션 전문 팀.
1463
+ > 대규모 의존성 업그레이드, 프레임워크 전환 시 활성화.
1464
+
1465
+ **팀 구성:**
1466
+
1467
+ | 팀원 | 역할 |
1468
+ |------|------|
1469
+ | architect (리더) | 마이그레이션 전략 설계, 호환성 분석, 단계별 계획 |
1470
+ | implementer | 코드 변환 실행, API 변경 적용 |
1471
+ | tester | 마이그레이션 회귀 테스트, 호환성 검증 |
1472
+ | build-error-resolver | 빌드 에러 즉시 해결, 타입 에러 수정 |
1473
+
1474
+ **spawn 패턴:**
1475
+
1476
+ ```text
1477
+ TeamCreate(team_name="migration-{feature}", description="Migration team for {feature}")
1478
+
1479
+ Task(team_name="migration-{feature}", name="architect", subagent_type="architect",
1480
+ prompt="Migration team leader. Plan migration strategy for {feature}.
1481
+ From: {current_version}
1482
+ To: {target_version}
1483
+ Role: Analyze breaking changes. Create step-by-step migration plan.
1484
+ Assign file groups to implementer. Monitor build-error-resolver for blockers.")
1485
+
1486
+ Task(team_name="migration-{feature}", name="implementer", subagent_type="implementer",
1487
+ mode="bypassPermissions",
1488
+ prompt="Migration team implementer. Execute code migration for {feature}.
1489
+ Role: Apply migration changes per architect plan. Work file-by-file.
1490
+ Notify tester after each file group. Report blockers to architect.")
1491
+
1492
+ Task(team_name="migration-{feature}", name="tester", subagent_type="tester",
1493
+ mode="bypassPermissions",
1494
+ prompt="Migration team tester. Verify migration correctness for {feature}.
1495
+ Role: Run existing tests after each migration step. Add new tests for changed APIs.
1496
+ Report regressions to implementer and architect.")
1497
+
1498
+ Task(team_name="migration-{feature}", name="build-error-resolver", subagent_type="build-error-resolver",
1499
+ mode="bypassPermissions",
1500
+ prompt="Migration team build fixer. Resolve build errors during {feature} migration.
1501
+ Role: Monitor build output. Apply minimal-diff type fixes for migration errors.
1502
+ Notify implementer of patterns requiring broader changes.")
1503
+ ```
1504
+
1505
+ **활성화 조건:**
1506
+
1507
+ - package.json 주요 의존성 버전 변경 감지
1508
+ - 또는 수동으로 `migration` 키워드 지정
1509
+
1510
+ ### Agent Teams — Fullstack Team
1511
+
1512
+ > Frontend + Backend 동시 변경이 필요한 풀스택 기능 구현 팀.
1513
+ > API 엔드포인트 + UI 컴포넌트를 동시에 개발.
1514
+
1515
+ **팀 구성:**
1516
+
1517
+ | 팀원 | 역할 |
1518
+ |------|------|
1519
+ | architect (리더) | API 인터페이스 설계, frontend/backend 분업 조율 |
1520
+ | implementer-backend | Backend API, 데이터베이스, 서비스 로직 구현 |
1521
+ | implementer-frontend | Frontend UI, 상태 관리, API 연동 구현 |
1522
+ | tester | E2E 테스트, API 테스트, 통합 테스트 |
1523
+
1524
+ **spawn 패턴:**
1525
+
1526
+ ```text
1527
+ TeamCreate(team_name="fullstack-{feature}", description="Fullstack team for {feature}")
1528
+
1529
+ Task(team_name="fullstack-{feature}", name="architect", subagent_type="architect",
1530
+ prompt="Fullstack team leader. Design API contract for {feature}.
1531
+ SPEC: {spec_content}
1532
+ Role: Define API endpoints (request/response schemas). Design data models.
1533
+ Share API contract with both implementers. Coordinate integration timing.")
1534
+
1535
+ Task(team_name="fullstack-{feature}", name="implementer-backend", subagent_type="implementer",
1536
+ mode="bypassPermissions",
1537
+ prompt="Fullstack team backend developer. Implement API for {feature}.
1538
+ SPEC: {spec_content}
1539
+ Role: Implement API endpoints per architect's contract. Create data models and services.
1540
+ Notify implementer-frontend when endpoints are ready for integration.
1541
+ Share API response samples with tester.")
1542
+
1543
+ Task(team_name="fullstack-{feature}", name="implementer-frontend", subagent_type="implementer",
1544
+ mode="bypassPermissions",
1545
+ prompt="Fullstack team frontend developer. Implement UI for {feature}.
1546
+ SPEC: {spec_content}
1547
+ Role: Build UI components and pages per SPEC. Use architect's API contract for types.
1548
+ Start with mock data, switch to real API when backend notifies readiness.
1549
+ Notify tester when UI is ready for E2E testing.")
1550
+
1551
+ Task(team_name="fullstack-{feature}", name="tester", subagent_type="tester",
1552
+ mode="bypassPermissions",
1553
+ prompt="Fullstack team tester. Write comprehensive tests for {feature}.
1554
+ SPEC: {spec_content}
1555
+ Role: Write API tests (after backend ready). Write E2E tests (after frontend ready).
1556
+ Test API contract conformance. Report integration issues to architect.")
1557
+ ```
1558
+
1559
+ **활성화 조건:**
1560
+
1561
+ - SPEC에 frontend + backend 파일이 모두 포함된 경우
1562
+ - 또는 수동으로 `fullstack` 키워드 지정 시
1563
+
1564
+ ---
1565
+
1566
+ 1. **Related code analysis**: Task(haiku) explores `<context>` related code
1567
+ 2. **File creation/modification**: Task(sonnet) implements per `<output_format>`
1568
+ 3. **Constraint compliance**: Check `<constraints>`
1569
+ 4. **Run verification**: Execute verification commands
1570
+
1571
+ ### 4. Brand Assets Generation (Optional)
1572
+
1573
+ When starting a **new project** with brand context in SPEC, auto-generate app icons and favicons:
1574
+
1575
+ ```
1576
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1577
+ 🎨 BRAND ASSETS GENERATION
1578
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1579
+
1580
+ [Check] Brand assets exist? → Skip if favicon.ico exists
1581
+ [Check] Gemini API configured? → Required for image generation
1582
+ [Check] SPEC has brand context? → Extract app name, colors, style
1583
+
1584
+ [Generate] Creating app icon with Gemini Image API...
1585
+ - Prompt: "App icon for [AppName], [style], [color]..."
1586
+ - Generated: 512x512 master icon
1587
+
1588
+ [Resize] Creating platform variants...
1589
+ favicon.ico (16/32/48)
1590
+ favicon-16x16.png
1591
+ favicon-32x32.png
1592
+ ✅ apple-touch-icon.png (180x180)
1593
+ ✅ android-chrome-192x192.png
1594
+ android-chrome-512x512.png
1595
+ ✅ site.webmanifest
1596
+
1597
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1598
+ ✅ Brand assets generated in public/
1599
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1600
+ ```
1601
+
1602
+ **SPEC Brand Context Example:**
1603
+
1604
+ ```xml
1605
+ <context>
1606
+ Brand:
1607
+ - App Name: MyApp
1608
+ - Primary Color: #2F6BFF
1609
+ - Style: Modern, minimalist, flat design
1610
+ - Icon Concept: Abstract geometric shape
1611
+ </context>
1612
+ ```
1613
+
1614
+ **Trigger Conditions:**
1615
+ - First `/vibe.run` execution (no existing icons)
1616
+ - SPEC contains brand/design context
1617
+ - Gemini API key configured (`vibe gemini auth`)
1618
+
1619
+ **Manual Generation:**
1620
+ ```bash
1621
+ # [LLM_SCRIPT] = {{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js
1622
+ node "[LLM_SCRIPT]" gemini image "App icon for MyApp, primary color #2F6BFF, square format 1:1, simple recognizable design, works well at small sizes, no text or letters, solid or gradient background, modern minimalist" --output "./public/app-icon.png"
1623
+ ```
1624
+
1625
+ ---
1626
+
1627
+ ### 5. Race Code Review (GPT + Gemini) + Auto-Fix (v2.6.9)
1628
+
1629
+ After all scenarios are implemented, **GPT and Gemini review in parallel with cross-validation**:
1630
+
1631
+ > **ULTRAWORK Default**: In ULTRAWORK mode, race review is automatically enabled.
1632
+
1633
+ ```
1634
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1635
+ 🏁 RACE CODE REVIEW (GPT + Gemini)
1636
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1637
+
1638
+ [Step 1] Parallel review execution...
1639
+ ├─ GPT Codex: Reviewing...
1640
+ └─ Gemini: Reviewing...
1641
+
1642
+ [Step 2] Cross-validation results:
1643
+ ┌───────────────────────────────────────────────────────────┐
1644
+ Issue │ GPT Gemini Confidence│
1645
+ │────────────────────────────────│─────│────────│───────────│
1646
+ Timing attack in password │ ✅ │ ✅ │ 100% → P1 │
1647
+ Rate limiting missing │ ✅ │ ✅ │ 100% → P1 │
1648
+ Magic number usage │ ✅ │ ❌ │ 50% → P2 │
1649
+ └───────────────────────────────────────────────────────────┘
1650
+
1651
+ Summary: 3 issues (P1: 2, P2: 1)
1652
+
1653
+ [Step 3] Auto-fixing P1/P2 issues...
1654
+ auth.service.ts:24 - Applied timingSafeEqual (P1)
1655
+ ✅ auth.controller.ts:15 - Added rate limiter (P1)
1656
+ auth.service.ts:42 - Extracted constant (P2)
1657
+
1658
+ [Step 4] Re-verifying...
1659
+ Build succeeded
1660
+ Tests passed
1661
+
1662
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1663
+ ✅ Race review complete! 3 improvements (2 P1, 1 P2)
1664
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1665
+ ```
1666
+
1667
+ **Race Review Invocation (GPT + Gemini in parallel via Bash):**
1668
+
1669
+ **🚨 Use --input file to avoid CLI argument length limits and Windows pipe issues.**
1670
+
1671
+ 1. Save code to review into `[SCRATCHPAD]/review-code.txt` (using Write tool)
1672
+ 2. Write JSON input file `[SCRATCHPAD]/review-input.json` (using Write tool):
1673
+ - `{"prompt": "Review this code for security, performance, and best practices. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. Code: [CODE_CONTENT]"}`
1674
+ - Where `[CODE_CONTENT]` is the code text (properly JSON-escaped inside the prompt string)
1675
+ 3. Script path: `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
1676
+ 4. Run GPT + Gemini in PARALLEL (two Bash tool calls at once):
1677
+
1678
+ ```bash
1679
+ # GPT review (Bash tool call 1)
1680
+ node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/review-input.json"
1681
+ ```
1682
+
1683
+ ```bash
1684
+ # Gemini review (Bash tool call 2 - run in parallel)
1685
+ node "[LLM_SCRIPT]" gemini orchestrate-json --input "[SCRATCHPAD]/review-input.json"
1686
+ ```
1687
+
1688
+ **Confidence-based Priority:**
1689
+
1690
+ | Confidence | Priority | Action |
1691
+ |------------|----------|--------|
1692
+ | 100% (2/2) | P1 | Auto-fix immediately |
1693
+ | 50% (1/2) | P2 | Auto-fix with review |
1694
+
1695
+ **Fallback handling:**
1696
+ - If one LLM fails → Use remaining LLM results (reduced confidence)
1697
+ - If all fail → Skip and proceed (log warning)
1698
+
1699
+ **Review application rules:**
1700
+
1701
+ | Feedback Type | Action |
1702
+ |---------------|--------|
1703
+ | Security vulnerability (P1) | Auto-fix immediately |
1704
+ | Performance improvement (P1/P2) | Auto-fix immediately |
1705
+ | Best practices (P2) | Auto-fix |
1706
+ | Style/preference (P3) | Apply selectively |
1707
+
1708
+ **Conditions:**
1709
+ - **ULTRAWORK**: Race review enabled by default
1710
+ - **Normal mode**: Use `--race` flag to enable
1711
+ - Must re-verify build/tests after fixes
1712
+
1713
+ ### 6. Quality Report (Auto-generated)
1714
+
1715
+ After all scenarios complete + Gemini review, **quality report is auto-generated**:
1716
+
1717
+ ```
1718
+ ┌─────────────────────────────────────────────────────────────────┐
1719
+ │ 📊 QUALITY REPORT: login │
1720
+ ├─────────────────────────────────────────────────────────────────┤
1721
+ │ │
1722
+ │ ✅ Scenarios: 4/4 passed │
1723
+ │ │
1724
+ │ ┌───────────────────────────────────────────────────────────┐ │
1725
+ │ │ # │ Scenario Status Retries │ │ │
1726
+ │ │───│───────────────────────────│────────│─────────│ │ │
1727
+ │ │ 1 │ Valid login success │ ✅ │ 0 │ │ │
1728
+ │ │ 2 Invalid password error │ ✅ │ 1 │ │ │
1729
+ │ │ 3 │ Email format validation │ ✅ │ 0 │ │ │
1730
+ │ │ 4 │ Password reset link │ ✅ │ 0 │ │ │
1731
+ │ └───────────────────────────────────────────────────────────┘ │
1732
+ │ │
1733
+ │ 📈 Quality score: 94/100 │
1734
+ │ │
1735
+ │ ┌─────────────────────────────────────────────────────────┐ │
1736
+ │ │ Item │ Result Notes │ │
1737
+ │ │───────────────────│────────│─────────────────────────────│ │
1738
+ │ │ Build │ ✅ │ npm run build succeeded │ │
1739
+ │ │ Tests │ ✅ │ 12/12 passed │ │
1740
+ │ │ Type check │ ✅ │ 0 errors │ │
1741
+ │ │ Complexity │ All functions ≤30 lines │ │
1742
+ │ │ Security │ ✅ │ 0 vulnerabilities │ │
1743
+ │ │ Race review │ ✅ │ 3 improvements applied │ │
1744
+ │ └─────────────────────────────────────────────────────────┘ │
1745
+ │ │
1746
+ │ ⏱️ Started: {start_time} │
1747
+ │ ⏱️ Completed: {getCurrentTime 결과} │
1748
+ │ │
1749
+ └─────────────────────────────────────────────────────────────────┘
1750
+ ```
1751
+
1752
+ **What users should check**:
1753
+ - Scenario pass rate (4/4 = 100%)
1754
+ - Quality score (94/100)
1755
+ - Build/test status
1756
+
1757
+ **This alone is enough to trust quality.**
1758
+
1759
+ ### 7. Update Feature File
1760
+
1761
+ Auto-update scenario status:
1762
+
1763
+ ```markdown
1764
+ ## Coverage
1765
+
1766
+ | Scenario | SPEC AC | Status |
1767
+ |----------|---------|--------|
1768
+ | Valid login success | AC-1 | ✅ |
1769
+ | Invalid password error | AC-2 | ✅ |
1770
+ | Email format validation | AC-3 | ✅ |
1771
+ | Password reset link | AC-4 | ✅ |
1772
+
1773
+ **Last verified**: 2024-01-15 14:32
1774
+ **Quality score**: 94/100
1775
+ ```
1776
+
1777
+ ## TRUST 5 Principles
1778
+
1779
+ Follow during implementation:
1780
+
1781
+ | Principle | Description |
1782
+ |-----------|-------------|
1783
+ | **T**est-first | Write tests first |
1784
+ | **R**eadable | Clear code |
1785
+ | **U**nified | Consistent style |
1786
+ | **S**ecured | Consider security |
1787
+ | **T**rackable | Logging, monitoring |
1788
+
1789
+ ## Input
1790
+
1791
+ - `.claude/vibe/specs/{feature-name}.md` (PTCF SPEC)
1792
+ - `.claude/vibe/features/{feature-name}.feature` (BDD)
1793
+ - `CLAUDE.md` (project context)
1794
+
1795
+ ## Output
1796
+
1797
+ - Implemented code files
1798
+ - Test files
1799
+ - Updated SPEC document (checkmarks)
1800
+
1801
+ ## Example
1802
+
1803
+ ```
1804
+ User: /vibe.run "login"
1805
+
1806
+ Claude:
1807
+ 📄 Loading SPEC: .claude/vibe/specs/login.md
1808
+ 📄 Loading Feature: .claude/vibe/features/login.feature
1809
+
1810
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1811
+ 📋 Scenarios to Implement
1812
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1813
+
1814
+ | # | Scenario | Status |
1815
+ |---|----------|--------|
1816
+ | 1 | Valid login success | ⬜ |
1817
+ | 2 | Invalid password error | ⬜ |
1818
+ | 3 | Email format validation | ⬜ |
1819
+ | 4 | Password reset link | ⬜ |
1820
+
1821
+ Total: 4 scenarios
1822
+
1823
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1824
+ 🎯 Scenario 1/4: Valid login success
1825
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1826
+
1827
+ Given: User is registered
1828
+ When: Login with valid email and password
1829
+ Then: Login success + JWT token returned
1830
+
1831
+ [PARALLEL] Exploring...
1832
+ ✅ Exploration complete (2.1s)
1833
+
1834
+ 🔨 Implementing...
1835
+ auth.service.ts - Added login()
1836
+ ✅ auth.controller.ts - POST /login
1837
+
1838
+ 🔍 Verifying...
1839
+ Given: OK
1840
+ When: OK
1841
+ Then: OK
1842
+
1843
+ Scenario 1 passed!
1844
+
1845
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1846
+ 🎯 Scenario 2/4: Invalid password error
1847
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1848
+
1849
+ 🔨 Implementing...
1850
+ ✅ auth.service.ts - Password validation logic
1851
+
1852
+ 🔍 Verifying...
1853
+ ✅ Given: OK
1854
+ When: OK
1855
+ ❌ Then: "Invalid credentials" error message
1856
+ Actual: "Error" returned
1857
+
1858
+ 🔄 Auto-fix 1/3...
1859
+ Fix: auth.service.ts line 42
1860
+
1861
+ 🔍 Re-verifying...
1862
+ ✅ Then: OK
1863
+
1864
+ ✅ Scenario 2 passed! (1 fix)
1865
+
1866
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1867
+ 🎯 Scenario 3/4: Email format validation
1868
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1869
+
1870
+ 🔨 Implementing...
1871
+ 🔍 Verifying...
1872
+ ✅ Scenario 3 passed!
1873
+
1874
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1875
+ 🎯 Scenario 4/4: Password reset link
1876
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1877
+
1878
+ 🔨 Implementing...
1879
+ 🔍 Verifying...
1880
+ ✅ Scenario 4 passed!
1881
+
1882
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1883
+ 🔍 GEMINI CODE REVIEW
1884
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1885
+
1886
+ 📤 Sending code to Gemini...
1887
+ 📝 Gemini feedback:
1888
+ 1. [Security] Need timing attack prevention Fixing...
1889
+ 2. [Performance] Unnecessary DB call Fixing...
1890
+
1891
+ ✅ 2 improvements auto-applied
1892
+ 🔍 Re-verifying... ✅ Passed
1893
+
1894
+ ┌─────────────────────────────────────────────────────────────────┐
1895
+ │ 📊 QUALITY REPORT: login │
1896
+ ├─────────────────────────────────────────────────────────────────┤
1897
+ │ │
1898
+ │ ✅ Scenarios: 4/4 passed │
1899
+ │ │
1900
+ │ | # | Scenario | Status | Retries | │
1901
+ │ |---|───────────────────────|───────|─────────| │
1902
+ │ | 1 | Valid login success | ✅ | 0 | │
1903
+ │ | 2 | Invalid password error| ✅ | 1 | │
1904
+ │ | 3 | Email format validation| ✅ | 0 | │
1905
+ │ | 4 | Password reset link | ✅ | 0 | │
1906
+ │ │
1907
+ │ 📈 Quality score: 94/100 │
1908
+ │ Build: ✅ | Tests: ✅ | Types: ✅ | Gemini: ✅ (2 applied) │
1909
+ │ │
1910
+ │ ⏱️ Started: {start_time} │
1911
+ │ ⏱️ Completed: {getCurrentTime 결과} │
1912
+ └─────────────────────────────────────────────────────────────────┘
1913
+
1914
+ 🎉 Implementation complete! All scenarios passed + Gemini review applied.
1915
+
1916
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1917
+ 🔍 AUTO REVIEW (13+ Agents)
1918
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1919
+
1920
+ [PARALLEL] 13 expert agents reviewing...
1921
+ - security-reviewer
1922
+ - performance-reviewer ✅
1923
+ - architecture-reviewer ✅
1924
+ - ...
1925
+
1926
+ 📋 Review results:
1927
+ - P1 Critical: 0
1928
+ - P2 Important: 2
1929
+ - P3 Nice-to-have: 1
1930
+
1931
+ 🔧 Auto-fixing P2 issues...
1932
+ 1. [PERF] N+1 query → Fixed
1933
+ 2. [ARCH] Circular dependency → Fixed
1934
+
1935
+ ✅ Auto Review complete! 2 issues auto-resolved.
1936
+ ```
1937
+
1938
+ ### Phase-specific Execution
1939
+
1940
+ ```
1941
+ User: /vibe.run "brick-game" --phase 2
1942
+
1943
+ Claude:
1944
+ 📄 Reading SPEC: .claude/vibe/specs/brick-game.md
1945
+ 🎯 Executing Phase 2 only.
1946
+
1947
+ Phase 2: Game Logic
1948
+ 1. [ ] Paddle movement implementation
1949
+ 2. [ ] Ball physics engine
1950
+ 3. [ ] Brick collision handling
1951
+ 4. [ ] Score system
1952
+ 5. [ ] Game over conditions
1953
+
1954
+ ⚡ Launching parallel exploration...
1955
+ [Task(haiku) × 3 launched in parallel]
1956
+
1957
+ 🚀 Starting implementation...
1958
+ ```
1959
+
1960
+ ## Error Handling
1961
+
1962
+ On failure:
1963
+ 1. Check error message
1964
+ 2. Review `<constraints>`
1965
+ 3. Fix code and retry
1966
+ 4. If continues to fail, report to user
1967
+
1968
+ ---
1969
+
1970
+ ## Quality Gate (Mandatory)
1971
+
1972
+ ### Implementation Quality Checklist
1973
+
1974
+ Before marking any scenario as complete, ALL items must pass:
1975
+
1976
+ | Category | Check Item | Weight |
1977
+ |----------|------------|--------|
1978
+ | **Functionality** | All Given/When/Then conditions verified | 20% |
1979
+ | **Functionality** | Edge cases handled per scenario | 10% |
1980
+ | **Code Quality** | No `any` types in TypeScript | 10% |
1981
+ | **Code Quality** | Functions ≤30 lines, nesting ≤3 levels | 10% |
1982
+ | **Code Quality** | No hardcoded values (use constants) | 5% |
1983
+ | **Security** | Input validation implemented | 10% |
1984
+ | **Security** | Authentication/authorization checked | 5% |
1985
+ | **Error Handling** | Try-catch or error states present | 10% |
1986
+ | **Error Handling** | User-friendly error messages | 5% |
1987
+ | **Testing** | Unit tests exist for core logic | 10% |
1988
+ | **Performance** | No N+1 queries or unnecessary loops | 5% |
1989
+
1990
+ ### Quality Score Calculation
1991
+
1992
+ ```
1993
+ Score = Σ(checked items × weight) / 100
1994
+
1995
+ Grades:
1996
+ - 95-100: ✅ EXCELLENT - Ready to merge
1997
+ - 90-94: ⚠️ GOOD - Minor improvements required before merge
1998
+ - 80-89: ⚠️ FAIR - Significant improvements required
1999
+ - 0-79: ❌ POOR - Major fixes needed
2000
+ ```
2001
+
2002
+ ### Quality Gate Thresholds
2003
+
2004
+ | Gate | Minimum Score | Condition |
2005
+ |------|---------------|-----------|
2006
+ | **Scenario Complete** | 95 | Each scenario must score ≥95 |
2007
+ | **Phase Complete** | 95 | Average of all scenarios ≥95 |
2008
+ | **Feature Complete** | 95 | All phases complete + Gemini review |
2009
+
2010
+ ### Auto-Fix Triggers
2011
+
2012
+ | Issue Type | Auto-Fix Action |
2013
+ |------------|-----------------|
2014
+ | Missing error handling | Add try-catch wrapper |
2015
+ | Hardcoded values | Extract to constants file |
2016
+ | Missing input validation | Add validation schema |
2017
+ | Function too long | Suggest split points |
2018
+ | N+1 query detected | Add eager loading |
2019
+
2020
+ ### Forbidden Patterns (Block Merge)
2021
+
2022
+ | Pattern | Why Forbidden | Detection |
2023
+ |---------|---------------|-----------|
2024
+ | `console.log` | Debug code in production | Regex scan |
2025
+ | `// TODO` without issue | Untracked work | Comment scan |
2026
+ | `any` type | Type safety bypass | TypeScript check |
2027
+ | `@ts-ignore` | Type error suppression | TypeScript check |
2028
+ | Empty catch blocks | Silent error swallowing | AST analysis |
2029
+ | Commented-out code | Dead code | Comment scan |
2030
+
2031
+ ---
2032
+
2033
+ ## Auto-Retrospective (Post-Implementation)
2034
+
2035
+ After ALL phases complete successfully, **automatically** perform a brief retrospective:
2036
+
2037
+ ### Retrospective Template
2038
+
2039
+ ```
2040
+ ## Retrospective: {feature-name}
2041
+
2042
+ ### What Worked
2043
+ - [List effective patterns, tools, approaches used]
2044
+
2045
+ ### What Didn't
2046
+ - [List issues, failures, unexpected blockers]
2047
+
2048
+ ### Key Decisions
2049
+ - [Important architectural or implementation decisions made during this run]
2050
+
2051
+ ### Lessons Learned
2052
+ - [Principle format: "When X, do Y because Z"]
2053
+ ```
2054
+
2055
+ ### Execution Steps
2056
+
2057
+ 1. Generate retrospective based on the implementation session
2058
+ 2. Save to `.claude/vibe/retros/{feature-name}.md`
2059
+ 3. Save key lessons via `core_save_memory` (for cross-session recall)
2060
+ 4. Update `claude-progress.txt` with final status
2061
+
2062
+ **Important:**
2063
+
2064
+ - Keep it concise (under 20 lines)
2065
+ - Focus on **project-specific** insights, not generic knowledge
2066
+ - Only save to memory if the lesson is actionable and non-obvious
2067
+
2068
+ ---
2069
+
2070
+ ## Next Step
2071
+
2072
+ ```
2073
+ /vibe.verify "brick-game"
2074
+ ```
2075
+
2076
+ ---
2077
+
2078
+ ARGUMENTS: $ARGUMENTS