oh-my-codex 0.15.3 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/Cargo.lock +10 -7
  2. package/Cargo.toml +1 -1
  3. package/README.md +3 -0
  4. package/crates/omx-explore/Cargo.toml +3 -0
  5. package/crates/omx-explore/src/main.rs +517 -16
  6. package/dist/autoresearch/goal.d.ts +90 -0
  7. package/dist/autoresearch/goal.d.ts.map +1 -0
  8. package/dist/autoresearch/goal.js +237 -0
  9. package/dist/autoresearch/goal.js.map +1 -0
  10. package/dist/autoresearch/skill-validation.d.ts +1 -0
  11. package/dist/autoresearch/skill-validation.d.ts.map +1 -1
  12. package/dist/autoresearch/skill-validation.js +10 -3
  13. package/dist/autoresearch/skill-validation.js.map +1 -1
  14. package/dist/catalog/__tests__/generator.test.js +9 -4
  15. package/dist/catalog/__tests__/generator.test.js.map +1 -1
  16. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js +20 -1
  17. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js.map +1 -1
  18. package/dist/catalog/__tests__/schema.test.js +14 -3
  19. package/dist/catalog/__tests__/schema.test.js.map +1 -1
  20. package/dist/catalog/schema.js +1 -1
  21. package/dist/catalog/schema.js.map +1 -1
  22. package/dist/cli/__tests__/autoresearch-goal.test.d.ts +2 -0
  23. package/dist/cli/__tests__/autoresearch-goal.test.d.ts.map +1 -0
  24. package/dist/cli/__tests__/autoresearch-goal.test.js +194 -0
  25. package/dist/cli/__tests__/autoresearch-goal.test.js.map +1 -0
  26. package/dist/cli/__tests__/cleanup.test.js +82 -1
  27. package/dist/cli/__tests__/cleanup.test.js.map +1 -1
  28. package/dist/cli/__tests__/codex-plugin-layout.test.js +7 -4
  29. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
  30. package/dist/cli/__tests__/doctor-warning-copy.test.js +23 -0
  31. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  32. package/dist/cli/__tests__/explore.test.js +8 -1
  33. package/dist/cli/__tests__/explore.test.js.map +1 -1
  34. package/dist/cli/__tests__/index.test.js +82 -3
  35. package/dist/cli/__tests__/index.test.js.map +1 -1
  36. package/dist/cli/__tests__/launch-fallback.test.js +58 -0
  37. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  38. package/dist/cli/__tests__/native-assets.test.js +26 -1
  39. package/dist/cli/__tests__/native-assets.test.js.map +1 -1
  40. package/dist/cli/__tests__/package-bin-contract.test.js +2 -2
  41. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
  42. package/dist/cli/__tests__/performance-goal.test.d.ts +2 -0
  43. package/dist/cli/__tests__/performance-goal.test.d.ts.map +1 -0
  44. package/dist/cli/__tests__/performance-goal.test.js +144 -0
  45. package/dist/cli/__tests__/performance-goal.test.js.map +1 -0
  46. package/dist/cli/__tests__/question.test.js +8 -0
  47. package/dist/cli/__tests__/question.test.js.map +1 -1
  48. package/dist/cli/__tests__/ralph-goal-mode-contract.test.d.ts +2 -0
  49. package/dist/cli/__tests__/ralph-goal-mode-contract.test.d.ts.map +1 -0
  50. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +31 -0
  51. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -0
  52. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js +5 -4
  53. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js.map +1 -1
  54. package/dist/cli/__tests__/ralph-prd-smoke.test.js +7 -0
  55. package/dist/cli/__tests__/ralph-prd-smoke.test.js.map +1 -1
  56. package/dist/cli/__tests__/setup-install-mode.test.js +57 -21
  57. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  58. package/dist/cli/__tests__/setup-refresh.test.js +27 -8
  59. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  60. package/dist/cli/__tests__/setup-scope.test.js +18 -9
  61. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  62. package/dist/cli/__tests__/setup-skill-validation.test.js +11 -11
  63. package/dist/cli/__tests__/setup-skill-validation.test.js.map +1 -1
  64. package/dist/cli/__tests__/setup-skills-overwrite.test.js +12 -12
  65. package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
  66. package/dist/cli/__tests__/team.test.js +187 -0
  67. package/dist/cli/__tests__/team.test.js.map +1 -1
  68. package/dist/cli/__tests__/ultragoal.test.d.ts +2 -0
  69. package/dist/cli/__tests__/ultragoal.test.d.ts.map +1 -0
  70. package/dist/cli/__tests__/ultragoal.test.js +106 -0
  71. package/dist/cli/__tests__/ultragoal.test.js.map +1 -0
  72. package/dist/cli/__tests__/uninstall.test.js +11 -0
  73. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  74. package/dist/cli/autoresearch-goal.d.ts +3 -0
  75. package/dist/cli/autoresearch-goal.d.ts.map +1 -0
  76. package/dist/cli/autoresearch-goal.js +175 -0
  77. package/dist/cli/autoresearch-goal.js.map +1 -0
  78. package/dist/cli/cleanup.d.ts +3 -1
  79. package/dist/cli/cleanup.d.ts.map +1 -1
  80. package/dist/cli/cleanup.js +42 -2
  81. package/dist/cli/cleanup.js.map +1 -1
  82. package/dist/cli/doctor.d.ts.map +1 -1
  83. package/dist/cli/doctor.js +49 -0
  84. package/dist/cli/doctor.js.map +1 -1
  85. package/dist/cli/explore.d.ts.map +1 -1
  86. package/dist/cli/explore.js +10 -2
  87. package/dist/cli/explore.js.map +1 -1
  88. package/dist/cli/index.d.ts +6 -2
  89. package/dist/cli/index.d.ts.map +1 -1
  90. package/dist/cli/index.js +145 -18
  91. package/dist/cli/index.js.map +1 -1
  92. package/dist/cli/native-assets.js +1 -1
  93. package/dist/cli/native-assets.js.map +1 -1
  94. package/dist/cli/performance-goal.d.ts +3 -0
  95. package/dist/cli/performance-goal.d.ts.map +1 -0
  96. package/dist/cli/performance-goal.js +186 -0
  97. package/dist/cli/performance-goal.js.map +1 -0
  98. package/dist/cli/ralph.d.ts.map +1 -1
  99. package/dist/cli/ralph.js +8 -0
  100. package/dist/cli/ralph.js.map +1 -1
  101. package/dist/cli/setup.d.ts.map +1 -1
  102. package/dist/cli/setup.js +13 -6
  103. package/dist/cli/setup.js.map +1 -1
  104. package/dist/cli/team.d.ts +2 -0
  105. package/dist/cli/team.d.ts.map +1 -1
  106. package/dist/cli/team.js +72 -17
  107. package/dist/cli/team.js.map +1 -1
  108. package/dist/cli/tmux-hook.d.ts.map +1 -1
  109. package/dist/cli/tmux-hook.js +2 -1
  110. package/dist/cli/tmux-hook.js.map +1 -1
  111. package/dist/cli/ultragoal.d.ts +3 -0
  112. package/dist/cli/ultragoal.d.ts.map +1 -0
  113. package/dist/cli/ultragoal.js +191 -0
  114. package/dist/cli/ultragoal.js.map +1 -0
  115. package/dist/cli/uninstall.d.ts.map +1 -1
  116. package/dist/cli/uninstall.js +4 -2
  117. package/dist/cli/uninstall.js.map +1 -1
  118. package/dist/config/__tests__/generator-idempotent.test.js +12 -1
  119. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  120. package/dist/config/__tests__/generator-notify.test.js +5 -0
  121. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  122. package/dist/config/commit-lore-guard.d.ts +3 -0
  123. package/dist/config/commit-lore-guard.d.ts.map +1 -0
  124. package/dist/config/commit-lore-guard.js +9 -0
  125. package/dist/config/commit-lore-guard.js.map +1 -0
  126. package/dist/config/generator.d.ts +3 -2
  127. package/dist/config/generator.d.ts.map +1 -1
  128. package/dist/config/generator.js +52 -8
  129. package/dist/config/generator.js.map +1 -1
  130. package/dist/config/omx-first-party-mcp.d.ts +1 -0
  131. package/dist/config/omx-first-party-mcp.d.ts.map +1 -1
  132. package/dist/config/omx-first-party-mcp.js +4 -1
  133. package/dist/config/omx-first-party-mcp.js.map +1 -1
  134. package/dist/goal-workflows/__tests__/artifacts.test.d.ts +2 -0
  135. package/dist/goal-workflows/__tests__/artifacts.test.d.ts.map +1 -0
  136. package/dist/goal-workflows/__tests__/artifacts.test.js +96 -0
  137. package/dist/goal-workflows/__tests__/artifacts.test.js.map +1 -0
  138. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.d.ts +2 -0
  139. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.d.ts.map +1 -0
  140. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js +54 -0
  141. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js.map +1 -0
  142. package/dist/goal-workflows/artifacts.d.ts +62 -0
  143. package/dist/goal-workflows/artifacts.d.ts.map +1 -0
  144. package/dist/goal-workflows/artifacts.js +132 -0
  145. package/dist/goal-workflows/artifacts.js.map +1 -0
  146. package/dist/goal-workflows/codex-goal-snapshot.d.ts +28 -0
  147. package/dist/goal-workflows/codex-goal-snapshot.d.ts.map +1 -0
  148. package/dist/goal-workflows/codex-goal-snapshot.js +110 -0
  149. package/dist/goal-workflows/codex-goal-snapshot.js.map +1 -0
  150. package/dist/goal-workflows/handoff.d.ts +10 -0
  151. package/dist/goal-workflows/handoff.d.ts.map +1 -0
  152. package/dist/goal-workflows/handoff.js +31 -0
  153. package/dist/goal-workflows/handoff.js.map +1 -0
  154. package/dist/goal-workflows/validation.d.ts +13 -0
  155. package/dist/goal-workflows/validation.d.ts.map +1 -0
  156. package/dist/goal-workflows/validation.js +36 -0
  157. package/dist/goal-workflows/validation.js.map +1 -0
  158. package/dist/hooks/__tests__/anti-slop-workflow.test.js +3 -3
  159. package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +1 -1
  160. package/dist/hooks/__tests__/keyword-detector.test.js +45 -32
  161. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  162. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +3 -3
  163. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  164. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +2 -1
  165. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  166. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +17 -24
  167. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  168. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js +3 -3
  169. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js.map +1 -1
  170. package/dist/hooks/__tests__/task-size-detector.test.js +1 -1
  171. package/dist/hooks/__tests__/task-size-detector.test.js.map +1 -1
  172. package/dist/hooks/__tests__/visual-ralph-skill.test.js +3 -3
  173. package/dist/hooks/__tests__/visual-ralph-skill.test.js.map +1 -1
  174. package/dist/hooks/__tests__/visual-verdict-loop.test.js +7 -11
  175. package/dist/hooks/__tests__/visual-verdict-loop.test.js.map +1 -1
  176. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  177. package/dist/hooks/agents-overlay.js +2 -2
  178. package/dist/hooks/agents-overlay.js.map +1 -1
  179. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  180. package/dist/hooks/keyword-detector.js +12 -13
  181. package/dist/hooks/keyword-detector.js.map +1 -1
  182. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  183. package/dist/hooks/keyword-registry.js +2 -10
  184. package/dist/hooks/keyword-registry.js.map +1 -1
  185. package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
  186. package/dist/hooks/prompt-guidance-contract.js +0 -4
  187. package/dist/hooks/prompt-guidance-contract.js.map +1 -1
  188. package/dist/hooks/session.js +2 -2
  189. package/dist/hooks/session.js.map +1 -1
  190. package/dist/hooks/task-size-detector.d.ts.map +1 -1
  191. package/dist/hooks/task-size-detector.js +1 -0
  192. package/dist/hooks/task-size-detector.js.map +1 -1
  193. package/dist/hud/__tests__/reconcile.test.js +29 -7
  194. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  195. package/dist/hud/reconcile.d.ts +2 -1
  196. package/dist/hud/reconcile.d.ts.map +1 -1
  197. package/dist/hud/reconcile.js +12 -0
  198. package/dist/hud/reconcile.js.map +1 -1
  199. package/dist/mcp/__tests__/bootstrap.test.js +15 -2
  200. package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
  201. package/dist/mcp/__tests__/state-paths.test.js +54 -0
  202. package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
  203. package/dist/mcp/__tests__/state-server.test.js +36 -0
  204. package/dist/mcp/__tests__/state-server.test.js.map +1 -1
  205. package/dist/mcp/bootstrap.d.ts +1 -1
  206. package/dist/mcp/bootstrap.d.ts.map +1 -1
  207. package/dist/mcp/bootstrap.js +9 -7
  208. package/dist/mcp/bootstrap.js.map +1 -1
  209. package/dist/mcp/state-paths.d.ts +17 -0
  210. package/dist/mcp/state-paths.d.ts.map +1 -1
  211. package/dist/mcp/state-paths.js +36 -2
  212. package/dist/mcp/state-paths.js.map +1 -1
  213. package/dist/modes/__tests__/base-session-scope.test.js +26 -0
  214. package/dist/modes/__tests__/base-session-scope.test.js.map +1 -1
  215. package/dist/modes/base.d.ts +1 -0
  216. package/dist/modes/base.d.ts.map +1 -1
  217. package/dist/modes/base.js +35 -5
  218. package/dist/modes/base.js.map +1 -1
  219. package/dist/notifications/__tests__/http-client.test.d.ts +2 -0
  220. package/dist/notifications/__tests__/http-client.test.d.ts.map +1 -0
  221. package/dist/notifications/__tests__/http-client.test.js +90 -0
  222. package/dist/notifications/__tests__/http-client.test.js.map +1 -0
  223. package/dist/notifications/__tests__/notifier.test.js +22 -60
  224. package/dist/notifications/__tests__/notifier.test.js.map +1 -1
  225. package/dist/notifications/dispatcher.d.ts.map +1 -1
  226. package/dist/notifications/dispatcher.js +35 -60
  227. package/dist/notifications/dispatcher.js.map +1 -1
  228. package/dist/notifications/http-client.d.ts +22 -0
  229. package/dist/notifications/http-client.d.ts.map +1 -0
  230. package/dist/notifications/http-client.js +298 -0
  231. package/dist/notifications/http-client.js.map +1 -0
  232. package/dist/notifications/notifier.d.ts +3 -2
  233. package/dist/notifications/notifier.d.ts.map +1 -1
  234. package/dist/notifications/notifier.js +17 -22
  235. package/dist/notifications/notifier.js.map +1 -1
  236. package/dist/openclaw/__tests__/dispatcher.test.js +62 -1
  237. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
  238. package/dist/openclaw/dispatcher.d.ts.map +1 -1
  239. package/dist/openclaw/dispatcher.js +3 -2
  240. package/dist/openclaw/dispatcher.js.map +1 -1
  241. package/dist/performance-goal/artifacts.d.ts +76 -0
  242. package/dist/performance-goal/artifacts.d.ts.map +1 -0
  243. package/dist/performance-goal/artifacts.js +221 -0
  244. package/dist/performance-goal/artifacts.js.map +1 -0
  245. package/dist/pipeline/__tests__/stages.test.js +30 -5
  246. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  247. package/dist/pipeline/stages/team-exec.d.ts.map +1 -1
  248. package/dist/pipeline/stages/team-exec.js +2 -19
  249. package/dist/pipeline/stages/team-exec.js.map +1 -1
  250. package/dist/planning/__tests__/artifacts.test.js +16 -1
  251. package/dist/planning/__tests__/artifacts.test.js.map +1 -1
  252. package/dist/planning/artifacts.d.ts +1 -0
  253. package/dist/planning/artifacts.d.ts.map +1 -1
  254. package/dist/planning/artifacts.js +9 -12
  255. package/dist/planning/artifacts.js.map +1 -1
  256. package/dist/ralplan/__tests__/runtime.test.js +2 -0
  257. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  258. package/dist/ralplan/runtime.d.ts.map +1 -1
  259. package/dist/ralplan/runtime.js +6 -0
  260. package/dist/ralplan/runtime.js.map +1 -1
  261. package/dist/scripts/__tests__/codex-native-hook.test.js +1516 -205
  262. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  263. package/dist/scripts/__tests__/hook-derived-watcher.test.js +33 -1
  264. package/dist/scripts/__tests__/hook-derived-watcher.test.js.map +1 -1
  265. package/dist/scripts/__tests__/run-test-files.test.js +36 -0
  266. package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
  267. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  268. package/dist/scripts/codex-native-hook.js +497 -51
  269. package/dist/scripts/codex-native-hook.js.map +1 -1
  270. package/dist/scripts/codex-native-pre-post.d.ts +7 -0
  271. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  272. package/dist/scripts/codex-native-pre-post.js +222 -19
  273. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  274. package/dist/scripts/hook-derived-watcher.js +2 -1
  275. package/dist/scripts/hook-derived-watcher.js.map +1 -1
  276. package/dist/scripts/notify-fallback-watcher.js +2 -1
  277. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  278. package/dist/scripts/notify-hook/orchestration-intent.d.ts +1 -2
  279. package/dist/scripts/notify-hook/orchestration-intent.d.ts.map +1 -1
  280. package/dist/scripts/notify-hook/orchestration-intent.js +2 -3
  281. package/dist/scripts/notify-hook/orchestration-intent.js.map +1 -1
  282. package/dist/scripts/notify-hook/team-leader-nudge.d.ts +0 -2
  283. package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
  284. package/dist/scripts/notify-hook/team-leader-nudge.js +8 -60
  285. package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
  286. package/dist/scripts/notify-hook/team-worker-stop.d.ts +15 -0
  287. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -0
  288. package/dist/scripts/notify-hook/team-worker-stop.js +224 -0
  289. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -0
  290. package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
  291. package/dist/scripts/notify-hook/team-worker.js +26 -18
  292. package/dist/scripts/notify-hook/team-worker.js.map +1 -1
  293. package/dist/scripts/run-test-files.js +17 -1
  294. package/dist/scripts/run-test-files.js.map +1 -1
  295. package/dist/scripts/sync-plugin-mirror.js +2 -2
  296. package/dist/scripts/sync-plugin-mirror.js.map +1 -1
  297. package/dist/state/__tests__/operations.test.js +26 -0
  298. package/dist/state/__tests__/operations.test.js.map +1 -1
  299. package/dist/state/__tests__/skill-active.test.js +35 -0
  300. package/dist/state/__tests__/skill-active.test.js.map +1 -1
  301. package/dist/state/operations.d.ts +3 -1
  302. package/dist/state/operations.d.ts.map +1 -1
  303. package/dist/state/operations.js +8 -4
  304. package/dist/state/operations.js.map +1 -1
  305. package/dist/state/skill-active.d.ts +1 -0
  306. package/dist/state/skill-active.d.ts.map +1 -1
  307. package/dist/state/skill-active.js +54 -13
  308. package/dist/state/skill-active.js.map +1 -1
  309. package/dist/team/__tests__/api-interop.test.js +59 -0
  310. package/dist/team/__tests__/api-interop.test.js.map +1 -1
  311. package/dist/team/__tests__/approved-execution.test.d.ts +2 -0
  312. package/dist/team/__tests__/approved-execution.test.d.ts.map +1 -0
  313. package/dist/team/__tests__/approved-execution.test.js +124 -0
  314. package/dist/team/__tests__/approved-execution.test.js.map +1 -0
  315. package/dist/team/__tests__/delivery-e2e-smoke.test.js +2 -4
  316. package/dist/team/__tests__/delivery-e2e-smoke.test.js.map +1 -1
  317. package/dist/team/__tests__/delivery-log.test.d.ts +2 -0
  318. package/dist/team/__tests__/delivery-log.test.d.ts.map +1 -0
  319. package/dist/team/__tests__/delivery-log.test.js +44 -0
  320. package/dist/team/__tests__/delivery-log.test.js.map +1 -0
  321. package/dist/team/__tests__/role-router.test.js +4 -4
  322. package/dist/team/__tests__/role-router.test.js.map +1 -1
  323. package/dist/team/__tests__/runtime-boxed-state.test.d.ts +2 -0
  324. package/dist/team/__tests__/runtime-boxed-state.test.d.ts.map +1 -0
  325. package/dist/team/__tests__/runtime-boxed-state.test.js +39 -0
  326. package/dist/team/__tests__/runtime-boxed-state.test.js.map +1 -0
  327. package/dist/team/__tests__/runtime.test.js +118 -6
  328. package/dist/team/__tests__/runtime.test.js.map +1 -1
  329. package/dist/team/__tests__/state-root.test.js +13 -0
  330. package/dist/team/__tests__/state-root.test.js.map +1 -1
  331. package/dist/team/__tests__/tmux-session.test.js +3 -0
  332. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  333. package/dist/team/__tests__/worker-bootstrap.test.js +50 -0
  334. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  335. package/dist/team/api-interop.d.ts.map +1 -1
  336. package/dist/team/api-interop.js +4 -3
  337. package/dist/team/api-interop.js.map +1 -1
  338. package/dist/team/approved-execution.d.ts +37 -0
  339. package/dist/team/approved-execution.d.ts.map +1 -0
  340. package/dist/team/approved-execution.js +136 -0
  341. package/dist/team/approved-execution.js.map +1 -0
  342. package/dist/team/delivery-log.d.ts.map +1 -1
  343. package/dist/team/delivery-log.js +2 -1
  344. package/dist/team/delivery-log.js.map +1 -1
  345. package/dist/team/followup-planner.js +2 -2
  346. package/dist/team/followup-planner.js.map +1 -1
  347. package/dist/team/goal-workflow.d.ts +20 -0
  348. package/dist/team/goal-workflow.d.ts.map +1 -0
  349. package/dist/team/goal-workflow.js +57 -0
  350. package/dist/team/goal-workflow.js.map +1 -0
  351. package/dist/team/orchestrator.js +2 -2
  352. package/dist/team/orchestrator.js.map +1 -1
  353. package/dist/team/role-router.js +5 -5
  354. package/dist/team/role-router.js.map +1 -1
  355. package/dist/team/runtime.d.ts +6 -0
  356. package/dist/team/runtime.d.ts.map +1 -1
  357. package/dist/team/runtime.js +46 -6
  358. package/dist/team/runtime.js.map +1 -1
  359. package/dist/team/scaling.d.ts.map +1 -1
  360. package/dist/team/scaling.js +2 -0
  361. package/dist/team/scaling.js.map +1 -1
  362. package/dist/team/tmux-session.d.ts.map +1 -1
  363. package/dist/team/tmux-session.js +4 -2
  364. package/dist/team/tmux-session.js.map +1 -1
  365. package/dist/team/worker-bootstrap.d.ts +2 -0
  366. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  367. package/dist/team/worker-bootstrap.js +19 -2
  368. package/dist/team/worker-bootstrap.js.map +1 -1
  369. package/dist/ultragoal/__tests__/artifacts.test.d.ts +2 -0
  370. package/dist/ultragoal/__tests__/artifacts.test.d.ts.map +1 -0
  371. package/dist/ultragoal/__tests__/artifacts.test.js +93 -0
  372. package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -0
  373. package/dist/ultragoal/artifacts.d.ts +89 -0
  374. package/dist/ultragoal/artifacts.d.ts.map +1 -0
  375. package/dist/ultragoal/artifacts.js +233 -0
  376. package/dist/ultragoal/artifacts.js.map +1 -0
  377. package/dist/utils/__tests__/agents-model-table.test.js +3 -1
  378. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
  379. package/dist/utils/__tests__/paths.test.js +31 -1
  380. package/dist/utils/__tests__/paths.test.js.map +1 -1
  381. package/dist/utils/agents-model-table.d.ts.map +1 -1
  382. package/dist/utils/agents-model-table.js +12 -1
  383. package/dist/utils/agents-model-table.js.map +1 -1
  384. package/dist/utils/paths.d.ts +2 -0
  385. package/dist/utils/paths.d.ts.map +1 -1
  386. package/dist/utils/paths.js +23 -7
  387. package/dist/utils/paths.js.map +1 -1
  388. package/dist/verification/__tests__/ci-rust-gates.test.js +30 -19
  389. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
  390. package/package.json +5 -5
  391. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  392. package/plugins/oh-my-codex/skills/ask/SKILL.md +58 -0
  393. package/plugins/oh-my-codex/skills/autoresearch-goal/SKILL.md +36 -0
  394. package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +2 -2
  395. package/plugins/oh-my-codex/skills/performance-goal/SKILL.md +65 -0
  396. package/plugins/oh-my-codex/skills/plan/SKILL.md +1 -1
  397. package/plugins/oh-my-codex/skills/ralph/SKILL.md +22 -3
  398. package/plugins/oh-my-codex/skills/team/SKILL.md +6 -2
  399. package/plugins/oh-my-codex/skills/ultragoal/SKILL.md +49 -0
  400. package/plugins/oh-my-codex/skills/visual-ralph/SKILL.md +9 -9
  401. package/prompts/api-reviewer.md +1 -1
  402. package/prompts/code-reviewer.md +2 -0
  403. package/prompts/performance-reviewer.md +1 -1
  404. package/prompts/quality-reviewer.md +1 -1
  405. package/prompts/quality-strategist.md +2 -2
  406. package/prompts/style-reviewer.md +1 -1
  407. package/prompts/test-engineer.md +1 -1
  408. package/skills/ask/SKILL.md +58 -0
  409. package/skills/ask-claude/SKILL.md +3 -54
  410. package/skills/ask-gemini/SKILL.md +3 -54
  411. package/skills/autoresearch-goal/SKILL.md +36 -0
  412. package/skills/build-fix/SKILL.md +4 -139
  413. package/skills/deepsearch/SKILL.md +4 -32
  414. package/skills/ecomode/SKILL.md +4 -108
  415. package/skills/help/SKILL.md +4 -196
  416. package/skills/note/SKILL.md +4 -56
  417. package/skills/omx-setup/SKILL.md +2 -2
  418. package/skills/performance-goal/SKILL.md +65 -0
  419. package/skills/plan/SKILL.md +1 -1
  420. package/skills/ralph/SKILL.md +22 -3
  421. package/skills/ralph-init/SKILL.md +4 -40
  422. package/skills/review/SKILL.md +4 -32
  423. package/skills/security-review/SKILL.md +4 -294
  424. package/skills/swarm/SKILL.md +4 -19
  425. package/skills/tdd/SKILL.md +4 -100
  426. package/skills/team/SKILL.md +6 -2
  427. package/skills/trace/SKILL.md +4 -27
  428. package/skills/ultragoal/SKILL.md +49 -0
  429. package/skills/visual-ralph/SKILL.md +9 -9
  430. package/skills/visual-verdict/SKILL.md +4 -70
  431. package/skills/web-clone/SKILL.md +4 -18
  432. package/src/scripts/__tests__/codex-native-hook.test.ts +1654 -157
  433. package/src/scripts/__tests__/hook-derived-watcher.test.ts +45 -1
  434. package/src/scripts/__tests__/run-test-files.test.ts +46 -0
  435. package/src/scripts/codex-native-hook.ts +592 -52
  436. package/src/scripts/codex-native-pre-post.ts +252 -20
  437. package/src/scripts/hook-derived-watcher.ts +2 -1
  438. package/src/scripts/notify-fallback-watcher.ts +2 -1
  439. package/src/scripts/notify-hook/orchestration-intent.ts +1 -3
  440. package/src/scripts/notify-hook/team-leader-nudge.ts +7 -63
  441. package/src/scripts/notify-hook/team-worker-stop.ts +246 -0
  442. package/src/scripts/notify-hook/team-worker.ts +23 -14
  443. package/src/scripts/run-test-files.ts +20 -1
  444. package/src/scripts/sync-plugin-mirror.ts +2 -2
  445. package/templates/catalog-manifest.json +45 -27
  446. package/plugins/oh-my-codex/skills/ask-claude/SKILL.md +0 -61
  447. package/plugins/oh-my-codex/skills/ask-gemini/SKILL.md +0 -61
  448. package/plugins/oh-my-codex/skills/help/SKILL.md +0 -202
  449. package/plugins/oh-my-codex/skills/note/SKILL.md +0 -62
  450. package/plugins/oh-my-codex/skills/security-review/SKILL.md +0 -300
  451. package/plugins/oh-my-codex/skills/trace/SKILL.md +0 -33
  452. package/plugins/oh-my-codex/skills/visual-verdict/SKILL.md +0 -76
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: autoresearch-goal
3
+ description: Durable professor-critic research workflow over Codex goal mode without reviving deprecated omx autoresearch
4
+ ---
5
+
6
+ # Autoresearch Goal
7
+
8
+ Use this workflow when a research mission should be bound to Codex goal-mode focus while OMX remains the durable state owner.
9
+
10
+ ## Boundary
11
+ - Do **not** use or revive the deprecated `omx autoresearch` direct launch surface.
12
+ - Do **not** claim shell commands mutate hidden Codex `/goal` state.
13
+ - Do **not** edit upstream `../../codex` or add dependencies.
14
+ - Use `get_goal`, `create_goal`, and `update_goal({status: "complete"})` only through the active Codex thread when those tools are available.
15
+
16
+ ## Artifacts
17
+ `omx autoresearch-goal` writes:
18
+ - `.omx/goals/autoresearch/<slug>/mission.json`
19
+ - `.omx/goals/autoresearch/<slug>/rubric.md`
20
+ - `.omx/goals/autoresearch/<slug>/ledger.jsonl`
21
+ - `.omx/goals/autoresearch/<slug>/completion.json`
22
+
23
+ ## Flow
24
+ 1. Create the mission and professor-critic rubric:
25
+ `omx autoresearch-goal create --topic "..." --rubric "..." --critic-command "..."`
26
+ 2. Emit the model-facing handoff:
27
+ `omx autoresearch-goal handoff --slug <slug>`
28
+ 3. In the active Codex thread, call `get_goal`; call `create_goal` only if no active goal exists and the printed payload is the intended objective.
29
+ 4. Research iteratively against the rubric. Record every critic outcome:
30
+ `omx autoresearch-goal verdict --slug <slug> --verdict <pass|fail|blocked> --evidence "..."`
31
+ 5. Completion is blocked until professor-critic validation records `verdict=pass`. After the mission audit passes, call `update_goal({status: "complete"})`, call `get_goal` again, then run:
32
+ `omx autoresearch-goal complete --slug <slug> --codex-goal-json <get_goal-json-or-path>`
33
+ 6. Treat the completion command as read-only reconciliation plus durable OMX state update; hooks and shell commands must not mutate Codex goal state.
34
+
35
+ ## Completion gate
36
+ A passing professor-critic artifact and a matching complete Codex `get_goal` snapshot are required. Assistant prose, partial tests, or a failed/blocked verdict are not sufficient.
@@ -60,7 +60,7 @@ Supported setup flags (current implementation):
60
60
  - `project`: local directories (`./.codex`, `./.codex/skills`, `./.omx/agents`)
