# Session Handoff

> Produce structured end-of-session summary for seamless handoff to fresh context. Use when user says "session handoff", "wrap up", "hand off", or before /clear. Output is chat-only (no files).

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

---


# Session Handoff Skill

Produce a repeatable end-of-session summary so the user can `/clear` and start fresh without losing continuity.

## When to invoke

User says: "session handoff", "wrap up session", "hand off", "handoff summary", "let's wrap up", or proactively if user says they're about to `/clear`.

## How to produce the summary

1. Review FULL conversation, not just last 3 turns
2. Pull state from:
   - Plan files in `.claude/plans/` (if used this session)
   - TodoWrite state (in-progress/pending tasks)
   - Background processes (`run_in_background` shell IDs)
   - Files created/modified (what you touched)
   - Memory files written (if any)
   - Unresolved questions (user asked but didn't get clear answer)
3. **Do NOT audit filesystem.** Synthesis only of what happened in THIS session.
4. Output in chat only — never write a file, never update memory.

## Output template — use exactly this every time

```
# Session Handoff — <one-line title>

## Where it started
<2-3 sentences: what user asked, key constraints>

## Decisions locked + shipped
- <decision> — <why, location if file>
- ...

## Key files for next session
- `<absolute path>` — <why read this first>
- Plan file: `<path>` (if applicable)
- Memory touched: `<paths>` (if any)

## Running state
- Background: <shell IDs + command to kill> or "none"
- Dev servers: <url + port> or "none"
- Worktrees/branches: <paths> or "none"

## Token budget this session
- Started: XXK tokens
- Ended: XXK tokens
- Next trigger: ~60% of window (manual compact before auto-compaction)

## Blocked by
- <waiting for user decision yes/no>
- <waiting for deploy result>
- or "none"

## Verification — how to confirm work
- `<command>` — <expected output>
- ...

## Deferred + open questions
- Deferred: <item> — <why pushed to later>
- Open: <question needing user input> — <context>

## Exact pickup command
\`\`\`bash
<full command to restart where we left off>
\`\`\`

## Pick up here
<1-2 sentences: single most likely next action for fresh agent>
```

## Hard rules

1. **Chat output only.** Never write to file. Never update memory.
2. **Never invent state.** If section is empty, write "none" — do not omit.
3. **Absolute paths always.** Next agent may have different working dir.
4. **Plan file first** if it drove the session.
5. **Background process IDs are critical.** Include with kill command.
6. **Token budget is now required.** Track start/end and next trigger point.
7. **Blocked by section required.** What's waiting on user input?
8. **Exact pickup command is now required.** No guessing; full command.
9. **No emojis, no hype.** Terse, concrete, engineering tone.

## Anti-patterns — do NOT do these

- Summarizing only last 3 turns
- Using relative paths
- Skipping sections (use "none" instead)
- Writing summary to file
- Adding retrospective ("what went well / poorly")
- Recommending next steps beyond "Pick up here"
- Forgetting token budget or exact pickup command

