todolisted
Install: claude install-skill RubyEyedReaper/Odin-Skills
# todo — a facade over the one store, and deliberately not a second one
> **Voice (ADR-0011).** Prose to human stays Odin. The item text a caller writes is a
> **deliverable**: normal English, because a successor has to act on it.
## What this is not for
**This skill introduces no store.** That is the whole design, and everything below follows from it.
| The task | Its owner | Why not this skill |
|---|---|---|
| Tracking a task list at all, when the native tools work | `TaskCreate` / `TaskUpdate` | The cheaper route, and the one `odin-task-gate.sh` checks first. This skill is what you reach for when it is unavailable — never instead of it. |
| The cycle a list of items belongs to — its contract, its outcomes, its ledger | `work-loop` — `.claude/skills/work-loop/scripts/loop.py` | That engine owns the store. `scripts/todo.py` **invokes** it and holds no ledger logic of its own. |
| Which work exists across the repository, and in what order | `roadmap` | A durable backlog. A todo list is this session's, and dies with the contract that declared it. |
| Where the whole run is going | `goal` | A destination that outlives every item. |
| What a mid-run interruption displaced and when the return is owed | `off-topic` | A committed checkpoint, not a list. |
| What a campaign contains and whether it may close | `campaign` | A manifest across sessions. |
**The one thing this skill owns:** making the work-loop ledger usable as a todo list without
learning the twelve-field contract