claudecode-omc 4.8.2 → 4.8.4

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 (688) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +3 -3
  3. package/README.de.md +60 -0
  4. package/README.es.md +60 -0
  5. package/README.fr.md +60 -0
  6. package/README.it.md +60 -0
  7. package/README.ja.md +60 -0
  8. package/README.ko.md +60 -0
  9. package/README.md +101 -16
  10. package/README.pt.md +60 -0
  11. package/README.ru.md +60 -0
  12. package/README.tr.md +60 -0
  13. package/README.vi.md +60 -0
  14. package/README.zh.md +60 -0
  15. package/agents/code-reviewer.md +107 -6
  16. package/agents/critic.md +212 -42
  17. package/agents/debugger.md +52 -4
  18. package/agents/document-specialist.md +39 -60
  19. package/agents/executor.md +29 -9
  20. package/agents/explore.md +3 -1
  21. package/agents/security-reviewer.md +57 -0
  22. package/agents/test-engineer.md +21 -0
  23. package/agents/verifier.md +2 -0
  24. package/agents/writer.md +2 -0
  25. package/bridge/cli.cjs +7402 -3580
  26. package/bridge/mcp-server.cjs +558 -43
  27. package/bridge/runtime-cli.cjs +3034 -1801
  28. package/bridge/team-bridge.cjs +25 -1
  29. package/bridge/team-mcp.cjs +257 -88
  30. package/bridge/team.js +5226 -413
  31. package/dist/__tests__/agent-boundary-guidance.test.d.ts +2 -0
  32. package/dist/__tests__/agent-boundary-guidance.test.d.ts.map +1 -0
  33. package/dist/__tests__/agent-boundary-guidance.test.js +48 -0
  34. package/dist/__tests__/agent-boundary-guidance.test.js.map +1 -0
  35. package/dist/__tests__/agent-registry.test.js +48 -11
  36. package/dist/__tests__/agent-registry.test.js.map +1 -1
  37. package/dist/__tests__/auto-slash-aliases.test.js +25 -0
  38. package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
  39. package/dist/__tests__/bedrock-model-routing.test.d.ts +21 -0
  40. package/dist/__tests__/bedrock-model-routing.test.d.ts.map +1 -0
  41. package/dist/__tests__/bedrock-model-routing.test.js +397 -0
  42. package/dist/__tests__/bedrock-model-routing.test.js.map +1 -0
  43. package/dist/__tests__/cleanup-validation.test.js +7 -3
  44. package/dist/__tests__/cleanup-validation.test.js.map +1 -1
  45. package/dist/__tests__/cli-win32-warning.test.js +15 -2
  46. package/dist/__tests__/cli-win32-warning.test.js.map +1 -1
  47. package/dist/__tests__/consolidation-contracts.test.js +27 -3
  48. package/dist/__tests__/consolidation-contracts.test.js.map +1 -1
  49. package/dist/__tests__/context-guard-stop.test.d.ts +2 -0
  50. package/dist/__tests__/context-guard-stop.test.d.ts.map +1 -0
  51. package/dist/__tests__/context-guard-stop.test.js +58 -0
  52. package/dist/__tests__/context-guard-stop.test.js.map +1 -0
  53. package/dist/__tests__/delegation-enforcer.test.js +76 -11
  54. package/dist/__tests__/delegation-enforcer.test.js.map +1 -1
  55. package/dist/__tests__/doctor-conflicts.test.js +62 -1
  56. package/dist/__tests__/doctor-conflicts.test.js.map +1 -1
  57. package/dist/__tests__/hooks.test.js +165 -4
  58. package/dist/__tests__/hooks.test.js.map +1 -1
  59. package/dist/__tests__/hud/defaults.test.js +4 -0
  60. package/dist/__tests__/hud/defaults.test.js.map +1 -1
  61. package/dist/__tests__/hud/limits-error.test.js +2 -4
  62. package/dist/__tests__/hud/limits-error.test.js.map +1 -1
  63. package/dist/__tests__/hud/mission-board-state.test.d.ts +2 -0
  64. package/dist/__tests__/hud/mission-board-state.test.d.ts.map +1 -0
  65. package/dist/__tests__/hud/mission-board-state.test.js +170 -0
  66. package/dist/__tests__/hud/mission-board-state.test.js.map +1 -0
  67. package/dist/__tests__/hud/mission-board.test.d.ts +2 -0
  68. package/dist/__tests__/hud/mission-board.test.d.ts.map +1 -0
  69. package/dist/__tests__/hud/mission-board.test.js +143 -0
  70. package/dist/__tests__/hud/mission-board.test.js.map +1 -0
  71. package/dist/__tests__/hud/rate-limits-error.test.js +13 -0
  72. package/dist/__tests__/hud/rate-limits-error.test.js.map +1 -1
  73. package/dist/__tests__/hud/render-rate-limits-priority.test.d.ts +8 -0
  74. package/dist/__tests__/hud/render-rate-limits-priority.test.d.ts.map +1 -0
  75. package/dist/__tests__/hud/render-rate-limits-priority.test.js +145 -0
  76. package/dist/__tests__/hud/render-rate-limits-priority.test.js.map +1 -0
  77. package/dist/__tests__/hud/render.test.js +22 -0
  78. package/dist/__tests__/hud/render.test.js.map +1 -1
  79. package/dist/__tests__/hud/stale-indicator.test.d.ts +9 -0
  80. package/dist/__tests__/hud/stale-indicator.test.d.ts.map +1 -0
  81. package/dist/__tests__/hud/stale-indicator.test.js +81 -0
  82. package/dist/__tests__/hud/stale-indicator.test.js.map +1 -0
  83. package/dist/__tests__/hud/state.test.js +30 -0
  84. package/dist/__tests__/hud/state.test.js.map +1 -1
  85. package/dist/__tests__/hud/usage-api-lock.test.d.ts +2 -0
  86. package/dist/__tests__/hud/usage-api-lock.test.d.ts.map +1 -0
  87. package/dist/__tests__/hud/usage-api-lock.test.js +245 -0
  88. package/dist/__tests__/hud/usage-api-lock.test.js.map +1 -0
  89. package/dist/__tests__/hud/usage-api-stale.test.d.ts +9 -0
  90. package/dist/__tests__/hud/usage-api-stale.test.d.ts.map +1 -0
  91. package/dist/__tests__/hud/usage-api-stale.test.js +297 -0
  92. package/dist/__tests__/hud/usage-api-stale.test.js.map +1 -0
  93. package/dist/__tests__/hud/usage-api.test.js +223 -0
  94. package/dist/__tests__/hud/usage-api.test.js.map +1 -1
  95. package/dist/__tests__/hud/watch-mode-init.test.d.ts +2 -0
  96. package/dist/__tests__/hud/watch-mode-init.test.d.ts.map +1 -0
  97. package/dist/__tests__/hud/watch-mode-init.test.js +133 -0
  98. package/dist/__tests__/hud/watch-mode-init.test.js.map +1 -0
  99. package/dist/__tests__/hud-agents.test.js +12 -10
  100. package/dist/__tests__/hud-agents.test.js.map +1 -1
  101. package/dist/__tests__/hud-build-guidance.test.js +6 -2
  102. package/dist/__tests__/hud-build-guidance.test.js.map +1 -1
  103. package/dist/__tests__/hud-marketplace-resolution.test.d.ts +2 -0
  104. package/dist/__tests__/hud-marketplace-resolution.test.d.ts.map +1 -0
  105. package/dist/__tests__/hud-marketplace-resolution.test.js +53 -0
  106. package/dist/__tests__/hud-marketplace-resolution.test.js.map +1 -0
  107. package/dist/__tests__/installer-hud-skip.test.js +12 -0
  108. package/dist/__tests__/installer-hud-skip.test.js.map +1 -1
  109. package/dist/__tests__/installer-plugin-agents.test.d.ts +2 -0
  110. package/dist/__tests__/installer-plugin-agents.test.d.ts.map +1 -0
  111. package/dist/__tests__/installer-plugin-agents.test.js +111 -0
  112. package/dist/__tests__/installer-plugin-agents.test.js.map +1 -0
  113. package/dist/__tests__/installer-version-guard.test.d.ts +2 -0
  114. package/dist/__tests__/installer-version-guard.test.d.ts.map +1 -0
  115. package/dist/__tests__/installer-version-guard.test.js +75 -0
  116. package/dist/__tests__/installer-version-guard.test.js.map +1 -0
  117. package/dist/__tests__/installer.test.js +58 -4
  118. package/dist/__tests__/installer.test.js.map +1 -1
  119. package/dist/__tests__/omc-tools-server.test.js +8 -5
  120. package/dist/__tests__/omc-tools-server.test.js.map +1 -1
  121. package/dist/__tests__/pre-tool-enforcer.test.js +38 -0
  122. package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -1
  123. package/dist/__tests__/prompt-injection.test.js +3 -3
  124. package/dist/__tests__/prompt-injection.test.js.map +1 -1
  125. package/dist/__tests__/ralph-prd-mandatory.test.js +53 -2
  126. package/dist/__tests__/ralph-prd-mandatory.test.js.map +1 -1
  127. package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.js +42 -0
  128. package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.js.map +1 -1
  129. package/dist/__tests__/rate-limit-wait/tmux-detector.test.js +1 -1
  130. package/dist/__tests__/session-history-search.test.d.ts +2 -0
  131. package/dist/__tests__/session-history-search.test.d.ts.map +1 -0
  132. package/dist/__tests__/session-history-search.test.js +115 -0
  133. package/dist/__tests__/session-history-search.test.js.map +1 -0
  134. package/dist/__tests__/session-start-script-context.test.d.ts +2 -0
  135. package/dist/__tests__/session-start-script-context.test.d.ts.map +1 -0
  136. package/dist/__tests__/session-start-script-context.test.js +49 -0
  137. package/dist/__tests__/session-start-script-context.test.js.map +1 -0
  138. package/dist/__tests__/skills.test.js +81 -24
  139. package/dist/__tests__/skills.test.js.map +1 -1
  140. package/dist/__tests__/standalone-server.test.js +8 -4
  141. package/dist/__tests__/standalone-server.test.js.map +1 -1
  142. package/dist/__tests__/tier0-docs-consistency.test.js +10 -2
  143. package/dist/__tests__/tier0-docs-consistency.test.js.map +1 -1
  144. package/dist/agents/definitions.d.ts +5 -15
  145. package/dist/agents/definitions.d.ts.map +1 -1
  146. package/dist/agents/definitions.js +48 -49
  147. package/dist/agents/definitions.js.map +1 -1
  148. package/dist/agents/document-specialist.d.ts +1 -1
  149. package/dist/agents/document-specialist.d.ts.map +1 -1
  150. package/dist/agents/document-specialist.js +46 -21
  151. package/dist/agents/document-specialist.js.map +1 -1
  152. package/dist/agents/explore.d.ts.map +1 -1
  153. package/dist/agents/explore.js +3 -2
  154. package/dist/agents/explore.js.map +1 -1
  155. package/dist/agents/index.d.ts +2 -4
  156. package/dist/agents/index.d.ts.map +1 -1
  157. package/dist/agents/index.js +3 -6
  158. package/dist/agents/index.js.map +1 -1
  159. package/dist/agents/types.d.ts +2 -2
  160. package/dist/agents/types.d.ts.map +1 -1
  161. package/dist/cli/__tests__/ask.test.js +255 -8
  162. package/dist/cli/__tests__/ask.test.js.map +1 -1
  163. package/dist/cli/__tests__/session-search-help.test.d.ts +2 -0
  164. package/dist/cli/__tests__/session-search-help.test.d.ts.map +1 -0
  165. package/dist/cli/__tests__/session-search-help.test.js +13 -0
  166. package/dist/cli/__tests__/session-search-help.test.js.map +1 -0
  167. package/dist/cli/__tests__/session-search.test.d.ts +2 -0
  168. package/dist/cli/__tests__/session-search.test.d.ts.map +1 -0
  169. package/dist/cli/__tests__/session-search.test.js +72 -0
  170. package/dist/cli/__tests__/session-search.test.js.map +1 -0
  171. package/dist/cli/__tests__/team-help.test.js +1 -1
  172. package/dist/cli/__tests__/team-help.test.js.map +1 -1
  173. package/dist/cli/__tests__/team.test.js +256 -4
  174. package/dist/cli/__tests__/team.test.js.map +1 -1
  175. package/dist/cli/commands/__tests__/team.test.js +52 -2
  176. package/dist/cli/commands/__tests__/team.test.js.map +1 -1
  177. package/dist/cli/commands/doctor-conflicts.d.ts.map +1 -1
  178. package/dist/cli/commands/doctor-conflicts.js +15 -1
  179. package/dist/cli/commands/doctor-conflicts.js.map +1 -1
  180. package/dist/cli/commands/session-search.d.ts +18 -0
  181. package/dist/cli/commands/session-search.d.ts.map +1 -0
  182. package/dist/cli/commands/session-search.js +47 -0
  183. package/dist/cli/commands/session-search.js.map +1 -0
  184. package/dist/cli/commands/team.d.ts +11 -0
  185. package/dist/cli/commands/team.d.ts.map +1 -1
  186. package/dist/cli/commands/team.js +94 -24
  187. package/dist/cli/commands/team.js.map +1 -1
  188. package/dist/cli/commands/wait.d.ts.map +1 -1
  189. package/dist/cli/commands/wait.js +12 -1
  190. package/dist/cli/commands/wait.js.map +1 -1
  191. package/dist/cli/index.js +70 -2
  192. package/dist/cli/index.js.map +1 -1
  193. package/dist/cli/team.d.ts +1 -0
  194. package/dist/cli/team.d.ts.map +1 -1
  195. package/dist/cli/team.js +100 -214
  196. package/dist/cli/team.js.map +1 -1
  197. package/dist/cli/win32-warning.d.ts +2 -1
  198. package/dist/cli/win32-warning.d.ts.map +1 -1
  199. package/dist/cli/win32-warning.js +20 -6
  200. package/dist/cli/win32-warning.js.map +1 -1
  201. package/dist/config/__tests__/loader.test.d.ts +2 -0
  202. package/dist/config/__tests__/loader.test.d.ts.map +1 -0
  203. package/dist/config/__tests__/loader.test.js +145 -0
  204. package/dist/config/__tests__/loader.test.js.map +1 -0
  205. package/dist/config/__tests__/models.test.d.ts +2 -0
  206. package/dist/config/__tests__/models.test.d.ts.map +1 -0
  207. package/dist/config/__tests__/models.test.js +147 -0
  208. package/dist/config/__tests__/models.test.js.map +1 -0
  209. package/dist/config/__tests__/test-helpers.d.ts +3 -0
  210. package/dist/config/__tests__/test-helpers.d.ts.map +1 -0
  211. package/dist/config/__tests__/test-helpers.js +19 -0
  212. package/dist/config/__tests__/test-helpers.js.map +1 -0
  213. package/dist/config/loader.d.ts +3 -1
  214. package/dist/config/loader.d.ts.map +1 -1
  215. package/dist/config/loader.js +140 -126
  216. package/dist/config/loader.js.map +1 -1
  217. package/dist/config/models.d.ts +29 -10
  218. package/dist/config/models.d.ts.map +1 -1
  219. package/dist/config/models.js +96 -10
  220. package/dist/config/models.js.map +1 -1
  221. package/dist/features/builtin-skills/skills.d.ts.map +1 -1
  222. package/dist/features/builtin-skills/skills.js +8 -1
  223. package/dist/features/builtin-skills/skills.js.map +1 -1
  224. package/dist/features/builtin-skills/types.d.ts +3 -0
  225. package/dist/features/builtin-skills/types.d.ts.map +1 -1
  226. package/dist/features/delegation-enforcer.d.ts +5 -12
  227. package/dist/features/delegation-enforcer.d.ts.map +1 -1
  228. package/dist/features/delegation-enforcer.js +48 -54
  229. package/dist/features/delegation-enforcer.js.map +1 -1
  230. package/dist/features/delegation-routing/__tests__/resolver.test.js +4 -3
  231. package/dist/features/delegation-routing/__tests__/resolver.test.js.map +1 -1
  232. package/dist/features/delegation-routing/types.d.ts.map +1 -1
  233. package/dist/features/delegation-routing/types.js +7 -4
  234. package/dist/features/delegation-routing/types.js.map +1 -1
  235. package/dist/features/index.d.ts +1 -0
  236. package/dist/features/index.d.ts.map +1 -1
  237. package/dist/features/index.js +2 -0
  238. package/dist/features/index.js.map +1 -1
  239. package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
  240. package/dist/features/rate-limit-wait/daemon.js +8 -5
  241. package/dist/features/rate-limit-wait/daemon.js.map +1 -1
  242. package/dist/features/rate-limit-wait/index.d.ts +1 -1
  243. package/dist/features/rate-limit-wait/index.d.ts.map +1 -1
  244. package/dist/features/rate-limit-wait/index.js +1 -1
  245. package/dist/features/rate-limit-wait/index.js.map +1 -1
  246. package/dist/features/rate-limit-wait/rate-limit-monitor.d.ts +9 -0
  247. package/dist/features/rate-limit-wait/rate-limit-monitor.d.ts.map +1 -1
  248. package/dist/features/rate-limit-wait/rate-limit-monitor.js +38 -0
  249. package/dist/features/rate-limit-wait/rate-limit-monitor.js.map +1 -1
  250. package/dist/features/rate-limit-wait/tmux-detector.d.ts +2 -1
  251. package/dist/features/rate-limit-wait/tmux-detector.d.ts.map +1 -1
  252. package/dist/features/rate-limit-wait/tmux-detector.js +8 -9
  253. package/dist/features/rate-limit-wait/tmux-detector.js.map +1 -1
  254. package/dist/features/rate-limit-wait/types.d.ts +11 -0
  255. package/dist/features/rate-limit-wait/types.d.ts.map +1 -1
  256. package/dist/features/session-history-search/index.d.ts +6 -0
  257. package/dist/features/session-history-search/index.d.ts.map +1 -0
  258. package/dist/features/session-history-search/index.js +480 -0
  259. package/dist/features/session-history-search/index.js.map +1 -0
  260. package/dist/features/session-history-search/types.d.ts +36 -0
  261. package/dist/features/session-history-search/types.d.ts.map +1 -0
  262. package/dist/features/session-history-search/types.js +2 -0
  263. package/dist/features/session-history-search/types.js.map +1 -0
  264. package/dist/hooks/__tests__/background-process-guard.test.js +101 -5
  265. package/dist/hooks/__tests__/background-process-guard.test.js.map +1 -1
  266. package/dist/hooks/__tests__/bridge-openclaw.test.js +16 -5
  267. package/dist/hooks/__tests__/bridge-openclaw.test.js.map +1 -1
  268. package/dist/hooks/__tests__/bridge-routing.test.js +48 -1
  269. package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
  270. package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
  271. package/dist/hooks/auto-slash-command/executor.js +9 -1
  272. package/dist/hooks/auto-slash-command/executor.js.map +1 -1
  273. package/dist/hooks/auto-slash-command/types.d.ts +2 -0
  274. package/dist/hooks/auto-slash-command/types.d.ts.map +1 -1
  275. package/dist/hooks/auto-slash-command/types.js +0 -7
  276. package/dist/hooks/auto-slash-command/types.js.map +1 -1
  277. package/dist/hooks/autopilot/adapters/execution-adapter.js +3 -3
  278. package/dist/hooks/autopilot/prompts.js +1 -1
  279. package/dist/hooks/bridge-normalize.d.ts.map +1 -1
  280. package/dist/hooks/bridge-normalize.js +2 -0
  281. package/dist/hooks/bridge-normalize.js.map +1 -1
  282. package/dist/hooks/bridge.d.ts.map +1 -1
  283. package/dist/hooks/bridge.js +248 -39
  284. package/dist/hooks/bridge.js.map +1 -1
  285. package/dist/hooks/keyword-detector/__tests__/index.test.js +41 -0
  286. package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
  287. package/dist/hooks/keyword-detector/index.d.ts +1 -1
  288. package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
  289. package/dist/hooks/keyword-detector/index.js +3 -1
  290. package/dist/hooks/keyword-detector/index.js.map +1 -1
  291. package/dist/hooks/permission-handler/index.d.ts +8 -0
  292. package/dist/hooks/permission-handler/index.d.ts.map +1 -1
  293. package/dist/hooks/permission-handler/index.js +76 -0
  294. package/dist/hooks/permission-handler/index.js.map +1 -1
  295. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.d.ts +2 -0
  296. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.d.ts.map +1 -0
  297. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js +90 -0
  298. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js.map +1 -0
  299. package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.d.ts +2 -0
  300. package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.d.ts.map +1 -0
  301. package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.js +535 -0
  302. package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.js.map +1 -0
  303. package/dist/hooks/persistent-mode/index.d.ts +1 -1
  304. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  305. package/dist/hooks/persistent-mode/index.js +296 -21
  306. package/dist/hooks/persistent-mode/index.js.map +1 -1
  307. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +156 -0
  308. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -1
  309. package/dist/hooks/project-memory/__tests__/integration.test.js +27 -2
  310. package/dist/hooks/project-memory/__tests__/integration.test.js.map +1 -1
  311. package/dist/hooks/project-memory/__tests__/storage.test.js +37 -0
  312. package/dist/hooks/project-memory/__tests__/storage.test.js.map +1 -1
  313. package/dist/hooks/project-memory/storage.d.ts +1 -1
  314. package/dist/hooks/project-memory/storage.d.ts.map +1 -1
  315. package/dist/hooks/project-memory/storage.js +5 -4
  316. package/dist/hooks/project-memory/storage.js.map +1 -1
  317. package/dist/hooks/ralph/index.d.ts +1 -1
  318. package/dist/hooks/ralph/index.d.ts.map +1 -1
  319. package/dist/hooks/ralph/index.js +1 -1
  320. package/dist/hooks/ralph/index.js.map +1 -1
  321. package/dist/hooks/ralph/loop.d.ts +18 -0
  322. package/dist/hooks/ralph/loop.d.ts.map +1 -1
  323. package/dist/hooks/ralph/loop.js +31 -0
  324. package/dist/hooks/ralph/loop.js.map +1 -1
  325. package/dist/hooks/ralph/verifier.d.ts +4 -1
  326. package/dist/hooks/ralph/verifier.d.ts.map +1 -1
  327. package/dist/hooks/ralph/verifier.js +56 -21
  328. package/dist/hooks/ralph/verifier.js.map +1 -1
  329. package/dist/hooks/recovery/__tests__/storage.test.d.ts +2 -0
  330. package/dist/hooks/recovery/__tests__/storage.test.d.ts.map +1 -0
  331. package/dist/hooks/recovery/__tests__/storage.test.js +65 -0
  332. package/dist/hooks/recovery/__tests__/storage.test.js.map +1 -0
  333. package/dist/hooks/recovery/storage.d.ts +5 -1
  334. package/dist/hooks/recovery/storage.d.ts.map +1 -1
  335. package/dist/hooks/recovery/storage.js +7 -29
  336. package/dist/hooks/recovery/storage.js.map +1 -1
  337. package/dist/hooks/recovery/types.d.ts +1 -1
  338. package/dist/hooks/recovery/types.d.ts.map +1 -1
  339. package/dist/hooks/session-end/__tests__/duplicate-notifications.test.d.ts +2 -0
  340. package/dist/hooks/session-end/__tests__/duplicate-notifications.test.d.ts.map +1 -0
  341. package/dist/hooks/session-end/__tests__/duplicate-notifications.test.js +140 -0
  342. package/dist/hooks/session-end/__tests__/duplicate-notifications.test.js.map +1 -0
  343. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.d.ts +2 -0
  344. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.d.ts.map +1 -0
  345. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js +122 -0
  346. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js.map +1 -0
  347. package/dist/hooks/session-end/__tests__/openclaw-session-end.test.js +38 -12
  348. package/dist/hooks/session-end/__tests__/openclaw-session-end.test.js.map +1 -1
  349. package/dist/hooks/session-end/callbacks.d.ts +4 -1
  350. package/dist/hooks/session-end/callbacks.d.ts.map +1 -1
  351. package/dist/hooks/session-end/callbacks.js +5 -4
  352. package/dist/hooks/session-end/callbacks.js.map +1 -1
  353. package/dist/hooks/session-end/index.d.ts.map +1 -1
  354. package/dist/hooks/session-end/index.js +162 -36
  355. package/dist/hooks/session-end/index.js.map +1 -1
  356. package/dist/hooks/skill-state/__tests__/skill-state.test.js +35 -33
  357. package/dist/hooks/skill-state/__tests__/skill-state.test.js.map +1 -1
  358. package/dist/hooks/skill-state/index.d.ts +3 -3
  359. package/dist/hooks/skill-state/index.d.ts.map +1 -1
  360. package/dist/hooks/skill-state/index.js +7 -11
  361. package/dist/hooks/skill-state/index.js.map +1 -1
  362. package/dist/hooks/subagent-tracker/index.d.ts.map +1 -1
  363. package/dist/hooks/subagent-tracker/index.js +22 -0
  364. package/dist/hooks/subagent-tracker/index.js.map +1 -1
  365. package/dist/hooks/think-mode/__tests__/index.test.js +20 -20
  366. package/dist/hooks/think-mode/__tests__/index.test.js.map +1 -1
  367. package/dist/hooks/think-mode/switcher.d.ts.map +1 -1
  368. package/dist/hooks/think-mode/switcher.js +13 -10
  369. package/dist/hooks/think-mode/switcher.js.map +1 -1
  370. package/dist/hooks/thinking-block-validator/__tests__/index.test.d.ts +2 -0
  371. package/dist/hooks/thinking-block-validator/__tests__/index.test.d.ts.map +1 -0
  372. package/dist/hooks/thinking-block-validator/__tests__/index.test.js +56 -0
  373. package/dist/hooks/thinking-block-validator/__tests__/index.test.js.map +1 -0
  374. package/dist/hooks/thinking-block-validator/index.d.ts.map +1 -1
  375. package/dist/hooks/thinking-block-validator/index.js +7 -6
  376. package/dist/hooks/thinking-block-validator/index.js.map +1 -1
  377. package/dist/hooks/todo-continuation/index.d.ts +6 -0
  378. package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
  379. package/dist/hooks/todo-continuation/index.js +14 -5
  380. package/dist/hooks/todo-continuation/index.js.map +1 -1
  381. package/dist/hud/elements/agents.d.ts.map +1 -1
  382. package/dist/hud/elements/agents.js +8 -14
  383. package/dist/hud/elements/agents.js.map +1 -1
  384. package/dist/hud/elements/index.d.ts +1 -0
  385. package/dist/hud/elements/index.d.ts.map +1 -1
  386. package/dist/hud/elements/index.js +1 -0
  387. package/dist/hud/elements/index.js.map +1 -1
  388. package/dist/hud/elements/limits.d.ts +3 -3
  389. package/dist/hud/elements/limits.d.ts.map +1 -1
  390. package/dist/hud/elements/limits.js +26 -18
  391. package/dist/hud/elements/limits.js.map +1 -1
  392. package/dist/hud/elements/mission-board.d.ts +2 -0
  393. package/dist/hud/elements/mission-board.d.ts.map +1 -0
  394. package/dist/hud/elements/mission-board.js +2 -0
  395. package/dist/hud/elements/mission-board.js.map +1 -0
  396. package/dist/hud/index.d.ts +1 -1
  397. package/dist/hud/index.d.ts.map +1 -1
  398. package/dist/hud/index.js +10 -2
  399. package/dist/hud/index.js.map +1 -1
  400. package/dist/hud/mission-board.d.ts +75 -0
  401. package/dist/hud/mission-board.d.ts.map +1 -0
  402. package/dist/hud/mission-board.js +420 -0
  403. package/dist/hud/mission-board.js.map +1 -0
  404. package/dist/hud/render.d.ts.map +1 -1
  405. package/dist/hud/render.js +16 -8
  406. package/dist/hud/render.js.map +1 -1
  407. package/dist/hud/state.d.ts.map +1 -1
  408. package/dist/hud/state.js +13 -0
  409. package/dist/hud/state.js.map +1 -1
  410. package/dist/hud/types.d.ts +11 -0
  411. package/dist/hud/types.d.ts.map +1 -1
  412. package/dist/hud/types.js +10 -0
  413. package/dist/hud/types.js.map +1 -1
  414. package/dist/hud/usage-api.d.ts +1 -1
  415. package/dist/hud/usage-api.d.ts.map +1 -1
  416. package/dist/hud/usage-api.js +207 -106
  417. package/dist/hud/usage-api.js.map +1 -1
  418. package/dist/index.d.ts +1 -0
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +2 -3
  421. package/dist/index.js.map +1 -1
  422. package/dist/installer/__tests__/claude-md-merge.test.js +53 -9
  423. package/dist/installer/__tests__/claude-md-merge.test.js.map +1 -1
  424. package/dist/installer/__tests__/hook-templates.test.d.ts +2 -0
  425. package/dist/installer/__tests__/hook-templates.test.d.ts.map +1 -0
  426. package/dist/installer/__tests__/hook-templates.test.js +76 -0
  427. package/dist/installer/__tests__/hook-templates.test.js.map +1 -0
  428. package/dist/installer/hooks.d.ts +15 -0
  429. package/dist/installer/hooks.d.ts.map +1 -1
  430. package/dist/installer/hooks.js +51 -0
  431. package/dist/installer/hooks.js.map +1 -1
  432. package/dist/installer/index.d.ts +25 -0
  433. package/dist/installer/index.d.ts.map +1 -1
  434. package/dist/installer/index.js +273 -64
  435. package/dist/installer/index.js.map +1 -1
  436. package/dist/lib/mode-names.d.ts.map +1 -1
  437. package/dist/lib/mode-names.js +2 -0
  438. package/dist/lib/mode-names.js.map +1 -1
  439. package/dist/mcp/__tests__/team-server-artifact-convergence.test.js +30 -3
  440. package/dist/mcp/__tests__/team-server-artifact-convergence.test.js.map +1 -1
  441. package/dist/mcp/__tests__/team-server-deprecation.test.js +2 -0
  442. package/dist/mcp/__tests__/team-server-deprecation.test.js.map +1 -1
  443. package/dist/mcp/team-job-convergence.d.ts.map +1 -1
  444. package/dist/mcp/team-job-convergence.js +12 -3
  445. package/dist/mcp/team-job-convergence.js.map +1 -1
  446. package/dist/mcp/team-server.d.ts.map +1 -1
  447. package/dist/mcp/team-server.js +18 -4
  448. package/dist/mcp/team-server.js.map +1 -1
  449. package/dist/notifications/__tests__/config-merge.test.js +36 -1
  450. package/dist/notifications/__tests__/config-merge.test.js.map +1 -1
  451. package/dist/notifications/__tests__/formatter.test.js +13 -5
  452. package/dist/notifications/__tests__/formatter.test.js.map +1 -1
  453. package/dist/notifications/__tests__/notify-registry-integration.test.js +27 -1
  454. package/dist/notifications/__tests__/notify-registry-integration.test.js.map +1 -1
  455. package/dist/notifications/__tests__/verbosity.test.js +33 -1
  456. package/dist/notifications/__tests__/verbosity.test.js.map +1 -1
  457. package/dist/notifications/config.d.ts +7 -0
  458. package/dist/notifications/config.d.ts.map +1 -1
  459. package/dist/notifications/config.js +18 -0
  460. package/dist/notifications/config.js.map +1 -1
  461. package/dist/notifications/formatter.d.ts +2 -2
  462. package/dist/notifications/formatter.d.ts.map +1 -1
  463. package/dist/notifications/formatter.js +7 -6
  464. package/dist/notifications/formatter.js.map +1 -1
  465. package/dist/notifications/index.d.ts +1 -1
  466. package/dist/notifications/index.d.ts.map +1 -1
  467. package/dist/notifications/index.js +5 -3
  468. package/dist/notifications/index.js.map +1 -1
  469. package/dist/notifications/template-engine.js +1 -1
  470. package/dist/notifications/template-engine.js.map +1 -1
  471. package/dist/notifications/types.d.ts +4 -0
  472. package/dist/notifications/types.d.ts.map +1 -1
  473. package/dist/openclaw/__tests__/dispatcher.test.js +26 -0
  474. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
  475. package/dist/openclaw/__tests__/index.test.js +42 -0
  476. package/dist/openclaw/__tests__/index.test.js.map +1 -1
  477. package/dist/openclaw/__tests__/signal.test.d.ts +2 -0
  478. package/dist/openclaw/__tests__/signal.test.d.ts.map +1 -0
  479. package/dist/openclaw/__tests__/signal.test.js +69 -0
  480. package/dist/openclaw/__tests__/signal.test.js.map +1 -0
  481. package/dist/openclaw/dispatcher.d.ts +5 -1
  482. package/dist/openclaw/dispatcher.d.ts.map +1 -1
  483. package/dist/openclaw/dispatcher.js +13 -2
  484. package/dist/openclaw/dispatcher.js.map +1 -1
  485. package/dist/openclaw/index.d.ts +2 -1
  486. package/dist/openclaw/index.d.ts.map +1 -1
  487. package/dist/openclaw/index.js +29 -15
  488. package/dist/openclaw/index.js.map +1 -1
  489. package/dist/openclaw/signal.d.ts +3 -0
  490. package/dist/openclaw/signal.d.ts.map +1 -0
  491. package/dist/openclaw/signal.js +215 -0
  492. package/dist/openclaw/signal.js.map +1 -0
  493. package/dist/openclaw/types.d.ts +35 -0
  494. package/dist/openclaw/types.d.ts.map +1 -1
  495. package/dist/shared/types.d.ts +2 -12
  496. package/dist/shared/types.d.ts.map +1 -1
  497. package/dist/skills/__tests__/mingw-escape.test.js +41 -11
  498. package/dist/skills/__tests__/mingw-escape.test.js.map +1 -1
  499. package/dist/team/__tests__/api-interop.cwd-resolution.test.d.ts +2 -0
  500. package/dist/team/__tests__/api-interop.cwd-resolution.test.d.ts.map +1 -0
  501. package/dist/team/__tests__/api-interop.cwd-resolution.test.js +78 -0
  502. package/dist/team/__tests__/api-interop.cwd-resolution.test.js.map +1 -0
  503. package/dist/team/__tests__/api-interop.dispatch.test.d.ts +2 -0
  504. package/dist/team/__tests__/api-interop.dispatch.test.d.ts.map +1 -0
  505. package/dist/team/__tests__/api-interop.dispatch.test.js +125 -0
  506. package/dist/team/__tests__/api-interop.dispatch.test.js.map +1 -0
  507. package/dist/team/__tests__/cli-detection.test.d.ts +2 -0
  508. package/dist/team/__tests__/cli-detection.test.d.ts.map +1 -0
  509. package/dist/team/__tests__/cli-detection.test.js +36 -0
  510. package/dist/team/__tests__/cli-detection.test.js.map +1 -0
  511. package/dist/team/__tests__/model-contract.test.js +79 -2
  512. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  513. package/dist/team/__tests__/runtime-done-recovery.test.js +1 -0
  514. package/dist/team/__tests__/runtime-done-recovery.test.js.map +1 -1
  515. package/dist/team/__tests__/runtime-prompt-mode.test.js +84 -8
  516. package/dist/team/__tests__/runtime-prompt-mode.test.js.map +1 -1
  517. package/dist/team/__tests__/runtime-v2.dispatch.test.d.ts +2 -0
  518. package/dist/team/__tests__/runtime-v2.dispatch.test.d.ts.map +1 -0
  519. package/dist/team/__tests__/runtime-v2.dispatch.test.js +237 -0
  520. package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -0
  521. package/dist/team/__tests__/runtime-v2.monitor.test.d.ts +2 -0
  522. package/dist/team/__tests__/runtime-v2.monitor.test.d.ts.map +1 -0
  523. package/dist/team/__tests__/runtime-v2.monitor.test.js +103 -0
  524. package/dist/team/__tests__/runtime-v2.monitor.test.js.map +1 -0
  525. package/dist/team/__tests__/runtime-v2.shutdown.test.d.ts +2 -0
  526. package/dist/team/__tests__/runtime-v2.shutdown.test.d.ts.map +1 -0
  527. package/dist/team/__tests__/runtime-v2.shutdown.test.js +49 -0
  528. package/dist/team/__tests__/runtime-v2.shutdown.test.js.map +1 -0
  529. package/dist/team/__tests__/runtime-watchdog-retry.test.js +3 -0
  530. package/dist/team/__tests__/runtime-watchdog-retry.test.js.map +1 -1
  531. package/dist/team/__tests__/tmux-session.create-team.test.js +29 -12
  532. package/dist/team/__tests__/tmux-session.create-team.test.js.map +1 -1
  533. package/dist/team/__tests__/tmux-session.kill-team-session.test.js +6 -0
  534. package/dist/team/__tests__/tmux-session.kill-team-session.test.js.map +1 -1
  535. package/dist/team/__tests__/tmux-session.test.js +9 -0
  536. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  537. package/dist/team/__tests__/worker-bootstrap.test.js +32 -3
  538. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  539. package/dist/team/api-interop.d.ts.map +1 -1
  540. package/dist/team/api-interop.js +153 -2
  541. package/dist/team/api-interop.js.map +1 -1
  542. package/dist/team/cli-detection.d.ts.map +1 -1
  543. package/dist/team/cli-detection.js +6 -2
  544. package/dist/team/cli-detection.js.map +1 -1
  545. package/dist/team/idle-nudge.js +1 -1
  546. package/dist/team/idle-nudge.js.map +1 -1
  547. package/dist/team/mcp-team-bridge.d.ts.map +1 -1
  548. package/dist/team/mcp-team-bridge.js +2 -1
  549. package/dist/team/mcp-team-bridge.js.map +1 -1
  550. package/dist/team/model-contract.d.ts +1 -1
  551. package/dist/team/model-contract.d.ts.map +1 -1
  552. package/dist/team/model-contract.js +35 -4
  553. package/dist/team/model-contract.js.map +1 -1
  554. package/dist/team/runtime-cli.d.ts.map +1 -1
  555. package/dist/team/runtime-cli.js +10 -7
  556. package/dist/team/runtime-cli.js.map +1 -1
  557. package/dist/team/runtime-v2.d.ts +4 -0
  558. package/dist/team/runtime-v2.d.ts.map +1 -1
  559. package/dist/team/runtime-v2.js +231 -59
  560. package/dist/team/runtime-v2.js.map +1 -1
  561. package/dist/team/runtime.d.ts +6 -1
  562. package/dist/team/runtime.d.ts.map +1 -1
  563. package/dist/team/runtime.js +39 -14
  564. package/dist/team/runtime.js.map +1 -1
  565. package/dist/team/tmux-session.d.ts +20 -11
  566. package/dist/team/tmux-session.d.ts.map +1 -1
  567. package/dist/team/tmux-session.js +108 -51
  568. package/dist/team/tmux-session.js.map +1 -1
  569. package/dist/team/types.d.ts +1 -0
  570. package/dist/team/types.d.ts.map +1 -1
  571. package/dist/team/types.js.map +1 -1
  572. package/dist/team/worker-bootstrap.d.ts +2 -0
  573. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  574. package/dist/team/worker-bootstrap.js +46 -12
  575. package/dist/team/worker-bootstrap.js.map +1 -1
  576. package/dist/tools/__tests__/memory-tools.test.js +29 -1
  577. package/dist/tools/__tests__/memory-tools.test.js.map +1 -1
  578. package/dist/tools/lsp/client.d.ts +11 -0
  579. package/dist/tools/lsp/client.d.ts.map +1 -1
  580. package/dist/tools/lsp/client.js +46 -0
  581. package/dist/tools/lsp/client.js.map +1 -1
  582. package/dist/tools/session-history-tools.d.ts +23 -0
  583. package/dist/tools/session-history-tools.d.ts.map +1 -0
  584. package/dist/tools/session-history-tools.js +41 -0
  585. package/dist/tools/session-history-tools.js.map +1 -0
  586. package/dist/tools/trace-tools.d.ts +9 -0
  587. package/dist/tools/trace-tools.d.ts.map +1 -1
  588. package/dist/tools/trace-tools.js +2 -1
  589. package/dist/tools/trace-tools.js.map +1 -1
  590. package/dist/utils/frontmatter.d.ts +5 -0
  591. package/dist/utils/frontmatter.d.ts.map +1 -1
  592. package/dist/utils/frontmatter.js +22 -0
  593. package/dist/utils/frontmatter.js.map +1 -1
  594. package/dist/utils/skill-pipeline.d.ts +9 -0
  595. package/dist/utils/skill-pipeline.d.ts.map +1 -0
  596. package/dist/utils/skill-pipeline.js +97 -0
  597. package/dist/utils/skill-pipeline.js.map +1 -0
  598. package/docs/AGENTS.md +1 -1
  599. package/docs/ANALYTICS-SYSTEM.md +23 -132
  600. package/docs/CLAUDE.md +40 -139
  601. package/docs/MIGRATION.md +4 -4
  602. package/docs/OPENCLAW-ROUTING.md +102 -0
  603. package/docs/PERFORMANCE-MONITORING.md +30 -55
  604. package/docs/REFERENCE.md +62 -35
  605. package/docs/TIERED_AGENTS_V2.md +3 -2
  606. package/docs/design/SKILL_AUDIT_1445.md +75 -0
  607. package/docs/ko/MIGRATION.md +2 -2
  608. package/docs/ko/REFERENCE.md +14 -22
  609. package/docs/partials/agent-tiers.md +11 -15
  610. package/docs/partials/features.md +2 -2
  611. package/docs/partials/mode-selection-guide.md +2 -2
  612. package/docs/shared/agent-tiers.md +11 -15
  613. package/docs/shared/features.md +2 -2
  614. package/docs/shared/mode-selection-guide.md +2 -2
  615. package/package.json +4 -1
  616. package/scripts/code-simplifier.mjs +1 -1
  617. package/scripts/context-guard-stop.mjs +26 -10
  618. package/scripts/keyword-detector.mjs +99 -39
  619. package/scripts/persistent-mode.cjs +295 -34
  620. package/scripts/persistent-mode.mjs +79 -21
  621. package/scripts/plugin-setup.mjs +10 -1
  622. package/scripts/post-tool-verifier.mjs +57 -3
  623. package/scripts/pre-tool-enforcer.mjs +207 -2
  624. package/scripts/run-provider-advisor.js +30 -3
  625. package/scripts/session-start.mjs +3 -3
  626. package/scripts/setup-claude-md.sh +159 -0
  627. package/scripts/setup-progress.sh +123 -0
  628. package/scripts/sync-metadata.ts +11 -1
  629. package/skills/AGENTS.md +13 -17
  630. package/skills/ai-slop-cleaner/SKILL.md +130 -0
  631. package/skills/analyze/SKILL.md +28 -73
  632. package/skills/ask/SKILL.md +51 -0
  633. package/skills/bdd-generator/SKILL.md +60 -0
  634. package/skills/ccg/SKILL.md +6 -6
  635. package/skills/deep-interview/SKILL.md +4 -0
  636. package/skills/e2e/SKILL.md +55 -0
  637. package/skills/electron-driver/SKILL.md +51 -0
  638. package/skills/electron-driver/scripts/driver-template.js +46 -0
  639. package/skills/multi-model-research/SKILL.md +51 -0
  640. package/skills/omc-doctor/SKILL.md +2 -2
  641. package/skills/omc-setup/SKILL.md +75 -1206
  642. package/skills/omc-setup/phases/01-install-claude-md.md +76 -0
  643. package/skills/omc-setup/phases/02-configure.md +211 -0
  644. package/skills/omc-setup/phases/03-integrations.md +192 -0
  645. package/skills/omc-setup/phases/04-welcome.md +192 -0
  646. package/skills/omc-teams/SKILL.md +35 -2
  647. package/skills/plan/SKILL.md +3 -0
  648. package/skills/planning-with-files/SKILL.md +49 -0
  649. package/skills/planning-with-files/examples.md +17 -0
  650. package/skills/planning-with-files/reference.md +21 -0
  651. package/skills/planning-with-files/scripts/check-complete.ps1 +28 -0
  652. package/skills/planning-with-files/scripts/check-complete.sh +31 -0
  653. package/skills/planning-with-files/scripts/init-session.ps1 +31 -0
  654. package/skills/planning-with-files/scripts/init-session.sh +36 -0
  655. package/skills/planning-with-files/scripts/session-catchup.py +66 -0
  656. package/skills/planning-with-files/templates/findings.md +24 -0
  657. package/skills/planning-with-files/templates/progress.md +38 -0
  658. package/skills/planning-with-files/templates/task_plan.md +53 -0
  659. package/skills/ralph/SKILL.md +16 -10
  660. package/skills/release/SKILL.md +4 -0
  661. package/skills/setup/SKILL.md +40 -0
  662. package/skills/start-dev/SKILL.md +45 -0
  663. package/skills/tdd-generator/SKILL.md +51 -0
  664. package/skills/team/SKILL.md +6 -6
  665. package/skills/test-coverage/SKILL.md +40 -0
  666. package/skills/test-gen/SKILL.md +70 -0
  667. package/templates/hooks/code-simplifier.mjs +1 -1
  668. package/templates/hooks/keyword-detector.mjs +100 -32
  669. package/templates/hooks/persistent-mode.mjs +43 -4
  670. package/templates/hooks/pre-tool-use.mjs +115 -1
  671. package/templates/hooks/session-start.mjs +1 -1
  672. package/agents/build-fixer.md +0 -90
  673. package/agents/deep-executor.md +0 -112
  674. package/agents/harsh-critic.md +0 -254
  675. package/agents/quality-reviewer.md +0 -151
  676. package/skills/ask-codex/SKILL.md +0 -47
  677. package/skills/ask-gemini/SKILL.md +0 -47
  678. package/skills/build-fix/SKILL.md +0 -123
  679. package/skills/code-review/SKILL.md +0 -573
  680. package/skills/configure-openclaw/SKILL.md +0 -383
  681. package/skills/learn-about-omc/SKILL.md +0 -37
  682. package/skills/note/SKILL.md +0 -62
  683. package/skills/omc-help/SKILL.md +0 -192
  684. package/skills/ralph-init/SKILL.md +0 -40
  685. package/skills/security-review/SKILL.md +0 -282
  686. package/skills/tdd/SKILL.md +0 -104
  687. package/skills/test-gen/skill.md +0 -531
  688. package/skills/trace/SKILL.md +0 -33
