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,123 @@
1
+ #!/usr/bin/env bash
2
+ # setup-progress.sh - Save/clear/resume setup progress helpers
3
+ # Usage:
4
+ # setup-progress.sh save <step_number> <config_type>
5
+ # setup-progress.sh clear
6
+ # setup-progress.sh resume
7
+ # setup-progress.sh complete <version>
8
+
9
+ set -euo pipefail
10
+
11
+ STATE_FILE=".omc/state/setup-state.json"
12
+ CONFIG_FILE="$HOME/.claude/.omc-config.json"
13
+
14
+ # Cross-platform ISO date to epoch conversion
15
+ iso_to_epoch() {
16
+ local iso_date="$1"
17
+ local epoch=""
18
+ # Try GNU date first (Linux)
19
+ epoch=$(date -d "$iso_date" +%s 2>/dev/null) || true
20
+ if [ -n "$epoch" ] && [ "$epoch" != "0" ]; then
21
+ echo "$epoch"
22
+ return 0
23
+ fi
24
+ # Try BSD/macOS date
25
+ local clean_date
26
+ clean_date=$(echo "$iso_date" | sed 's/[+-][0-9][0-9]:[0-9][0-9]$//' | sed 's/Z$//' | sed 's/T/ /')
27
+ epoch=$(date -j -f "%Y-%m-%d %H:%M:%S" "$clean_date" +%s 2>/dev/null) || true
28
+ if [ -n "$epoch" ] && [ "$epoch" != "0" ]; then
29
+ echo "$epoch"
30
+ return 0
31
+ fi
32
+ echo "0"
33
+ }
34
+
35
+ cmd_save() {
36
+ local step="$1"
37
+ local config_type="${2:-unknown}"
38
+ mkdir -p .omc/state
39
+ cat > "$STATE_FILE" << EOF
40
+ {
41
+ "lastCompletedStep": $step,
42
+ "timestamp": "$(date -Iseconds)",
43
+ "configType": "$config_type"
44
+ }
45
+ EOF
46
+ echo "Progress saved: step $step ($config_type)"
47
+ }
48
+
49
+ cmd_clear() {
50
+ rm -f "$STATE_FILE"
51
+ echo "Setup state cleared."
52
+ }
53
+
54
+ cmd_resume() {
55
+ if [ ! -f "$STATE_FILE" ]; then
56
+ echo "fresh"
57
+ return 0
58
+ fi
59
+
60
+ # Check if state is stale (older than 24 hours)
61
+ TIMESTAMP_RAW=$(jq -r '.timestamp // empty' "$STATE_FILE" 2>/dev/null)
62
+ if [ -n "$TIMESTAMP_RAW" ]; then
63
+ TIMESTAMP_EPOCH=$(iso_to_epoch "$TIMESTAMP_RAW")
64
+ NOW_EPOCH=$(date +%s)
65
+ STATE_AGE=$((NOW_EPOCH - TIMESTAMP_EPOCH))
66
+ else
67
+ STATE_AGE=999999 # Force fresh start if no timestamp
68
+ fi
69
+
70
+ if [ "$STATE_AGE" -gt 86400 ]; then
71
+ echo "Previous setup state is more than 24 hours old. Starting fresh."
72
+ rm -f "$STATE_FILE"
73
+ echo "fresh"
74
+ return 0
75
+ fi
76
+
77
+ LAST_STEP=$(jq -r ".lastCompletedStep // 0" "$STATE_FILE" 2>/dev/null || echo "0")
78
+ TIMESTAMP=$(jq -r .timestamp "$STATE_FILE" 2>/dev/null || echo "unknown")
79
+ CONFIG_TYPE=$(jq -r '.configType // "unknown"' "$STATE_FILE" 2>/dev/null || echo "unknown")
80
+ echo "Found previous setup session (Step $LAST_STEP completed at $TIMESTAMP, configType=$CONFIG_TYPE)"
81
+ echo "$LAST_STEP"
82
+ }
83
+
84
+ cmd_complete() {
85
+ local version="${1:-unknown}"
86
+
87
+ # Clear temporary state
88
+ rm -f "$STATE_FILE"
89
+
90
+ # Mark setup as completed in persistent config
91
+ mkdir -p "$(dirname "$CONFIG_FILE")"
92
+
93
+ local existing='{}'
94
+ if [ -f "$CONFIG_FILE" ]; then
95
+ existing=$(cat "$CONFIG_FILE")
96
+ fi
97
+
98
+ echo "$existing" | jq --arg ts "$(date -Iseconds)" --arg ver "$version" \
99
+ '. + {setupCompleted: $ts, setupVersion: $ver}' > "$CONFIG_FILE"
100
+
101
+ echo "Setup completed successfully!"
102
+ echo "Note: Future updates will only refresh CLAUDE.md, not the full setup wizard."
103
+ }
104
+
105
+ # Main dispatch
106
+ case "${1:-}" in
107
+ save)
108
+ cmd_save "${2:?step number required}" "${3:-unknown}"
109
+ ;;
110
+ clear)
111
+ cmd_clear
112
+ ;;
113
+ resume)
114
+ cmd_resume
115
+ ;;
116
+ complete)
117
+ cmd_complete "${2:-unknown}"
118
+ ;;
119
+ *)
120
+ echo "Usage: setup-progress.sh {save <step> <config_type>|clear|resume|complete <version>}" >&2
121
+ exit 1
122
+ ;;
123
+ esac
@@ -71,7 +71,7 @@ function loadMetadata(): Metadata {
71
71
  keywords: packageJson.keywords || [],
72
72
  repository: packageJson.repository?.url?.replace(/^git\+/, '').replace(/\.git$/, '') || '',
73
73
  homepage: packageJson.homepage || '',
74
- npmPackage: packageJson.name || 'oh-my-claudecode',
74
+ npmPackage: packageJson.name || 'oh-my-claude-sisyphus',
75
75
  };
