with one click
ultragoal
// Durable multi-goal workflow that persists plan/ledger artifacts under .omc/ultragoal and prints Claude /goal handoff text for the active session
// Durable multi-goal workflow that persists plan/ledger artifacts under .omc/ultragoal and prints Claude /goal handoff text for the active session
Strategic planning with optional interview workflow
Self-referential loop until task completion with configurable verification reviewer
N coordinated agents on shared task list using Claude Code native teams
QA cycling workflow - test, verify, fix, repeat until goal met
Socratic deep interview with mathematical ambiguity gating before explicit execution approval
Diagnose and fix oh-my-claudecode installation issues
| name | ultragoal |
| description | Durable multi-goal workflow that persists plan/ledger artifacts under .omc/ultragoal and prints Claude /goal handoff text for the active session |
| argument-hint | <brief or subcommand> |
| level | 3 |
<Use_When>
/goal directive coordinated with the ledger so that a session restart does not lose progress
</Use_When><Do_Not_Use_When>
ralph instead/goal itself from the shell — that is not possible; omc ultragoal only writes artifacts and prints handoff textplan instead
</Do_Not_Use_When><Why_This_Exists>
Claude Code /goal is a session-scoped Stop hook: it blocks the session from stopping until a condition holds, and auto-clears on success. That is a great single-session execution primitive, but it loses state across sessions and does not by itself enforce a final review gate. omc ultragoal adds a durable plan, ledger, and gating layer so a long multi-step initiative can survive session restarts, fresh worktrees, and review iterations while still leveraging Claude /goal to keep the active agent focused.
</Why_This_Exists>
<How_To_Use>
Create a plan from a brief:
omc ultragoal create-goals --brief-file plan.md
Or with explicit stories:
omc ultragoal create-goals --brief "ship the migration" \
--goal "Schema::Add new columns" \
--goal "Backfill::Backfill rows in batches" \
--goal "Cutover::Drop old columns and switch reads"
The default mode is aggregate (one Claude /goal covers the run).
Pass --claude-goal-mode per-story if you want each story to have its own /goal.
Start (or resume) the next story:
omc ultragoal complete-goals
This prints a model-facing handoff. The active Claude agent must read it and:
/goal condition in this session./goal state and call checkpoint.Checkpoint a story:
omc ultragoal checkpoint --goal-id G001-... --status complete \
--evidence "tests/files/PR evidence" \
--claude-goal-json '{"goal":{"objective":"...","status":"active"}}'
For the final story, also pass --quality-gate-json containing
aiSlopCleaner, verification, and codeReview evidence (all clean).
If the final review is not clean, do NOT mark complete. Record blockers:
omc ultragoal record-review-blockers --goal-id G00X-... \
--title "Resolve final code-review blockers" \
--objective "Fix the listed review findings and rerun final gates" \
--evidence "<the review findings>" \
--claude-goal-json '{"goal":{"objective":"...","status":"active"}}'
This appends a new blocker story and keeps the Claude /goal active.
Inspect state at any time:
omc ultragoal status
</How_To_Use>
<Important_Limitations>
/goal state. omc ultragoal only persists durable artifacts and prints instructions that the active Claude agent reads and acts on in-session.--claude-goal-json are model-supplied proof of the active /goal state; OMC validates them for textual consistency with the plan's expected objective and ledger event, but it cannot independently observe Claude /goal state./goal slash command is renamed or restructured, only the handoff wording needs to change; the reconciliation logic is name-agnostic.
</Important_Limitations>