@@ -8,7 +8,6 @@ This is the single source of truth for all agent tier information. All skill fil
8
8
  |--------|-------------|-----------------|-------------|
9
9
  | **Analysis** | architect-low | architect-medium | architect |
10
10
  | **Execution** | executor-low | executor | executor-high |
11
- | **Deep Work** | - | - | deep-executor |
12
11
  | **Search** | explore | - | explore-high |
13
12
  | **Research** | - | document-specialist | - |
14
13
  | **Frontend** | designer-low | designer | designer-high |
@@ -19,8 +18,7 @@ This is the single source of truth for all agent tier information. All skill fil
19
18
  | **Pre-Planning** | - | - | analyst |
20
19
  | **Testing** | - | qa-tester | - |
21
20
  | **Security** | security-reviewer-low | - | security-reviewer |
22
- | **Build** | - | build-fixer | - |
23
- | **TDD** | tdd-guide-low | tdd-guide | - |
21
+ | **TDD** | test-engineer (model=haiku) | test-engineer | - |
24
22
  | **Code Review** | - | - | code-reviewer |
25
23
  | **Data Science** | - | scientist | scientist-high |
26
24
 
@@ -55,10 +53,10 @@ This is the single source of truth for all agent tier information. All skill fil
55
53
  | Interactive CLI testing | qa-tester | MEDIUM |