76
76
  }
77
77
 
@@ -165,6 +165,16 @@ function getFileSyncConfigs(): FileSync[] {
165
165
  },
166
166
  ],
167
167
  },
168
+ {
169
+ path: 'docs/CLAUDE.md',
170
+ replacements: [
171
+ {
172
+ pattern: /<!-- OMC:VERSION:[^\s]*? -->/g,
173
+ replacement: (m) => `<!-- OMC:VERSION:${m.version} -->`,
174
+ description: 'CLAUDE.md version marker',
175
+ },
176
+ ],
177
+ },
168
178
  {
169
179
  path: 'docs/ARCHITECTURE.md',
170
180
  replacements: [
package/skills/AGENTS.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # skills
5
5
 
6
- 37 skill directories for workflow automation and specialized behaviors.
6
+ 33 skill directories for workflow automation and specialized behaviors.
7
7
 
8
8
  ## Purpose
9
9
 
@@ -31,20 +31,9 @@ Skills are reusable workflow templates that can be invoked via `/oh-my-claudecod
31
31
  | `plan/SKILL.md` | omc-plan | Strategic planning with interview workflow |
32
32
  | `ralplan/SKILL.md` | ralplan | Iterative planning (Planner+Architect+Critic) with RALPLAN-DR structured deliberation (`--deliberate` for high-risk) |
33
33
  | `deep-interview/SKILL.md` | deep-interview | Socratic deep interview with mathematical ambiguity gating (Ouroboros-inspired) |
34
- | `analyze/SKILL.md` | analyze | Deep analysis and investigation |
35
34
  | `ralph-init/SKILL.md` | ralph-init | Initialize PRD for structured ralph |
36
35
  | `quick-init-project/SKILL.md` | quick-init-project | Intelligent project bootstrap with mode selection (fullstack/frontend/backend/demo) and data-driven tech stack recommendations |
37
36
 
38
- ### Code Quality Skills
39
-
40
- | File | Skill | Purpose |
41
- |-----------|-------|---------|
42
- | `code-review/SKILL.md` | code-review | Comprehensive code review |
43
- | `security-review/SKILL.md` | security-review | Security vulnerability detection |
44
- | `tdd/SKILL.md` | tdd | Test-driven development workflow |
45
- | `build-fix/SKILL.md` | build-fix | Fix build and TypeScript errors |
46
- | `ai-commenting/SKILL.md` | ai-commenting | AI-native code annotation protocol for intent/risk/deps/test context |
47
-
48
37
  ### Exploration Skills
49
38
 
50
39
  | File | Skill | Purpose |
@@ -56,13 +45,14 @@ Skills are reusable workflow templates that can be invoked via `/oh-my-claudecod
56
45
 
57
46
  | File | Skill | Purpose |
58
47
  |-----------|-------|---------|
48
+ | `ai-slop-cleaner/SKILL.md` | ai-slop-cleaner | Regression-safe cleanup workflow for AI-generated code slop |
59
49
  | `learner/SKILL.md` | learner | Extract reusable skill from session |
60
- | `ask-codex/SKILL.md` | ask-codex | Ask Codex via `omc ask codex` and capture an artifact |
61
- | `ask-gemini/SKILL.md` | ask-gemini | Ask Gemini via `omc ask gemini` and capture an artifact |
50
+ | `ask/SKILL.md` | ask | Ask Claude, Codex, or Gemini via `omc ask` and capture an artifact |
62
51
  | `note/SKILL.md` | note | Save notes for compaction resilience |
63
52
  | `cancel/SKILL.md` | cancel | Cancel any active OMC mode |
64
53
  | `hud/SKILL.md` | hud | Configure HUD display |
65
54
  | `omc-doctor/SKILL.md` | omc-doctor | Diagnose installation issues |
55
+ | `setup/SKILL.md` | setup | Unified setup entrypoint for install, diagnostics, and MCP configuration |
66
56
  | `omc-setup/SKILL.md` | omc-setup | One-time setup wizard |
67
57
  | `omc-help/SKILL.md` | omc-help | Usage guide |
68
58
  | `mcp-setup/SKILL.md` | mcp-setup | Configure MCP servers |
@@ -91,6 +81,10 @@ triggers:
91
81
  - "keyword2"
92
82
  agent: executor # Optional: which agent to use
93
83
  model: sonnet # Optional: model override
84
+ pipeline: [skill-name, follow-up-skill] # Optional: standardized multi-skill flow
85
+ next-skill: follow-up-skill # Optional: explicit handoff target
86
+ next-skill-args: --direct # Optional: arguments for the next skill
87
+ handoff: .omc/plans/example.md # Optional: artifact/context handed to next skill
94
88
  ---
95
89
 
96
90
  # Skill Name
@@ -144,6 +138,8 @@ Any configurable options.
144
138
  4. Invoke `qa-tester` for verification
145
139
  ```
146
140
 
141
+ If `pipeline` / `next-skill` metadata is present, OMC appends a standardized **Skill Pipeline** handoff block to the rendered skill prompt so downstream steps are explicit.
142
+
147
143
  **Conditional behavior:**
148
144
  ```markdown
149
145
  ## Workflow
@@ -175,10 +171,10 @@ None - pure markdown files.
175
171
  | Category | Skills | Trigger Keywords |
176
172
  |----------|--------|------------------|
177
173
  | Execution | autopilot, ultrawork, ralph, team, ultraqa | "autopilot", "ulw", "ralph", "team" |
178
- | Planning | omc-plan, ralplan, deep-interview, analyze, ralph-init | "plan this", "analyze", "interview me", "ouroboros" |
179
- | Quality | code-review, security-review, tdd, build-fix | "review", "security", "tdd" |
174
+ | Cleanup | ai-slop-cleaner | "deslop", "anti-slop", cleanup/refactor + slop smells |
175
+ | Planning | omc-plan, ralplan, deep-interview, ralph-init | "plan this", "interview me", "ouroboros" |
180
176
  | Exploration | deepinit, sciomc, external-context | "deepinit", "research" |
181
- | Utility | learner, note, cancel, hud, omc-doctor, omc-setup, omc-help, mcp-setup | "stop", "cancel" |
177
+ | Utility | learner, note, cancel, hud, setup, omc-doctor, omc-setup, omc-help, mcp-setup | "stop", "cancel" |
182
178
  | Domain | psm, writer-memory, release | psm context |
183
179
 
184
180
  ## Auto-Activation
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: ai-slop-cleaner
3
+ description: Clean AI-generated code slop with a test-first, deletion-first deslop workflow and optional reviewer-only mode
4
+ ---
5
+
6
+ <Purpose>
7
+ Use this skill to systematically clean AI-generated code slop without changing intended behavior. It focuses on simplifying existing code by deleting dead code, collapsing duplicates, removing needless abstractions, tightening boundaries, and reinforcing tests before and after cleanup.
8
+ </Purpose>
9
+
10
+ <Use_When>
11
+ - The user explicitly says "deslop", "anti-slop", or "AI slop"
12
+ - The request is to clean up or refactor code that feels bloated, repetitive, or overly abstract
13
+ - The user wants a reviewer-only anti-slop pass via `--review` after cleanup work is drafted
14
+ - The user calls out duplicate code, dead code, wrapper layers, boundary violations, or weak regression coverage
15
+ - The goal is simplification, deletion, and cleanup rather than adding new features
16
+ </Use_When>
17
+
18
+ <Do_Not_Use_When>
19
+ - The task is primarily a new feature build -- use `autopilot` or direct implementation instead
20
+ - The user wants a broad architecture redesign rather than an incremental cleanup pass
21
+ - The request is a generic refactor with no cleanup/simplification intent
22
+ - Behavior is unclear and there are no tests or concrete anchors -- clarify scope first
23
+ </Do_Not_Use_When>
24
+
25
+ <Why_This_Exists>
26
+ AI-generated code often works while still adding avoidable complexity: duplicate helpers, dead branches, wrapper layers, inconsistent naming, boundary leaks, and missing tests. This skill enforces a disciplined cleanup workflow so simplification happens deliberately instead of as vague "refactoring" that might expand scope.
27
+ </Why_This_Exists>
28
+
29
+ <Review_Mode>
30
+ ### Review Mode (`--review`)
31
+ `--review` activates an explicit reviewer pass after the cleanup writer pass.
32
+
33
+ - **Writer pass**: make the cleanup changes with behavior locked by tests.
34
+ - **Reviewer pass (`--review`)**: inspect the result for duplication, dead code, boundary violations, missing tests, and unnecessary abstractions.
35
+ - The same pass must not both write and self-approve without a separate review step.
36
+
37
+ In review mode:
38
+ 1. Do **not** make edits first.
39
+ 2. Inspect the cleanup plan, changed files, and regression coverage.
40
+ 3. Check specifically for:
41
+ - leftover dead code or unused exports
42
+ - duplicate logic that was not consolidated
43
+ - needless wrappers or abstractions that still blur boundaries
44
+ - missing tests or weak verification for preserved behavior
45
+ - risky cleanup that changed behavior without explicit intent
46
+ 4. Produce a reviewer verdict with required follow-ups.
47
+ 5. If changes are needed, hand them back to a separate writer/executor pass instead of fixing and approving in one pass.
48
+
49
+ This mode exists to preserve writer/reviewer separation: the authoring pass changes code, the reviewer pass evaluates whether the cleanup actually reduced slop safely.
50
+ </Review_Mode>
51
+
52
+ <Execution_Policy>
53
+ - Preserve behavior unless the user explicitly asks for behavior changes
54
+ - Lock behavior with regression tests first whenever practical
55
+ - Write a cleanup plan before editing code
56
+ - Prefer deletion over addition
57
+ - Reuse existing utilities and patterns before introducing anything new
58
+ - Avoid new dependencies unless the user explicitly requests them
59
+ - Keep diffs small, reversible, and smell-focused
60
+ - Keep writer/reviewer separation: author in one pass, review in another
61
+ - Verify with lint/typecheck/tests/static analysis relevant to the touched area
62
+ </Execution_Policy>
63
+
64
+ <Steps>
65
+ 1. **Lock behavior first**
66
+ - Identify the current behavior and add or strengthen regression tests before cleanup when practical
67
+ - If tests cannot be added first, record the verification plan explicitly before editing
68
+
69
+ 2. **Create a cleanup plan**
70
+ - Do not start coding immediately
71
+ - List the targeted smells and the files likely involved
72
+ - Sequence cleanup passes from lowest-risk deletion to higher-risk consolidation
73
+
74
+ 3. **Categorize the slop**
75
+ - Duplicate code
76
+ - Dead or unused code
77
+ - Needless abstraction / wrapper layers
78
+ - Boundary violations / misplaced responsibilities
79
+ - Missing or weak tests
80
+
81
+ 4. **Execute one smell-focused pass at a time**
82
+ - **Pass 1: Dead code deletion** -- remove unused branches, helpers, exports, and stale comments
83
+ - **Pass 2: Duplicate removal** -- consolidate repeated logic into existing patterns where possible
84
+ - **Pass 3: Naming and error-handling cleanup** -- tighten naming, trim noisy plumbing, normalize obvious inconsistencies
85
+ - **Pass 4: Test reinforcement** -- fill any regression gaps revealed by the cleanup
86
+
87
+ 5. **Run quality gates**
88
+ - Run the relevant lint, typecheck, unit/integration tests, and any static or security checks already present for the touched area
89
+ - If a gate fails, fix the underlying issue or revert the risky cleanup instead of forcing it through
90
+
91
+ 6. **Optional `--review` pass**
92
+ - Run a distinct reviewer pass that checks duplication, dead code, boundary violations, test coverage, and needless abstractions
93
+ - If the reviewer finds issues, address them in a follow-up cleanup pass before closing the task
94
+
95
+ 7. **Report outcome**
96
+ - Changed files
97
+ - Simplifications made
98
+ - Behavior locked by tests
99
+ - Remaining risks or slop intentionally left for a later pass
100
+ </Steps>
101
+
102
+ <Examples>
103
+ <Good>
104
+ User: "deslop this module -- too many wrappers, duplicate helpers, and dead code"
105
+ Why good: Explicit anti-slop intent with concrete cleanup smells.
106
+ </Good>
107
+
108
+ <Good>
109
+ User: "cleanup the AI slop in src/auth: remove dead code and tighten boundaries"
110
+ Why good: Cleanup/refactor request is clearly about simplification, not feature work.
111
+ </Good>
112
+
113
+ <Bad>
114
+ User: "refactor auth to support SSO"
115
+ Why bad: This is feature work disguised as refactoring, not anti-slop cleanup.
116
+ </Bad>
117
+
118
+ <Bad>
119
+ User: "clean up formatting"
120
+ Why bad: Formatting-only work does not need the full anti-slop workflow.
121
+ </Bad>
122
+ </Examples>
123
+
124
+ <Final_Report>
125
+ Always end with:
126
+ - **Changed files**
127
+ - **Simplifications**
128
+ - **Verification run**
129
+ - **Remaining risks**
130
+ </Final_Report>
@@ -1,87 +1,42 @@
1
1
  ---
2
2
  name: analyze
3
- description: Deep analysis and investigation
3
+ description: Deep analysis and investigation for bugs, architecture issues, and risk hotspots. Use when the user asks to analyze, investigate, debug, or explain why something is failing.
4
+ agent: debugger
4
5
  ---
5
6
 
6
- <Purpose>
7
- Analyze performs deep investigation of architecture, bugs, performance issues, and dependencies. It routes to the architect Claude agent for thorough analysis and returns structured findings with evidence.
8
- </Purpose>
7
+ # Analyze
9
8
 
10
- <Use_When>
11
- - User says "analyze", "investigate", "debug", "why does", or "what's causing"
12
- - User needs to understand a system's architecture or behavior before making changes
13
- - User wants root cause analysis of a bug or performance issue
14
- - User needs dependency analysis or impact assessment for a proposed change
15
- - A complex question requires reading multiple files and reasoning across them
16
- </Use_When>
9
+ Use this skill for evidence-driven investigation before implementation.
17
10
 
18
- <Do_Not_Use_When>
19
- - User wants code changes made -- use executor agents or `ralph` instead
20
- - User wants a full plan with acceptance criteria -- use `plan` skill instead
21
- - User wants a quick file lookup or symbol search -- use `explore` agent instead
22
- - User asks a simple factual question that can be answered from one file -- just read and answer directly
23
- </Do_Not_Use_When>
11
+ ## Use When
24
12
 
25
- <Why_This_Exists>
26
- Deep investigation requires a different approach than quick lookups or code changes. Analysis tasks need broad context gathering, cross-file reasoning, and structured findings. Routing these to the architect agent or Codex ensures the right level of depth without the overhead of a full planning or execution workflow.
27
- </Why_This_Exists>
13
+ - The user asks to analyze, investigate, debug, root-cause, or explain failures
14
+ - A fix has failed repeatedly and the team needs diagnosis first
15
+ - You need architecture or dependency impact analysis before making changes
28
16
 
29
- <Execution_Policy>
30
- - Route analysis to the architect Claude agent for thorough investigation
31
- - Always gather context files before spawning the architect agent for grounded reasoning
32
- - Return structured findings, not just raw observations
33
- </Execution_Policy>
17
+ ## Workflow
34
18
 
35
- <Steps>
36
- 1. **Identify the analysis type**: Architecture, bug investigation, performance, or dependency analysis
37
- 2. **Gather relevant context**: Read or identify the key files involved
38
- 3. **Route to analyzer**: `Task(subagent_type="oh-my-claudecode:architect", model="opus", prompt="Analyze: ...")`
39
- 4. **Return structured findings**: Present the analysis with evidence, file references, and actionable recommendations
40
- </Steps>
19
+ 1. Scope the target precisely.
20
+ 2. Gather evidence:
21
+ - Read relevant files and tests
22
+ - Reproduce the issue when possible
23
+ - Capture exact errors and stack traces
24
+ 3. Build and test hypotheses:
25
+ - Compare broken path vs working path
26
+ - Trace control/data flow
27
+ - Validate assumptions with commands
28
+ 4. Conclude with ranked findings and concrete next actions.
41
29
 
42
- <Tool_Usage>
43
- - Use `Task(subagent_type="oh-my-claudecode:architect", model="opus", ...)` as the primary analysis route
44
- - For broad analysis, use `explore` agent first to identify relevant files before routing to architect
45
- </Tool_Usage>
30
+ ## Debug Protocol
46
31
 
47
- <Examples>
48
- <Good>
49
- User: "analyze why the WebSocket connections drop after 30 seconds"
50
- Action: Gather WebSocket-related files, route to architect with context, return root cause analysis with specific file:line references and a recommended fix.
51
- Why good: Clear investigation target, structured output with evidence.
52
- </Good>
32
+ - Root-cause first. Do not jump to fixes.
33
+ - After 3 failed hypotheses, expand scope and challenge the initial assumption.
34
+ - Prefer user-observable behavior and reproducible evidence over speculation.
53
35
 
54
- <Good>
55
- User: "investigate the dependency chain from src/api/routes.ts"
56
- Action: Use explore agent to map the import graph, then route to architect for impact analysis.
57
- Why good: Uses explore for fact-gathering, architect for reasoning.
58
- </Good>
36
+ ## Output Format
59
37
 
60
- <Bad>
61
- User: "analyze the auth module"
62
- Action: Returning "The auth module handles authentication."
63
- Why bad: Shallow summary without investigation. Should examine the module's structure, patterns, potential issues, and provide specific findings with file references.
64
- </Bad>
38
+ - Summary (2-3 sentences)
39
+ - Key findings (ranked by impact)
40
+ - Evidence (file references, command output, repro notes)
41
+ - Recommended next actions (minimal-risk order)
65
42
 
66
- <Bad>
67
- User: "fix the bug in the parser"
68
- Action: Running analysis skill.
69
- Why bad: This is a fix request, not an analysis request. Route to executor or ralph instead.
70
- </Bad>
71
- </Examples>
72
-
73
- <Escalation_And_Stop_Conditions>
74
- - If analysis reveals the issue requires code changes, report findings and recommend using `ralph` or executor for the fix
75
- - If the analysis scope is too broad ("analyze everything"), ask the user to narrow the focus
76
- - If Codex is unavailable and the architect agent also fails, report what context was gathered and suggest manual investigation paths
77
- </Escalation_And_Stop_Conditions>
78
-
79
- <Final_Checklist>
80
- - [ ] Analysis addresses the specific question or investigation target
81
- - [ ] Findings reference specific files and line numbers where applicable
82
- - [ ] Root causes are identified (not just symptoms) for bug investigations
83
- - [ ] Actionable recommendations are provided
84
- - [ ] Analysis distinguishes between confirmed facts and hypotheses
85
- </Final_Checklist>
86
-
87
- Task: {{ARGUMENTS}}
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: ask
3
+ description: Ask Claude, Codex, or Gemini via local CLI and capture a reusable artifact
4
+ ---
5
+
6
+ # Ask
7
+
8
+ Use OMC's canonical advisor skill to route a prompt through the local Claude, Codex, or Gemini CLI and persist the result as an ask artifact.
9
+
10
+ ## Usage
11
+
12
+ ```bash
13
+ /oh-my-claudecode:ask <claude|codex|gemini> <question or task>
14
+ ```
15
+
16
+ Examples:
17
+
18
+ ```bash
19
+ /oh-my-claudecode:ask codex "review this patch from a security perspective"
20
+ /oh-my-claudecode:ask gemini "suggest UX improvements for this flow"
21
+ /oh-my-claudecode:ask claude "draft an implementation plan for issue #123"
22
+ ```
23
+
24
+ ## Routing
25
+
26
+ Preferred path:
27
+
28
+ ```bash
29
+ omc ask {{ARGUMENTS}}
30
+ ```
31
+
32
+ ## Requirements
33
+
34
+ - The selected local CLI must be installed and authenticated.
35
+ - Verify availability with the matching command:
36
+
37
+ ```bash
38
+ claude --version
39
+ codex --version
40
+ gemini --version
41
+ ```
42
+
43
+ ## Artifacts
44
+
45
+ `omc ask` writes artifacts to:
46
+
47
+ ```text
48
+ .omc/artifacts/ask/<provider>-<slug>-<timestamp>.md
49
+ ```
50
+
51
+ Task: {{ARGUMENTS}}
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: bdd-generator
3
+ description: Generate and maintain BDD scenarios and step definitions using Gherkin plus playwright-bdd with a one-scenario-at-a-time TDD loop.
4
+ ---
5
+
6
+ # BDD Generator
7
+
8
+ Use this skill to translate business requirements into executable BDD scenarios.
9
+
10
+ ## Use When
11
+
12
+ - The user asks for BDD, Gherkin, feature files, or scenario-based tests
13
+ - You need business-readable acceptance tests tied to Playwright execution
14
+
15
+ ## Setup
16
+
17
+ ```bash
18
+ pnpm add -D @playwright/test playwright-bdd
19
+ npx playwright install
20
+ ```
21
+
22
+ ```ts
23
+ // playwright.config.ts
24
+ import { defineConfig } from '@playwright/test';
25
+ import { defineBddConfig } from 'playwright-bdd';
26
+
27
+ const testDir = defineBddConfig({
28
+ features: 'features/**/*.feature',
29
+ steps: 'features/steps/**/*.ts',
30
+ });
31
+
32
+ export default defineConfig({ testDir });
33
+ ```
34
+
35
+ ## Workflow
36
+
37
+ 1. Write one feature and one scenario first (RED).
38
+ 2. Run `bddgen` to generate missing step stubs.
39
+ 3. Implement only the first failing step.
40
+ 4. Re-run tests; repeat until scenario passes.
41
+ 5. Add next scenario only after green.
42
+
43
+ ## Gherkin Best Practices
44
+
45
+ - Use business language, not technical implementation details.
46
+ - `Given` sets context, `When` describes action, `Then` verifies user-visible outcome.
47
+ - Use `Background` for repeated context.
48
+ - Use `Scenario Outline` for data variants.
49
+
50
+ ## Output
51
+
52
+ - `*.feature` file with clear business behavior
53
+ - Step definitions in `features/steps/*.ts`
54
+ - Command list to run and debug tests
55
+
56
+ ## References
57
+
58
+ - Cucumber Gherkin reference: https://cucumber.io/docs/gherkin/reference
59
+ - playwright-bdd: https://github.com/vitalets/playwright-bdd
60
+
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: ccg
3
- description: Claude-Codex-Gemini tri-model orchestration via ask-codex + ask-gemini, then Claude synthesizes results
3
+ description: Claude-Codex-Gemini tri-model orchestration via /ask codex + /ask gemini, then Claude synthesizes results
4
4
  ---
5
5
 
6
6
  # CCG - Claude-Codex-Gemini Tri-Model Orchestration
7
7
 
8
- CCG routes through `ask-codex` and `ask-gemini` (CLI advisor flow), then Claude synthesizes both outputs into one answer.
8
+ CCG routes through the canonical `/ask` skill (`/ask codex` + `/ask gemini`), then Claude synthesizes both outputs into one answer.
9
9
 
10
10
  Use this when you want parallel external perspectives without launching tmux team workers.
11
11
 
@@ -31,8 +31,8 @@ Use this when you want parallel external perspectives without launching tmux tea
31
31
  - Gemini prompt (UX/design/docs/alternatives)
32
32
 
33
33
  2. Claude runs:
34
- - /oh-my-claudecode:ask-codex "<codex prompt>"
35
- - /oh-my-claudecode:ask-gemini "<gemini prompt>"
34
+ - /oh-my-claudecode:ask codex "<codex prompt>"
35
+ - /oh-my-claudecode:ask gemini "<gemini prompt>"
36
36
 
37
37
  (equivalent CLI path: `omc ask codex ...` + `omc ask gemini ...`)
38
38
 
@@ -57,8 +57,8 @@ Split the user request into:
57
57
  Use skill routing first:
58
58
 
59
59
  ```bash
60
- /oh-my-claudecode:ask-codex <codex prompt>
61
- /oh-my-claudecode:ask-gemini <gemini prompt>
60
+ /oh-my-claudecode:ask codex <codex prompt>
61
+ /oh-my-claudecode:ask gemini <gemini prompt>
62
62
  ```
63
63
 
64
64
  Equivalent direct CLI:
@@ -2,6 +2,10 @@
2
2
  name: deep-interview
3
3
  description: Socratic deep interview with mathematical ambiguity gating before autonomous execution
4
4
  argument-hint: "<idea or vague description>"
5
+ pipeline: [deep-interview, omc-plan, autopilot]
6
+ next-skill: omc-plan
7
+ next-skill-args: --consensus --direct
8
+ handoff: .omc/specs/deep-interview-{slug}.md
5
9
  ---
6
10
 
7
11
  <Purpose>