oh-my-codex 0.14.4 → 0.15.1

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 (614) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/Cargo.lock +6 -6
  3. package/Cargo.toml +2 -1
  4. package/README.md +40 -7
  5. package/crates/omx-explore/Cargo.toml +1 -0
  6. package/crates/omx-explore/src/main.rs +246 -24
  7. package/crates/omx-mux/Cargo.toml +1 -0
  8. package/crates/omx-runtime/Cargo.toml +1 -0
  9. package/crates/omx-runtime-core/Cargo.toml +1 -0
  10. package/crates/omx-runtime-core/src/dispatch.rs +2 -1
  11. package/crates/omx-runtime-core/src/engine.rs +2 -2
  12. package/crates/omx-runtime-core/src/mailbox.rs +2 -1
  13. package/crates/omx-sparkshell/Cargo.toml +1 -0
  14. package/crates/omx-sparkshell/src/codex_bridge.rs +1 -0
  15. package/crates/omx-sparkshell/src/prompt.rs +1 -0
  16. package/crates/omx-sparkshell/src/threshold.rs +1 -0
  17. package/dist/agents/__tests__/native-config.test.js +98 -4
  18. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  19. package/dist/agents/native-config.d.ts +4 -0
  20. package/dist/agents/native-config.d.ts.map +1 -1
  21. package/dist/agents/native-config.js +19 -3
  22. package/dist/agents/native-config.js.map +1 -1
  23. package/dist/agents/policy.d.ts +10 -0
  24. package/dist/agents/policy.d.ts.map +1 -0
  25. package/dist/agents/policy.js +61 -0
  26. package/dist/agents/policy.js.map +1 -0
  27. package/dist/catalog/__tests__/generator.test.js +2 -0
  28. package/dist/catalog/__tests__/generator.test.js.map +1 -1
  29. package/dist/catalog/__tests__/plugin-bundle-ssot.test.d.ts +2 -0
  30. package/dist/catalog/__tests__/plugin-bundle-ssot.test.d.ts.map +1 -0
  31. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js +72 -0
  32. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js.map +1 -0
  33. package/dist/catalog/installable.d.ts +5 -0
  34. package/dist/catalog/installable.d.ts.map +1 -0
  35. package/dist/catalog/installable.js +13 -0
  36. package/dist/catalog/installable.js.map +1 -0
  37. package/dist/catalog/skill-mirror.d.ts +20 -0
  38. package/dist/catalog/skill-mirror.d.ts.map +1 -0
  39. package/dist/catalog/skill-mirror.js +104 -0
  40. package/dist/catalog/skill-mirror.js.map +1 -0
  41. package/dist/cli/__tests__/ask.test.js +4 -1
  42. package/dist/cli/__tests__/ask.test.js.map +1 -1
  43. package/dist/cli/__tests__/codex-plugin-layout.test.d.ts +2 -0
  44. package/dist/cli/__tests__/codex-plugin-layout.test.d.ts.map +1 -0
  45. package/dist/cli/__tests__/codex-plugin-layout.test.js +210 -0
  46. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -0
  47. package/dist/cli/__tests__/doctor-team.test.js +46 -1
  48. package/dist/cli/__tests__/doctor-team.test.js.map +1 -1
  49. package/dist/cli/__tests__/doctor-warning-copy.test.js +225 -111
  50. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  51. package/dist/cli/__tests__/exec.test.js +96 -1
  52. package/dist/cli/__tests__/exec.test.js.map +1 -1
  53. package/dist/cli/__tests__/explore.test.js +26 -9
  54. package/dist/cli/__tests__/explore.test.js.map +1 -1
  55. package/dist/cli/__tests__/index.test.js +301 -7
  56. package/dist/cli/__tests__/index.test.js.map +1 -1
  57. package/dist/cli/__tests__/launch-fallback.test.js +358 -4
  58. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  59. package/dist/cli/__tests__/list.test.d.ts +2 -0
  60. package/dist/cli/__tests__/list.test.d.ts.map +1 -0
  61. package/dist/cli/__tests__/list.test.js +38 -0
  62. package/dist/cli/__tests__/list.test.js.map +1 -0
  63. package/dist/cli/__tests__/mcp-parity.test.js +86 -0
  64. package/dist/cli/__tests__/mcp-parity.test.js.map +1 -1
  65. package/dist/cli/__tests__/mcp-serve.test.d.ts +2 -0
  66. package/dist/cli/__tests__/mcp-serve.test.d.ts.map +1 -0
  67. package/dist/cli/__tests__/mcp-serve.test.js +38 -0
  68. package/dist/cli/__tests__/mcp-serve.test.js.map +1 -0
  69. package/dist/cli/__tests__/nested-help-routing.test.js +1 -0
  70. package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
  71. package/dist/cli/__tests__/package-bin-contract.test.js +58 -3
  72. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
  73. package/dist/cli/__tests__/question.test.js +209 -5
  74. package/dist/cli/__tests__/question.test.js.map +1 -1
  75. package/dist/cli/__tests__/setup-agents-overwrite.test.js +146 -3
  76. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
  77. package/dist/cli/__tests__/setup-install-mode.test.d.ts +2 -0
  78. package/dist/cli/__tests__/setup-install-mode.test.d.ts.map +1 -0
  79. package/dist/cli/__tests__/setup-install-mode.test.js +873 -0
  80. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -0
  81. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +83 -22
  82. package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -1
  83. package/dist/cli/__tests__/setup-refresh.test.js +120 -2
  84. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  85. package/dist/cli/__tests__/setup-skills-overwrite.test.js +32 -13
  86. package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
  87. package/dist/cli/__tests__/sidecar.test.d.ts +2 -0
  88. package/dist/cli/__tests__/sidecar.test.d.ts.map +1 -0
  89. package/dist/cli/__tests__/sidecar.test.js +24 -0
  90. package/dist/cli/__tests__/sidecar.test.js.map +1 -0
  91. package/dist/cli/__tests__/team.test.js +90 -42
  92. package/dist/cli/__tests__/team.test.js.map +1 -1
  93. package/dist/cli/__tests__/version-sync-contract.test.js +11 -0
  94. package/dist/cli/__tests__/version-sync-contract.test.js.map +1 -1
  95. package/dist/cli/codex-home.d.ts +4 -5
  96. package/dist/cli/codex-home.d.ts.map +1 -1
  97. package/dist/cli/codex-home.js +9 -37
  98. package/dist/cli/codex-home.js.map +1 -1
  99. package/dist/cli/doctor.d.ts +1 -1
  100. package/dist/cli/doctor.d.ts.map +1 -1
  101. package/dist/cli/doctor.js +509 -278
  102. package/dist/cli/doctor.js.map +1 -1
  103. package/dist/cli/index.d.ts +13 -5
  104. package/dist/cli/index.d.ts.map +1 -1
  105. package/dist/cli/index.js +351 -60
  106. package/dist/cli/index.js.map +1 -1
  107. package/dist/cli/list.d.ts +2 -0
  108. package/dist/cli/list.d.ts.map +1 -0
  109. package/dist/cli/list.js +40 -0
  110. package/dist/cli/list.js.map +1 -0
  111. package/dist/cli/mcp-serve.d.ts +12 -0
  112. package/dist/cli/mcp-serve.d.ts.map +1 -0
  113. package/dist/cli/mcp-serve.js +63 -0
  114. package/dist/cli/mcp-serve.js.map +1 -0
  115. package/dist/cli/plugin-marketplace.d.ts +13 -0
  116. package/dist/cli/plugin-marketplace.d.ts.map +1 -0
  117. package/dist/cli/plugin-marketplace.js +77 -0
  118. package/dist/cli/plugin-marketplace.js.map +1 -0
  119. package/dist/cli/question.d.ts.map +1 -1
  120. package/dist/cli/question.js +27 -2
  121. package/dist/cli/question.js.map +1 -1
  122. package/dist/cli/setup-preferences.d.ts +20 -0
  123. package/dist/cli/setup-preferences.d.ts.map +1 -0
  124. package/dist/cli/setup-preferences.js +71 -0
  125. package/dist/cli/setup-preferences.js.map +1 -0
  126. package/dist/cli/setup.d.ts +12 -3
  127. package/dist/cli/setup.d.ts.map +1 -1
  128. package/dist/cli/setup.js +1080 -254
  129. package/dist/cli/setup.js.map +1 -1
  130. package/dist/cli/team.d.ts +1 -0
  131. package/dist/cli/team.d.ts.map +1 -1
  132. package/dist/cli/team.js +22 -3
  133. package/dist/cli/team.js.map +1 -1
  134. package/dist/cli/uninstall.d.ts.map +1 -1
  135. package/dist/cli/uninstall.js +2 -8
  136. package/dist/cli/uninstall.js.map +1 -1
  137. package/dist/config/__tests__/generator-idempotent.test.js +100 -3
  138. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  139. package/dist/config/__tests__/generator-notify.test.js +6 -5
  140. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  141. package/dist/config/__tests__/generator-status-line-presets.test.d.ts +2 -0
  142. package/dist/config/__tests__/generator-status-line-presets.test.d.ts.map +1 -0
  143. package/dist/config/__tests__/generator-status-line-presets.test.js +203 -0
  144. package/dist/config/__tests__/generator-status-line-presets.test.js.map +1 -0
  145. package/dist/config/__tests__/models.test.js +35 -2
  146. package/dist/config/__tests__/models.test.js.map +1 -1
  147. package/dist/config/codex-hooks.d.ts.map +1 -1
  148. package/dist/config/codex-hooks.js +2 -7
  149. package/dist/config/codex-hooks.js.map +1 -1
  150. package/dist/config/generator.d.ts +10 -0
  151. package/dist/config/generator.d.ts.map +1 -1
  152. package/dist/config/generator.js +259 -76
  153. package/dist/config/generator.js.map +1 -1
  154. package/dist/config/models.d.ts +13 -3
  155. package/dist/config/models.d.ts.map +1 -1
  156. package/dist/config/models.js +25 -5
  157. package/dist/config/models.js.map +1 -1
  158. package/dist/config/omx-first-party-mcp.d.ts +18 -0
  159. package/dist/config/omx-first-party-mcp.d.ts.map +1 -0
  160. package/dist/config/omx-first-party-mcp.js +76 -0
  161. package/dist/config/omx-first-party-mcp.js.map +1 -0
  162. package/dist/document-refresh/__tests__/enforcer.test.d.ts +2 -0
  163. package/dist/document-refresh/__tests__/enforcer.test.d.ts.map +1 -0
  164. package/dist/document-refresh/__tests__/enforcer.test.js +128 -0
  165. package/dist/document-refresh/__tests__/enforcer.test.js.map +1 -0
  166. package/dist/document-refresh/config.d.ts +9 -0
  167. package/dist/document-refresh/config.d.ts.map +1 -0
  168. package/dist/document-refresh/config.js +70 -0
  169. package/dist/document-refresh/config.js.map +1 -0
  170. package/dist/document-refresh/enforcer.d.ts +43 -0
  171. package/dist/document-refresh/enforcer.d.ts.map +1 -0
  172. package/dist/document-refresh/enforcer.js +329 -0
  173. package/dist/document-refresh/enforcer.js.map +1 -0
  174. package/dist/exec/followup.d.ts +44 -0
  175. package/dist/exec/followup.d.ts.map +1 -0
  176. package/dist/exec/followup.js +349 -0
  177. package/dist/exec/followup.js.map +1 -0
  178. package/dist/hooks/__tests__/codebase-map.test.js +63 -1
  179. package/dist/hooks/__tests__/codebase-map.test.js.map +1 -1
  180. package/dist/hooks/__tests__/deep-interview-contract.test.js +10 -7
  181. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  182. package/dist/hooks/__tests__/keyword-detector.test.js +89 -0
  183. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  184. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +84 -1
  185. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  186. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +23 -2
  187. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
  188. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +43 -0
  189. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
  190. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js +17 -0
  191. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js.map +1 -1
  192. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js +53 -0
  193. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +1 -1
  194. package/dist/hooks/__tests__/notify-hook-regression-205.test.js +4 -4
  195. package/dist/hooks/__tests__/notify-hook-regression-205.test.js.map +1 -1
  196. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +103 -0
  197. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  198. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js +27 -13
  199. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js.map +1 -1
  200. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.d.ts +2 -0
  201. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.d.ts.map +1 -0
  202. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js +35 -0
  203. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js.map +1 -0
  204. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +70 -3
  205. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
  206. package/dist/hooks/__tests__/pre-context-gate-skills.test.js +5 -0
  207. package/dist/hooks/__tests__/pre-context-gate-skills.test.js.map +1 -1
  208. package/dist/hooks/__tests__/prompt-guidance-fragments.test.js +3 -2
  209. package/dist/hooks/__tests__/prompt-guidance-fragments.test.js.map +1 -1
  210. package/dist/hooks/__tests__/prompt-refactor-contract.test.d.ts +2 -0
  211. package/dist/hooks/__tests__/prompt-refactor-contract.test.d.ts.map +1 -0
  212. package/dist/hooks/__tests__/prompt-refactor-contract.test.js +22 -0
  213. package/dist/hooks/__tests__/prompt-refactor-contract.test.js.map +1 -0
  214. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.d.ts +2 -0
  215. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.d.ts.map +1 -0
  216. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.js +28 -0
  217. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.js.map +1 -0
  218. package/dist/hooks/__tests__/triage-heuristic.test.js +59 -4
  219. package/dist/hooks/__tests__/triage-heuristic.test.js.map +1 -1
  220. package/dist/hooks/__tests__/visual-ralph-skill.test.d.ts +2 -0
  221. package/dist/hooks/__tests__/visual-ralph-skill.test.d.ts.map +1 -0
  222. package/dist/hooks/__tests__/visual-ralph-skill.test.js +44 -0
  223. package/dist/hooks/__tests__/visual-ralph-skill.test.js.map +1 -0
  224. package/dist/hooks/codebase-map.d.ts.map +1 -1
  225. package/dist/hooks/codebase-map.js +83 -6
  226. package/dist/hooks/codebase-map.js.map +1 -1
  227. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  228. package/dist/hooks/keyword-detector.js +19 -14
  229. package/dist/hooks/keyword-detector.js.map +1 -1
  230. package/dist/hooks/prompt-guidance-contract.d.ts +6 -0
  231. package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
  232. package/dist/hooks/prompt-guidance-contract.js +89 -0
  233. package/dist/hooks/prompt-guidance-contract.js.map +1 -1
  234. package/dist/hooks/session.d.ts +2 -0
  235. package/dist/hooks/session.d.ts.map +1 -1
  236. package/dist/hooks/session.js +6 -0
  237. package/dist/hooks/session.js.map +1 -1
  238. package/dist/hooks/triage-heuristic.d.ts +2 -2
  239. package/dist/hooks/triage-heuristic.d.ts.map +1 -1
  240. package/dist/hooks/triage-heuristic.js +97 -20
  241. package/dist/hooks/triage-heuristic.js.map +1 -1
  242. package/dist/hooks/triage-state.d.ts +1 -1
  243. package/dist/hooks/triage-state.d.ts.map +1 -1
  244. package/dist/hooks/triage-state.js +2 -1
  245. package/dist/hooks/triage-state.js.map +1 -1
  246. package/dist/hud/__tests__/index.test.js +4 -4
  247. package/dist/hud/__tests__/index.test.js.map +1 -1
  248. package/dist/hud/__tests__/state.test.js +4 -0
  249. package/dist/hud/__tests__/state.test.js.map +1 -1
  250. package/dist/hud/__tests__/types.test.js +27 -0
  251. package/dist/hud/__tests__/types.test.js.map +1 -1
  252. package/dist/hud/state.d.ts.map +1 -1
  253. package/dist/hud/state.js +8 -0
  254. package/dist/hud/state.js.map +1 -1
  255. package/dist/hud/types.d.ts +9 -0
  256. package/dist/hud/types.d.ts.map +1 -1
  257. package/dist/hud/types.js +3 -0
  258. package/dist/hud/types.js.map +1 -1
  259. package/dist/mcp/__tests__/bootstrap.test.js +45 -5
  260. package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
  261. package/dist/mcp/__tests__/server-lifecycle.test.js +50 -7
  262. package/dist/mcp/__tests__/server-lifecycle.test.js.map +1 -1
  263. package/dist/mcp/__tests__/state-server.test.js +67 -9
  264. package/dist/mcp/__tests__/state-server.test.js.map +1 -1
  265. package/dist/mcp/bootstrap.d.ts +12 -1
  266. package/dist/mcp/bootstrap.d.ts.map +1 -1
  267. package/dist/mcp/bootstrap.js +87 -29
  268. package/dist/mcp/bootstrap.js.map +1 -1
  269. package/dist/mcp/state-server.d.ts +5 -11
  270. package/dist/mcp/state-server.d.ts.map +1 -1
  271. package/dist/mcp/state-server.js +16 -432
  272. package/dist/mcp/state-server.js.map +1 -1
  273. package/dist/planning/__tests__/artifacts.test.js +152 -1
  274. package/dist/planning/__tests__/artifacts.test.js.map +1 -1
  275. package/dist/planning/artifacts.d.ts +9 -0
  276. package/dist/planning/artifacts.d.ts.map +1 -1
  277. package/dist/planning/artifacts.js +60 -1
  278. package/dist/planning/artifacts.js.map +1 -1
  279. package/dist/question/__tests__/deep-interview.test.js +1 -1
  280. package/dist/question/__tests__/deep-interview.test.js.map +1 -1
  281. package/dist/question/__tests__/renderer.test.js +70 -0
  282. package/dist/question/__tests__/renderer.test.js.map +1 -1
  283. package/dist/question/__tests__/ui.test.js +49 -0
  284. package/dist/question/__tests__/ui.test.js.map +1 -1
  285. package/dist/question/renderer.d.ts +14 -1
  286. package/dist/question/renderer.d.ts.map +1 -1
  287. package/dist/question/renderer.js +109 -10
  288. package/dist/question/renderer.js.map +1 -1
  289. package/dist/question/state.d.ts +2 -0
  290. package/dist/question/state.d.ts.map +1 -1
  291. package/dist/question/state.js +4 -0
  292. package/dist/question/state.js.map +1 -1
  293. package/dist/question/types.d.ts +2 -1
  294. package/dist/question/types.d.ts.map +1 -1
  295. package/dist/question/types.js.map +1 -1
  296. package/dist/question/ui.d.ts.map +1 -1
  297. package/dist/question/ui.js +28 -8
  298. package/dist/question/ui.js.map +1 -1
  299. package/dist/runtime/__tests__/bridge.test.js +143 -1
  300. package/dist/runtime/__tests__/bridge.test.js.map +1 -1
  301. package/dist/runtime/bridge.d.ts +21 -0
  302. package/dist/runtime/bridge.d.ts.map +1 -1
  303. package/dist/runtime/bridge.js +54 -4
  304. package/dist/runtime/bridge.js.map +1 -1
  305. package/dist/scripts/__tests__/codex-native-hook.test.js +1904 -230
  306. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  307. package/dist/scripts/__tests__/generate-release-body.test.js +90 -1
  308. package/dist/scripts/__tests__/generate-release-body.test.js.map +1 -1
  309. package/dist/scripts/__tests__/hook-derived-watcher.test.js +110 -2
  310. package/dist/scripts/__tests__/hook-derived-watcher.test.js.map +1 -1
  311. package/dist/scripts/__tests__/postinstall.test.js +7 -93
  312. package/dist/scripts/__tests__/postinstall.test.js.map +1 -1
  313. package/dist/scripts/__tests__/prompt-inventory.test.d.ts +2 -0
  314. package/dist/scripts/__tests__/prompt-inventory.test.d.ts.map +1 -0
  315. package/dist/scripts/__tests__/prompt-inventory.test.js +56 -0
  316. package/dist/scripts/__tests__/prompt-inventory.test.js.map +1 -0
  317. package/dist/scripts/__tests__/run-test-files.test.d.ts +2 -0
  318. package/dist/scripts/__tests__/run-test-files.test.d.ts.map +1 -0
  319. package/dist/scripts/__tests__/run-test-files.test.js +62 -0
  320. package/dist/scripts/__tests__/run-test-files.test.js.map +1 -0
  321. package/dist/scripts/__tests__/smoke-packed-install.test.js +13 -1
  322. package/dist/scripts/__tests__/smoke-packed-install.test.js.map +1 -1
  323. package/dist/scripts/__tests__/verify-native-agents.test.d.ts +2 -0
  324. package/dist/scripts/__tests__/verify-native-agents.test.d.ts.map +1 -0
  325. package/dist/scripts/__tests__/verify-native-agents.test.js +166 -0
  326. package/dist/scripts/__tests__/verify-native-agents.test.js.map +1 -0
  327. package/dist/scripts/codex-execution-surface.d.ts +16 -0
  328. package/dist/scripts/codex-execution-surface.d.ts.map +1 -0
  329. package/dist/scripts/codex-execution-surface.js +42 -0
  330. package/dist/scripts/codex-execution-surface.js.map +1 -0
  331. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  332. package/dist/scripts/codex-native-hook.js +418 -76
  333. package/dist/scripts/codex-native-hook.js.map +1 -1
  334. package/dist/scripts/codex-native-pre-post.d.ts +8 -0
  335. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  336. package/dist/scripts/codex-native-pre-post.js +133 -19
  337. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  338. package/dist/scripts/generate-release-body.d.ts +1 -0
  339. package/dist/scripts/generate-release-body.d.ts.map +1 -1
  340. package/dist/scripts/generate-release-body.js +32 -3
  341. package/dist/scripts/generate-release-body.js.map +1 -1
  342. package/dist/scripts/hook-derived-watcher.js +46 -7
  343. package/dist/scripts/hook-derived-watcher.js.map +1 -1
  344. package/dist/scripts/notify-fallback-watcher.js +59 -9
  345. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  346. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.d.ts +2 -0
  347. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.d.ts.map +1 -0
  348. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.js +153 -0
  349. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.js.map +1 -0
  350. package/dist/scripts/notify-hook/managed-tmux.d.ts.map +1 -1
  351. package/dist/scripts/notify-hook/managed-tmux.js +18 -1
  352. package/dist/scripts/notify-hook/managed-tmux.js.map +1 -1
  353. package/dist/scripts/notify-hook/process-runner.d.ts.map +1 -1
  354. package/dist/scripts/notify-hook/process-runner.js +7 -3
  355. package/dist/scripts/notify-hook/process-runner.js.map +1 -1
  356. package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
  357. package/dist/scripts/notify-hook/team-dispatch.js +96 -11
  358. package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
  359. package/dist/scripts/notify-hook/team-tmux-guard.js +3 -3
  360. package/dist/scripts/notify-hook/team-worker-posttooluse.d.ts +34 -0
  361. package/dist/scripts/notify-hook/team-worker-posttooluse.d.ts.map +1 -0
  362. package/dist/scripts/notify-hook/team-worker-posttooluse.js +434 -0
  363. package/dist/scripts/notify-hook/team-worker-posttooluse.js.map +1 -0
  364. package/dist/scripts/notify-hook/team-worker.d.ts +1 -1
  365. package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
  366. package/dist/scripts/notify-hook/team-worker.js +3 -43
  367. package/dist/scripts/notify-hook/team-worker.js.map +1 -1
  368. package/dist/scripts/notify-hook.js +36 -5
  369. package/dist/scripts/notify-hook.js.map +1 -1
  370. package/dist/scripts/postinstall.d.ts +1 -5
  371. package/dist/scripts/postinstall.d.ts.map +1 -1
  372. package/dist/scripts/postinstall.js +3 -42
  373. package/dist/scripts/postinstall.js.map +1 -1
  374. package/dist/scripts/prompt-inventory.d.ts +29 -0
  375. package/dist/scripts/prompt-inventory.d.ts.map +1 -0
  376. package/dist/scripts/prompt-inventory.js +178 -0
  377. package/dist/scripts/prompt-inventory.js.map +1 -0
  378. package/dist/scripts/run-test-files.js +32 -2
  379. package/dist/scripts/run-test-files.js.map +1 -1
  380. package/dist/scripts/smoke-packed-install.d.ts +3 -0
  381. package/dist/scripts/smoke-packed-install.d.ts.map +1 -1
  382. package/dist/scripts/smoke-packed-install.js +9 -1
  383. package/dist/scripts/smoke-packed-install.js.map +1 -1
  384. package/dist/scripts/sync-plugin-mirror.d.ts +13 -0
  385. package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -0
  386. package/dist/scripts/sync-plugin-mirror.js +242 -0
  387. package/dist/scripts/sync-plugin-mirror.js.map +1 -0
  388. package/dist/scripts/verify-native-agents.d.ts +16 -0
  389. package/dist/scripts/verify-native-agents.d.ts.map +1 -0
  390. package/dist/scripts/verify-native-agents.js +188 -0
  391. package/dist/scripts/verify-native-agents.js.map +1 -0
  392. package/dist/session-history/search.d.ts.map +1 -1
  393. package/dist/session-history/search.js +7 -2
  394. package/dist/session-history/search.js.map +1 -1
  395. package/dist/sidecar/__tests__/boundary.test.d.ts +2 -0
  396. package/dist/sidecar/__tests__/boundary.test.d.ts.map +1 -0
  397. package/dist/sidecar/__tests__/boundary.test.js +48 -0
  398. package/dist/sidecar/__tests__/boundary.test.js.map +1 -0
  399. package/dist/sidecar/__tests__/collector.test.d.ts +2 -0
  400. package/dist/sidecar/__tests__/collector.test.d.ts.map +1 -0
  401. package/dist/sidecar/__tests__/collector.test.js +162 -0
  402. package/dist/sidecar/__tests__/collector.test.js.map +1 -0
  403. package/dist/sidecar/__tests__/render.test.d.ts +2 -0
  404. package/dist/sidecar/__tests__/render.test.d.ts.map +1 -0
  405. package/dist/sidecar/__tests__/render.test.js +67 -0
  406. package/dist/sidecar/__tests__/render.test.js.map +1 -0
  407. package/dist/sidecar/__tests__/tmux.test.d.ts +2 -0
  408. package/dist/sidecar/__tests__/tmux.test.d.ts.map +1 -0
  409. package/dist/sidecar/__tests__/tmux.test.js +30 -0
  410. package/dist/sidecar/__tests__/tmux.test.js.map +1 -0
  411. package/dist/sidecar/__tests__/watch.test.d.ts +2 -0
  412. package/dist/sidecar/__tests__/watch.test.d.ts.map +1 -0
  413. package/dist/sidecar/__tests__/watch.test.js +42 -0
  414. package/dist/sidecar/__tests__/watch.test.js.map +1 -0
  415. package/dist/sidecar/collector.d.ts +4 -0
  416. package/dist/sidecar/collector.d.ts.map +1 -0
  417. package/dist/sidecar/collector.js +377 -0
  418. package/dist/sidecar/collector.js.map +1 -0
  419. package/dist/sidecar/index.d.ts +25 -0
  420. package/dist/sidecar/index.d.ts.map +1 -0
  421. package/dist/sidecar/index.js +165 -0
  422. package/dist/sidecar/index.js.map +1 -0
  423. package/dist/sidecar/render.d.ts +3 -0
  424. package/dist/sidecar/render.d.ts.map +1 -0
  425. package/dist/sidecar/render.js +72 -0
  426. package/dist/sidecar/render.js.map +1 -0
  427. package/dist/sidecar/tmux.d.ts +13 -0
  428. package/dist/sidecar/tmux.d.ts.map +1 -0
  429. package/dist/sidecar/tmux.js +44 -0
  430. package/dist/sidecar/tmux.js.map +1 -0
  431. package/dist/sidecar/types.d.ts +125 -0
  432. package/dist/sidecar/types.d.ts.map +1 -0
  433. package/dist/sidecar/types.js +2 -0
  434. package/dist/sidecar/types.js.map +1 -0
  435. package/dist/state/__tests__/operations.test.js +50 -22
  436. package/dist/state/__tests__/operations.test.js.map +1 -1
  437. package/dist/state/operations.d.ts +1 -1
  438. package/dist/state/operations.d.ts.map +1 -1
  439. package/dist/state/operations.js +19 -7
  440. package/dist/state/operations.js.map +1 -1
  441. package/dist/team/__tests__/commit-hygiene.test.d.ts +2 -0
  442. package/dist/team/__tests__/commit-hygiene.test.d.ts.map +1 -0
  443. package/dist/team/__tests__/commit-hygiene.test.js +93 -0
  444. package/dist/team/__tests__/commit-hygiene.test.js.map +1 -0
  445. package/dist/team/__tests__/delegation-policy.test.d.ts +2 -0
  446. package/dist/team/__tests__/delegation-policy.test.d.ts.map +1 -0
  447. package/dist/team/__tests__/delegation-policy.test.js +69 -0
  448. package/dist/team/__tests__/delegation-policy.test.js.map +1 -0
  449. package/dist/team/__tests__/events.test.js +54 -4
  450. package/dist/team/__tests__/events.test.js.map +1 -1
  451. package/dist/team/__tests__/hook-primary-e2e-contract.test.d.ts +2 -0
  452. package/dist/team/__tests__/hook-primary-e2e-contract.test.d.ts.map +1 -0
  453. package/dist/team/__tests__/hook-primary-e2e-contract.test.js +78 -0
  454. package/dist/team/__tests__/hook-primary-e2e-contract.test.js.map +1 -0
  455. package/dist/team/__tests__/model-contract.test.js +18 -2
  456. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  457. package/dist/team/__tests__/repo-aware-decomposition.test.d.ts +2 -0
  458. package/dist/team/__tests__/repo-aware-decomposition.test.d.ts.map +1 -0
  459. package/dist/team/__tests__/repo-aware-decomposition.test.js +95 -0
  460. package/dist/team/__tests__/repo-aware-decomposition.test.js.map +1 -0
  461. package/dist/team/__tests__/runtime.test.js +677 -17
  462. package/dist/team/__tests__/runtime.test.js.map +1 -1
  463. package/dist/team/__tests__/state-root.test.js +177 -1
  464. package/dist/team/__tests__/state-root.test.js.map +1 -1
  465. package/dist/team/__tests__/state.test.js +110 -0
  466. package/dist/team/__tests__/state.test.js.map +1 -1
  467. package/dist/team/__tests__/tmux-session.test.js +301 -2
  468. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  469. package/dist/team/__tests__/worker-bootstrap.test.js +94 -0
  470. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  471. package/dist/team/commit-hygiene.d.ts +22 -3
  472. package/dist/team/commit-hygiene.d.ts.map +1 -1
  473. package/dist/team/commit-hygiene.js +134 -2
  474. package/dist/team/commit-hygiene.js.map +1 -1
  475. package/dist/team/contracts.d.ts +1 -1
  476. package/dist/team/contracts.d.ts.map +1 -1
  477. package/dist/team/contracts.js +2 -0
  478. package/dist/team/contracts.js.map +1 -1
  479. package/dist/team/dag-schema.d.ts +38 -0
  480. package/dist/team/dag-schema.d.ts.map +1 -0
  481. package/dist/team/dag-schema.js +221 -0
  482. package/dist/team/dag-schema.js.map +1 -0
  483. package/dist/team/delegation-policy.d.ts +3 -0
  484. package/dist/team/delegation-policy.d.ts.map +1 -0
  485. package/dist/team/delegation-policy.js +82 -0
  486. package/dist/team/delegation-policy.js.map +1 -0
  487. package/dist/team/model-contract.d.ts +3 -1
  488. package/dist/team/model-contract.d.ts.map +1 -1
  489. package/dist/team/model-contract.js +44 -5
  490. package/dist/team/model-contract.js.map +1 -1
  491. package/dist/team/repo-aware-decomposition.d.ts +60 -0
  492. package/dist/team/repo-aware-decomposition.d.ts.map +1 -0
  493. package/dist/team/repo-aware-decomposition.js +229 -0
  494. package/dist/team/repo-aware-decomposition.js.map +1 -0
  495. package/dist/team/runtime.d.ts +34 -0
  496. package/dist/team/runtime.d.ts.map +1 -1
  497. package/dist/team/runtime.js +191 -50
  498. package/dist/team/runtime.js.map +1 -1
  499. package/dist/team/state/tasks.d.ts.map +1 -1
  500. package/dist/team/state/tasks.js +33 -0
  501. package/dist/team/state/tasks.js.map +1 -1
  502. package/dist/team/state/types.d.ts +23 -1
  503. package/dist/team/state/types.d.ts.map +1 -1
  504. package/dist/team/state/types.js.map +1 -1
  505. package/dist/team/state-root.d.ts +35 -0
  506. package/dist/team/state-root.d.ts.map +1 -1
  507. package/dist/team/state-root.js +281 -1
  508. package/dist/team/state-root.js.map +1 -1
  509. package/dist/team/state.d.ts +27 -1
  510. package/dist/team/state.d.ts.map +1 -1
  511. package/dist/team/state.js +6 -0
  512. package/dist/team/state.js.map +1 -1
  513. package/dist/team/tmux-session.d.ts +1 -0
  514. package/dist/team/tmux-session.d.ts.map +1 -1
  515. package/dist/team/tmux-session.js +83 -6
  516. package/dist/team/tmux-session.js.map +1 -1
  517. package/dist/team/worker-bootstrap.d.ts +3 -0
  518. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  519. package/dist/team/worker-bootstrap.js +77 -4
  520. package/dist/team/worker-bootstrap.js.map +1 -1
  521. package/dist/utils/__tests__/agents-model-table.test.js +8 -0
  522. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
  523. package/dist/utils/__tests__/paths.test.js +42 -9
  524. package/dist/utils/__tests__/paths.test.js.map +1 -1
  525. package/dist/utils/agents-md.d.ts +3 -0
  526. package/dist/utils/agents-md.d.ts.map +1 -1
  527. package/dist/utils/agents-md.js +25 -0
  528. package/dist/utils/agents-md.js.map +1 -1
  529. package/dist/utils/agents-model-table.d.ts.map +1 -1
  530. package/dist/utils/agents-model-table.js +2 -3
  531. package/dist/utils/agents-model-table.js.map +1 -1
  532. package/package.json +14 -7
  533. package/plugins/oh-my-codex/.app.json +3 -0
  534. package/plugins/oh-my-codex/.codex-plugin/plugin.json +30 -0
  535. package/plugins/oh-my-codex/.mcp.json +44 -0
  536. package/plugins/oh-my-codex/skills/ai-slop-cleaner/SKILL.md +114 -0
  537. package/plugins/oh-my-codex/skills/analyze/SKILL.md +148 -0
  538. package/plugins/oh-my-codex/skills/ask-claude/SKILL.md +61 -0
  539. package/plugins/oh-my-codex/skills/ask-gemini/SKILL.md +61 -0
  540. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +231 -0
  541. package/plugins/oh-my-codex/skills/autoresearch/SKILL.md +68 -0
  542. package/plugins/oh-my-codex/skills/cancel/SKILL.md +399 -0
  543. package/plugins/oh-my-codex/skills/code-review/SKILL.md +290 -0
  544. package/plugins/oh-my-codex/skills/configure-notifications/SKILL.md +287 -0
  545. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +464 -0
  546. package/plugins/oh-my-codex/skills/doctor/SKILL.md +239 -0
  547. package/plugins/oh-my-codex/skills/help/SKILL.md +202 -0
  548. package/plugins/oh-my-codex/skills/hud/SKILL.md +98 -0
  549. package/plugins/oh-my-codex/skills/note/SKILL.md +62 -0
  550. package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +135 -0
  551. package/plugins/oh-my-codex/skills/pipeline/SKILL.md +86 -0
  552. package/plugins/oh-my-codex/skills/plan/SKILL.md +276 -0
  553. package/plugins/oh-my-codex/skills/ralph/SKILL.md +269 -0
  554. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +162 -0
  555. package/plugins/oh-my-codex/skills/security-review/SKILL.md +300 -0
  556. package/plugins/oh-my-codex/skills/skill/SKILL.md +835 -0
  557. package/plugins/oh-my-codex/skills/team/SKILL.md +510 -0
  558. package/plugins/oh-my-codex/skills/trace/SKILL.md +33 -0
  559. package/plugins/oh-my-codex/skills/ultraqa/SKILL.md +143 -0
  560. package/plugins/oh-my-codex/skills/ultrawork/SKILL.md +175 -0
  561. package/plugins/oh-my-codex/skills/visual-ralph/SKILL.md +153 -0
  562. package/plugins/oh-my-codex/skills/visual-verdict/SKILL.md +76 -0
  563. package/plugins/oh-my-codex/skills/wiki/SKILL.md +57 -0
  564. package/plugins/oh-my-codex/skills/worker/SKILL.md +106 -0
  565. package/prompts/critic.md +35 -83
  566. package/prompts/executor.md +32 -109
  567. package/prompts/explore-harness.md +1 -1
  568. package/prompts/explore.md +37 -90
  569. package/prompts/planner.md +28 -58
  570. package/prompts/researcher.md +46 -78
  571. package/prompts/verifier.md +23 -31
  572. package/skills/autopilot/SKILL.md +1 -4
  573. package/skills/deep-interview/SKILL.md +8 -5
  574. package/skills/doctor/SKILL.md +45 -17
  575. package/skills/help/SKILL.md +2 -2
  576. package/skills/omx-setup/SKILL.md +52 -9
  577. package/skills/plan/SKILL.md +1 -4
  578. package/skills/ralph/SKILL.md +3 -5
  579. package/skills/ralplan/SKILL.md +2 -6
  580. package/skills/team/SKILL.md +2 -5
  581. package/skills/ultraqa/SKILL.md +1 -4
  582. package/skills/ultrawork/SKILL.md +2 -3
  583. package/skills/visual-ralph/SKILL.md +153 -0
  584. package/skills/web-clone/SKILL.md +12 -354
  585. package/src/scripts/__tests__/codex-native-hook.test.ts +2306 -224
  586. package/src/scripts/__tests__/generate-release-body.test.ts +109 -0
  587. package/src/scripts/__tests__/hook-derived-watcher.test.ts +132 -2
  588. package/src/scripts/__tests__/postinstall.test.ts +7 -104
  589. package/src/scripts/__tests__/prompt-inventory.test.ts +64 -0
  590. package/src/scripts/__tests__/run-test-files.test.ts +72 -0
  591. package/src/scripts/__tests__/smoke-packed-install.test.ts +15 -0
  592. package/src/scripts/__tests__/verify-native-agents.test.ts +204 -0
  593. package/src/scripts/codex-execution-surface.ts +73 -0
  594. package/src/scripts/codex-native-hook.ts +579 -82
  595. package/src/scripts/codex-native-pre-post.ts +157 -19
  596. package/src/scripts/generate-release-body.ts +34 -2
  597. package/src/scripts/hook-derived-watcher.ts +51 -8
  598. package/src/scripts/notify-fallback-watcher.ts +65 -9
  599. package/src/scripts/notify-hook/__tests__/team-worker-posttooluse.test.ts +180 -0
  600. package/src/scripts/notify-hook/managed-tmux.ts +22 -4
  601. package/src/scripts/notify-hook/process-runner.ts +7 -3
  602. package/src/scripts/notify-hook/team-dispatch.ts +103 -11
  603. package/src/scripts/notify-hook/team-tmux-guard.ts +3 -3
  604. package/src/scripts/notify-hook/team-worker-posttooluse.ts +536 -0
  605. package/src/scripts/notify-hook/team-worker.ts +4 -48
  606. package/src/scripts/notify-hook.ts +36 -5
  607. package/src/scripts/postinstall.ts +4 -58
  608. package/src/scripts/prompt-inventory.ts +218 -0
  609. package/src/scripts/run-test-files.ts +41 -2
  610. package/src/scripts/smoke-packed-install.ts +10 -1
  611. package/src/scripts/sync-plugin-mirror.ts +360 -0
  612. package/src/scripts/verify-native-agents.ts +245 -0
  613. package/templates/AGENTS.md +26 -91
  614. package/templates/catalog-manifest.json +16 -1
