ulw-loop
ulw-loop
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 skill is compact by design: the run contract below is the whole bootstrap. references/full-workflow.md and references/define-goal.md carry the full doctrine; open a section only when the phase you are in needs it.
Run contract
- Create goals from a JS eval cell:
agentToolkit.createGoals({ brief })after the SDK import below. The SDK binds this session from the host env, so never pass a session id or a plan path. If the envelope reportsULW_LOOP_PLAN_EXISTS_COMPLETE(this session's aggregate is already complete), unrelated new work needs a fresh session;createGoals({ brief, force: true })is only for deliberately overwriting completed evidence. - Register the aggregate objective from the returned handoff with
create_goal, shaped byreferences/define-goal.md. Goal creation is NEVER skipped. - Mirror every atomic step into the live
todochecklist: one granular step per action, exactly one in_progress, transitions marked the instant they happen. - Treat each goal as a phase: create its own worktree off the integration base; dispatch its dependency-ordered lanes as ONE
workflowrun (read the mass-ulw skill first; ordering-free lanes stay ataskbatch); verify every criterion with real-surface evidence; land the worktree on the integration base atagentToolkit.checkpoint({ goalId, status: "complete", evidence })per the repository's flow (direct merge or merged PR); define the next goal's run from what this one proved. Tests alone never prove done. When a mass-ulw pointer accompanies this skill, this contract still owns goals, criteria, evidence, and checkpoints. - Stop when the goal's WHEN-TO-STOP line holds with evidence in hand.
When the injected ultrawork directive accompanies this skill, its goal/notepad/todo bootstrap is subsumed by this contract: the loop SDK owns goal state and the loop ledger is the notepad. Do not create a second one.
The SDK: one import, then method calls
Every ulw-loop operation runs inside a JS eval cell through the SDK the extension publishes at OMO_AGENT_TOOLKIT_SDK_ROOT. There is no omo_agent_toolkit tool and no CLI to spawn on Senpi.