56
54
  | Security review | security-reviewer | HIGH |
57
55
  | Quick security scan | security-reviewer-low | LOW |
58
- | Fix build errors | build-fixer | MEDIUM |
59
- | Simple build fix | build-fixer (model=haiku) | LOW |
60
- | TDD workflow | tdd-guide | MEDIUM |
61
- | Quick test suggestions | tdd-guide-low | LOW |
56
+ | Fix build errors | debugger | MEDIUM |
57
+ | Simple build fix | debugger (model=haiku) | LOW |
58
+ | TDD workflow | test-engineer | MEDIUM |
59
+ | Quick test suggestions | test-engineer (model=haiku) | LOW |
62
60
  | Code review | code-reviewer | HIGH |
63
61
  | Quick code check | code-reviewer (model=haiku) | LOW |
64
62
  | Data analysis/stats | scientist | MEDIUM |
@@ -68,11 +66,11 @@ This is the single source of truth for all agent tier information. All skill fil
68
66
  | Get file/workspace symbol outline | explore | LOW |
69
67
  | Structural code pattern search | explore | LOW |
70
68
  | Structural code transformation | executor-high | HIGH |
71
- | Project-wide type checking | build-fixer | MEDIUM |
69
+ | Project-wide type checking | debugger | MEDIUM |
72
70
  | Check single file for errors | executor-low | LOW |