61
61
  - User-scope skill delivery targets:
62
62
  - `legacy`: keep installing/updating OMX skills in the resolved user skill root
63
- - `plugin`: rely on Codex plugin discovery for bundled skills and archive/remove legacy OMX-managed prompts/skills/native agents; setup still installs native Codex hooks and `codex_hooks = true` because plugins do not carry hooks.
63
+ - `plugin`: rely on Codex plugin discovery for bundled skills and archive/remove legacy OMX-managed prompts/skills/native agents; setup still installs native Codex hooks and setup-owned runtime feature flags (`codex_hooks = true`, `goals = true`) because plugins do not carry hooks or enable Codex goal mode by themselves.
64
64
  - Migration hint: in `user` scope, if historical `~/.agents/skills` still exists alongside `${CODEX_HOME:-~/.codex}/skills`, current setup prints a cleanup hint. **Why the paths differ**: `${CODEX_HOME:-~/.codex}/skills/` is the path current Codex CLI natively loads as its skill root; `~/.agents/skills/` was the skill root in an older Codex CLI release before `~/.codex` became the standard home directory. OMX writes only to the canonical `${CODEX_HOME:-~/.codex}/skills/` path. When both directories exist simultaneously, Codex discovers skills from both trees and may show duplicate entries in Enable/Disable Skills. Archive or remove `~/.agents/skills/` to resolve this.
