---
description: Manage LazyClaude ultragoal ledger and durable goal state.
argument-hint: '<goal operation>'
---

Use the `ultragoal` skill for the user's current goal operation or command
arguments.

Prefer the package CLI for durable local state:
`lazyclaude-ai ultragoal create-goals`, `status`, `criteria`,
`record-evidence`, `checkpoint`, `steer`, and `record-review-blockers`.
The installed alias may also be invoked as:

```bash
lazyclaude ultragoal create-goals --brief "<brief>" --json
lazyclaude ultragoal record-evidence --criterion <id> --status pass --json '{"artifact":"...","cleanup":"..."}'
lazyclaude ultragoal checkpoint --status active --note "<progress>" --json
lazyclaude ultragoal steer --kind scope --note "<what changed and why>" --json
```

The ledger lives under `.omo/ultragoal/` unless test environment variables
override it. Bind work to native goal tools when they are available; when goal
tools are unavailable, record clear criteria and evidence in the local ledger.
For broad goal execution, use Dynamic workflow when Claude Code exposes it, and
use `claude --worktree <short-name> --tmux` only when isolated worktree
execution is needed.
Manual-QA channels and cleanup receipt artifacts should be recorded with
`record-evidence`. Malformed JSON, unknown criteria, corrupt state, and invalid
steering kinds must fail as controlled errors. Use current docs/test reads
before trusting stale local state.
