handoff
Handoff Skill
Write a one-shot handoff note to the next session, in the current working directory.
Purpose
Bridge state across a restart or /exit when a full session log is overkill. The next session's SessionStart hook (handoff-read.sh) reads handoff.md, injects its contents as additional context, then deletes the file. One read, gone.
Use this when:
- You need to restart (e.g., MCP server re-enable, permission change, context pressure)
- You want to hand off mid-task state to the next session without polluting
log/ - A quick note is enough — not a full
/session-close
When NOT to Use
- End of a substantive work session → use
/session-close(proper logs, git commit) - Permanent decisions or learnings → use MEMORY.md with
[LEARN]tags - Cross-project notes → use
.context/agent-messages.md
Workflow
Step 1: Gather state
Collect:
- Current working directory (
pwd) — the handoff lives here - What was happening — the immediate task, not a session recap
- What's next — the specific next action
- Open loops — files mid-edit, background processes, pending confirmations
- Blockers — why the session is ending (e.g., "Paperpile MCP needs restart")
Step 2: Write handoff.md in cwd
Use this template:
# Handoff — <YYYY-MM-DD HH:MM>
## Where we are
<1-3 sentences on current task state>
## Next action
<The single next thing to do — be specific>
## Open loops
- <file.py mid-edit at line N>
- <background job: description>
- <HPC job $SLURM_JOB_ID on your-hpc: submitted/running/completed; OUT_DIR=~/projects/<name>/out/<jobid>/>
- <pending user confirmation: question>
## Blockers / context the next session needs
<Why the handoff exists. API keys set? MCP restarted? Permission added?>
## Files touched this session
- <path:line> — <what changed>
## Scratch
<Anything else — half-formed thoughts, commands to try, URLs>
Keep it tight. The next session reads this once as SessionStart context — it should be skimmable in 10 seconds.
Step 3: Confirm
Tell the user: "Handoff written to <cwd>/handoff.md. Next session in this directory will read and delete it."
Hook Behavior
The companion hook handoff-read.sh fires on every SessionStart (startup + resume + compact). If handoff.md exists in the session's cwd:
- Reads contents
- Injects as
additionalContextwith the header# Handoff from previous session - Deletes
handoff.md(scratch)
Zero token cost when no handoff exists.
Important
- Handoff is ephemeral — one-shot. If you need durable state, write to
log/or MEMORY.md instead. handoff.mdshould NOT be committed. Add to.gitignoreif the directory has one.- If the next session's cwd differs, the handoff won't fire — always
cdto the same directory before restarting.
More from flonat/claude-research
update-focus
Use when you need to update current-focus.md with a structured session summary.
10project-safety
Use when you need to set up safety rules and folder structures for a research project.
10latex-autofix
Use when you need to compile LaTeX with autonomous error resolution and citation audit.
7literature
Use when you need academic literature discovery, synthesis, or bibliography management. Supports standalone searches and end-to-end project pipelines with vault sync and auto-commit.
7pre-submission-report
Use when you need all quality checks run before submission, producing a single dated report.
6process-reviews
Use when you need to process referee comments from a reviews PDF into tracking files.
6