73
71
  | Data analysis / computation | scientist | MEDIUM |
74
- | Complex autonomous work | deep-executor | HIGH |
75
- | Deep goal-oriented execution | deep-executor | HIGH |
72
+ | Complex autonomous work | executor-high | HIGH |
73
+ | Deep goal-oriented execution | executor-high | HIGH |
76
74
 
77
75
  ## Usage
78
76
 
@@ -123,10 +121,8 @@ For token savings, prefer lower tiers when the task allows:
123
121
  | `executor-low` | yes | - | - | - | - | - | - |
124
122
  | `executor` | yes | yes | - | - | - | - | - |
125
123
  | `executor-high` | yes | yes | - | - | yes | yes | - |
126
- | `deep-executor` | yes | yes | - | - | yes | yes | - |
127
- | `build-fixer` | yes | yes | - | - | - | - | - |
128
- | `tdd-guide` | yes | - | - | - | - | - | - |
129
- | `tdd-guide-low` | yes | - | - | - | - | - | - |
124
+ | `debugger` | yes | yes | - | - | - | - | - |
125
+ | `test-engineer` | yes | - | - | - | - | - | - |
130
126
  | `code-reviewer` | yes | - | - | - | yes | - | - |
131
127
  | `qa-tester` | yes | - | - | - | - | - | - |
