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
@@ -0,0 +1,97 @@
1
+ import { parseFrontmatterList, stripOptionalQuotes } from './frontmatter.js';
2
+ function normalizeSkillReference(value) {
3
+ if (!value)
4
+ return undefined;
5
+ const trimmed = stripOptionalQuotes(value).trim();
6
+ if (!trimmed)
7
+ return undefined;
8
+ return trimmed
9
+ .replace(/^\/oh-my-claudecode:/i, '')
10
+ .replace(/^oh-my-claudecode:/i, '')
11
+ .replace(/^\//, '')
12
+ .trim()
13
+ .toLowerCase() || undefined;
14
+ }
15
+ function uniqueStrings(values) {
16
+ const seen = new Set();
17
+ const results = [];
18
+ for (const value of values) {
19
+ const normalized = value.trim();
20
+ if (!normalized)
21
+ continue;
22
+ const key = normalized.toLowerCase();
23
+ if (seen.has(key))
24
+ continue;
25
+ seen.add(key);
26
+ results.push(normalized);
27
+ }
28
+ return results;
29
+ }
30
+ export function parseSkillPipelineMetadata(frontmatter) {
31
+ const steps = uniqueStrings(parseFrontmatterList(frontmatter.pipeline)
32
+ .map((step) => normalizeSkillReference(step))
33
+ .filter((step) => Boolean(step)));
34
+ const nextSkill = normalizeSkillReference(frontmatter['next-skill']);
35
+ const nextSkillArgs = stripOptionalQuotes(frontmatter['next-skill-args'] ?? '').trim() || undefined;
36
+ const handoff = stripOptionalQuotes(frontmatter.handoff ?? '').trim() || undefined;
37
+ if (steps.length === 0 && !nextSkill && !nextSkillArgs && !handoff) {
38
+ return undefined;
39
+ }
40
+ return {
41
+ steps,
42
+ nextSkill,
43
+ nextSkillArgs,
44
+ handoff,
45
+ };
46
+ }
47
+ export function renderSkillPipelineGuidance(skillName, pipeline) {
48
+ if (!pipeline) {
49
+ return '';
50
+ }
51
+ const currentSkill = normalizeSkillReference(skillName) ?? skillName.trim().toLowerCase();
52
+ const steps = uniqueStrings([
53
+ ...pipeline.steps,
54
+ currentSkill,
55
+ ...(pipeline.nextSkill ? [pipeline.nextSkill] : []),
56
+ ]);
57
+ const nextInvocation = pipeline.nextSkill
58
+ ? [
59
+ `Skill("oh-my-claudecode:${pipeline.nextSkill}")`,
60
+ pipeline.nextSkillArgs ? `with arguments \`${pipeline.nextSkillArgs}\`` : undefined,
61
+ 'using the handoff context from this stage',
62
+ ].filter(Boolean).join(' ')
63
+ : undefined;
64
+ const lines = [
65
+ '## Skill Pipeline',
66
+ ];
67
+ if (steps.length > 0) {
68
+ lines.push(`Pipeline: \`${steps.join(' → ')}\``);
69
+ }
70
+ lines.push(`Current stage: \`${currentSkill}\``);
71
+ if (pipeline.nextSkill) {
72
+ lines.push(`Next skill: \`${pipeline.nextSkill}\``);
73
+ }
74
+ if (pipeline.nextSkillArgs) {
75
+ lines.push(`Next skill arguments: \`${pipeline.nextSkillArgs}\``);
76
+ }
77
+ if (pipeline.handoff) {
78
+ lines.push(`Handoff artifact: \`${pipeline.handoff}\``);
79
+ }
80
+ lines.push('');
81
+ if (pipeline.nextSkill) {
82
+ lines.push('When this stage completes:');
83
+ if (pipeline.handoff) {
84
+ lines.push(`1. Write or update the handoff artifact at \`${pipeline.handoff}\`.`);
85
+ }
86
+ else {
87
+ lines.push('1. Write a concise handoff note before moving to the next skill.');
88
+ }
89
+ lines.push('2. Carry forward the concrete output, decisions made, and remaining risks or assumptions.');
90
+ lines.push(`3. Invoke ${nextInvocation}.`);
91
+ }
92
+ else {
93
+ lines.push('This is the terminal stage in the declared skill pipeline. Do not hand off to another skill unless the user explicitly asks.');
94
+ }
95
+ return lines.join('\n');
96
+ }
97
+ //# sourceMappingURL=skill-pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-pipeline.js","sourceRoot":"","sources":["../../src/utils/skill-pipeline.ts"],"names":[],"mappings":"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"}
package/docs/AGENTS.md CHANGED
@@ -26,7 +26,7 @@ This directory contains documentation for end-users and developers:
26
26
  | `TIERED_AGENTS_V2.md` | Model routing and tiered agent design |
27
27
  | `DELEGATION-ENFORCER.md` | Delegation protocol documentation |
28
28
  | `SYNC-SYSTEM.md` | State synchronization system |
29
- | `ANALYTICS-SYSTEM.md` | Analytics collection documentation |
29
+ | `ANALYTICS-SYSTEM.md` | Historical note on the removed analytics subsystem and current monitoring replacements |
30
30
  | `LOCAL_PLUGIN_INSTALL.md` | Plugin installation guide |
31
31
 
32
32
  ## Subdirectories
@@ -1,147 +1,38 @@
1
- # OMC Analytics System
1
+ # Analytics System (Removed)
2
2
 
3
- ## Overview
3
+ ## Status
4
4
 
5
- Automatic token tracking and cost estimation for Claude API usage in oh-my-claudecode.
5
+ The legacy analytics subsystem referenced by issue #1533 no longer exists on current `dev`.
6
6
 
7
- ## Features
7
+ The original code paths (`src/analytics/session-manager.ts`, `src/analytics/query-engine.ts`, and the related `omc-analytics` / `omc cost` / `omc backfill` workflow) were removed in commit `8011af06` as part of the broader analytics cleanup.
8
8
 
9
- - **Automatic Token Tracking**: Zero manual recording - tracks every HUD render
10
- - **Cost Estimation**: Model-specific pricing with cache economics
11
- - **Session Management**: Track costs across multiple sessions
12
- - **Beautiful CLI**: Enhanced analytics visualization
13
- - **HUD Integration**: Real-time cost display in statusline
9
+ ## What Replaced It
14
10
 
15
- ## Architecture
11
+ Current builds still expose useful monitoring surfaces, but they are different from the removed analytics stack:
16
12
 
17
- ```
18
- StatuslineStdin TokenExtractor TokenTracker Analytics Summary
19
-
20
- HUD Display
21
-
22
- CLI Reports
23
- ```
24
-
25
- ## Auto-Tracking
26
-
27
- Token usage is automatically captured on every HUD render:
28
-
29
- 1. **TokenExtractor** parses StatuslineStdin for token data
30
- 2. **Delta Calculation** computes change from previous render
31
- 3. **Agent Correlation** associates tokens with running agents
32
- 4. **TokenTracker** records usage to JSONL log
33
- 5. **Summary Files** provide fast <10ms session loading
13
+ - **Agent Observatory** — real-time agent status in the HUD / API
14
+ - **Session Replay** `.omc/state/agent-replay-*.jsonl` event timelines
15
+ - **Session-end summaries** — `.omc/sessions/<sessionId>.json` written by the `session-end` hook
16
+ - **Session-end notifications/callbacks** — summary payloads sent through configured notification channels
34
17
 
35
- ## Output Token Estimation
18
+ ## What Is No Longer Available
36
19
 
37
- Since StatuslineStdin only provides input tokens, output tokens are estimated:
20
+ The following legacy surfaces should be treated as removed:
38
21
 
39
- - **Haiku**: 30% of input tokens
40
- - **Sonnet**: 40% of input tokens
41
- - **Opus**: 50% of input tokens
22
+ - `omc-analytics`
23
+ - `omc cost`, `omc sessions`, `omc export`, `omc backfill`
24
+ - the HUD `analytics` preset
25
+ - `src/analytics/*` implementation files
26
+ - the old metrics cleanup pipeline described in issue #1533
42
27
 
43
- All costs displayed with "~" prefix to indicate estimation.
28
+ ## If You Need Session Metrics Today
44
29
 
45
- ## HUD Integration
46
-
47
- Real-time analytics in statusline:
48
-
49
- - Session cost and tokens
50
- - Cost per hour
51
- - Cache efficiency
52
- - Budget warnings (>$2 warning, >$5 critical)
53
-
54
- Use `analytics` preset for detailed display.
55
-
56
- ## CLI Usage
30
+ Use the currently supported surfaces instead:
57
31
 
58
32
  ```bash
59
- # View everything (default dashboard)
60
- omc
61
-
62
- # Cost reports
63
- omc cost daily
64
- omc cost weekly
65
- omc cost monthly
66
-
67
- # Session history
68
- omc sessions
69
-
70
- # Agent observability is shown in HUD/replay logs
71
- # (legacy standalone agent-breakdown command was removed)
72
-
73
- # Export data
74
- omc export cost csv ./costs.csv
33
+ omc hud
34
+ tail -20 .omc/state/agent-replay-*.jsonl
35
+ ls .omc/sessions/*.json
75
36
  ```
76
37
 
77
- ## Performance
78
-
79
- - **HUD Render**: <100ms total (including analytics)
80
- - **Token Extraction**: <5ms per render
81
- - **Summary Loading**: <10ms (mtime-cached)
82
- - **CLI Startup**: <500ms
83
-
84
- ## Files
85
-
86
- - `src/analytics/token-extractor.ts` - Token extraction
87
- - `src/analytics/output-estimator.ts` - Output estimation & session ID
88
- - `src/analytics/analytics-summary.ts` - Fast summary loading
89
- - `src/hud/index.ts` - Auto-recording integration
90
- - `.omc/state/token-tracking.jsonl` - Append-only token log
91
- - `.omc/state/analytics-summary-{sessionId}.json` - Cached summaries
92
-
93
- ## Offline Transcript Analysis
94
-
95
- ### Overview
96
-
97
- The analytics system can analyze historical Claude Code session transcripts from `~/.claude/projects/` to backfill token usage data.
98
-
99
- ### The `omc backfill` Command
100
-
101
- Extracts actual token usage from Claude Code transcripts and adds them to the analytics database.
102
-
103
- ```bash
104
- omc backfill [options]
105
- ```
106
-
107
- #### Options
108
-
109
- | Option | Description |
110
- |--------|-------------|
111
- | `--project <glob>` | Filter to specific project paths |
112
- | `--from <date>` | Only process transcripts modified after date (ISO format) |
113
- | `--to <date>` | Only process transcripts modified before date |
114
- | `--dry-run` | Preview without writing to database |
115
- | `--reset` | Clear deduplication index and re-process all |
116
- | `--verbose` | Show detailed per-file progress |
117
- | `--json` | Output as JSON |
118
-
119
- #### Examples
120
-
121
- ```bash
122
- # Preview all available transcripts
123
- omc backfill --dry-run
124
-
125
- # Backfill specific project
126
- omc backfill --project "*VibeQuant*"
127
-
128
- # Backfill recent transcripts only
129
- omc backfill --from "2026-01-01"
130
-
131
- # Re-process everything
132
- omc backfill --reset
133
- ```
134
-
135
- ### Auto-Backfill
136
-
137
- The `omc` CLI automatically runs a silent backfill on startup if more than 24 hours have passed since the last backfill. This ensures your analytics stay up-to-date without manual intervention.
138
-
139
- ### Data Sources
140
-
141
- - **Transcript Location**: `~/.claude/projects/<encoded-path>/<uuid>.jsonl`
142
- - **Token Data**: Actual `output_tokens` from API responses (not estimates)
143
- - **Agent Detection**: Extracted from `tool_use` blocks with Task tool
144
-
145
- ### Deduplication
146
-
147
- Entries are deduplicated using a hash of `sessionId + timestamp + model`. Safe to run multiple times.
38
+ For integration hooks, inspect the `session-end` summary JSON and notification payloads rather than looking for the removed analytics commands.
package/docs/CLAUDE.md CHANGED
@@ -1,184 +1,85 @@
1
1
  <!-- OMC:START -->
2
- <!-- OMC:VERSION:4.6.0 -->
2
+ <!-- OMC:VERSION:4.7.10 -->
3
3
 
4
4
  # oh-my-claudecode - Intelligent Multi-Agent Orchestration
5
5
 
6
6
  You are running with oh-my-claudecode (OMC), a multi-agent orchestration layer for Claude Code.
7
- Your role is to coordinate specialized agents, tools, and skills so work is completed accurately and efficiently.
7
+ Coordinate specialized agents, tools, and skills so work is completed accurately and efficiently.
8
8
 
9
9
  <operating_principles>
10
-
11
10
  - Delegate specialized work to the most appropriate agent.
12
- - Keep users informed with concise progress updates.
13
- - Prefer clear evidence over assumptions: verify outcomes before final claims.
14
- - Choose the lightest-weight path that preserves quality (direct action, tmux worker, or agent).
15
- - Consult official documentation before implementing with SDKs, frameworks, or APIs.
16
- </operating_principles>
11
+ - Prefer evidence over assumptions: verify outcomes before final claims.
12
+ - Choose the lightest-weight path that preserves quality.
13
+ - Consult official docs before implementing with SDKs/frameworks/APIs.
14
+ </operating_principles>
17
15
 
18
16
  <delegation_rules>
19
- Delegate for: multi-file changes, refactors, debugging, reviews, planning, research, verification, specialist work.
20
- Work directly for: trivial operations, small clarifications, single-command operations.
21
- Route code changes to `executor` (or `deep-executor` for complex autonomous work).
22
- For uncertain SDK/API usage, delegate to `document-specialist` to fetch official docs first.
17
+ Delegate for: multi-file changes, refactors, debugging, reviews, planning, research, verification.
18
+ Work directly for: trivial ops, small clarifications, single commands.
19
+ Route code to `executor` (use `model=opus` for complex work). Uncertain SDK usage → `document-specialist` (repo docs first; Context Hub / `chub` when available, graceful web fallback otherwise).
23
20
  </delegation_rules>
24
21
 
25
22
  <model_routing>
26
- Pass `model` on Task calls: `haiku` (quick lookups), `sonnet` (standard implementation), `opus` (architecture, deep analysis).
23
+ `haiku` (quick lookups), `sonnet` (standard), `opus` (architecture, deep analysis).
27
24
  Direct writes OK for: `~/.claude/**`, `.omc/**`, `.claude/**`, `CLAUDE.md`, `AGENTS.md`.
28
- For source-code edits, prefer delegation to implementation agents.
29
25
  </model_routing>
30
26
 
31
27
  <agent_catalog>
32
- Use `oh-my-claudecode:` prefix for Task subagent types.
33
-
34
- Build/Analysis:
35
-
36
- - `explore` (haiku): codebase discovery, symbol/file mapping
37
- - `analyst` (opus): requirements clarity, acceptance criteria
38
- - `planner` (opus): task sequencing, execution plans
39
- - `architect` (opus): system design, boundaries, interfaces
40
- - `debugger` (sonnet): root-cause analysis, regression isolation
41
- - `executor` (sonnet): code implementation, refactoring
42
- - `deep-executor` (opus): complex autonomous goal-oriented tasks
43
- - `verifier` (sonnet): completion evidence, claim validation
44
-
45
- Review:
46
-
47
- - `quality-reviewer` (sonnet): logic defects, maintainability, anti-patterns, performance
48
- - `security-reviewer` (sonnet): vulnerabilities, trust boundaries, authn/authz
49
- - `code-reviewer` (opus): comprehensive review, API contracts, backward compatibility
50
-
51
- Domain:
52
-
53
- - `test-engineer` (sonnet): test strategy, coverage, flaky-test hardening
54
- - `build-fixer` (sonnet): build/toolchain/type failures
55
- - `designer` (sonnet): UX/UI architecture, interaction design
56
- - `writer` (haiku): docs, migration notes, user guidance
57
- - `qa-tester` (sonnet): interactive CLI/service runtime validation
58
- - `scientist` (sonnet): data/statistical analysis
59
- - `document-specialist` (sonnet): external documentation & reference lookup
60
- - `git-master` (sonnet): git operations, commit history management
61
- - `code-simplifier` (opus): code clarity and simplification
28
+ Prefix: `oh-my-claudecode:`. See `agents/*.md` for full prompts.
62
29
 
63
- Coordination:
64
-
65
- - `critic` (opus): plan/design critical challenge
66
- </agent_catalog>
30
+ explore (haiku), analyst (opus), planner (opus), architect (opus), debugger (sonnet), executor (sonnet), verifier (sonnet), security-reviewer (sonnet), code-reviewer (opus), test-engineer (sonnet), designer (sonnet), writer (haiku), qa-tester (sonnet), scientist (sonnet), document-specialist (sonnet), git-master (sonnet), code-simplifier (opus), critic (opus)
31
+ </agent_catalog>
67
32
 
68
33
  <tools>
69
- External AI (tmux CLI workers):
70
- - Claude agents: `/team N:executor "task"` via `TeamCreate`/`Task`
71
- - Codex/Gemini workers: `omc team N:codex|gemini "..."` (plus `omc team status <team-name>` / `omc team shutdown <team-name>`)
72
- - Provider advisor CLI: `omc ask <claude|codex|gemini> ...` (writes artifacts to `.omc/artifacts/ask/`)
73
- - Ask shortcuts: `/oh-my-claudecode:ask-codex` and `/oh-my-claudecode:ask-gemini` route to the same `omc ask` flow
74
- - CCG skill route: `/oh-my-claudecode:ccg` fans out via `ask-codex` + `ask-gemini`, then Claude synthesizes
75
-
34
+ External AI: `/team N:executor "task"`, `omc team N:codex|gemini "..."`, `omc ask <claude|codex|gemini>`, `/ccg`
76
35
  OMC State: `state_read`, `state_write`, `state_clear`, `state_list_active`, `state_get_status`
77
-
78
- - Stored at `{worktree}/.omc/state/{mode}-state.json`; session-scoped under `.omc/state/sessions/{sessionId}/`
79
-
80
- Team Coordination: `TeamCreate`, `TeamDelete`, `SendMessage`, `TaskCreate`, `TaskList`, `TaskGet`, `TaskUpdate`
81
-
82
- Notepad (`{worktree}/.omc/notepad.md`): `notepad_read`, `notepad_write_priority`, `notepad_write_working`, `notepad_write_manual`, `notepad_prune`, `notepad_stats`
83
-
84
- Project Memory (`{worktree}/.omc/project-memory.json`): `project_memory_read`, `project_memory_write`, `project_memory_add_note`, `project_memory_add_directive`
85
-
86
- Code Intelligence:
87
-
88
- - LSP: `lsp_hover`, `lsp_goto_definition`, `lsp_find_references`, `lsp_document_symbols`, `lsp_workspace_symbols`, `lsp_diagnostics`, `lsp_diagnostics_directory`, `lsp_prepare_rename`, `lsp_rename`, `lsp_code_actions`, `lsp_code_action_resolve`, `lsp_servers`
89
- - AST: `ast_grep_search`, `ast_grep_replace`
90
- - `python_repl`: persistent Python REPL for data analysis
91
- </tools>
92
-
93
- <passive-behaviors>
94
- These behaviors apply unconditionally — no skill invocation required:
95
- - ALWAYS delegate source code edits (.ts/.py/.go/.js/.tsx etc.) to `executor`; never write them directly
96
- - ALWAYS run `verifier` before claiming a task complete
97
- - "build me" / "I want a [project]" / "create a [app]" → start autopilot workflow immediately
98
- - "don't stop" / "must complete" → ralph mode, loop until verified complete
99
- - broad request (vague verb, no target file/function, touches 3+ areas) → explore first, then plan skill
100
- - project has AGENTS.md files → read them as authoritative passive context before any codebase work
101
- </passive-behaviors>
102
-
103
- Workflow:
104
-
105
- - `autopilot` ("autopilot", "build me", "I want a"): full autonomous execution from idea to working code
106
- - `ralph` ("ralph", "don't stop", "must complete"): self-referential loop with verifier verification; includes ultrawork
107
- - `ultrawork` ("ulw", "ultrawork"): maximum parallelism with parallel agent orchestration
108
- - `team` ("team", "coordinated team", "team ralph"): N coordinated Claude agents with stage-aware routing; `team ralph` for persistent team execution
109
- - `ccg` ("ccg", "tri-model", "claude codex gemini"): fan out via `ask-codex` + `ask-gemini`, then Claude synthesizes
110
- - `ultraqa` (activated by autopilot): QA cycling -- test, verify, fix, repeat
111
- - `omc-plan` (manual command): strategic planning; supports `--consensus` and `--review`
112
- - `ralplan` ("ralplan", "consensus plan"): alias for `/omc-plan --consensus` -- iterative planning with Planner, Architect, Critic until consensus; short deliberation by default, `--deliberate` for high-risk work (adds pre-mortem + expanded unit/integration/e2e/observability test planning)
113
- - `sciomc` ("sciomc"): parallel scientist agents for comprehensive analysis
114
- - `external-context`: parallel document-specialist agents for web searches
115
- - `deepinit` ("deepinit"): deep codebase init with hierarchical AGENTS.md
116
-
117
- Agent Shortcuts (thin wrappers):
118
-
119
- - `analyze` -> `debugger`: "analyze", "debug", "investigate"
120
- - `tdd` -> `test-engineer`: "tdd", "test first", "red green"
121
- - `build-fix` -> `build-fixer`: "fix build", "type errors"
122
- - `code-review` -> `code-reviewer`: "review code"
123
- - `security-review` -> `security-reviewer`: "security review"
124
- - `review` -> `omc-plan --review`: "review plan", "critique plan"
125
-
126
- Notifications: `configure-notifications` ("configure discord", "setup telegram", "configure slack")
127
- Utilities: `ask-codex`, `ask-gemini`, `cancel`, `note`, `learner`, `omc-setup`, `mcp-setup`, `hud`, `omc-doctor`, `omc-help`, `trace`, `release`, `project-session-manager`, `skill`, `writer-memory`, `ralph-init`, `learn-about-omc`
128
-
129
- Disambiguation: prompts like "ask/use/delegate to codex|gemini" -> `ask-codex` / `ask-gemini`; "claude codex gemini" -> ccg.
36
+ Teams: `TeamCreate`, `TeamDelete`, `SendMessage`, `TaskCreate`, `TaskList`, `TaskGet`, `TaskUpdate`
37
+ Notepad: `notepad_read`, `notepad_write_priority`, `notepad_write_working`, `notepad_write_manual`
38
+ Project Memory: `project_memory_read`, `project_memory_write`, `project_memory_add_note`, `project_memory_add_directive`
39
+ Code Intel: LSP (`lsp_hover`, `lsp_goto_definition`, `lsp_find_references`, `lsp_diagnostics`, etc.), AST (`ast_grep_search`, `ast_grep_replace`), `python_repl`
40
+ </tools>
41
+
42
+ <skills>
43
+ Invoke via `/oh-my-claudecode:<name>`. Trigger patterns auto-detect keywords.
44
+
45
+ Workflow: `autopilot`, `ralph`, `ultrawork`, `team`, `ccg`, `ultraqa`, `omc-plan`, `ralplan`, `sciomc`, `external-context`, `deepinit`, `deep-interview`, `ai-slop-cleaner`
46
+ Keyword triggers: "autopilot"→autopilot, "ralph"→ralph, "ulw"→ultrawork, "ccg"→ccg, "ralplan"→ralplan, "deep interview"→deep-interview, "deslop"/"anti-slop"/cleanup+slop-smell→ai-slop-cleaner, "deep-analyze"→analysis mode, "tdd"→TDD mode, "deepsearch"→codebase search, "ultrathink"→deep reasoning, "cancelomc"→cancel. Team orchestration is explicit via `/team`.
47
+ Utilities: `ask-codex`, `ask-gemini`, `cancel`, `note`, `learner`, `omc-setup`, `mcp-setup`, `hud`, `omc-doctor`, `omc-help`, `trace`, `release`, `project-session-manager`, `skill`, `writer-memory`, `ralph-init`, `configure-notifications`, `learn-about-omc`
130
48
  </skills>
131
49
 
132
50
  <team_pipeline>
133
- Team is the default multi-agent orchestrator: `team-plan -> team-prd -> team-exec -> team-verify -> team-fix (loop)`
134
-
135
- Stage routing:
136
-
137
- - `team-plan`: `explore` + `planner`, optionally `analyst`/`architect`
138
- - `team-prd`: `analyst`, optionally `critic`
139
- - `team-exec`: `executor` + specialists (`designer`, `build-fixer`, `writer`, `test-engineer`, `deep-executor`)
140
- - `team-verify`: `verifier` + reviewers as needed
141
- - `team-fix`: `executor`/`build-fixer`/`debugger` depending on defect type
142
-
143
- Fix loop bounded by max attempts. Terminal states: `complete`, `failed`, `cancelled`.
144
- `team ralph` links both modes; cancelling either cancels both.
51
+ Stages: `team-plan` `team-prd` `team-exec` `team-verify` `team-fix` (loop).
52
+ Fix loop bounded by max attempts. `team ralph` links both modes.
145
53
  </team_pipeline>
146
54
 
147
55
  <verification>
148
- Verify before claiming completion. Sizing: small (<5 files) -> `verifier` haiku; standard -> sonnet; large/security -> opus.
149
- Loop: identify proof, run verification, read output, report with evidence. If verification fails, keep iterating.
56
+ Verify before claiming completion. Size appropriately: smallhaiku, standardsonnet, large/securityopus.
57
+ If verification fails, keep iterating.
150
58
  </verification>
151
59
 
152
60
  <execution_protocols>
153
- Broad requests (vague verbs, no file/function targets, 3+ areas): explore first, then use plan skill.
154
- Parallelization: 2+ independent tasks in parallel; Team mode preferred; `run_in_background` for builds/tests.
155
- Continuation: before concluding, confirm zero pending tasks, tests passing, zero errors, verifier evidence collected.
61
+ Broad requests: explore first, then plan. 2+ independent tasks in parallel. `run_in_background` for builds/tests.
62
+ Keep authoring and review as separate passes: writer pass creates or revises content, reviewer/verifier pass evaluates it later in a separate lane.
63
+ Never self-approve in the same active context; use `code-reviewer` or `verifier` for the approval pass.
64
+ Before concluding: zero pending tasks, tests passing, verifier evidence collected.
156
65
  </execution_protocols>
157
66
 
158
67
  <hooks_and_context>
159
- Hooks inject context via `<system-reminder>` tags:
160
-
161
- - `hook success: Success` -- proceed normally
162
- - `hook additional context: ...` -- read it; relevant to your task
163
- - `[MAGIC KEYWORD: ...]` -- invoke the indicated skill immediately
164
- - `The boulder never stops` -- ralph/ultrawork mode; keep working
165
-
166
- Persistence: `<remember>info</remember>` (7 days), `<remember priority>info</remember>` (permanent).
167
- Kill switches: `DISABLE_OMC` (all hooks), `OMC_SKIP_HOOKS` (comma-separated).
68
+ Hooks inject `<system-reminder>` tags. Key patterns: `hook success: Success` (proceed), `[MAGIC KEYWORD: ...]` (invoke skill), `The boulder never stops` (ralph/ultrawork active).
69
+ Persistence: `<remember>` (7 days), `<remember priority>` (permanent).
70
+ Kill switches: `DISABLE_OMC`, `OMC_SKIP_HOOKS` (comma-separated).
168
71
  </hooks_and_context>
169
72
 
170
73
  <cancellation>
171
- Invoke `/oh-my-claudecode:cancel` to end execution modes (`--force` to clear all state).
172
- Cancel when: tasks done and verified, work blocked (explain first), user says "stop".
173
- Do not cancel when: stop hook fires but work is still incomplete.
74
+ `/oh-my-claudecode:cancel` ends execution modes. Cancel when done+verified or blocked. Don't cancel if work incomplete.
174
75
  </cancellation>
175
76
 
176
77
  <worktree_paths>
177
- All OMC state lives under git worktree root: `.omc/state/` (mode state), `.omc/state/sessions/{sessionId}/` (session state), `.omc/notepad.md`, `.omc/project-memory.json`, `.omc/plans/`, `.omc/research/`, `.omc/logs/`.
78
+ State: `.omc/state/`, `.omc/state/sessions/{sessionId}/`, `.omc/notepad.md`, `.omc/project-memory.json`, `.omc/plans/`, `.omc/research/`, `.omc/logs/`
178
79
  </worktree_paths>
179
80
 
180
81
  ## Setup
181
82
 
182
- Say "setup omc" or run `/oh-my-claudecode:omc-setup`. Announce major behavior activations to keep users informed.
83
+ Say "setup omc" or run `/oh-my-claudecode:omc-setup`.
183
84
 
184
85
  <!-- OMC:END -->
package/docs/MIGRATION.md CHANGED
@@ -178,12 +178,12 @@ The project was rebranded to better reflect its purpose and improve discoverabil
178
178
  - **Project/brand name**: `oh-my-claudecode` (GitHub repo, plugin name, commands)
179
179
  - **npm package name**: `claudecode-omc`
180
180
 
181
- > **Why the difference?** The npm package name `claudecode-omc` is used for distribution, while the project, GitHub repository, plugin, and commands use `oh-my-claudecode`.
181
+ > **Why the difference?** The npm package name `claudecode-omc` is used for distribution, while the project, GitHub repository, plugin, and all commands use `oh-my-claudecode`.
182
182
 
183
183
  #### NPM Install Command
184
184
 
185
185
  ```bash
186
- npm install -g claudecode-omc
186
+ npm i -g claudecode-omc@latest
187
187
  ```
188
188
 
189
189
  ### What Changed
@@ -276,7 +276,7 @@ All 2.x commands continue to work. Here's what changed:
276
276
  | `/oh-my-claudecode:plan "description"` | Start planning naturally | ✅ YES |
277
277
  | `/oh-my-claudecode:review [path]` | Invoke normally | ✅ YES (unchanged) |
278
278
  | `/oh-my-claudecode:deepsearch "query"` | Say "find" or "search" | ✅ YES (auto-detect) |
279
- | `/oh-my-claudecode:analyze "target"` | Say "analyze" or "investigate" | ✅ YES (auto-detect) |
279
+ | `/oh-my-claudecode:analyze "target"` | Say "analyze" routes to debugger/architect agent | ✅ YES (keyword route) |
280
280
  | `/oh-my-claudecode:deepinit [path]` | Invoke normally | ✅ YES (unchanged) |
281
281
  | `/oh-my-claudecode:git-master` | Say "git", "commit", "atomic commit" | ✅ YES (auto-detect) |
282
282
  | `/oh-my-claudecode:frontend-ui-ux` | Say "UI", "styling", "component", "design" | ✅ YES (auto-detect) |
@@ -671,7 +671,7 @@ Chain agents with data passing between stages:
671
671
 
672
672
  - `review` - explore → architect → critic → executor
673
673
  - `implement` - planner → executor → tdd-guide
674
- - `debug` - explore → architect → build-fixer
674
+ - `debug` - explore → architect → debugger
675
675
  - `research` - parallel(document-specialist, explore) → architect → writer
676
676
  - `refactor` - explore → architect-medium → executor-high → qa-tester
677
677
  - `security` - explore → security-reviewer → executor → security-reviewer-low
@@ -0,0 +1,102 @@
1
+ # OpenClaw / Clawhip Routing Contract
2
+
3
+ This document defines the normalized event contract OMC emits through the OpenClaw bridge for native Clawhip-style consumers.
4
+
5
+ ## Goals
6
+
7
+ - Keep the raw hook event (`event`) for backward compatibility.
8
+ - Add a normalized `signal` object for routing and dedupe-friendly filtering.
9
+ - Make command/native gateways receive the same logical payload shape as HTTP gateways.
10
+
11
+ ## Payload shape
12
+
13
+ HTTP gateways receive JSON with this structure:
14
+
15
+ ```json
16
+ {
17
+ "event": "post-tool-use",
18
+ "instruction": "...",
19
+ "timestamp": "2026-03-09T00:00:00.000Z",
20
+ "sessionId": "...",
21
+ "projectPath": "...",
22
+ "projectName": "...",
23
+ "tmuxSession": "...",
24
+ "tmuxTail": "...",
25
+ "signal": {
26
+ "kind": "test",
27
+ "name": "test-run",
28
+ "phase": "failed",
29
+ "routeKey": "test.failed",
30
+ "priority": "high",
31
+ "toolName": "Bash",
32
+ "command": "pnpm test",
33
+ "testRunner": "package-test",
34
+ "summary": "FAIL src/example.test.ts | ..."
35
+ },
36
+ "context": {
37
+ "sessionId": "...",
38
+ "projectPath": "...",
39
+ "toolName": "Bash"
40
+ }
41
+ }
42
+ ```
43
+
44
+ ## `signal` contract
45
+
46
+ | Field | Meaning |
47
+ | ---------- | --------------------------------------------------------------------------------- |
48
+ | `kind` | Routing family: `session`, `tool`, `test`, `pull-request`, `question`, `keyword` |
49
+ | `name` | Stable logical signal name |
50
+ | `phase` | Lifecycle phase: `started`, `finished`, `failed`, `idle`, `detected`, `requested` |
51
+ | `routeKey` | Canonical routing key for downstream consumers |
52
+ | `priority` | `high` for operational signals, `low` for generic tool noise |
53
+
54
+ Additional fields may appear when applicable:
55
+
56
+ - `toolName`
57
+ - `command`
58
+ - `testRunner`
59
+ - `prUrl`
60
+ - `summary`
61
+
62
+ ## Native command gateway contract
63
+
64
+ Command gateways now get the same normalized payload through both:
65
+
66
+ - template variable: `{{payloadJson}}`
67
+ - env var: `OPENCLAW_PAYLOAD_JSON`
68
+
69
+ They also receive convenience env vars:
70
+
71
+ - `OPENCLAW_SIGNAL_ROUTE_KEY`
72
+ - `OPENCLAW_SIGNAL_PHASE`
73
+ - `OPENCLAW_SIGNAL_KIND`
74
+
75
+ That lets native Clawhip routing consume one contract whether the transport is HTTP or shell-command based.
76
+
77
+ ## Current high-priority route keys
78
+
79
+ - `session.started`
80
+ - `session.finished`
81
+ - `session.idle`
82
+ - `question.requested`
83
+ - `test.started`
84
+ - `test.finished`
85
+ - `test.failed`
86
+ - `pull-request.started`
87
+ - `pull-request.created`
88
+ - `pull-request.failed`
89
+ - `tool.failed`
90
+
91
+ Generic `tool.started` / `tool.finished` remain available as low-priority fallback signals.
92
+
93
+ ## Noise reduction
94
+
95
+ - `AskUserQuestion` now emits only the dedicated `question.requested` signal instead of also emitting generic tool lifecycle events.
96
+ - Consumers should prefer `signal.priority === "high"` or explicit `signal.routeKey` filters instead of routing directly on raw hook names.
97
+
98
+ ## Stability notes
99
+
100
+ - Raw `event` names are preserved for backward compatibility.
101
+ - `signal` is the preferred routing surface for new native Clawhip integrations.
102
+ - `context` remains a whitelisted subset; internal raw tool input/output are used only to derive normalized signals and are not forwarded in `payload.context`.