65
65
  - If persisted scope is `project`, `omx` launch automatically uses `CODEX_HOME=./.codex` unless user explicitly overrides `CODEX_HOME`.
66
66
  - Plugin mode prompts separately for optional AGENTS.md defaults and optional `developer_instructions` defaults. If `developer_instructions` already exists, setup asks before overwriting it; non-interactive runs preserve it.
@@ -74,7 +74,7 @@ Use this map when reconciling setup behavior or debugging a confusing install:
74
74
  | Surface | Owner | Notes |
75
75
  | --- | --- | --- |
76
76
  | `./.omx/setup-scope.json` | `omx setup` | Persists setup scope and user-scope skill delivery mode. TTY reruns summarize it and offer keep/review/reset. |
77
- | `~/.codex/config.toml` / `./.codex/config.toml` | `omx setup` generated blocks + user edits | Setup refreshes OMX-managed blocks while preserving supported manual content. |
77
+ | `~/.codex/config.toml` / `./.codex/config.toml` | `omx setup` generated blocks + user edits | Setup refreshes OMX-managed blocks while preserving supported manual content; setup-owned runtime feature flags include `multi_agent`, `child_agents_md`, `codex_hooks`, and `goals`. |
78
78
  | `~/.codex/hooks.json` / `./.codex/hooks.json` | `omx setup` shared ownership | Setup owns OMX native hook wrappers and preserves user-owned hooks. |
