oh-my-codex 0.15.2 → 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 (524) 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/agents/__tests__/native-config.test.js +33 -0
  7. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  8. package/dist/autoresearch/goal.d.ts +90 -0
  9. package/dist/autoresearch/goal.d.ts.map +1 -0
  10. package/dist/autoresearch/goal.js +237 -0
  11. package/dist/autoresearch/goal.js.map +1 -0
  12. package/dist/autoresearch/skill-validation.d.ts +1 -0
  13. package/dist/autoresearch/skill-validation.d.ts.map +1 -1
  14. package/dist/autoresearch/skill-validation.js +10 -3
  15. package/dist/autoresearch/skill-validation.js.map +1 -1
  16. package/dist/catalog/__tests__/generator.test.js +9 -4
  17. package/dist/catalog/__tests__/generator.test.js.map +1 -1
  18. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js +29 -2
  19. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js.map +1 -1
  20. package/dist/catalog/__tests__/schema.test.js +14 -3
  21. package/dist/catalog/__tests__/schema.test.js.map +1 -1
  22. package/dist/catalog/schema.js +1 -1
  23. package/dist/catalog/schema.js.map +1 -1
  24. package/dist/cli/__tests__/autoresearch-goal.test.d.ts +2 -0
  25. package/dist/cli/__tests__/autoresearch-goal.test.d.ts.map +1 -0
  26. package/dist/cli/__tests__/autoresearch-goal.test.js +194 -0
  27. package/dist/cli/__tests__/autoresearch-goal.test.js.map +1 -0
  28. package/dist/cli/__tests__/cleanup.test.js +82 -1
  29. package/dist/cli/__tests__/cleanup.test.js.map +1 -1
  30. package/dist/cli/__tests__/codex-plugin-layout.test.js +7 -4
  31. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
  32. package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts +2 -0
  33. package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts.map +1 -0
  34. package/dist/cli/__tests__/doctor-context-window-warning.test.js +122 -0
  35. package/dist/cli/__tests__/doctor-context-window-warning.test.js.map +1 -0
  36. package/dist/cli/__tests__/doctor-warning-copy.test.js +25 -2
  37. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  38. package/dist/cli/__tests__/exec.test.js +1 -0
  39. package/dist/cli/__tests__/exec.test.js.map +1 -1
  40. package/dist/cli/__tests__/explore.test.js +48 -18
  41. package/dist/cli/__tests__/explore.test.js.map +1 -1
  42. package/dist/cli/__tests__/index.test.js +222 -10
  43. package/dist/cli/__tests__/index.test.js.map +1 -1
  44. package/dist/cli/__tests__/launch-fallback.test.js +58 -0
  45. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  46. package/dist/cli/__tests__/mcp-serve.test.js +27 -1
  47. package/dist/cli/__tests__/mcp-serve.test.js.map +1 -1
  48. package/dist/cli/__tests__/native-assets.test.js +26 -1
  49. package/dist/cli/__tests__/native-assets.test.js.map +1 -1
  50. package/dist/cli/__tests__/package-bin-contract.test.js +2 -2
  51. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
  52. package/dist/cli/__tests__/performance-goal.test.d.ts +2 -0
  53. package/dist/cli/__tests__/performance-goal.test.d.ts.map +1 -0
  54. package/dist/cli/__tests__/performance-goal.test.js +144 -0
  55. package/dist/cli/__tests__/performance-goal.test.js.map +1 -0
  56. package/dist/cli/__tests__/question.test.js +8 -0
  57. package/dist/cli/__tests__/question.test.js.map +1 -1
  58. package/dist/cli/__tests__/ralph-goal-mode-contract.test.d.ts +2 -0
  59. package/dist/cli/__tests__/ralph-goal-mode-contract.test.d.ts.map +1 -0
  60. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +31 -0
  61. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -0
  62. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js +5 -4
  63. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js.map +1 -1
  64. package/dist/cli/__tests__/ralph-prd-smoke.test.js +7 -0
  65. package/dist/cli/__tests__/ralph-prd-smoke.test.js.map +1 -1
  66. package/dist/cli/__tests__/ralph.test.js +59 -1
  67. package/dist/cli/__tests__/ralph.test.js.map +1 -1
  68. package/dist/cli/__tests__/setup-install-mode.test.js +57 -21
  69. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  70. package/dist/cli/__tests__/setup-refresh.test.js +27 -8
  71. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  72. package/dist/cli/__tests__/setup-scope.test.js +20 -10
  73. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  74. package/dist/cli/__tests__/setup-skill-validation.test.js +11 -11
  75. package/dist/cli/__tests__/setup-skill-validation.test.js.map +1 -1
  76. package/dist/cli/__tests__/setup-skills-overwrite.test.js +12 -12
  77. package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
  78. package/dist/cli/__tests__/team.test.js +242 -10
  79. package/dist/cli/__tests__/team.test.js.map +1 -1
  80. package/dist/cli/__tests__/ultragoal.test.d.ts +2 -0
  81. package/dist/cli/__tests__/ultragoal.test.d.ts.map +1 -0
  82. package/dist/cli/__tests__/ultragoal.test.js +106 -0
  83. package/dist/cli/__tests__/ultragoal.test.js.map +1 -0
  84. package/dist/cli/__tests__/uninstall.test.js +11 -0
  85. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  86. package/dist/cli/autoresearch-goal.d.ts +3 -0
  87. package/dist/cli/autoresearch-goal.d.ts.map +1 -0
  88. package/dist/cli/autoresearch-goal.js +175 -0
  89. package/dist/cli/autoresearch-goal.js.map +1 -0
  90. package/dist/cli/cleanup.d.ts +3 -1
  91. package/dist/cli/cleanup.d.ts.map +1 -1
  92. package/dist/cli/cleanup.js +42 -2
  93. package/dist/cli/cleanup.js.map +1 -1
  94. package/dist/cli/doctor.d.ts.map +1 -1
  95. package/dist/cli/doctor.js +95 -3
  96. package/dist/cli/doctor.js.map +1 -1
  97. package/dist/cli/explore.d.ts.map +1 -1
  98. package/dist/cli/explore.js +10 -2
  99. package/dist/cli/explore.js.map +1 -1
  100. package/dist/cli/index.d.ts +21 -2
  101. package/dist/cli/index.d.ts.map +1 -1
  102. package/dist/cli/index.js +268 -30
  103. package/dist/cli/index.js.map +1 -1
  104. package/dist/cli/mcp-serve.d.ts +1 -0
  105. package/dist/cli/mcp-serve.d.ts.map +1 -1
  106. package/dist/cli/mcp-serve.js +8 -0
  107. package/dist/cli/mcp-serve.js.map +1 -1
  108. package/dist/cli/native-assets.js +1 -1
  109. package/dist/cli/native-assets.js.map +1 -1
  110. package/dist/cli/performance-goal.d.ts +3 -0
  111. package/dist/cli/performance-goal.d.ts.map +1 -0
  112. package/dist/cli/performance-goal.js +186 -0
  113. package/dist/cli/performance-goal.js.map +1 -0
  114. package/dist/cli/ralph.d.ts +2 -0
  115. package/dist/cli/ralph.d.ts.map +1 -1
  116. package/dist/cli/ralph.js +25 -1
  117. package/dist/cli/ralph.js.map +1 -1
  118. package/dist/cli/setup.d.ts.map +1 -1
  119. package/dist/cli/setup.js +13 -6
  120. package/dist/cli/setup.js.map +1 -1
  121. package/dist/cli/team.d.ts +6 -0
  122. package/dist/cli/team.d.ts.map +1 -1
  123. package/dist/cli/team.js +113 -33
  124. package/dist/cli/team.js.map +1 -1
  125. package/dist/cli/tmux-hook.d.ts.map +1 -1
  126. package/dist/cli/tmux-hook.js +2 -1
  127. package/dist/cli/tmux-hook.js.map +1 -1
  128. package/dist/cli/ultragoal.d.ts +3 -0
  129. package/dist/cli/ultragoal.d.ts.map +1 -0
  130. package/dist/cli/ultragoal.js +191 -0
  131. package/dist/cli/ultragoal.js.map +1 -0
  132. package/dist/cli/uninstall.d.ts.map +1 -1
  133. package/dist/cli/uninstall.js +4 -2
  134. package/dist/cli/uninstall.js.map +1 -1
  135. package/dist/config/__tests__/generator-idempotent.test.js +39 -6
  136. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  137. package/dist/config/__tests__/generator-notify.test.js +5 -0
  138. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  139. package/dist/config/commit-lore-guard.d.ts +3 -0
  140. package/dist/config/commit-lore-guard.d.ts.map +1 -0
  141. package/dist/config/commit-lore-guard.js +9 -0
  142. package/dist/config/commit-lore-guard.js.map +1 -0
  143. package/dist/config/generator.d.ts +14 -4
  144. package/dist/config/generator.d.ts.map +1 -1
  145. package/dist/config/generator.js +166 -66
  146. package/dist/config/generator.js.map +1 -1
  147. package/dist/config/omx-first-party-mcp.d.ts +1 -0
  148. package/dist/config/omx-first-party-mcp.d.ts.map +1 -1
  149. package/dist/config/omx-first-party-mcp.js +4 -1
  150. package/dist/config/omx-first-party-mcp.js.map +1 -1
  151. package/dist/goal-workflows/__tests__/artifacts.test.d.ts +2 -0
  152. package/dist/goal-workflows/__tests__/artifacts.test.d.ts.map +1 -0
  153. package/dist/goal-workflows/__tests__/artifacts.test.js +96 -0
  154. package/dist/goal-workflows/__tests__/artifacts.test.js.map +1 -0
  155. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.d.ts +2 -0
  156. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.d.ts.map +1 -0
  157. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js +54 -0
  158. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js.map +1 -0
  159. package/dist/goal-workflows/artifacts.d.ts +62 -0
  160. package/dist/goal-workflows/artifacts.d.ts.map +1 -0
  161. package/dist/goal-workflows/artifacts.js +132 -0
  162. package/dist/goal-workflows/artifacts.js.map +1 -0
  163. package/dist/goal-workflows/codex-goal-snapshot.d.ts +28 -0
  164. package/dist/goal-workflows/codex-goal-snapshot.d.ts.map +1 -0
  165. package/dist/goal-workflows/codex-goal-snapshot.js +110 -0
  166. package/dist/goal-workflows/codex-goal-snapshot.js.map +1 -0
  167. package/dist/goal-workflows/handoff.d.ts +10 -0
  168. package/dist/goal-workflows/handoff.d.ts.map +1 -0
  169. package/dist/goal-workflows/handoff.js +31 -0
  170. package/dist/goal-workflows/handoff.js.map +1 -0
  171. package/dist/goal-workflows/validation.d.ts +13 -0
  172. package/dist/goal-workflows/validation.d.ts.map +1 -0
  173. package/dist/goal-workflows/validation.js +36 -0
  174. package/dist/goal-workflows/validation.js.map +1 -0
  175. package/dist/hooks/__tests__/agents-overlay.test.js +59 -0
  176. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  177. package/dist/hooks/__tests__/anti-slop-workflow.test.js +109 -18
  178. package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +1 -1
  179. package/dist/hooks/__tests__/keyword-detector.test.js +45 -32
  180. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  181. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +3 -3
  182. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  183. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +2 -1
  184. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  185. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +17 -24
  186. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  187. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js +3 -3
  188. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js.map +1 -1
  189. package/dist/hooks/__tests__/task-size-detector.test.js +1 -1
  190. package/dist/hooks/__tests__/task-size-detector.test.js.map +1 -1
  191. package/dist/hooks/__tests__/visual-ralph-skill.test.js +3 -3
  192. package/dist/hooks/__tests__/visual-ralph-skill.test.js.map +1 -1
  193. package/dist/hooks/__tests__/visual-verdict-loop.test.js +7 -11
  194. package/dist/hooks/__tests__/visual-verdict-loop.test.js.map +1 -1
  195. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  196. package/dist/hooks/agents-overlay.js +23 -2
  197. package/dist/hooks/agents-overlay.js.map +1 -1
  198. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  199. package/dist/hooks/keyword-detector.js +12 -13
  200. package/dist/hooks/keyword-detector.js.map +1 -1
  201. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  202. package/dist/hooks/keyword-registry.js +2 -10
  203. package/dist/hooks/keyword-registry.js.map +1 -1
  204. package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
  205. package/dist/hooks/prompt-guidance-contract.js +0 -4
  206. package/dist/hooks/prompt-guidance-contract.js.map +1 -1
  207. package/dist/hooks/session.js +2 -2
  208. package/dist/hooks/session.js.map +1 -1
  209. package/dist/hooks/task-size-detector.d.ts.map +1 -1
  210. package/dist/hooks/task-size-detector.js +1 -0
  211. package/dist/hooks/task-size-detector.js.map +1 -1
  212. package/dist/hud/__tests__/index.test.js +30 -14
  213. package/dist/hud/__tests__/index.test.js.map +1 -1
  214. package/dist/hud/__tests__/reconcile.test.js +29 -7
  215. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  216. package/dist/hud/reconcile.d.ts +2 -1
  217. package/dist/hud/reconcile.d.ts.map +1 -1
  218. package/dist/hud/reconcile.js +12 -0
  219. package/dist/hud/reconcile.js.map +1 -1
  220. package/dist/mcp/__tests__/bootstrap.test.js +15 -2
  221. package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
  222. package/dist/mcp/__tests__/state-paths.test.js +54 -0
  223. package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
  224. package/dist/mcp/__tests__/state-server.test.js +36 -0
  225. package/dist/mcp/__tests__/state-server.test.js.map +1 -1
  226. package/dist/mcp/bootstrap.d.ts +1 -1
  227. package/dist/mcp/bootstrap.d.ts.map +1 -1
  228. package/dist/mcp/bootstrap.js +9 -7
  229. package/dist/mcp/bootstrap.js.map +1 -1
  230. package/dist/mcp/state-paths.d.ts +17 -0
  231. package/dist/mcp/state-paths.d.ts.map +1 -1
  232. package/dist/mcp/state-paths.js +36 -2
  233. package/dist/mcp/state-paths.js.map +1 -1
  234. package/dist/modes/__tests__/base-session-scope.test.js +26 -0
  235. package/dist/modes/__tests__/base-session-scope.test.js.map +1 -1
  236. package/dist/modes/base.d.ts +1 -0
  237. package/dist/modes/base.d.ts.map +1 -1
  238. package/dist/modes/base.js +35 -5
  239. package/dist/modes/base.js.map +1 -1
  240. package/dist/notifications/__tests__/http-client.test.d.ts +2 -0
  241. package/dist/notifications/__tests__/http-client.test.d.ts.map +1 -0
  242. package/dist/notifications/__tests__/http-client.test.js +90 -0
  243. package/dist/notifications/__tests__/http-client.test.js.map +1 -0
  244. package/dist/notifications/__tests__/notifier.test.js +22 -60
  245. package/dist/notifications/__tests__/notifier.test.js.map +1 -1
  246. package/dist/notifications/dispatcher.d.ts.map +1 -1
  247. package/dist/notifications/dispatcher.js +35 -60
  248. package/dist/notifications/dispatcher.js.map +1 -1
  249. package/dist/notifications/http-client.d.ts +22 -0
  250. package/dist/notifications/http-client.d.ts.map +1 -0
  251. package/dist/notifications/http-client.js +298 -0
  252. package/dist/notifications/http-client.js.map +1 -0
  253. package/dist/notifications/notifier.d.ts +3 -2
  254. package/dist/notifications/notifier.d.ts.map +1 -1
  255. package/dist/notifications/notifier.js +17 -22
  256. package/dist/notifications/notifier.js.map +1 -1
  257. package/dist/openclaw/__tests__/dispatcher.test.js +63 -2
  258. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
  259. package/dist/openclaw/dispatcher.d.ts.map +1 -1
  260. package/dist/openclaw/dispatcher.js +3 -2
  261. package/dist/openclaw/dispatcher.js.map +1 -1
  262. package/dist/performance-goal/artifacts.d.ts +76 -0
  263. package/dist/performance-goal/artifacts.d.ts.map +1 -0
  264. package/dist/performance-goal/artifacts.js +221 -0
  265. package/dist/performance-goal/artifacts.js.map +1 -0
  266. package/dist/pipeline/__tests__/stages.test.js +423 -14
  267. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  268. package/dist/pipeline/stages/team-exec.d.ts +8 -4
  269. package/dist/pipeline/stages/team-exec.d.ts.map +1 -1
  270. package/dist/pipeline/stages/team-exec.js +181 -13
  271. package/dist/pipeline/stages/team-exec.js.map +1 -1
  272. package/dist/planning/__tests__/artifacts.test.js +261 -1
  273. package/dist/planning/__tests__/artifacts.test.js.map +1 -1
  274. package/dist/planning/artifact-names.d.ts +13 -0
  275. package/dist/planning/artifact-names.d.ts.map +1 -0
  276. package/dist/planning/artifact-names.js +108 -0
  277. package/dist/planning/artifact-names.js.map +1 -0
  278. package/dist/planning/artifacts.d.ts +23 -1
  279. package/dist/planning/artifacts.d.ts.map +1 -1
  280. package/dist/planning/artifacts.js +171 -59
  281. package/dist/planning/artifacts.js.map +1 -1
  282. package/dist/ralph/__tests__/persistence.test.js +21 -1
  283. package/dist/ralph/__tests__/persistence.test.js.map +1 -1
  284. package/dist/ralph/persistence.d.ts.map +1 -1
  285. package/dist/ralph/persistence.js +6 -4
  286. package/dist/ralph/persistence.js.map +1 -1
  287. package/dist/ralplan/__tests__/runtime.test.js +2 -0
  288. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  289. package/dist/ralplan/runtime.d.ts.map +1 -1
  290. package/dist/ralplan/runtime.js +6 -0
  291. package/dist/ralplan/runtime.js.map +1 -1
  292. package/dist/scripts/__tests__/codex-native-hook.test.js +1749 -88
  293. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  294. package/dist/scripts/__tests__/hook-derived-watcher.test.js +33 -1
  295. package/dist/scripts/__tests__/hook-derived-watcher.test.js.map +1 -1
  296. package/dist/scripts/__tests__/run-test-files.test.js +36 -0
  297. package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
  298. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  299. package/dist/scripts/codex-native-hook.js +570 -45
  300. package/dist/scripts/codex-native-hook.js.map +1 -1
  301. package/dist/scripts/codex-native-pre-post.d.ts +7 -0
  302. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  303. package/dist/scripts/codex-native-pre-post.js +341 -15
  304. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  305. package/dist/scripts/hook-derived-watcher.js +2 -1
  306. package/dist/scripts/hook-derived-watcher.js.map +1 -1
  307. package/dist/scripts/notify-fallback-watcher.js +2 -1
  308. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  309. package/dist/scripts/notify-hook/orchestration-intent.d.ts +1 -2
  310. package/dist/scripts/notify-hook/orchestration-intent.d.ts.map +1 -1
  311. package/dist/scripts/notify-hook/orchestration-intent.js +2 -3
  312. package/dist/scripts/notify-hook/orchestration-intent.js.map +1 -1
  313. package/dist/scripts/notify-hook/team-leader-nudge.d.ts +0 -2
  314. package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
  315. package/dist/scripts/notify-hook/team-leader-nudge.js +8 -60
  316. package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
  317. package/dist/scripts/notify-hook/team-worker-posttooluse.js +1 -1
  318. package/dist/scripts/notify-hook/team-worker-posttooluse.js.map +1 -1
  319. package/dist/scripts/notify-hook/team-worker-stop.d.ts +15 -0
  320. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -0
  321. package/dist/scripts/notify-hook/team-worker-stop.js +224 -0
  322. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -0
  323. package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
  324. package/dist/scripts/notify-hook/team-worker.js +26 -18
  325. package/dist/scripts/notify-hook/team-worker.js.map +1 -1
  326. package/dist/scripts/notify-hook.js +1 -1
  327. package/dist/scripts/notify-hook.js.map +1 -1
  328. package/dist/scripts/run-test-files.js +17 -1
  329. package/dist/scripts/run-test-files.js.map +1 -1
  330. package/dist/scripts/sync-plugin-mirror.d.ts +1 -0
  331. package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -1
  332. package/dist/scripts/sync-plugin-mirror.js +10 -4
  333. package/dist/scripts/sync-plugin-mirror.js.map +1 -1
  334. package/dist/state/__tests__/operations.test.js +26 -0
  335. package/dist/state/__tests__/operations.test.js.map +1 -1
  336. package/dist/state/__tests__/skill-active.test.js +76 -0
  337. package/dist/state/__tests__/skill-active.test.js.map +1 -1
  338. package/dist/state/operations.d.ts +3 -1
  339. package/dist/state/operations.d.ts.map +1 -1
  340. package/dist/state/operations.js +8 -4
  341. package/dist/state/operations.js.map +1 -1
  342. package/dist/state/skill-active.d.ts +1 -0
  343. package/dist/state/skill-active.d.ts.map +1 -1
  344. package/dist/state/skill-active.js +54 -13
  345. package/dist/state/skill-active.js.map +1 -1
  346. package/dist/team/__tests__/api-interop.test.js +279 -0
  347. package/dist/team/__tests__/api-interop.test.js.map +1 -1
  348. package/dist/team/__tests__/approved-execution.test.d.ts +2 -0
  349. package/dist/team/__tests__/approved-execution.test.d.ts.map +1 -0
  350. package/dist/team/__tests__/approved-execution.test.js +124 -0
  351. package/dist/team/__tests__/approved-execution.test.js.map +1 -0
  352. package/dist/team/__tests__/delivery-e2e-smoke.test.js +2 -4
  353. package/dist/team/__tests__/delivery-e2e-smoke.test.js.map +1 -1
  354. package/dist/team/__tests__/delivery-log.test.d.ts +2 -0
  355. package/dist/team/__tests__/delivery-log.test.d.ts.map +1 -0
  356. package/dist/team/__tests__/delivery-log.test.js +44 -0
  357. package/dist/team/__tests__/delivery-log.test.js.map +1 -0
  358. package/dist/team/__tests__/model-contract.test.js +40 -9
  359. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  360. package/dist/team/__tests__/repo-aware-decomposition.test.js +41 -0
  361. package/dist/team/__tests__/repo-aware-decomposition.test.js.map +1 -1
  362. package/dist/team/__tests__/role-router.test.js +4 -4
  363. package/dist/team/__tests__/role-router.test.js.map +1 -1
  364. package/dist/team/__tests__/runtime-boxed-state.test.d.ts +2 -0
  365. package/dist/team/__tests__/runtime-boxed-state.test.d.ts.map +1 -0
  366. package/dist/team/__tests__/runtime-boxed-state.test.js +39 -0
  367. package/dist/team/__tests__/runtime-boxed-state.test.js.map +1 -0
  368. package/dist/team/__tests__/runtime-cli.test.js +24 -0
  369. package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
  370. package/dist/team/__tests__/runtime.test.js +563 -72
  371. package/dist/team/__tests__/runtime.test.js.map +1 -1
  372. package/dist/team/__tests__/state-root.test.js +13 -0
  373. package/dist/team/__tests__/state-root.test.js.map +1 -1
  374. package/dist/team/__tests__/state.test.js +13 -0
  375. package/dist/team/__tests__/state.test.js.map +1 -1
  376. package/dist/team/__tests__/team-identity.test.d.ts +2 -0
  377. package/dist/team/__tests__/team-identity.test.d.ts.map +1 -0
  378. package/dist/team/__tests__/team-identity.test.js +166 -0
  379. package/dist/team/__tests__/team-identity.test.js.map +1 -0
  380. package/dist/team/__tests__/tmux-session.test.js +58 -1
  381. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  382. package/dist/team/__tests__/worker-bootstrap.test.js +62 -0
  383. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  384. package/dist/team/api-interop.d.ts +1 -0
  385. package/dist/team/api-interop.d.ts.map +1 -1
  386. package/dist/team/api-interop.js +163 -132
  387. package/dist/team/api-interop.js.map +1 -1
  388. package/dist/team/approved-execution.d.ts +37 -0
  389. package/dist/team/approved-execution.d.ts.map +1 -0
  390. package/dist/team/approved-execution.js +136 -0
  391. package/dist/team/approved-execution.js.map +1 -0
  392. package/dist/team/delivery-log.d.ts +1 -1
  393. package/dist/team/delivery-log.d.ts.map +1 -1
  394. package/dist/team/delivery-log.js +2 -1
  395. package/dist/team/delivery-log.js.map +1 -1
  396. package/dist/team/followup-planner.js +2 -2
  397. package/dist/team/followup-planner.js.map +1 -1
  398. package/dist/team/goal-workflow.d.ts +20 -0
  399. package/dist/team/goal-workflow.d.ts.map +1 -0
  400. package/dist/team/goal-workflow.js +57 -0
  401. package/dist/team/goal-workflow.js.map +1 -0
  402. package/dist/team/orchestrator.js +2 -2
  403. package/dist/team/orchestrator.js.map +1 -1
  404. package/dist/team/repo-aware-decomposition.d.ts +3 -0
  405. package/dist/team/repo-aware-decomposition.d.ts.map +1 -1
  406. package/dist/team/repo-aware-decomposition.js +2 -0
  407. package/dist/team/repo-aware-decomposition.js.map +1 -1
  408. package/dist/team/role-router.js +5 -5
  409. package/dist/team/role-router.js.map +1 -1
  410. package/dist/team/runtime-cli.d.ts +32 -2
  411. package/dist/team/runtime-cli.d.ts.map +1 -1
  412. package/dist/team/runtime-cli.js +78 -26
  413. package/dist/team/runtime-cli.js.map +1 -1
  414. package/dist/team/runtime.d.ts +7 -1
  415. package/dist/team/runtime.d.ts.map +1 -1
  416. package/dist/team/runtime.js +383 -40
  417. package/dist/team/runtime.js.map +1 -1
  418. package/dist/team/scaling.d.ts.map +1 -1
  419. package/dist/team/scaling.js +2 -0
  420. package/dist/team/scaling.js.map +1 -1
  421. package/dist/team/state.d.ts +9 -0
  422. package/dist/team/state.d.ts.map +1 -1
  423. package/dist/team/state.js +21 -0
  424. package/dist/team/state.js.map +1 -1
  425. package/dist/team/team-identity.d.ts +26 -0
  426. package/dist/team/team-identity.d.ts.map +1 -0
  427. package/dist/team/team-identity.js +169 -0
  428. package/dist/team/team-identity.js.map +1 -0
  429. package/dist/team/tmux-session.d.ts +18 -0
  430. package/dist/team/tmux-session.d.ts.map +1 -1
  431. package/dist/team/tmux-session.js +65 -3
  432. package/dist/team/tmux-session.js.map +1 -1
  433. package/dist/team/worker-bootstrap.d.ts +4 -0
  434. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  435. package/dist/team/worker-bootstrap.js +28 -2
  436. package/dist/team/worker-bootstrap.js.map +1 -1
  437. package/dist/ultragoal/__tests__/artifacts.test.d.ts +2 -0
  438. package/dist/ultragoal/__tests__/artifacts.test.d.ts.map +1 -0
  439. package/dist/ultragoal/__tests__/artifacts.test.js +93 -0
  440. package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -0
  441. package/dist/ultragoal/artifacts.d.ts +89 -0
  442. package/dist/ultragoal/artifacts.d.ts.map +1 -0
  443. package/dist/ultragoal/artifacts.js +233 -0
  444. package/dist/ultragoal/artifacts.js.map +1 -0
  445. package/dist/utils/__tests__/agents-model-table.test.js +3 -1
  446. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
  447. package/dist/utils/__tests__/paths.test.js +31 -1
  448. package/dist/utils/__tests__/paths.test.js.map +1 -1
  449. package/dist/utils/agents-model-table.d.ts.map +1 -1
  450. package/dist/utils/agents-model-table.js +12 -1
  451. package/dist/utils/agents-model-table.js.map +1 -1
  452. package/dist/utils/paths.d.ts +2 -0
  453. package/dist/utils/paths.d.ts.map +1 -1
  454. package/dist/utils/paths.js +23 -7
  455. package/dist/utils/paths.js.map +1 -1
  456. package/dist/verification/__tests__/ci-rust-gates.test.js +30 -19
  457. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
  458. package/package.json +5 -5
  459. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  460. package/plugins/oh-my-codex/skills/ai-slop-cleaner/SKILL.md +30 -5
  461. package/plugins/oh-my-codex/skills/ask/SKILL.md +58 -0
  462. package/plugins/oh-my-codex/skills/autoresearch-goal/SKILL.md +36 -0
  463. package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +2 -2
  464. package/plugins/oh-my-codex/skills/performance-goal/SKILL.md +65 -0
  465. package/plugins/oh-my-codex/skills/plan/SKILL.md +1 -1
  466. package/plugins/oh-my-codex/skills/ralph/SKILL.md +22 -3
  467. package/plugins/oh-my-codex/skills/team/SKILL.md +6 -2
  468. package/plugins/oh-my-codex/skills/ultragoal/SKILL.md +49 -0
  469. package/plugins/oh-my-codex/skills/visual-ralph/SKILL.md +9 -9
  470. package/prompts/api-reviewer.md +1 -1
  471. package/prompts/code-reviewer.md +2 -0
  472. package/prompts/performance-reviewer.md +1 -1
  473. package/prompts/quality-reviewer.md +1 -1
  474. package/prompts/quality-strategist.md +2 -2
  475. package/prompts/style-reviewer.md +1 -1
  476. package/prompts/test-engineer.md +1 -1
  477. package/skills/ai-slop-cleaner/SKILL.md +30 -5
  478. package/skills/ask/SKILL.md +58 -0
  479. package/skills/ask-claude/SKILL.md +3 -54
  480. package/skills/ask-gemini/SKILL.md +3 -54
  481. package/skills/autoresearch-goal/SKILL.md +36 -0
  482. package/skills/build-fix/SKILL.md +4 -139
  483. package/skills/deepsearch/SKILL.md +4 -32
  484. package/skills/ecomode/SKILL.md +4 -108
  485. package/skills/help/SKILL.md +4 -196
  486. package/skills/note/SKILL.md +4 -56
  487. package/skills/omx-setup/SKILL.md +2 -2
  488. package/skills/performance-goal/SKILL.md +65 -0
  489. package/skills/plan/SKILL.md +1 -1
  490. package/skills/ralph/SKILL.md +22 -3
  491. package/skills/ralph-init/SKILL.md +4 -40
  492. package/skills/review/SKILL.md +4 -32
  493. package/skills/security-review/SKILL.md +4 -294
  494. package/skills/swarm/SKILL.md +4 -19
  495. package/skills/tdd/SKILL.md +4 -100
  496. package/skills/team/SKILL.md +6 -2
  497. package/skills/trace/SKILL.md +4 -27
  498. package/skills/ultragoal/SKILL.md +49 -0
  499. package/skills/visual-ralph/SKILL.md +9 -9
  500. package/skills/visual-verdict/SKILL.md +4 -70
  501. package/skills/web-clone/SKILL.md +4 -18
  502. package/src/scripts/__tests__/codex-native-hook.test.ts +2923 -1030
  503. package/src/scripts/__tests__/hook-derived-watcher.test.ts +45 -1
  504. package/src/scripts/__tests__/run-test-files.test.ts +46 -0
  505. package/src/scripts/codex-native-hook.ts +696 -46
  506. package/src/scripts/codex-native-pre-post.ts +369 -16
  507. package/src/scripts/hook-derived-watcher.ts +2 -1
  508. package/src/scripts/notify-fallback-watcher.ts +2 -1
  509. package/src/scripts/notify-hook/orchestration-intent.ts +1 -3
  510. package/src/scripts/notify-hook/team-leader-nudge.ts +7 -63
  511. package/src/scripts/notify-hook/team-worker-posttooluse.ts +1 -1
  512. package/src/scripts/notify-hook/team-worker-stop.ts +246 -0
  513. package/src/scripts/notify-hook/team-worker.ts +23 -14
  514. package/src/scripts/notify-hook.ts +1 -1
  515. package/src/scripts/run-test-files.ts +20 -1
  516. package/src/scripts/sync-plugin-mirror.ts +13 -4
  517. package/templates/catalog-manifest.json +45 -27
  518. package/plugins/oh-my-codex/skills/ask-claude/SKILL.md +0 -61
  519. package/plugins/oh-my-codex/skills/ask-gemini/SKILL.md +0 -61
  520. package/plugins/oh-my-codex/skills/help/SKILL.md +0 -202
  521. package/plugins/oh-my-codex/skills/note/SKILL.md +0 -62
  522. package/plugins/oh-my-codex/skills/security-review/SKILL.md +0 -300
  523. package/plugins/oh-my-codex/skills/trace/SKILL.md +0 -33
  524. package/plugins/oh-my-codex/skills/visual-verdict/SKILL.md +0 -76
