packages/omo-codex/plugin/skills/ulw-loop/SKILL.md
Use this skill when the user asks for ulw-loop, ulw, durable goal execution, evidence-led work, manual QA, or checkpointed long-running delivery.
This Codex skill is intentionally compact to avoid adding a large operating manual to an already-full conversation. The full workflow lives in references/full-workflow.md. Read only the sections needed for the current phase, then execute them exactly.
references/full-workflow.md..omo/ulw-loop; do not hand-edit goal state.spawn_agent message starts with TASK:, then names DELIVERABLE, SCOPE, and VERIFY; role selection requires agent_type, while model + reasoning_effort alone creates a default agent, not a reviewer or worker; prefer fork_turns: "none" unless full history is truly required.list_agents as a polling or status tool in large runs; it can replay large agent status and latest-message payloads. Track spawned agent names locally, use wait_agent for completion signals, targeted followups only when needed, and close_agent after integrating each result.wait_agent as a mailbox signal, not proof of completion, content, or errors. After two waits with no substantive result, send one targeted followup, then record inconclusive and respawn a smaller fork_turns: "none" task if the child stays silent or ack-only.The full workflow may mention OpenCode-style orchestration examples. In Codex, translate them to native tools:
| Workflow intent | Codex tool |
|---|---|
| Plan agent | spawn_agent(agent_type="plan", ...) |
| Search/read-only worker | spawn_agent(agent_type="explorer", ...) |
| Implementation or QA worker | spawn_agent(agent_type="worker", ...) |
| Final verification reviewer | spawn_agent(agent_type="codex-ultrawork-reviewer", ...) |
| Wait for background result | wait_agent(...) |
| Clean up finished worker | close_agent(...) |
When translating load_skills=[...], include the requested skill names in the spawned agent's message.