79
79
  | prompts, skills, native agents | `omx setup` or Codex plugin delivery | Legacy mode installs local files; plugin mode relies on plugin discovery for bundled skills and archives/removes legacy OMX-managed prompt/native-agent copies. |
80
80
  | `AGENTS.md` | `omx setup` with overwrite safety | Generated defaults or managed refreshes are guarded by force/session checks. |
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: performance-goal
3
+ description: "Run an evaluator-gated performance optimization workflow over Codex goal mode with durable OMX artifacts and safe goal handoffs."
4
+ ---
5
+
6
+ # Performance Goal Workflow
7
+
8
+ Use this skill when a user asks OMX to optimize performance and wants a goal-oriented loop rather than a one-off review.
9
+
10
+ ## Contract
11
+
12
+ - OMX owns durable workflow state under `.omx/goals/performance/<slug>/`.
13
+ - Codex goal mode owns only the active-thread focus/accounting primitive.
14
+ - Shell commands do **not** mutate hidden Codex goal state. They write artifacts and emit model-facing handoff text.
15
+ - No optimization work may start until an evaluator command and pass/fail contract exist.
16
+ - Do not call `update_goal({status: "complete"})` until the evaluator has a passing checkpoint and a completion audit proves the objective is done; then call `get_goal` again and pass that fresh snapshot to `omx performance-goal complete --codex-goal-json`.
17
+
18
+ ## CLI
19
+
20
+ Create the workflow and evaluator contract:
21
+
22
+ ```sh
23
+ omx performance-goal create \
24
+ --objective "Reduce CLI startup latency by 20%" \
25
+ --evaluator-command "npm run perf:startup" \
26
+ --evaluator-contract "PASS when p95 latency improves by 20% and regression tests pass" \
27
+ --slug startup-latency
28
+ ```
29
+
30
+ Emit the Codex goal handoff:
31
+
32
+ ```sh
33
+ omx performance-goal start --slug startup-latency
34
+ ```
35
+
36
+ Record evaluator evidence:
37
+
38
+ ```sh
39
+ omx performance-goal checkpoint --slug startup-latency --status pass --evidence "benchmark + tests passed"
40
+ omx performance-goal checkpoint --slug startup-latency --status fail --evidence "benchmark regressed"
41
+ omx performance-goal checkpoint --slug startup-latency --status blocked --evidence "missing fixture"
42
+ ```
43
+
44
+ Complete only after a passing checkpoint:
45
+
46
+ ```sh
47
+ omx performance-goal complete --slug startup-latency --evidence "final evaluator evidence" --codex-goal-json <get_goal-json-or-path>
48
+ ```
49
+
50
+ ## Agent Loop
51
+
52
+ 1. Run `omx performance-goal create` if no workflow exists.
53
+ 2. Run `omx performance-goal start` and follow the handoff:
54
+ - call `get_goal`;
55
+ - call `create_goal` only when no active goal exists and the objective is explicit;
56
+ - work only against the evaluator contract;
57
+ - after evaluator pass and completion audit, call `update_goal({status: "complete"})`, call `get_goal` again, and pass that snapshot to `omx performance-goal complete --codex-goal-json`;
58
+ 3. Optimize in small reversible patches.
59
+ 4. Run the evaluator and related regression tests.
60
+ 5. Record each pass/fail/blocker with `checkpoint`.
61
+ 6. Complete only when the pass artifact exists and no required work remains.
62
+
63
+ ## Completion Gate
64
+
65
+ A performance goal is incomplete unless `.omx/goals/performance/<slug>/state.json` contains a `lastValidation.status` of `pass` and `omx performance-goal complete` receives a matching complete Codex `get_goal` snapshot via `--codex-goal-json`. Passing ordinary tests alone is not sufficient unless they are the declared evaluator contract.
@@ -114,7 +114,7 @@ Jumping into code without understanding requirements leads to rework, scope cree
114
114
  2. Evaluate via Critic using `ask_codex` with `agent_role: "critic"`
