off-topiclisted
Install: claude install-skill RubyEyedReaper/Odin-Skills
# Off-topic — the work a mid-run task displaced
## The stance
A task introduced into a run in flight creates an **obligation to return**, and that obligation is
the only thing worth writing down. Everything else about the interrupted work is already recorded
somewhere with an owner — the item, the plan, the branch, the ledger. A checkpoint that copies them
becomes a second, staler opinion about facts it does not own.
So a checkpoint here is **a pointer plus a relation**: which work was displaced, what displaced it,
what condition means the displacement is over, and what to do first on returning. Nothing else.
**The return itself is held by the agent. Nothing can make a session resume.** What is mechanical is
that an *owed* return cannot stay invisible: the checkpoint is committed, so every checkout reaches
the same verdict about it, and `.claude/scripts/off-topic-check.sh` reports a return that has come
due. That is the honest limit of the automation, stated here rather than implied away.
Rigid skill. The trigger predicate, the schema and the refusals are not judgment calls.
## What this owns, and what it must not restate
This skill sits *across* other skills. A second copy of a rule drifts, and the looser copy wins
silently — so every row names an owner, and nothing in that column is re-derived here.
| The task | Its owner | Never re-derived here |
|---|---|---|
| One bounded cycle: the contract, the six outcomes, the stall predicates, the ledger | `work-loop` | All