132
128
  | `scientist` | - | - | - | - | - | - | yes |
@@ -154,7 +150,7 @@ For complex rename or refactoring tasks requiring implementation, delegate to `e
154
150
  - **Need to find all usages of a symbol?** Use `lsp_find_references` via `explore-high` (only agent with it)
155
151
  - **Need structural code patterns?** (e.g., "find all functions matching X shape") Use `ast_grep_search` via `explore` family, `architect`/`architect-medium`, or `code-reviewer`
156
152
  - **Need to transform code structurally?** Use `ast_grep_replace` via `executor-high` (only agent with it)
157
- - **Need project-wide type checking?** Use `lsp_diagnostics_directory` via `architect`/`architect-medium`, `executor`/`executor-high`, or `build-fixer`
153
+ - **Need project-wide type checking?** Use `lsp_diagnostics_directory` via `architect`/`architect-medium`, `executor`/`executor-high`, or `debugger`
158
154
  - **Need single-file error checking?** Use `lsp_diagnostics` via many agents (see matrix)
159
155
  - **Need data analysis / computation?** Use `python_repl` via `scientist` or `scientist-high`
160
156
  - **Need quick type info or definition lookup?** Use `lsp_hover`/`lsp_goto_definition` directly (orchestrator-direct tools)
@@ -103,8 +103,8 @@ Sequential agent chaining with data passing between stages.
103
103
  | Preset | Stages |
104
104
  |--------|--------|
105
105
  | `review` | explore -> architect -> critic -> executor |
106
- | `implement` | planner -> executor -> tdd-guide |
107
- | `debug` | explore -> architect -> build-fixer |
106
+ | `implement` | planner -> executor -> test-engineer |
107
+ | `debug` | explore -> architect -> debugger |
108
108
  | `research` | parallel(document-specialist, explore) -> architect -> writer |
109
109
  | `refactor` | explore -> architect-medium -> executor-high -> qa-tester |
110
110
  | `security` | explore -> security-reviewer -> executor -> security-reviewer-low |
@@ -29,7 +29,7 @@ Uncertain about requirements or have a vague idea?
29
29
 
30
30
  Want autonomous execution?
31
31
  ├── YES: Is task parallelizable into 3+ independent components?
32
- │ ├── YES: team N:deep-executor (parallel autonomous with file ownership)
32
+ │ ├── YES: team N:executor (parallel autonomous with file ownership)
33
33
  │ └── NO: autopilot (sequential with ralph phases)
34
34
  └── NO: Want parallel execution with manual oversight?
35
35
  ├── YES: Do you want cost optimization?
@@ -48,7 +48,7 @@ Have many similar independent tasks (e.g., "fix 47 errors")?
48
48
  | User Request | Best Mode | Why |
49
49
  |--------------|-----------|-----|
50
50
  | "Build me a REST API" | autopilot | Single coherent deliverable |
51
- | "Build frontend, backend, and database" | team 3:deep-executor | Clear component boundaries |
51
+ | "Build frontend, backend, and database" | team 3:executor | Clear component boundaries |
52
52
  | "Fix all 47 TypeScript errors" | team 5:executor | Many independent similar tasks |
53
53
  | "Refactor auth module thoroughly" | ralph | Need persistence + verification |
54
54
  | "Quick parallel execution" | ultrawork | Manual oversight preferred |
@@ -8,7 +8,6 @@ This is the single source of truth for all agent tier information. All skill fil
8
8
  |--------|-------------|-----------------|-------------|
9
9
  | **Analysis** | architect-low | architect-medium | architect |
10
10
  | **Execution** | executor-low | executor | executor-high |
11
- | **Deep Work** | - | - | deep-executor |
12
11
  | **Search** | explore | - | explore-high |
13
12
  | **Research** | - | document-specialist | - |
14
13
  | **Frontend** | designer-low | designer | designer-high |
@@ -19,8 +18,7 @@ This is the single source of truth for all agent tier information. All skill fil
19
18
  | **Pre-Planning** | - | - | analyst |
20
19
  | **Testing** | - | qa-tester | - |
21
20
  | **Security** | security-reviewer-low | - | security-reviewer |
22
- | **Build** | - | build-fixer | - |
23
- | **TDD** | tdd-guide-low | tdd-guide | - |
21
+ | **TDD** | test-engineer (model=haiku) | test-engineer | - |
24
22
  | **Code Review** | - | - | code-reviewer |
25
23
  | **Data Science** | - | scientist | scientist-high |
26
24
 
@@ -55,10 +53,10 @@ This is the single source of truth for all agent tier information. All skill fil
55
53
  | Interactive CLI testing | qa-tester | MEDIUM |
56
54
  | Security review | security-reviewer | HIGH |
57
55
  | Quick security scan | security-reviewer-low | LOW |
58
- | Fix build errors | build-fixer | MEDIUM |
59
- | Simple build fix | build-fixer (model=haiku) | LOW |
60
- | TDD workflow | tdd-guide | MEDIUM |
61
- | Quick test suggestions | tdd-guide-low | LOW |
56
+ | Fix build errors | debugger | MEDIUM |
57
+ | Simple build fix | debugger (model=haiku) | LOW |
58
+ | TDD workflow | test-engineer | MEDIUM |
59
+ | Quick test suggestions | test-engineer (model=haiku) | LOW |
62
60
  | Code review | code-reviewer | HIGH |
63
61
  | Quick code check | code-reviewer (model=haiku) | LOW |
64
62
  | Data analysis/stats | scientist | MEDIUM |
@@ -68,11 +66,11 @@ This is the single source of truth for all agent tier information. All skill fil
68
66
  | Get file/workspace symbol outline | explore | LOW |
69
67
  | Structural code pattern search | explore | LOW |
70
68
  | Structural code transformation | executor-high | HIGH |
71
- | Project-wide type checking | build-fixer | MEDIUM |
69
+ | Project-wide type checking | debugger | MEDIUM |
72
70
  | Check single file for errors | executor-low | LOW |
73
71
  | Data analysis / computation | scientist | MEDIUM |
74
- | Complex autonomous work | deep-executor | HIGH |
75
- | Deep goal-oriented execution | deep-executor | HIGH |
72
+ | Complex autonomous work | executor-high | HIGH |
73
+ | Deep goal-oriented execution | executor-high | HIGH |
76
74
 
77
75
  ## Usage
78
76
 
@@ -123,10 +121,8 @@ For token savings, prefer lower tiers when the task allows:
123
121
  | `executor-low` | yes | - | - | - | - | - | - |
124
122
  | `executor` | yes | yes | - | - | - | - | - |
125
123
  | `executor-high` | yes | yes | - | - | yes | yes | - |
126
- | `deep-executor` | yes | yes | - | - | yes | yes | - |
127
- | `build-fixer` | yes | yes | - | - | - | - | - |
128
- | `tdd-guide` | yes | - | - | - | - | - | - |
129
- | `tdd-guide-low` | yes | - | - | - | - | - | - |
124
+ | `debugger` | yes | yes | - | - | - | - | - |
125
+ | `test-engineer` | yes | - | - | - | - | - | - |
130
126
  | `code-reviewer` | yes | - | - | - | yes | - | - |
131
127
  | `qa-tester` | yes | - | - | - | - | - | - |
132
128
  | `scientist` | - | - | - | - | - | - | yes |
@@ -154,7 +150,7 @@ For complex rename or refactoring tasks requiring implementation, delegate to `e
154
150
  - **Need to find all usages of a symbol?** Use `lsp_find_references` via `explore-high` (only agent with it)
