/handoff-auto
/handoff-auto sessions and accounts
Write a handoff document for a fresh session, callable by the model. Use from skills or subagents that must end a session unattended.
- invocation model + user
- prereqs None. Uses gh for the fork check in TRACKING.md…
- tested used daily
- suggested model · effort sonnet · medium
Install
Install just this, from a clone of the repo. Anything it needs comes with it.
./scripts/install-skills.sh --skill handoff-auto # bash, Git Bash, macOS, Linux
.\scripts\install-skills.ps1 -Skill handoff-auto # Windows PowerShell
Works on its own.
What it does
Same handoff document as handoff, but Claude (or a skill or subagent) can call it without you typing a command.
- Prints the document's absolute path as the very last line, so orchestrators can read it.
When to use
- A skill or subagent must end a session unattended (e.g.
session-handoff, theimplementerandmanageragents). - You rarely call it directly; use
/handofffor manual handoffs.
How to invoke
Claude can call it: another skill uses the Skill tool with handoff-auto. The optional argument says what the next session will focus on.
- You can also type
/handoff-auto [focus].
How it works
- Summarises the conversation into a document under the repo's
skilleddocs/handoffs/(OS temp dir only when there is no repo).- Committed or left untracked per
TRACKING.md. - Committed only if the repo already tracks
skilleddocs/(or the handoff folderAGENTS.mdsets), or itsAGENTS.md/CLAUDE.mdopts in. Never on a fork.
- Committed or left untracked per
- Adds a "suggested skills" section and records the git state:
- Branch.
- Base SHA (
git merge-base <default> HEAD; on the default branch itself, the upstream or the parent of the session's first commit). - Head SHA.
- If the tree is dirty,
git status --short.
- References existing artifacts by path/URL instead of duplicating them.
- Redacts secrets and personal data.
- Tailors to the argument if one was given.
- Prints the file's absolute path (native OS form) on its own line, last.
Design principles
- An ending a program can read. The absolute path is always the very last line, so a calling skill or orchestrator never has to guess.
- Same document as
handoff. Only five things differ from the original: the frontmatter, the save location, the tracking sentence, a git-state line (branch, base SHA, head SHA) and the final path line. So a manual and an unattended handoff read the same. - Shared tracking rule. Commit or not comes from
TRACKING.md, the single source for every file underskilleddocs/.
Shared context for these principles: Matt Pocock's video.
Use cases
session-handoffending an implementation session from an issue.- An
implementerormanageragent wrapping up, or running low on turns or context. - Any skill that must close a session with nobody at the keyboard.
Tips
- Call
/handoffyourself for manual handoffs; this variant exists so skills and agents can call it. - Pass the next session's focus (an issue number or a sentence) as the argument to tailor the doc.
- If a script reads its output, it should read only the last line: that is the file path.
- On a fork the file is never committed: it stays untracked and
skilleddocs/is added to the git exclude file.
Example
An implementer finishing issue #42 runs session-handoff, which calls the Skill tool with handoff-auto and the argument #42. In a repo that already tracks skilleddocs/ (not a fork), it:
- Writes
skilleddocs/handoffs/2026-10-15-csv-export.md: what was done (commits referenced by SHA, not copied), what is left, the exact next step, and a "suggested skills" section (update-progress). An API token seen in a log is redacted. - Commits it, per
TRACKING.md. - Ends its output with the absolute path on its own line:
/home/you/code/myrepo/skilleddocs/handoffs/2026-10-15-csv-export.md
session-handoff then appends its ## Board status section to that same file.
Related
handoff— user-only original.session-handoff— calls this, then adds board status.- Agents
implementerandmanagerpreload it (seeagents/README.md).
Prereqs
None. Uses gh for the fork check in TRACKING.md when available; without it, an upstream remote counts as a fork.
Sample workflows
- Check before closing the terminal
you → sitrep → remind → you → handoff-auto → you
Install just this one:./scripts/install-skills.sh --workflow safe-to-closeor.\scripts\install-skills.ps1 -Workflow safe-to-close - Push a score up until it plateaus
score-loop → you → spend-gate → you → you → switch → remind → handoff-auto → you
Install just this one:./scripts/install-skills.sh --workflow climb-a-scoreor.\scripts\install-skills.ps1 -Workflow climb-a-score
Use cases & tips from the community