@@ -0,0 +1,175 @@
1
+ ---
2
+ name: ultrawork
3
+ description: Parallel execution engine for high-throughput task completion
4
+ ---
5
+
6
+ <Purpose>
7
+ Ultrawork is a parallel execution engine for high-throughput task completion. It is a component, not a standalone persistence mode: it provides parallelism, context discipline, and smart delegation guidance, but not Ralph's persistence loop, architect sign-off, or long-running completion guarantees.
8
+ </Purpose>
9
+
10
+ <Use_When>
11
+ - Multiple independent tasks can run simultaneously
12
+ - User says "ulw", "ultrawork", or explicitly wants parallel execution
13
+ - Task benefits from concurrent execution plus lightweight evidence before wrap-up
14
+ - You need a direct-tool lane plus optional background evidence lanes without entering Ralph
15
+ </Use_When>
16
+
17
+ <Do_Not_Use_When>
18
+ - Task requires guaranteed completion with persistence, architect verification, or deslop/reverification -- use `ralph` instead (Ralph includes ultrawork)
19
+ - Task requires a full autonomous pipeline -- use `autopilot` instead (autopilot includes Ralph which includes ultrawork)
20
+ - There is only one sequential task with no parallelism opportunity -- execute directly or delegate to a single `executor`
21
+ - The request is still in plan-consensus mode -- keep planning artifacts in `ralplan` until execution is explicitly authorized
22
+ - User needs session persistence for resume -- use `ralph`, which adds persistence on top of ultrawork
23
+ </Do_Not_Use_When>
24
+
25
+ <Why_This_Exists>
26
+ Sequential task execution wastes time when tasks are independent. Ultrawork keeps the execution branch fast while tightening the protocol: gather enough context first, define pass/fail acceptance criteria before editing, decide deliberately between local execution and delegation, and finish with evidence rather than vibes.
27
+ </Why_This_Exists>
28
+
29
+ <Execution_Policy>
30
+ - Gather enough context before implementation. Start with the task intent, desired outcome, constraints, likely touchpoints, and any uncertainty that would change the execution path.
31
+ - If uncertainty is still material after a quick repo read, do a focused evidence pass first instead of immediately editing.
32
+ - Define pass/fail acceptance criteria before launching execution lanes. Include the command, artifact, or manual check that will prove success.
33
+ - Prefer direct tool work when the task is small, coupled, or blocked on immediate local context. Delegate only when the work is independent enough to benefit from parallel execution.
34
+ - When useful, run a direct-tool lane and one or more background evidence lanes at the same time. Evidence lanes can cover docs, tests, regression mapping, or bounded repo analysis.
35
+ - Fire independent agent calls simultaneously -- never serialize independent work.
36
+ - Always pass the `model` parameter explicitly when delegating.
37
+ - Read `docs/shared/agent-tiers.md` before first delegation for agent selection guidance.
38
+ - Auto-delegate `researcher` when official docs, version-aware framework guidance, best practices, or external dependency behavior materially affect task correctness; treat it as an evidence lane, not a replacement primary workflow.
39
+ - Use `run_in_background: true` for operations over ~30 seconds (installs, builds, tests).
40
+ - Run quick commands (git status, file reads, simple checks) in the foreground.
41
+ - Apply the shared workflow guidance pattern: concise, evidence-dense progress and completion reporting (including speculative/blocked lanes), local overrides for the active workflow branch, and continuation of clear safe execution branches instead of restarting or re-asking.
42
+ - If the user says `continue`, continue the active workflow branch rather than restarting discovery or re-asking settled questions.
43
+ </Execution_Policy>
44
+
45
+ <Steps>
46
+ 1. **Read agent reference**: Load `docs/shared/agent-tiers.md` for tier selection.
47
+ 2. **Context + certainty check**:
48
+ - State the task intent in one sentence.
49
+ - List the constraints and unknowns that could invalidate a quick fix.
50
+ - If confidence is low, explore first and narrow the task before editing.
51
+ 3. **Define acceptance criteria before execution**:
52
+ - What must be true at the end?
53
+ - Which command or artifact proves it?
54
+ - Which manual QA check is required, if any?
55
+ 4. **Classify the work by dependency shape**:
56
+ - Independent tasks -> parallel lanes.
57
+ - Shared-file or prerequisite-heavy tasks -> local execution or staged lanes.
58
+ 5. **Choose self vs delegate deliberately**:
59
+ - Work locally when the next step depends on immediate repo context, shared files, or tight iteration.
60
+ - Delegate when the task slice is bounded, independent, and materially improves throughput.
61
+ 6. **Run execution lanes**:
62
+ - Direct-tool lane for immediate implementation or verification work.
63
+ - Background evidence lanes for tests, docs, repo analysis, or regression checks.
64
+ 7. **Run dependent tasks sequentially**: Wait for prerequisites before launching dependent work.
65
+ 8. **Close with lightweight evidence**:
66
+ - Build/typecheck passes when relevant.
67
+ - Affected tests pass.
68
+ - Manual QA notes are recorded when the task needs a human-visible or behavior-level check.
69
+ - No new errors introduced.
70
+ </Steps>
71
+
72
+ <Tool_Usage>
73
+ - Use LOW-tier delegation for simple lookups and bounded evidence gathering.
74
+ - Use STANDARD-tier delegation for standard implementation and regression work.
75
+ - Use THOROUGH-tier delegation for complex analysis, architectural review, or risky multi-file changes.
76
+ - Prefer a direct-tool lane when the immediate next step is blocked on local context.
77
+ - Prefer background evidence lanes when you can learn something useful in parallel with implementation.
78
+ - Use `run_in_background: true` for package installs, builds, and test suites.
79
+ - Use foreground execution for quick status checks and file operations.
80
+ </Tool_Usage>
81
+
82
+ ## State Management
83
+
84
+ Use `omx_state` MCP tools for ultrawork lifecycle state.
85
+
86
+ - **On start**:
87
+ `state_write({mode: "ultrawork", active: true, reinforcement_count: 1, started_at: "<now>"})`
88
+ - **On each reinforcement/loop step**:
89
+ `state_write({mode: "ultrawork", reinforcement_count: <current>})`
90
+ - **On completion**:
91
+ `state_write({mode: "ultrawork", active: false})`
92
+ - **On cancellation/cleanup**:
93
+ run `$cancel` (which should call `state_clear(mode="ultrawork")`)
94
+
95
+ <Examples>
96
+ <Good>
97
+ Two-track execution with acceptance criteria up front:
98
+ ```
99
+ Acceptance criteria:
100
+ - `npm run build` passes
101
+ - `node --test dist/scripts/__tests__/codex-native-hook.test.js` passes
102
+ - Manual QA: verify `$ultrawork` activation message still points to the session state file
103
+
104
+ Direct-tool lane:
105
+ - update `skills/ultrawork/SKILL.md`
106
+
107
+ Background evidence lane:
108
+ - delegate(role="test-engineer", tier="STANDARD", task="Map which hook tests cover ultrawork activation messaging", model="...")
109
+ ```
110
+ Why good: Context is grounded first, acceptance criteria are explicit, and the direct-tool lane runs alongside a bounded evidence lane.
111
+ </Good>
112
+
113
+ <Good>
114
+ Correct use of self-vs-delegate judgment:
115
+ ```
116
+ Shared-file edit in progress across `src/scripts/codex-native-hook.ts` and its test -> keep implementation local.
117
+ Independent regression mapping for keyword-detector coverage -> delegate to a test-engineer lane.
118
+ ```
119
+ Why good: Shared-file work stays local; independent evidence work fans out.
120
+ </Good>
121
+
122
+ <Bad>
123
+ Parallelizing before the task is grounded:
124
+ ```
125
+ delegate(role="executor", tier="STANDARD", task="Implement whatever seems necessary", model="...")
126
+ delegate(role="test-engineer", tier="STANDARD", task="Figure out how to test it later", model="...")
127
+ ```
128
+ Why bad: No context snapshot, no pass/fail target, and delegation starts before the work is shaped.
129
+ </Bad>
130
+
131
+ <Bad>
132
+ Claiming success without evidence or manual QA:
133
+ ```
134
+ Made the changes. Ultrawork should be updated now.
135
+ ```
136
+ Why bad: No verification output, no acceptance evidence, and no manual QA note when the behavior is user-visible.
137
+ </Bad>
138
+ </Examples>
139
+
140
+ <Escalation_And_Stop_Conditions>
141
+ - When ultrawork is invoked directly (not via Ralph), apply lightweight verification only -- build/typecheck passes when relevant, affected tests pass, and manual QA notes are captured when needed.
142
+ - Ralph owns persistence, architect verification, deslop, and the full verified-completion promise. Do not claim those guarantees from direct ultrawork alone.
143
+ - If a task fails repeatedly across retries, report the issue rather than retrying indefinitely.
144
+ - Escalate to the user when tasks have unclear dependencies, conflicting requirements, or a materially branching acceptance target.
145
+ </Escalation_And_Stop_Conditions>
146
+
147
+ <Final_Checklist>
148
+ - [ ] Task intent and constraints were grounded before editing
149
+ - [ ] Pass/fail acceptance criteria were stated before execution
150
+ - [ ] Parallel lanes were used only for independent work
151
+ - [ ] Build/typecheck passes when relevant
152
+ - [ ] Affected tests pass
153
+ - [ ] Manual QA notes recorded when behavior is user-visible
154
+ - [ ] No new errors introduced
155
+ - [ ] Completion claim stays inside ultrawork's lightweight-verification boundary
156
+ </Final_Checklist>
157
+
158
+ <Advanced>
159
+ ## Relationship to Other Modes
160
+
161
+ ```
162
+ ralph (persistence + verified completion wrapper)
163
+ \-- includes: ultrawork (this skill)
164
+ \-- provides: high-throughput execution + lightweight evidence
165
+
166
+ autopilot (autonomous execution)
167
+ \-- includes: ralph
168
+ \-- includes: ultrawork (this skill)
169
+
170
+ ecomode (token efficiency)
171
+ \-- modifies: ultrawork's model selection
172
+ ```
173
+
174
+ Ultrawork is the parallelism and execution-discipline layer. Ralph adds persistence, architect verification, deslop, and retry-until-done behavior. Autopilot adds the broader autonomous lifecycle pipeline. Ecomode adjusts ultrawork's model routing to favor cheaper models.
175
+ </Advanced>
@@ -0,0 +1,153 @@
1
+ ---
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."
4
+ ---
5
+
6
+ # Visual Ralph Skill
7
+
8
+ Use this skill when the user wants Codex to build or restyle frontend UI through a Visual Ralph loop: an approved generated reference, static reference, or live URL-derived baseline becomes the target, Ralph implements, and Visual Verdict drives measured iteration rather than subjective description alone.
9
+
10
+ ## Purpose
11
+
12
+ Create a measured frontend delivery loop from either a generated reference, a static reference, or a live URL:
13
+
14
+ `user description / live URL -> approved visual reference -> $ralph implementation -> $visual-verdict + pixel diff -> reproducible design system`.
15
+
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
+
18
+ This is an orchestration skill. It composes existing skills and must not add runtime commands, dependencies, or app-specific assumptions by itself.
19
+
20
+ ## Use when
21
+
22
+ - The user describes a desired web/app UI and wants implementation, not just design advice.
23
+ - The user provides a live URL and wants a visual implementation or clone through measured Visual Verdict iteration.
24
+ - A generated raster mockup/reference image would make the target clearer.
25
+ - The task needs pixel-level visual iteration with a pass/fail threshold.
26
+ - The final result should leave reusable design tokens/components, not only a one-off screenshot match.
27
+
28
+ ## Do not use when
29
+
30
+ - The user only wants design critique or general frontend advice; use `$frontend-ui-ux` or a designer lane.
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.
33
+ - The requested output is a deterministic SVG/vector/code-native asset rather than a raster reference.
34
+
35
+ ## Workflow
36
+
37
+ ### 1. Ground the target repo
38
+
39
+ Before stack-specific choices, inspect local evidence:
40
+ - package manager and scripts,
41
+ - frontend framework and routing structure,
42
+ - styling system and design-token conventions,
43
+ - screenshot/test tooling,
44
+ - existing components that should be reused.
45
+
46
+ Do not hardcode React, Vue, Tailwind, Playwright, or any other stack unless the repository evidence supports it.
47
+
48
+ ### 2. Establish the visual reference
49
+
50
+ For live URL requests, capture or document the URL-derived reference inside the Visual Ralph artifacts and carry forward viewport, content-state, and interaction constraints. Do not invoke `$web-clone`; that standalone skill is hard-deprecated.
51
+
52
+ Live URL reference artifacts must include:
53
+ - source URL and permission/scope note,
54
+ - viewport(s), route/state, and any seed/login assumptions,
55
+ - captured baseline screenshot path or documented capture command/tool,
56
+ - interaction parity notes for visible controls,
57
+ - known exclusions such as backend/API/auth, personalized data, multi-page crawling, and third-party widget parity.
58
+
59
+ For generated UI concepts, use `$imagegen` to produce the reference from the user's UI description.
60
+
61
+ Prompt requirements:
62
+ - classify as `ui-mockup`, unless another imagegen taxonomy is clearly better,
63
+ - include viewport/aspect ratio and intended surface,
64
+ - specify layout, hierarchy, typography direction, color mood, and any exact text,
65
+ - forbid logos/watermarks/unrequested brand marks,
66
+ - ask imagegen to avoid impossible UI details or unreadable text.
67
+
68
+ For project-bound implementation, copy the approved reference into the workspace, for example under `.omx/artifacts/visual-ralph/<slug>/reference.png`. Never leave the implementation reference only in `$CODEX_HOME/generated_images/...`.
69
+
70
+ ### 3. Require explicit user approval
71
+
72
+ Stop after reference generation or URL-derived reference capture and ask the user to approve one reference image/state or request a targeted regeneration/capture adjustment.
73
+
74
+ Before approval:
75
+ - do not start frontend implementation,
76
+ - do not invoke `$ralph`,
77
+ - do not treat a rough image as final.
78
+
79
+ After approval, the confirmed image or URL-derived baseline becomes the visual source of truth. Major design pivots, replacing the reference, or changing the design direction require an explicit user request.
80
+
81
+ ### 4. Hand off to `$ralph` for implementation
82
+
83
+ Invoke `$ralph` with:
84
+ - the approved reference image path or URL-derived baseline artifact,
85
+ - source URL, viewport(s), content state, and interaction parity notes for live URL tasks,
86
+ - the user description,
87
+ - the detected repo/frontend context,
88
+ - exact screenshot command/viewport requirements,
89
+ - the completion checklist below.
90
+
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
+
93
+ ### 5. Use `$visual-verdict` before every next edit
94
+
95
+ For each visual iteration:
96
+ 1. Capture the current generated screenshot with recorded viewport/state.
97
+ 2. Run `$visual-verdict` comparing the approved reference and generated screenshot.
98
+ 3. Treat the JSON verdict as authoritative.
99
+ 4. If `score < 90`, convert `differences[]` and `suggestions[]` into the next edit plan.
100
+ 5. Rerun before the next edit.
101
+
102
+ Required verdict shape is inherited from `$visual-verdict`: `score`, `verdict`, `category_match`, `differences[]`, `suggestions[]`, and `reasoning`.
103
+
104
+ ### 6. Use pixel diff only as secondary debug evidence
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.
107
+
108
+ Record final diff evidence with the reference/screenshot artifacts so the result can be audited.
109
+
110
+ ### 7. Build a reproducible design system
111
+
112
+ The implementation is incomplete unless the visual match is encoded in repo-native reusable artifacts. Depending on the project, this may mean CSS variables, theme tokens, Tailwind config, component variants, Storybook stories, design docs, or existing equivalents.
113
+
114
+ Capture at least the applicable:
115
+ - colors,
116
+ - spacing scale,
117
+ - typography scale/weights,
118
+ - radii,
119
+ - shadows/elevation,
120
+ - important component variants and states.
121
+
122
+ Prefer existing token/component patterns. Do not introduce a new design-system layer if the repo already has one that can be extended.
123
+
124
+ ## Completion checklist
125
+
126
+ Do not declare done until all are true:
127
+ - Approved reference image or URL-derived reference artifact is saved in the workspace.
128
+ - Screenshot reproduction command, viewport, route, seed/state, and output paths are documented.
129
+ - `$visual-verdict` final score is `>= 90` against the approved reference.
130
+ - Pixel diff or overlay evidence is recorded as secondary debug evidence.
131
+ - Design-system tokens/components are repo-native and reusable.
132
+ - Build/lint/test or the repo's equivalent verification passes.
133
+ - No unapproved major design pivot occurred after reference approval.
134
+ - Remaining visual differences, if any, are explicitly documented with rationale.
135
+
136
+ ## Handoff template
137
+
138
+ ```text
139
+ $ralph "Implement the approved frontend reference.
140
+ Reference: <workspace-reference-image-or-url-derived-artifact>
141
+ Source URL (if URL-derived): <url and permission/scope note>
142
+ Viewport/content state: <viewport, route/state, seed/login assumptions>
143
+ Interaction parity notes: <visible controls and known exclusions>
144
+ Route/surface: <route or component>
145
+ Screenshot command: <command and viewport>
146
+ Use $visual-verdict before every next edit; pass threshold score >= 90.
147
+ Use pixel diff only as secondary debug evidence.
148
+ Extract reusable design tokens/components for colors, spacing, typography, radii, shadows, and key variants.
149
+ Run build/lint/test before completion.
150
+ Do not make major design pivots unless explicitly requested."
151
+ ```
152
+
153
+ Task: {{ARGUMENTS}}
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: visual-verdict
3
+ description: Structured visual QA verdict for screenshot-to-reference comparisons
4
+ ---
5
+
6
+ <Purpose>
7
+ Use this skill to compare generated UI screenshots against one or more reference images and return a strict JSON verdict that can drive the next edit iteration.
8
+ </Purpose>
9
+
10
+ <Use_When>
11
+ - The task includes visual fidelity requirements (layout, spacing, typography, component styling)
12
+ - You have a generated screenshot and at least one reference image
13
+ - You need deterministic pass/fail guidance before continuing edits
14
+ </Use_When>
15
+
16
+ <Inputs>
17
+ - `reference_images[]` (one or more image paths)
18
+ - `generated_screenshot` (current output image)
19
+ - Optional: `category_hint` (e.g., `hackernews`, `sns-feed`, `dashboard`)
20
+ </Inputs>
21
+
22
+ <Output_Contract>
23
+ Return **JSON only** with this exact shape:
24
+
25
+ ```json
26
+ {
27
+ "score": 0,
28
+ "verdict": "revise",
29
+ "category_match": false,
30
+ "differences": ["..."],
31
+ "suggestions": ["..."],
32
+ "reasoning": "short explanation"
33
+ }
34
+ ```
35
+
36
+ Rules:
37
+ - `score`: integer 0-100
38
+ - `verdict`: short status (`pass`, `revise`, or `fail`)
39
+ - `category_match`: `true` when the generated screenshot matches the intended UI category/style
40
+ - `differences[]`: concrete visual mismatches (layout, spacing, typography, colors, hierarchy)
41
+ - `suggestions[]`: actionable next edits tied to the differences
42
+ - `reasoning`: 1-2 sentence summary
43
+
44
+ <Threshold_And_Loop>
45
+ - Target pass threshold is **90+**.
46
+ - If `score < 90`, continue editing and rerun `$visual-verdict` before any further code edits in the next iteration.
47
+ - Persist the verdict in `.omx/state/{scope}/ralph-progress.json` with both:
48
+ - numeric signal (`score`, threshold pass/fail)
49
+ - qualitative signal (`reasoning`, `suggestions`, `next_actions`)
50
+ </Threshold_And_Loop>
51
+
52
+ <Debug_Visualization>
53
+ When mismatch diagnosis is hard:
54
+ 1. Keep `$visual-verdict` as the authoritative decision.
55
+ 2. Use pixel-level diff tooling (pixel diff / pixelmatch overlay) as a **secondary debug aid** to localize hotspots.
56
+ 3. Convert pixel diff hotspots into concrete `differences[]` and `suggestions[]` updates.
57
+ </Debug_Visualization>
58
+
59
+ <Example>
60
+ ```json
61
+ {
62
+ "score": 87,
63
+ "verdict": "revise",
64
+ "category_match": true,
65
+ "differences": [
66
+ "Top nav spacing is tighter than reference",
67
+ "Primary button uses smaller font weight"
68
+ ],
69
+ "suggestions": [
70
+ "Increase nav item horizontal padding by 4px",
71
+ "Set primary button font-weight to 600"
72
+ ],
73
+ "reasoning": "Core layout matches, but style details still diverge."
74
+ }
75
+ ```
76
+ </Example>
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: wiki
3
+ description: Persistent markdown project wiki stored under .omx/wiki with keyword search and lifecycle capture
4
+ triggers: ["wiki add", "wiki lint", "wiki query", "wiki read", "wiki delete"]
5
+ ---
6
+
7
+ # Wiki
8
+
9
+ Persistent, self-maintained markdown knowledge base for project and session knowledge.
10
+
11
+ ## Operations
12
+
13
+ ### Ingest
14
+ ```text
15
+ wiki_ingest({ title: "Auth Architecture", content: "...", tags: ["auth", "architecture"], category: "architecture" })
16
+ ```
17
+
18
+ ### Query
19
+ ```text
20
+ wiki_query({ query: "authentication", tags: ["auth"], category: "architecture" })
21
+ ```
22
+
23
+ ### Lint
24
+ ```text
25
+ wiki_lint()
26
+ ```
27
+
28
+ ### Quick Add
29
+ ```text
30
+ wiki_add({ title: "Page Title", content: "...", tags: ["tag1"], category: "decision" })
31
+ ```
32
+
33
+ ### List / Read / Delete
34
+ ```text
35
+ wiki_list()
36
+ wiki_read({ page: "auth-architecture" })
37
+ wiki_delete({ page: "outdated-page" })
38
+ wiki_refresh()
39
+ ```
40
+
41
+ ## Categories
42
+ `architecture`, `decision`, `pattern`, `debugging`, `environment`, `session-log`, `reference`, `convention`
43
+
44
+ ## Storage
45
+ - Pages: `.omx/wiki/*.md`
46
+ - Index: `.omx/wiki/index.md`
47
+ - Log: `.omx/wiki/log.md`
48
+
49
+ ## Cross-References
50
+ Use `[[page-name]]` wiki-link syntax to create cross-references between pages.
51
+
52
+ ## Auto-Capture
53
+ At session end, discoveries can be captured as `session-log-*` pages. Configure via `wiki.autoCapture` in `.omx-config.json`.
54
+
55
+ ## Hard Constraints
56
+ - No vector embeddings — query uses keyword + tag matching only
57
+ - Wiki files remain local project state under `.omx/wiki/`
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: worker
3
+ description: Team worker protocol (ACK, mailbox, task lifecycle) for tmux-based OMX teams
4
+ ---
5
+
6
+ # Worker Skill
7
+
8
+ This skill is for a Codex session that was started as an OMX Team worker (a tmux pane spawned by `$team`).
9
+
10
+ ## Identity
11
+
12
+ You MUST be running with `OMX_TEAM_WORKER` set. It looks like:
13
+
14
+ `<team-name>/worker-<n>`
15
+
16
+ Example: `alpha/worker-2`
17
+
18
+ ## Load Worker Skill Path (Claude/Codex)
19
+
20
+ When a worker inbox tells you to load this skill, resolve the first existing path:
21
+
22
+ 1. `${CODEX_HOME:-~/.codex}/skills/worker/SKILL.md`
23
+ 2. `~/.codex/skills/worker/SKILL.md`
24
+ 3. `<leader_cwd>/.codex/skills/worker/SKILL.md`
25
+ 4. `<leader_cwd>/skills/worker/SKILL.md` (repo fallback)
26
+
27
+ ## Startup Protocol (ACK)
28
+
29
+ 1. Parse `OMX_TEAM_WORKER` into:
30
+ - `teamName` (before the `/`)
31
+ - `workerName` (after the `/`, usually `worker-<n>`)
32
+ 2. Send a startup ACK to the lead mailbox **before task work**:
33
+ - Recipient worker id: `leader-fixed`
34
+ - Body: one short deterministic line (recommended: `ACK: <workerName> initialized`).
35
+ 3. After ACK, proceed to your inbox instructions.
36
+
37
+ The lead will see your message in:
38
+
39
+ `<team_state_root>/team/<teamName>/mailbox/leader-fixed.json`
40
+
41
+ Use CLI interop:
42
+ - `omx team api send-message --input <json> --json` with `{team_name, from_worker, to_worker:"leader-fixed", body}`
43
+
44
+ Copy/paste template:
45
+
46
+ ```bash
47
+ omx team api send-message --input "{\"team_name\":\"<teamName>\",\"from_worker\":\"<workerName>\",\"to_worker\":\"leader-fixed\",\"body\":\"ACK: <workerName> initialized\"}" --json
48
+ ```
49
+
50
+ ## Inbox + Tasks
51
+
52
+ 1. Resolve canonical team state root in this order:
53
+ 1) `OMX_TEAM_STATE_ROOT` env
54
+ 2) worker identity `team_state_root`
55
+ 3) team config/manifest `team_state_root`
56
+ 4) local cwd fallback (`.omx/state`)
57
+ 2. Read your inbox:
58
+ `<team_state_root>/team/<teamName>/workers/<workerName>/inbox.md`
59
+ 3. Pick the first unblocked task assigned to you.
60
+ 4. Read the task file:
61
+ `<team_state_root>/team/<teamName>/tasks/task-<id>.json` (example: `task-1.json`)
62
+ 5. Task id format:
63
+ - The MCP/state API uses the numeric id (`"1"`), not `"task-1"`.
64
+ - Never use legacy `tasks/{id}.json` wording.
65
+ 6. Claim the task (do NOT start work without a claim) using claim-safe lifecycle CLI interop (`omx team api claim-task --json`).
66
+ 7. Do the work.
67
+ 8. Complete/fail the task via lifecycle transition CLI interop (`omx team api transition-task-status --json`) from `in_progress` to `completed` or `failed`.
68
+ - Do NOT directly write lifecycle fields (`status`, `owner`, `result`, `error`) in task files.
69
+ 9. Use `omx team api release-task-claim --json` only for rollback/requeue to `pending` (not for completion).
70
+ 10. Update your worker status:
71
+ `<team_state_root>/team/<teamName>/workers/<workerName>/status.json` with `{"state":"idle", ...}`
72
+
73
+ ## Mailbox
74
+
75
+ Check your mailbox for messages:
76
+
77
+ `<team_state_root>/team/<teamName>/mailbox/<workerName>.json`
78
+
79
+ When notified, read messages and follow any instructions. Use short ACK replies when appropriate.
80
+
81
+ Note: leader dispatch is state-first. The durable queue lives at:
82
+ `<team_state_root>/team/<teamName>/dispatch/requests.json`
83
+ Hooks/watchers may nudge you after mailbox/inbox state is already written.
84
+
85
+ Use CLI interop:
86
+ - `omx team api mailbox-list --json` to read
87
+ - `omx team api mailbox-mark-delivered --json` to acknowledge delivery
88
+
89
+ Copy/paste templates:
90
+
91
+ ```bash
92
+ omx team api mailbox-list --input "{\"team_name\":\"<teamName>\",\"worker\":\"<workerName>\"}" --json
93
+ omx team api mailbox-mark-delivered --input "{\"team_name\":\"<teamName>\",\"worker\":\"<workerName>\",\"message_id\":\"<MESSAGE_ID>\"}" --json
94
+ ```
95
+
96
+ ## Dispatch Discipline (state-first)
97
+
98
+ Worker sessions should treat team state + CLI interop as the source of truth.
99
+
100
+ - Prefer inbox/mailbox/task state and `omx team api ... --json` operations.
101
+ - Do **not** rely on ad-hoc tmux keystrokes as a primary delivery channel.
102
+ - If a manual trigger arrives (for example `tmux send-keys` nudge), treat it only as a prompt to re-check state and continue through the normal claim-safe lifecycle.
103
+
104
+ ## Shutdown
105
+
106
+ If the lead sends a shutdown request, follow the shutdown inbox instructions exactly, write your shutdown ack file, then exit the Codex session.