155
151
  - **Need structural code patterns?** (e.g., "find all functions matching X shape") Use `ast_grep_search` via `explore` family, `architect`/`architect-medium`, or `code-reviewer`
156
152
  - **Need to transform code structurally?** Use `ast_grep_replace` via `executor-high` (only agent with it)
157
- - **Need project-wide type checking?** Use `lsp_diagnostics_directory` via `architect`/`architect-medium`, `executor`/`executor-high`, or `build-fixer`
153
+ - **Need project-wide type checking?** Use `lsp_diagnostics_directory` via `architect`/`architect-medium`, `executor`/`executor-high`, or `debugger`
158
154
  - **Need single-file error checking?** Use `lsp_diagnostics` via many agents (see matrix)
159
155
  - **Need data analysis / computation?** Use `python_repl` via `scientist` or `scientist-high`
160
156
  - **Need quick type info or definition lookup?** Use `lsp_hover`/`lsp_goto_definition` directly (orchestrator-direct tools)
@@ -103,8 +103,8 @@ Sequential agent chaining with data passing between stages.
103
103
  | Preset | Stages |
104
104
  |--------|--------|
105
105
  | `review` | explore -> architect -> critic -> executor |
106
- | `implement` | planner -> executor -> tdd-guide |
107
- | `debug` | explore -> architect -> build-fixer |
106
+ | `implement` | planner -> executor -> test-engineer |
107
+ | `debug` | explore -> architect -> debugger |
108
108
  | `research` | parallel(document-specialist, explore) -> architect -> writer |