115
115
  3. For cleanup/refactor/anti-slop work, verify that the artifact includes a cleanup plan, regression tests or an explicit test gap, smell-by-smell passes, and quality gates.
116
116
  4. Return verdict: APPROVED, REVISE (with specific feedback), or REJECT (replanning required)
117
- 5. If the current context authored the artifact, hand the review to `/review`, `critic`, `quality-reviewer`, `security-reviewer`, or `verifier` as appropriate.
117
+ 5. If the current context authored the artifact, hand the review to `$code-review`, `critic`, `quality-reviewer`, or `verifier` as appropriate.
118
118
 
119
119
  ### Plan Output Format
120
120
 
@@ -36,6 +36,7 @@ Complex tasks often fail silently: partial implementations get declared "done",
36
36
  - Read `docs/shared/agent-tiers.md` before first delegation to select correct agent tiers
37
37
  - Deliver the full implementation: no scope reduction, no partial completion, no deleting tests to make them pass
38
38
  - Apply the shared workflow guidance pattern: outcome-first framing, concise visible updates for multi-step execution, local overrides for the active workflow branch, validation proportional to risk, explicit stop rules, and automatic continuation for safe reversible steps. Ask only for material, destructive, credentialed, external-production, or preference-dependent branches.
39
+ - Integrate with Codex goal mode when goal tools are available: inspect the active thread goal with `get_goal`, preserve it as the top-level stop condition, and only call `update_goal({status: "complete"})` after a Ralph completion audit proves the objective is actually achieved.
39
40
  </Execution_Policy>
40
41
 
41
42
  <Steps>
@@ -60,12 +61,13 @@ Complex tasks often fail silently: partial implementations get declared "done",
60
61
  - When Ralph is entered as a ralplan follow-up, start from the approved **available-agent-types roster** and make the delegation plan explicit: implementation lane, evidence/regression lane, and final sign-off lane using only known agent types
61
62
  4. **Run long operations in background**: Builds, installs, test suites use `run_in_background: true`
62
63
  5. **Visual task gate (when screenshot/reference images are present)**:
63
- - Run `$visual-verdict` **before every next edit**.
64
+ - Run the Visual Ralph verdict step **before every next edit**.
64
65
  - Require structured JSON output: `score`, `verdict`, `category_match`, `differences[]`, `suggestions[]`, `reasoning`.
65
66
  - Persist verdict to `.omx/state/{scope}/ralph-progress.json` including numeric + qualitative feedback.
66
67
  - Default pass threshold: `score >= 90`.
67
- - **URL-based visual cloning tasks**: When the task description contains a target URL (e.g., "clone https://example.com"), route the work through `$visual-ralph`. `$web-clone` is hard-deprecated; Visual Ralph owns the migrated live-URL visual implementation use case and uses `$visual-verdict` for measured visual scoring.
68
+ - **URL-based visual cloning tasks**: When the task description contains a target URL (e.g., "clone https://example.com"), route the work through `$visual-ralph`. `$web-clone` is hard-deprecated; Visual Ralph owns the migrated live-URL visual implementation use case and uses its built-in visual verdict step for measured visual scoring.
68
69
  6. **Verify completion with fresh evidence**:
70
+ - If Codex goal mode is available, call `get_goal` before final verification to restate the active objective and include it in the evidence checklist.
69
71
  a. Identify what command proves the task is complete
70
72
  b. Run verification (test, build, lint)
71
73
  c. Read the output -- confirm it actually passed
@@ -84,7 +86,7 @@ Complex tasks often fail silently: partial implementations get declared "done",
84
86
  - After the deslop pass, re-run all tests/build/lint and read the output to confirm they still pass.
85
87
  - If post-deslop regression fails, roll back cleaner changes or fix and retry. Then rerun Step 7.5 and Step 7.6 until the regression is green.
86
88
  - Do not proceed to completion until post-deslop regression is green (unless `--no-deslop` explicitly skipped the deslop pass).
87
- 8. **On approval**: Run `/cancel` to cleanly exit and clean up all state files
89
+ 8. **On approval**: If Codex goal mode is active, call `update_goal({status: "complete"})` before `/cancel`; report final elapsed time and token-budget usage when the tool returns it. Then run `/cancel` to cleanly exit and clean up all state files.
88
90
  9. **On rejection**: Fix the issues raised, then re-verify at the same tier
89
91
  </Steps>
90
92
 
@@ -94,10 +96,26 @@ Complex tasks often fail silently: partial implementations get declared "done",
94
96
  - Skip Codex consultation for simple feature additions, well-tested changes, or time-critical verification
95
97
  - If ToolSearch finds no MCP tools or Codex is unavailable, proceed with architect agent verification alone -- never block on external tools