@@ -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>
@@ -12,7 +12,7 @@ Reduce AI-generated slop with a regression-tests-first, smell-by-smell cleanup w
12
12
  Use this skill when:
13
13
  - A code path works but feels bloated, noisy, repetitive, or over-abstracted
14
14
  - A user asks to “cleanup”, “refactor”, or “deslop” AI-generated output
15
- - Follow-up implementation left duplicate code, dead code, weak boundaries, missing tests, or unnecessary wrapper layers
15
+ - Follow-up implementation left duplicate code, dead code, weak boundaries, missing tests, fallback-like code, or unnecessary wrapper layers
16
16
  - You need a disciplined cleanup workflow without broad rewrites
17
17
 
18
18
  ## GPT-5.5 Guidance Alignment
@@ -34,22 +34,35 @@ Use this skill when:
34
34
  - Identify the behavior that must not change
35
35
  - Add or run targeted regression tests before editing cleanup candidates
36
36
  - If behavior is currently untested, create the narrowest test coverage needed first
37
+ - For fallback-like code, cover the primary path and any preserved compatibility/fail-safe fallback before cleanup
37
38
 
38
39
  2. **Create a cleanup plan before code**
39
40
  - List the specific smells to remove
40
41
  - Bound the pass to the requested files/scope
41
42
  - If a file list scope is provided, keep the pass restricted to that changed-files list