109
109
  | `refactor` | explore -> architect-medium -> executor-high -> qa-tester |
110
110
  | `security` | explore -> security-reviewer -> executor -> security-reviewer-low |
@@ -29,7 +29,7 @@ Uncertain about requirements or have a vague idea?
29
29
 
30
30
  Want autonomous execution?
31
31
  ├── YES: Is task parallelizable into 3+ independent components?
32
- │ ├── YES: team N:deep-executor (parallel autonomous with file ownership)
32
+ │ ├── YES: team N:executor (parallel autonomous with file ownership)
33
33
  │ └── NO: autopilot (sequential with ralph phases)
34
34
  └── NO: Want parallel execution with manual oversight?
35
35
  ├── YES: Do you want cost optimization?
@@ -48,7 +48,7 @@ Have many similar independent tasks (e.g., "fix 47 errors")?
48
48
  | User Request | Best Mode | Why |
49
49
  |--------------|-----------|-----|
50
50
  | "Build me a REST API" | autopilot | Single coherent deliverable |
51
- | "Build frontend, backend, and database" | team 3:deep-executor | Clear component boundaries |
51
+ | "Build frontend, backend, and database" | team 3:executor | Clear component boundaries |
52
52
  | "Fix all 47 TypeScript errors" | team 5:executor | Many independent similar tasks |
53
53
  | "Refactor auth module thoroughly" | ralph | Need persistence + verification |
54
54
  | "Quick parallel execution" | ultrawork | Manual oversight preferred |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudecode-omc",
3
- "version": "4.8.2",
3
+ "version": "4.8.4",
4
4
  "description": "Multi-agent orchestration system for Claude Code - Inspired by oh-my-opencode",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -52,6 +52,9 @@
52
52
  "dev": "tsc --watch",
53
53
  "start": "node dist/index.js",
54
54
  "test": "vitest",
55
+ "bench:prompts": "tsx benchmarks/run-all.ts",
56
+ "bench:prompts:save": "tsx benchmarks/run-all.ts --save-baseline",
57
+ "bench:prompts:compare": "tsx benchmarks/run-all.ts --compare",
55
58
  "test:ui": "vitest --ui",
56
59
  "test:run": "vitest run",
57
60
  "test:coverage": "vitest run --coverage",
@@ -129,7 +129,7 @@ async function main() {
129
129
  }
130
130
 
131
131
  process.stdout.write(
132
- JSON.stringify({ decision: 'block', reason: buildMessage(files) }) + '\n',
132
+ JSON.stringify({ continue: false, decision: 'block', reason: buildMessage(files) }) + '\n',
133
133
  );
134
134
  } catch (error) {
135
135
  try {
@@ -26,6 +26,7 @@ import { execSync } from 'node:child_process';
26
26
  import { readStdin } from './lib/stdin.mjs';
27
27
 
28
28
  const THRESHOLD = parseInt(process.env.OMC_CONTEXT_GUARD_THRESHOLD || '75', 10);
29
+ const CRITICAL_THRESHOLD = 95;
29
30
  const MAX_BLOCKS = 2;
30
31
 
31
32
  /**
@@ -33,19 +34,22 @@ const MAX_BLOCKS = 2;
33
34
  * Mirrors the logic in persistent-mode.cjs to stay consistent.
34
35
  */
35
36
  function isContextLimitStop(data) {
36
- const reason = (data.stop_reason || data.stopReason || '').toLowerCase();
37
+ const reasons = [
38
+ data.stop_reason,
39
+ data.stopReason,
40
+ data.end_turn_reason,
41
+ data.endTurnReason,
42
+ data.reason,
43
+ ]
44
+ .filter((value) => typeof value === 'string' && value.trim().length > 0)
45
+ .map((value) => value.toLowerCase().replace(/[\s-]+/g, '_'));
37
46
  const contextPatterns = [
38
47
  'context_limit', 'context_window', 'context_exceeded',
39
48
  'context_full', 'max_context', 'token_limit',
40
49
  'max_tokens', 'conversation_too_long', 'input_too_long',
41
50
  ];
42
51
 
43
- if (contextPatterns.some(p => reason.includes(p))) return true;
44
-
45
- const endTurnReason = (data.end_turn_reason || data.endTurnReason || '').toLowerCase();
46
- if (endTurnReason && contextPatterns.some(p => endTurnReason.includes(p))) return true;
47
-
48
- return false;
52
+ return reasons.some((reason) => contextPatterns.some(p => reason.includes(p)));
49
53
  }
50
54
 
51
55
  /**
@@ -192,6 +196,14 @@ function incrementBlockCount(sessionId) {
192
196
  } catch { /* ignore */ }
193
197
  }
194
198
 