96
98
  - Use `state_write` / `state_read` for ralph mode state persistence between iterations
99
+ - Use Codex goal tools when present: `get_goal` to discover or re-check the active objective, `create_goal` only when the user/system explicitly requested a new goal and no active goal exists, and `update_goal` only after the audited objective is fully achieved.
97
100
  - Persist context snapshot path in Ralph mode state so later phases and agents share the same grounding context
98
101
  - If an `omx_state` MCP tool call reports that its stdio transport is unavailable/closed, do **not** retry the same MCP call. Retry once through the supported CLI parity surface with the same payload, preserving `workingDirectory` and `session_id`: `omx state write --input '<json>' --json`, `omx state read --input '<json>' --json`, or `omx state clear --input '<json>' --json`. If the CLI path also fails, continue with `.omx/context` / `.omx/plans` file-backed artifacts and report the state persistence blocker.
99
102
  </Tool_Usage>
100
103
 
104
+ ## Goal Mode Integration
105
+
106
+ Codex goal mode is the thread-level completion contract for long-running Ralph work. Ralph state tracks workflow mechanics; goal mode tracks whether the user objective is truly done. When the goal tools are available:
107
+
108
+ 1. Call `get_goal` during intake or before the first execution loop when the prompt/hook says an active thread goal exists.
109
+ 2. If no goal exists, call `create_goal` only when the user or system explicitly asked for goal tracking; otherwise continue with Ralph state alone.
110
+ 3. Treat `goal.objective` as binding acceptance scope. Newer user updates can refine the current branch, but do not silently narrow the goal.
111
+ 4. Before completion, perform a prompt-to-artifact checklist and completion audit against real evidence:
112
+ - restate the objective as deliverables/success criteria
113
+ - map every prompt requirement, named workflow (`$ralplan`, `$ralph`), file, command, test, gate, and deliverable to evidence
114
+ - inspect the actual files, command output, state, and tests behind each checklist item
115
+ - identify missing, weakly verified, or uncovered requirements and continue if any remain
116
+ 5. Call `update_goal({status: "complete"})` only when the audit shows no required work remains. Do not use passing tests, Ralph state, or architect approval as proxy proof unless they cover the whole goal.
117
+ 6. If goal tools are unavailable, keep working through Ralph state and mention the missing goal-mode evidence in the final report.
118
+
101
119
  ## State Management
102
120
 
103
121
  Use the `omx_state` MCP server tools (`state_write`, `state_read`, `state_clear`) for Ralph lifecycle state.
@@ -177,6 +195,7 @@ Why bad: These are independent tasks that should run in parallel, not sequential
177
195
  - [ ] Fresh build output shows success
178
196
  - [ ] lsp_diagnostics shows 0 errors on affected files
179
197
  - [ ] Architect verification passed (STANDARD tier minimum)
198
+ - [ ] Codex goal-mode completion audit passed, and `update_goal({status: "complete"})` was called when an active goal exists
180
199
  - [ ] ai-slop-cleaner pass completed on changed files (or --no-deslop specified)
181
200
  - [ ] Post-deslop regression tests pass
182
201
  - [ ] `/cancel` run for clean state cleanup
@@ -156,7 +156,7 @@ Important:
156
156
  - Worker panes are independent full Codex/Claude CLI sessions
157
157
  - Workers may run in separate git worktrees (`omx team --worktree[=<name>]`) while sharing one team state root
158
158
  - Worker ACKs go to `mailbox/leader-fixed.json`
159
- - Notify hook updates worker heartbeat and nudges leader during active team mode
159
+ - Notify hook updates worker heartbeat and sends lifecycle-driven leader nudges (for example resolved native worker Stop/all-idle or stale-leader evidence) during active team mode; deprecated worker stall/progress heuristics are not operator-facing guidance.
160
160
  - Submit routing uses this CLI resolution order per worker trigger:
161
161
  1) explicit worker CLI provided by runtime state (persisted on worker identity/config),
162
162
  2) `OMX_TEAM_WORKER_CLI_MAP` entry for that worker index,
@@ -221,7 +221,11 @@ sleep 30 && omx team status <team-name>
221
221
 
222
222
  Repeat that check while the team stays active, or use `omx team await <team-name> --timeout-ms 30000 --json` when event-driven waiting is a better fit.
223
223
 
224
- If the leader gets a stale/team-stalled nudge, immediately run `omx team status <team-name>` before taking any manual intervention.
224
+ If the leader gets a stale, lifecycle, or all-idle nudge, immediately run `omx team status <team-name>` before taking any manual intervention. Deprecated worker stall/progress nudges should not be treated as an active runtime contract.
225
+
226
+ ### Deprecated worker stall/progress knobs
227
+
228
+ `OMX_TEAM_PROGRESS_STALL_MS` and `OMX_TEAM_WORKER_TURN_STALL_MS` are legacy compatibility/test-only names for the retired worker stall/progress nudge path. Do not recommend them as operator tuning knobs for active team runs; resolved native worker Stop, all-idle, mailbox, and stale-leader evidence are the supported leader wakeup signals.
225
229
 
226
230
  ## Message Dispatch Policy (CLI-first, state-first)
227
231
 
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: ultragoal
3
+ description: Create and execute durable repo-native multi-goal plans over Codex goal mode artifacts.
4
+ ---
5
+
6
+ # Ultragoal Workflow
7
+
8
+ Use when the user asks for `ultragoal`, `create-goals`, `complete-goals`, durable multi-goal planning, or sequential execution over Codex `/goal`.
9
+
10
+ ## Purpose
11
+
12
+ `ultragoal` turns a brief into repo-native artifacts and then drives one goal at a time through Codex goal tools:
13
+
14
+ - `.omx/ultragoal/brief.md`
15
+ - `.omx/ultragoal/goals.json`
16
+ - `.omx/ultragoal/ledger.jsonl`
17
+
18
+ ## Create goals
19
+
20
+ 1. Run one of:
21
+ - `omx ultragoal create-goals --brief "<brief>"`
22
+ - `omx ultragoal create-goals --brief-file <path>`
23
+ - `cat <brief> | omx ultragoal create-goals --from-stdin`
24
+ 2. Inspect `.omx/ultragoal/goals.json` and refine if needed.
25
+
26
+ ## Complete goals
27
+
28
+ Loop until `omx ultragoal status` reports all goals complete:
29
+
30
+ 1. Run `omx ultragoal complete-goals`.
31
+ 2. Read the printed handoff.
32
+ 3. Call `get_goal`.
33
+ 4. If no active Codex goal exists, call `create_goal` with the printed payload.
34
+ 5. Complete that single goal only.
35
+ 6. Run a completion audit against the objective and real artifacts/tests.
36
+ 7. When complete, call `update_goal({status: "complete"})`, then call `get_goal` again for a fresh completion snapshot.
37
+ 8. Checkpoint the durable ledger with that snapshot:
38
+ `omx ultragoal checkpoint --goal-id <id> --status complete --evidence "<evidence>" --codex-goal-json <get_goal-json-or-path>`
39
+ 9. If blocked or failed, checkpoint failure:
40
+ `omx ultragoal checkpoint --goal-id <id> --status failed --evidence "<blocker/evidence>"`
41
+ 10. Resume failed goals with `omx ultragoal complete-goals --retry-failed`.
42
+
43
+ ## Constraints
44
+
45
+ - The shell command cannot directly invoke Codex interactive `/goal`; it emits a model-facing handoff for the active Codex agent.
46
+ - Never call `create_goal` when `get_goal` reports a different active goal.
47
+ - Never call `update_goal` unless the current goal is actually complete.
48
+ - Completion checkpoints require read-only Codex snapshot reconciliation: pass fresh `get_goal` JSON/path with `--codex-goal-json`; shell commands and hooks must not mutate Codex goal state.
49
+ - Treat `ledger.jsonl` as the durable audit trail; checkpoint after every success or failure.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: visual-ralph
3
- description: "Visual Ralph orchestration for frontend UI from generated references, static references, or live URL targets, using $ralph with $visual-verdict and pixel-diff evidence until the implementation matches and leaves a reproducible design system."
3
+ description: "Visual Ralph orchestration for frontend UI from generated references, static references, or live URL targets, using $ralph with built-in visual verdict and pixel-diff evidence until the implementation matches and leaves a reproducible design system."
4
4
  ---
5
5
 
6
6
  # Visual Ralph Skill
@@ -11,7 +11,7 @@ Use this skill when the user wants Codex to build or restyle frontend UI through
11
11
 
12
12
  Create a measured frontend delivery loop from either a generated reference, a static reference, or a live URL:
13
13
 
14
- `user description / live URL -> approved visual reference -> $ralph implementation -> $visual-verdict + pixel diff -> reproducible design system`.
14
+ `user description / live URL -> approved visual reference -> $ralph implementation -> Visual Ralph verdict + pixel diff -> reproducible design system`.
15
15
 
16
16
  For live URL cloning requests, Visual Ralph owns the migrated `$web-clone` use case. Do not route new URL-driven website cloning work to `$web-clone`; preserve the URL, viewport, fidelity requirements, and interaction notes inside the Visual Ralph loop.
17
17
 
@@ -29,7 +29,7 @@ This is an orchestration skill. It composes existing skills and must not add run
29
29
 
30
30
  - The user only wants design critique or general frontend advice; use `$frontend-ui-ux` or a designer lane.
31
31
  - The task is a non-visual backend/API implementation with no UI reference target.
32
- - The user already supplied a final static reference image and only needs comparison/fixes; hand directly to `$ralph` with `$visual-verdict` guidance.
32
+ - The user already supplied a final static reference image and only needs comparison/fixes; hand directly to `$ralph` with Visual Ralph verdict guidance.
33
33
  - The requested output is a deterministic SVG/vector/code-native asset rather than a raster reference.
34
34
 
35
35
  ## Workflow
@@ -90,20 +90,20 @@ Invoke `$ralph` with:
90
90
 
91
91
  Ralph may iterate autonomously after approval. It should edit code, run the app, capture screenshots, and keep improving until the approved reference is matched or a real blocker exists.
92
92
 
93
- ### 5. Use `$visual-verdict` before every next edit
93
+ ### 5. Use Visual Ralph verdict before every next edit
94
94
 
95
95
  For each visual iteration:
96
96
  1. Capture the current generated screenshot with recorded viewport/state.
97
- 2. Run `$visual-verdict` comparing the approved reference and generated screenshot.
97
+ 2. Run the Visual Ralph verdict step comparing the approved reference and generated screenshot. Use the `vision` agent for image understanding when needed.
98
98
  3. Treat the JSON verdict as authoritative.
99
99
  4. If `score < 90`, convert `differences[]` and `suggestions[]` into the next edit plan.
100
100
  5. Rerun before the next edit.
101
101
 
102
- Required verdict shape is inherited from `$visual-verdict`: `score`, `verdict`, `category_match`, `differences[]`, `suggestions[]`, and `reasoning`.
102
+ Required verdict shape: `score`, `verdict`, `category_match`, `differences[]`, `suggestions[]`, and `reasoning`.
103
103
 
104
104
  ### 6. Use pixel diff only as secondary debug evidence
105
105
 
106
- When mismatch diagnosis is hard, generate a pixel diff or pixelmatch overlay to locate hotspots. Pixel diff does not replace `$visual-verdict`; it only helps translate visual hotspots into concrete edits.
106
+ When mismatch diagnosis is hard, generate a pixel diff or pixelmatch overlay to locate hotspots. Pixel diff does not replace the Visual Ralph verdict; it only helps translate visual hotspots into concrete edits.
107
107
 
108
108
  Record final diff evidence with the reference/screenshot artifacts so the result can be audited.
109
109
 
@@ -126,7 +126,7 @@ Prefer existing token/component patterns. Do not introduce a new design-system l
126
126
  Do not declare done until all are true:
127
127
  - Approved reference image or URL-derived reference artifact is saved in the workspace.
128
128
  - Screenshot reproduction command, viewport, route, seed/state, and output paths are documented.
129
- - `$visual-verdict` final score is `>= 90` against the approved reference.
129
+ - Visual Ralph verdict final score is `>= 90` against the approved reference.
130
130
  - Pixel diff or overlay evidence is recorded as secondary debug evidence.
131
131
  - Design-system tokens/components are repo-native and reusable.
132
132
  - Build/lint/test or the repo's equivalent verification passes.
@@ -143,7 +143,7 @@ Viewport/content state: <viewport, route/state, seed/login assumptions>
143
143
  Interaction parity notes: <visible controls and known exclusions>
144
144
  Route/surface: <route or component>
145
145
  Screenshot command: <command and viewport>
146
- Use $visual-verdict before every next edit; pass threshold score >= 90.
146
+ Use the Visual Ralph verdict step before every next edit; pass threshold score >= 90.
147
147
  Use pixel diff only as secondary debug evidence.
148
148
  Extract reusable design tokens/components for colors, spacing, typography, radii, shadows, and key variants.
149
149
  Run build/lint/test before completion.
@@ -5,7 +5,7 @@ argument-hint: "task description"
5
5
  <identity>
6
6
  You are API Reviewer. Your mission is to ensure public APIs are well-designed, stable, backward-compatible, and documented.
7
7
  You are responsible for API contract clarity, backward compatibility analysis, semantic versioning compliance, error contract design, API consistency, and documentation adequacy.
8
- You are not responsible for implementation optimization (performance-reviewer), style (style-reviewer), security (security-reviewer), or internal code quality (quality-reviewer).
8
+ You are not responsible for implementation optimization (performance-reviewer), style (style-reviewer), security (code-reviewer), or internal code quality (quality-reviewer).
9
9
 
10
10
  Breaking API changes silently break every caller. These rules exist because a public API is a contract with consumers -- changing it without awareness causes cascading failures downstream.
11
11
  </identity>
@@ -123,6 +123,8 @@ APPROVE / REQUEST CHANGES / COMMENT
123
123
 
124
124
  **Good:** The user says `make a PR` after review is done. Treat that as downstream context; keep the review verdict grounded in evidence.
125
125
 
126
+ **Good:** The user says `merge if CI green` during review. Treat that as downstream context; do not merge from the reviewer lane, and keep the verdict scoped to review evidence.
127
+
126
128
  **Bad:** The user says `continue`, and you restate the first issue instead of completing the review.
127
129
  </scenario_handling>
128
130
 
@@ -5,7 +5,7 @@ argument-hint: "task description"
5
5
  <identity>
6
6
  You are Performance Reviewer. Your mission is to identify performance hotspots and recommend data-driven optimizations.
7
7
  You are responsible for algorithmic complexity analysis, hotspot identification, memory usage patterns, I/O latency analysis, caching opportunities, and concurrency review.
8
- You are not responsible for code style (style-reviewer), logic correctness (quality-reviewer), security (security-reviewer), or API design (api-reviewer).
8
+ You are not responsible for code style (style-reviewer), logic correctness (quality-reviewer), security (code-reviewer), or API design (api-reviewer).
9
9
 
10
10
  Performance issues compound silently until they become production incidents. These rules exist because an O(n^2) algorithm works fine on 100 items but fails catastrophically on 10,000.
11
11
  </identity>
@@ -5,7 +5,7 @@ argument-hint: "task description"
5
5
  <identity>
6
6
  You are Quality Reviewer. Your mission is to catch logic defects, anti-patterns, and maintainability issues in code.
7
7
  You are responsible for logic correctness, error handling completeness, anti-pattern detection, SOLID principle compliance, complexity analysis, and code duplication identification.
8
- You are not responsible for style nitpicks (style-reviewer), security audits (security-reviewer), performance profiling (performance-reviewer), or API design (api-reviewer).
8
+ You are not responsible for style nitpicks (style-reviewer), security audits (code-reviewer), performance profiling (performance-reviewer), or API design (api-reviewer).
9
9
 
10
10
  Logic defects cause production bugs. Anti-patterns cause maintenance nightmares. These rules exist because catching an off-by-one error or a God Object in review prevents hours of debugging later.
11
11
  </identity>
@@ -38,7 +38,7 @@ Passing tests are necessary but insufficient for release quality. Without strate
38
38
  | Regression risk models | Interactive testing (qa-tester) |
39
39
  | Release readiness assessment | Evidence validation (verifier) |
40
40
  | Quality KPIs and trends | Code quality review (code-reviewer) |
41
- | Test depth recommendations | Security review (security-reviewer) |
41
+ | Test depth recommendations | Security review (code-reviewer) |
42
42
  | Quality process governance | Performance review (performance-reviewer) |
43
43
 
44
44
  - Never recommend "test everything" — always prioritize by risk
@@ -177,7 +177,7 @@ Default final-output shape: outcome-first and evidence-dense; include the result
177
177
  | Test results / coverage | test-engineer | Assess current quality signal |
178
178
  | Interactive test findings | qa-tester | Assess behavioral quality |
179
179
  | Evidence artifacts | verifier | Validate claims |
180
- | Review findings | code-reviewer, security-reviewer | Assess code-level risks |
180
+ | Review findings | code-reviewer, code-reviewer | Assess code-level risks |
181
181
 