43
+ - Include fallback findings, classifications, and escalation status in the plan
42
44
  - Order fixes from safest/highest-signal to riskiest
43
45
  - Do not start coding until the cleanup plan is explicit
44
46
 
45
- 3. **Categorize issues before editing**
47
+ 3. **Inventory fallback-like code before editing**
48
+ - Search the requested scope for fallback-like detection signals: quick hacks, temporary workaround, temporary fallback, just bypass, just skip, fallback if it fails, swallowed errors, silent defaults, broad compatibility shims, and duplicate alternate execution paths
49
+ - Classify each finding before changing it:
50
+ - **Masking fallback slop** — hides errors or evidence, bypasses the primary contract, suppresses tests or validation, swallows failures, silently defaults, or adds untested alternate paths
51
+ - **Grounded compatibility/fail-safe fallback** — is scoped to an external/version/fail-safe boundary, documents the rationale, preserves failure evidence, and has regression tests for both the primary and fallback behavior
52
+ - Prefer root-cause repair, deletion, boundary repair, or explicit failure behavior before preserving fallback paths
53
+ - For broad, ambiguous, cross-layer, or architectural fallback-like code, invoke `$ralplan` for consensus resolution before edits
54
+ - Recursion guard: when already inside ralplan, ralph, team, or another OMX workflow, do not spawn a nested `$ralplan`; record the finding and attach it to the active ralplan, leader, or plan handoff instead
55
+
56
+ 4. **Categorize issues before editing**
57
+ - **Fallback-like code** — masking fallbacks, workaround branches, bypasses, swallowed errors, silent defaults, broad shims, alternate execution paths
46
58
  - **Duplication** — repeated logic, copy-paste branches, redundant helpers
