← ClaudeAtlas

handofflisted

Close out a work session on cairn: verify state from the repo rather than from memory, promote durable content into docs/design.md and the docstrings it belongs at, and rewrite the single handoffs/HANDOFF.md. Use when the user says they are done, asks to wrap up or write the handoff, or invokes /handoff.
Ansarac/cairn · ★ 0 · AI & Automation · score 65
Install: claude install-skill Ansarac/cairn
# Close out a session Invoked manually, at the end of a session. **Never wire this to a Stop hook** — the user knows when a session ends and Claude does not, and a Stop hook fires every turn. (cairn's own bell already uses that hook; a second thing there would fight it.) The job is **triage and promotion**, not filling in a template. A template has fixed sections, fixed sections get filled with something, and that is how a handoff grows without bound. Each run is a chance to delete what has since found a home elsewhere. **One file: `handoffs/HANDOFF.md`.** Overwritten every time, never appended, **gitignored**. That last part is load-bearing rather than incidental: anything left only in the handoff does not survive a fresh clone and reaches nobody. A durable item still sitting there at the end of a run is a defect, not a filing choice. ## 1. Get the facts from the repo, never from memory **This is the step that earns the skill its keep.** The failure mode is not a forgotten handoff, it is a confidently wrong one. A missing handoff is obvious. A wrong one is trusted. ```bash git status --short --branch git rev-list --count @{u}..HEAD # unpushed, the actual number just check # ruff + vendor guard + pytest git log --oneline -15 # find the commit this session started from git diff --stat <base>..HEAD -- src/cairn/wire.py ``` `<base>` is the commit the session started from. The previous handoff usually names it, and