# Handoff

> Generate a copy-paste handoff message that captures all the context from the current Claude Code session so you can start a fresh conversation without losing your place. Trigger with /handoff when the chat is getting long (20-30 messages) and Anthropic's fresh-conversation recommendation kicks in.

- Skill: `tenfoldmarc/handoff` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add tenfoldmarc/handoff`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tenfoldmarc/handoff/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tenfoldmarc (https://skillmd.com/u/tenfoldmarc)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tenfoldmarc/handoff

---


# /handoff — Session Handoff Generator

When the user types `/handoff`, your job is to produce **one self-contained message** they can paste into a brand new Claude Code session and pick up exactly where they left off. No back-and-forth, no "what were we doing?", no lost state.

---

## What to do

1. **Re-read the current conversation** in your context. Mentally separate:
   - The **goal** (what the user is ultimately trying to accomplish in this session)
   - The **state** (what's already been done, decided, or built)
   - The **next move** (what was about to happen when /handoff was called)
   - The **traps** (anything tried that didn't work, dead ends, gotchas the next session needs to know)

2. **Write the handoff message** using the template below. Output it as a single fenced code block so it's one-click copyable.

3. **After the code block**, copy the handoff text to the system clipboard automatically:
   - macOS: `pbcopy`
   - Linux: `xclip -selection clipboard` or `wl-copy` (Wayland)
   - Windows (WSL or Git Bash): `clip.exe`
   
   Detect the platform and use the right command. If none are available, skip silently — the user can still copy from the code block.

4. End with one short line: "Copied. Paste this into a fresh session." (or "Ready to copy from the block above." if clipboard tooling wasn't available).

---

## Handoff template

Fill every section. Keep each one tight. No filler, no restating what the next Claude can infer from the artifacts. If a section genuinely doesn't apply, write `n/a` rather than removing it.

```
# Session handoff from previous Claude Code conversation

## What I'm trying to do
<1-3 sentence statement of the overall goal>

## Where we left off
<bullet list of the current state: files created/modified, decisions made, what's working, what's half-done>

## Key files & paths
<absolute paths to any file the next session will need to read or edit, with a one-line note on each>

## What was just about to happen
<the very next step that was queued up when /handoff was called>

## Things that already failed / dead ends
<approaches tried that didn't work, errors hit, or gotchas, so the next session doesn't repeat them. "n/a" if clean.>

## Important context the next Claude needs
<any user preferences surfaced this session, external IDs, account IDs, URLs, credentials locations, in-flight decisions that aren't yet saved anywhere>

## Pick up by
<one concrete first action for the next session, e.g. "Read X, then run Y">
```

---

## Rules

- **Be specific.** "We were working on the landing page" is useless. "We were editing the hero copy in `src/app/page.tsx` to test a new headline variant; the current draft is at line 42" is useful.
- **Include absolute file paths** so the next session can `Read` them directly.
- **Quote exact strings** for IDs, URLs, error messages, and credentials locations. Paraphrasing loses information.
- **Don't restate CLAUDE.md or persistent memory files.** The next session auto-loads those. Only mention things from them if they were overridden or contradicted this session.
- **Keep it under ~400 words.** Thorough, not bloated. If you're approaching 500 words, you're including stuff the next Claude can re-derive.
- **Don't include this conversation's tool-call noise.** Summarize outcomes, not the path taken to get there.

---

## Output shape

Your response to `/handoff` should be exactly:

1. A fenced code block containing the filled-in handoff template.
2. A clipboard copy command (platform-aware, see above).
3. One closing line confirming clipboard copy (or that the block is ready to copy manually).

Nothing else. No preamble, no "here's your handoff," no postscript.

---
Built by [@tenfoldmarc](https://instagram.com/tenfoldmarc). Follow for daily AI automation builds, real systems not theory.