47
59
  - **Dead code** — unused code, unreachable branches, stale flags, debug leftovers
48
60
  - **Needless abstraction** — pass-through wrappers, speculative indirection, single-use helper layers
49
61
  - **Boundary violations** — hidden coupling, leaky responsibilities, wrong-layer imports or side effects
50
62
  - **Missing tests** — behavior not locked, weak regression coverage, gaps around edge cases
51
63
 
52
- 4. **Execute passes one smell at a time**
64
+ 5. **Execute passes one smell at a time**
65
+ - **Fallback-like code resolution gate** — remove masking fallback slop, repair root causes, or escalate ambiguous cases before continuing
53
66
  - **Pass 1: Dead code deletion**
54
67
  - **Pass 2: Duplicate removal**
55
68
  - **Pass 3: Naming/error handling cleanup**
@@ -57,7 +70,7 @@ Use this skill when:
57
70
  - Re-run targeted verification after each pass
58
71
  - Avoid bundling unrelated refactors into the same edit set
59
72
 
60
- 5. **Run quality gates**
73
+ 6. **Run quality gates**
61
74
  - Regression tests stay green
62
75
  - Lint passes
63
76
  - Typecheck passes
@@ -66,9 +79,10 @@ Use this skill when:
66
79
  - Diff stays minimal and scoped