182
182
  ## Artifact Types
183
183
 
@@ -5,7 +5,7 @@ argument-hint: "task description"
5
5
  <identity>
6
6
  You are Style Reviewer. Your mission is to ensure code formatting, naming, and language idioms are consistent with project conventions.
7
7
  You are responsible for formatting consistency, naming convention enforcement, language idiom verification, lint rule compliance, and import organization.
8
- You are not responsible for logic correctness (quality-reviewer), security (security-reviewer), performance (performance-reviewer), or API design (api-reviewer).
8
+ You are not responsible for logic correctness (quality-reviewer), security (code-reviewer), performance (performance-reviewer), or API design (api-reviewer).
9
9
 
10
10
  Inconsistent style makes code harder to read and review. These rules exist because style consistency reduces cognitive load for the entire team.
11
11
  </identity>
@@ -5,7 +5,7 @@ argument-hint: "task description"
5
5
  <identity>
6
6
  You are Test Engineer. Your mission is to design test strategies, write tests, harden flaky tests, and guide TDD workflows.
7
7
  You are responsible for test strategy design, unit/integration/e2e test authoring, flaky test diagnosis, coverage gap analysis, and TDD enforcement.
8
- You are not responsible for feature implementation (executor), code quality review (quality-reviewer), security testing (security-reviewer), or performance benchmarking (performance-reviewer).
8
+ You are not responsible for feature implementation (executor), code quality review (quality-reviewer), security testing (code-reviewer), or performance benchmarking (performance-reviewer).
9
9
 
10
10
  Tests are executable documentation of expected behavior. These rules exist because untested code is a liability, flaky tests erode team trust in the test suite, and writing tests after implementation misses the design benefits of TDD. Good tests catch regressions before users do.
11
11
  </identity>
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: ask
3
+ description: Ask a local external advisor CLI (Claude or Gemini) and capture a reusable artifact
4
+ ---
5
+
6
+ # Ask (Local Advisor CLI)
7
+
8
+ Use a locally installed external advisor CLI for focused questions, reviews, brainstorming, or second opinions. This skill replaces the separate `ask-claude` and `ask-gemini` skills.
9
+
10
+ ## Usage
11
+
12
+ ```bash
13
+ $ask claude <question or task>
14
+ $ask gemini <question or task>
15
+ omx ask claude "<question or task>"
16
+ omx ask gemini "<question or task>"
17
+ ```
18
+
19
+ ## Backend selection
20
+
21
+ - Use `claude` when the user asks for Claude, Anthropic, or the previous `$ask-claude` behavior.
22
+ - Use `gemini` when the user asks for Gemini or the previous `$ask-gemini` behavior.
23
+ - If no backend is specified, choose the installed backend that best matches the user request; if neither is clearly available, explain that a local CLI is required.
24
+
25
+ ## Local CLI commands
26
+
27
+ Claude:
28
+
29
+ ```bash
30
+ omx ask claude "{{ARGUMENTS}}"
31
+ claude -p "{{ARGUMENTS}}"
32
+ ```
33
+
34
+ Gemini:
35
+
36
+ ```bash
37
+ omx ask gemini "{{ARGUMENTS}}"
38
+ gemini -p "{{ARGUMENTS}}"
39
+ ```
40
+
41
+ If needed, adapt to the user's installed CLI variant while keeping local execution as the default path. Do not silently switch to an MCP or remote provider when the local binary is missing.
42
+
43
+ ## Artifact requirement
44
+
45
+ After local execution, save a markdown artifact to:
46
+
47
+ ```text
48
+ .omx/artifacts/ask-<backend>-<slug>-<timestamp>.md
49
+ ```
50
+
51
+ Minimum artifact sections:
52
+ 1. Original user task
53
+ 2. Backend and final prompt sent to the CLI
54
+ 3. Raw CLI output
55
+ 4. Concise summary
56
+ 5. Action items / next steps
57
+
58
+ Task: {{ARGUMENTS}}
@@ -1,61 +1,10 @@
1
1
  ---
2
2
  name: ask-claude
3
- description: Ask Claude via local CLI and capture a reusable artifact
3
+ description: Ask Claude deprecated skill
4
4
  ---
5
5
 
6
- # Ask Claude (Local CLI)
6
+ # Ask Claude deprecated
7
7
 
8
- Use the locally installed Claude CLI as a direct external advisor for focused questions, reviews, or second opinions.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- /ask-claude <question or task>
14
- ```
15
-
16
- ## Routing
17
-
18
- ### Preferred: Local CLI execution
19
- Run Claude through the canonical OMX CLI command path (no MCP routing):
20
-
21
- ```bash
22
- omx ask claude "{{ARGUMENTS}}"
23
- ```
24
-
25
- Exact non-interactive Claude CLI command from `claude --help`:
26
-
27
- ```bash
28
- claude -p "{{ARGUMENTS}}"
29
- # equivalent: claude --print "{{ARGUMENTS}}"
30
- ```
31
-
32
- If needed, adapt to the user's installed Claude CLI variant while keeping local execution as the default path.
33
-
34
- Legacy compatibility entrypoints (`./scripts/ask-claude.sh`, `npm run ask:claude -- ...`) are transitional wrappers.
35
-
36
- ### Missing binary behavior
37
- If `claude` is not found, do **not** switch to MCP.
38
- Instead:
39
- 1. Explain that local Claude CLI is required for this skill.
40
- 2. Ask the user to install/configure Claude CLI.
41
- 3. Provide a quick verification command:
42
-
43
- ```bash
44
- claude --version
45
- ```
46
-
47
- ## Artifact requirement
48
- After local execution, save a markdown artifact to:
49
-
50
- ```text
51
- .omx/artifacts/claude-<slug>-<timestamp>.md
52
- ```
53
-
54
- Minimum artifact sections:
55
- 1. Original user task
56
- 2. Final prompt sent to Claude CLI
57
- 3. Claude output (raw)
58
- 4. Concise summary
59
- 5. Action items / next steps
8
+ Hard-deprecated. Do not invoke or route this skill. Use `$ask claude <question>` or `omx ask claude "<question>"` directly for new advisor workflows.
60
9
 
61
10
  Task: {{ARGUMENTS}}
@@ -1,61 +1,10 @@
1
1
  ---
2
2
  name: ask-gemini
3
- description: Ask Gemini via local CLI and capture a reusable artifact
3
+ description: Ask Gemini deprecated skill
4
4
  ---
5
5
 
6
- # Ask Gemini (Local CLI)
6
+ # Ask Gemini deprecated
7
7
 
8
- Use the locally installed Gemini CLI as a direct external advisor for brainstorming, design feedback, and second opinions.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- /ask-gemini <question or task>
14
- ```
15
-
16
- ## Routing
17
-
18
- ### Preferred: Local CLI execution
19
- Run Gemini through the canonical OMX CLI command path (no MCP routing):
20
-
21
- ```bash
22
- omx ask gemini "{{ARGUMENTS}}"
23
- ```
24
-
25
- Exact non-interactive Gemini CLI command from `gemini --help`:
26
-
27
- ```bash
28
- gemini -p "{{ARGUMENTS}}"
29
- # equivalent: gemini --prompt "{{ARGUMENTS}}"
30
- ```
31
-
32
- If needed, adapt to the user's installed Gemini CLI variant while keeping local execution as the default path.
33
-
34
- Legacy compatibility entrypoints (`./scripts/ask-gemini.sh`, `npm run ask:gemini -- ...`) are transitional wrappers.
35
-
36
- ### Missing binary behavior
37
- If `gemini` is not found, do **not** switch to MCP.
38
- Instead:
39
- 1. Explain that local Gemini CLI is required for this skill.
40
- 2. Ask the user to install/configure Gemini CLI.
41
- 3. Provide a quick verification command:
42
-
43
- ```bash
44
- gemini --version
45
- ```
46
-
47
- ## Artifact requirement
48
- After local execution, save a markdown artifact to:
49
-
50
- ```text
51
- .omx/artifacts/gemini-<slug>-<timestamp>.md
52
- ```
53
-
54
- Minimum artifact sections:
55
- 1. Original user task
56
- 2. Final prompt sent to Gemini CLI
57
- 3. Gemini output (raw)
58
- 4. Concise summary
59
- 5. Action items / next steps
8
+ Hard-deprecated. Do not invoke or route this skill. Use `$ask gemini <question>` or `omx ask gemini "<question>"` directly for new advisor workflows.
60
9
 
61
10
  Task: {{ARGUMENTS}}