199
+ function buildStopRecoveryAdvice(contextPercent, blockCount) {
200
+ const severity = contextPercent >= 90 ? 'CRITICAL' : 'HIGH';
201
+ return `[OMC ${severity}] Context at ${contextPercent}% (threshold: ${THRESHOLD}%). ` +
202
+ `Run /compact immediately before continuing. If /compact cannot complete, ` +
203
+ `stop spawning new agents and recover in a fresh session using existing checkpoints ` +
204
+ `(.omc/state, .omc/notepad.md). (Block ${blockCount}/${MAX_BLOCKS})`;
205
+ }
206
+
195
207
  async function main() {
196
208
  try {
197
209
  const input = await readStdin();
@@ -214,6 +226,11 @@ async function main() {
214
226
  const transcriptPath = resolveTranscriptPath(rawTranscriptPath, data.cwd);
215
227
  const pct = estimateContextPercent(transcriptPath);
216
228
 
229
+ if (pct >= CRITICAL_THRESHOLD) {
230
+ console.log(JSON.stringify({ continue: true, suppressOutput: true }));
231
+ return;
232
+ }
233
+
217
234
  if (pct >= THRESHOLD) {
218
235
  // Check retry guard
219
236
  const blockCount = getBlockCount(sessionId);
@@ -226,10 +243,9 @@ async function main() {
226
243
  incrementBlockCount(sessionId);
227
244
 
228
245
  console.log(JSON.stringify({
246
+ continue: false,
229
247
  decision: 'block',
230
- reason: `[OMC] Context at ${pct}% (threshold: ${THRESHOLD}%). ` +
231
- `Quality degrades at high context. Run /compact or start a fresh session. ` +
232
- `(Block ${blockCount + 1}/${MAX_BLOCKS})`
248
+ reason: buildStopRecoveryAdvice(pct, blockCount + 1)
233
249
  }));
234
250
  return;
235
251
  }
@@ -9,17 +9,18 @@
9
9
  * 1. cancelomc/stopomc: Stop active modes
10
10
  * 2. ralph: Persistence mode until task completion
11
11
  * 3. autopilot: Full autonomous execution
12
- * 4. team: Coordinated team execution (replaces ultrapilot/swarm)
12
+ * 4. team: Explicit-only via /team (not auto-triggered)
13
13
  * 5. ultrawork/ulw: Maximum parallel execution
14
- * 6. pipeline: Sequential agent chaining
15
- * 7. ccg: Claude-Codex-Gemini tri-model orchestration
16
- * 9. ralplan: Iterative planning with consensus
17
- * 10. plan: Planning interview mode
18
- * 11. tdd: Test-driven development
19
- * 12. research: Research orchestration
20
- * 13. ultrathink/think: Extended reasoning
21
- * 14. deepsearch: Codebase search (restricted patterns)
22
- * 15. analyze: Analysis mode (restricted patterns)
14
+ * 5. ccg: Claude-Codex-Gemini tri-model orchestration
15
+ * 6. ralplan: Iterative planning with consensus
16
+ * 7. deep interview: Socratic interview workflow
17
+ * 8. ai-slop-cleaner: Cleanup/deslop anti-slop workflow
18
+ * 9. tdd: Test-driven development
19
+ * 10. code review: Comprehensive review mode
20
+ * 11. security review: Security-focused review mode
21
+ * 12. ultrathink: Extended reasoning
22
+ * 13. deepsearch: Codebase search (restricted patterns)
23
+ * 14. analyze: Analysis mode (restricted patterns)
23
24
  */
24
25
 
25
26
  import { writeFileSync, readFileSync, mkdirSync, existsSync, unlinkSync } from 'fs';
@@ -44,6 +45,40 @@ Use your extended thinking capabilities to provide the most thorough and well-re
44
45
  ---
45
46
  `;
46
47
 
48
+ const ANALYZE_MESSAGE = `<analyze-mode>
49
+ ANALYSIS MODE. Gather context before diving deep:
50
+ - Search relevant code paths first
51
+ - Compare working vs broken behavior
52
+ - Synthesize findings before proposing changes
53
+ </analyze-mode>
54
+
55
+ ---
56
+ `;
57
+
58
+ const TDD_MESSAGE = `<tdd-mode>
59
+ [TDD MODE ACTIVATED]
60
+ Write or update tests first when practical, confirm they fail for the right reason, then implement the minimal fix and re-run verification.
61
+ </tdd-mode>
62
+
63
+ ---
64
+ `;
65
+
66
+ const CODE_REVIEW_MESSAGE = `<code-review-mode>
67
+ [CODE REVIEW MODE ACTIVATED]
68
+ Perform a comprehensive code review of the relevant changes or target area. Focus on correctness, maintainability, edge cases, regressions, and test adequacy before recommending changes.
69
+ </code-review-mode>
70
+
71
+ ---
72
+ `;
73
+
74
+ const SECURITY_REVIEW_MESSAGE = `<security-review-mode>
75
+ [SECURITY REVIEW MODE ACTIVATED]
76
+ Perform a focused security review of the relevant changes or target area. Check trust boundaries, auth/authz, data exposure, input validation, command/file access, secrets handling, and escalation risks before recommending changes.
77
+ </security-review-mode>
78
+
79
+ ---
80
+ `;
81
+
47
82
  // Extract prompt from various JSON structures
48
83
  function extractPrompt(input) {
49
84
  try {
@@ -64,6 +99,15 @@ function extractPrompt(input) {
64
99
  }
65
100
 
66
101
  // Sanitize text to prevent false positives from code blocks, XML tags, URLs, and file paths
102
+ const ANTI_SLOP_EXPLICIT_PATTERN = /\b(ai[\s-]?slop|anti[\s-]?slop|deslop|de[\s-]?slop)\b/i;
103
+ const ANTI_SLOP_ACTION_PATTERN = /\b(clean(?:\s*up)?|cleanup|refactor|simplify|dedupe|de-duplicate|prune)\b/i;
104
+ const ANTI_SLOP_SMELL_PATTERN = /\b(slop|duplicate(?:d|s)?|duplication|dead\s+code|unused\s+code|over[\s-]?abstract(?:ion|ed)?|wrapper\s+layers?|boundary\s+violations?|needless\s+abstractions?|unnecessary\s+abstractions?|ai[\s-]?generated|generated\s+code|tech\s+debt)\b/i;
105
+
106
+ function isAntiSlopCleanupRequest(text) {
107
+ return ANTI_SLOP_EXPLICIT_PATTERN.test(text) ||
108
+ (ANTI_SLOP_ACTION_PATTERN.test(text) && ANTI_SLOP_SMELL_PATTERN.test(text));
109
+ }
110
+
67
111
  function sanitizeForKeywordDetection(text) {
68
112
  return text
69
113
  // 1. Strip XML-style tag blocks: <tag-name ...>...</tag-name> (multi-line, greedy on tag name)
@@ -88,6 +132,7 @@ function activateState(directory, prompt, stateName, sessionId) {
88
132
  started_at: new Date().toISOString(),
89
133
  original_prompt: prompt,
90
134
  session_id: sessionId || undefined,
135
+ project_path: directory,
91
136
  reinforcement_count: 0,
92
137
  last_checked_at: new Date().toISOString()
93
138
  };
@@ -261,8 +306,8 @@ function resolveConflicts(matches) {
261
306
  // Team keyword detection removed — team is now explicit-only via /team skill.
262
307
 
263
308
  // Sort by priority order
264
- const priorityOrder = ['cancel','ralph','autopilot','team','ultrawork',
265
- 'pipeline','ccg','ralplan','plan','tdd','research','ultrathink','deepsearch','analyze'];
309
+ const priorityOrder = ['cancel','ralph','autopilot','ultrawork',
310
+ 'ccg','ralplan','deep-interview','ai-slop-cleaner','tdd','code-review','security-review','ultrathink','deepsearch','analyze'];
266
311
  resolved.sort((a, b) => priorityOrder.indexOf(a.name) - priorityOrder.indexOf(b.name));
267
312
 
268
313
  return resolved;
@@ -353,10 +398,6 @@ async function main() {
353
398
  // Team keyword detection removed — team mode is now explicit-only via /team skill.
354
399
  // This prevents infinite spawning when Claude workers receive prompts containing "team".
355
400
 
356
- // Pipeline keywords
357
- if (/\b(pipeline)\b/i.test(cleanPrompt) || /\bchain\s+agents\b/i.test(cleanPrompt)) {
358
- matches.push({ name: 'pipeline', args: '' });
359
- }
360
401
 
361
402
  // CCG keywords (Claude-Codex-Gemini tri-model orchestration)
362
403
  if (/\b(ccg|claude-codex-gemini)\b/i.test(cleanPrompt)) {
@@ -368,6 +409,16 @@ async function main() {
368
409
  matches.push({ name: 'ralplan', args: '' });
369
410
  }
370
411
 
412
+ // Deep interview keywords
413
+ if (/\b(deep[\s-]interview|ouroboros)\b/i.test(cleanPrompt)) {
414
+ matches.push({ name: 'deep-interview', args: '' });
415
+ }
416
+
417
+ // AI slop cleanup keywords
418
+ if (isAntiSlopCleanupRequest(cleanPrompt)) {
419
+ matches.push({ name: 'ai-slop-cleaner', args: '' });
420
+ }
421
+
371
422
  // TDD keywords
372
423
  if (/\b(tdd)\b/i.test(cleanPrompt) ||
373
424
  /\btest\s+first\b/i.test(cleanPrompt) ||
@@ -375,9 +426,14 @@ async function main() {
375
426
  matches.push({ name: 'tdd', args: '' });
376
427
  }
377
428
 
378
- // Sciomc keywords
379
- if (/\banalyze\s+data\b/i.test(cleanPrompt)) {
380
- matches.push({ name: 'sciomc', args: '' });
429
+ // Code review keywords
430
+ if (/\b(code\s+review|review\s+code)\b/i.test(cleanPrompt)) {
431
+ matches.push({ name: 'code-review', args: '' });
432
+ }
433
+
434
+ // Security review keywords
435
+ if (/\b(security\s+review|review\s+security)\b/i.test(cleanPrompt)) {
436
+ matches.push({ name: 'security-review', args: '' });
381
437
  }
382
438
 
383
439
  // Ultrathink keywords
@@ -393,9 +449,7 @@ async function main() {
393
449
  }
394
450
 
395
451
  // Analyze keywords
396
- if (/\b(deep\s*analyze)\b/i.test(cleanPrompt) ||
397
- /\binvestigate\s+(the|this|why)\b/i.test(cleanPrompt) ||
398
- /\bdebug\s+(the|this|why)\b/i.test(cleanPrompt)) {
452
+ if (/\b(deep[\s-]?analyze|deepanalyze)\b/i.test(cleanPrompt)) {
399
453
  matches.push({ name: 'analyze', args: '' });
400
454
  }
401
455
 
@@ -431,7 +485,7 @@ async function main() {
431
485
 
432
486
  // Handle cancel specially - clear states and emit
433
487
  if (resolved.length > 0 && resolved[0].name === 'cancel') {
434
- clearStateFiles(directory, ['ralph', 'autopilot', 'ultrawork', 'swarm', 'pipeline'], sessionId);
488
+ clearStateFiles(directory, ['ralph', 'autopilot', 'ultrawork', 'swarm'], sessionId);
435
489
  console.log(JSON.stringify(createHookOutput(createSkillInvocation('cancel', prompt))));
436
490
  return;
437
491
  }
@@ -456,27 +510,33 @@ async function main() {
456
510
  activateState(directory, prompt, 'ultrawork', sessionId);
457
511
  }
458
512
 
459
- // Handle ultrathink specially - prepend message instead of skill invocation
460
- const ultrathinkIndex = resolved.findIndex(m => m.name === 'ultrathink');
461
- if (ultrathinkIndex !== -1) {
462
- // Remove ultrathink from skill list
463
- resolved.splice(ultrathinkIndex, 1);
464
-
465
- // If ultrathink was the only match, emit message
466
- if (resolved.length === 0) {
467
- console.log(JSON.stringify(createHookOutput(ULTRATHINK_MESSAGE)));
468
- return;
513
+ const additionalContextParts = [];
514
+ for (const [keywordName, message] of [
515
+ ['ultrathink', ULTRATHINK_MESSAGE],
516
+ ['analyze', ANALYZE_MESSAGE],
517
+ ['tdd', TDD_MESSAGE],
518
+ ['code-review', CODE_REVIEW_MESSAGE],
519
+ ['security-review', SECURITY_REVIEW_MESSAGE],
520
+ ]) {
521
+ const index = resolved.findIndex(m => m.name === keywordName);
522
+ if (index !== -1) {
523
+ resolved.splice(index, 1);
524
+ additionalContextParts.push(message);
469
525
  }
526
+ }
470
527
 
471
- // Otherwise, prepend ultrathink message to skill invocation
472
- const skillMessage = createMultiSkillInvocation(resolved, prompt);
473
- console.log(JSON.stringify(createHookOutput(ULTRATHINK_MESSAGE + skillMessage)));
528
+ if (resolved.length === 0 && additionalContextParts.length > 0) {
529
+ console.log(JSON.stringify(createHookOutput(additionalContextParts.join(''))));
474
530
  return;
475
531
  }
476
532
 
477
- const skillMatches = resolved;
478
- if (skillMatches.length > 0) {
479
- console.log(JSON.stringify(createHookOutput(createMultiSkillInvocation(skillMatches, prompt))));
533
+ if (resolved.length > 0) {
534
+ additionalContextParts.push(createMultiSkillInvocation(resolved, prompt));
535
+ }
536
+
537
+ if (additionalContextParts.length > 0) {
538
+ console.log(JSON.stringify(createHookOutput(additionalContextParts.join(''))));
539
+ return;
480
540
  }
481
541
  } catch (error) {
482
542
  // On any error, allow continuation