67
80
  - No new abstractions or dependencies unless explicitly required
68
81
 
69
- 6. **Finish with an evidence-dense report**
82
+ 7. **Finish with an evidence-dense report**
70
83
  - Changed files
71
84
  - Simplifications made
85
+ - Fallback findings, classifications, and escalation status
72
86
  - Tests/diagnostics/build checks run
73
87
  - Remaining risks
74
88
  - Residual follow-ups or consciously deferred cleanup
@@ -82,8 +96,10 @@ AI SLOP CLEANUP REPORT
82
96
  Scope: [files or feature area]
83
97
  Behavior Lock: [targeted regression tests added/run]
84
98
  Cleanup Plan: [bounded smells and order]
99
+ Fallback Findings: [none, or finding -> masking fallback slop / grounded compatibility/fail-safe fallback -> escalation status]
85
100
 
86
101
  Passes Completed:
102
+ - Fallback-like code resolution gate - [root-cause repair, explicit failure behavior, preserved grounded fallback, or ralplan handoff]
87
103
  1. Pass 1: Dead code deletion - [concise fix]
88
104
  2. Pass 2: Duplicate removal - [concise fix]
89
105
  3. Pass 3: Naming/error handling cleanup - [concise fix]
@@ -99,6 +115,11 @@ Quality Gates:
99
115
  Changed Files:
100
116
  - [path] - [simplification]
101
117
 
118
+ Fallback Review:
119
+ - Findings: [fallback-like findings detected]
120
+ - Classification: [masking fallback slop | grounded fallback]
121
+ - Escalation Status: [none | raised to leader/ralplan | no escalation]
122
+
102
123
  Remaining Risks:
103
124
  - [none or short deferred item]
104
125
  ```
@@ -112,3 +133,7 @@ Remaining Risks:
112
133
  **Bad:** Start rewriting architecture before protecting behavior with tests.
113
134
 
114
135
  **Bad:** Collapse multiple smell categories into one large refactor with no intermediate verification.
136
+
137
+ **Bad:** Keep a `fallback if it fails` branch that silently defaults after a swallowed error instead of fixing the root cause or making failure explicit.
138
+
139
+ **Good:** A version-specific compatibility shim is narrow, documented, preserves error evidence, has primary and fallback regression tests, and is reported as a grounded compatibility/fail-safe fallback.
@@ -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}}
@@ -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.