Chat Handoff Generator
Produces a markdown file that a fresh Claude instance (no memory of this conversation) can read and immediately resume work at full competence — not a human-readable recap, a resumption packet.
Core principle
Optimize for the reader being Claude, not a person. That means:
- State over narrative. Don't tell the story of the conversation; state its current facts.
- Decisions and their reasoning, not the back-and-forth that produced them. If three options were considered and one was picked, record the winner and the one-line reason, not the deliberation.
- Explicit > implied. A new Claude has zero shared context. Anything assumed-but-unstated in the original chat must be spelled out.
- Dense. This is a working document, not prose to be enjoyed. Bullets and tables over paragraphs.
Step 1: Scan the conversation for required components
Before writing, extract:
- Objective — what is the user ultimately trying to accomplish? (Not "what did we talk about," but the actual goal/deliverable.)
- Current state — what's done, what's in progress, what hasn't started. Be precise about "in progress" — what exactly is incomplete about it?
- Decisions made — any choice between alternatives that was resolved. Format: decision + one-line rationale. Do not include decisions that are still open or that the user waffled on.
- Constraints and preferences established in this chat — anything the user specified that should carry forward (format requirements, things to avoid, stated preferences) that a new chat wouldn't otherwise know. Do not duplicate global user preferences/memory Claude already has access to — only capture things specific to THIS conversation's task.
- Artifacts produced — files, code, drafts, links. Embed the FULL content of each artifact produced in this conversation (code, drafts, generated documents), not just a description. Artifacts created in claude.ai conversations do not carry over to a new conversation, so the handoff doc is the only place this content will exist for the new chat. Exception: if an artifact is genuinely large (e.g. a long generated report) AND was also saved to a location the user can independently re-attach, note that explicitly instead of embedding — but default to embedding.
- Open questions / blockers — anything unresolved that the new chat needs to either ask about or pick up.
- Next step — the single most immediate next action. Not a list of everything left; the next one.
Step 2: Identify gaps, ask before writing
If any of the following are ambiguous from the conversation alone, ask the user rather than guessing:
- Which of multiple parallel threads/sub-tasks is actually the priority to resume
- Whether an in-progress item is blocked, paused intentionally, or just not yet started
- Whether draft/exploratory content should be treated as decided or still open
- Whether a very large artifact should be embedded in full or trimmed/referenced (default is still to embed; only ask if it's unusually long)
Ask concisely, batch the questions, don't ask about things you can resolve by re-reading the conversation.
Step 3: Write the handoff file
Use this structure. Omit any section that's genuinely empty (don't write "N/A") but keep the order.
# Handoff: [short task name]
## Objective
[1-3 sentences: what's being built/solved/produced and for what purpose]
## Current state
[Precise status. What's done, what's partial and in what way, what hasn't started.]
## Decisions made
- [Decision]: [one-line rationale]
- ...
## Constraints / preferences (this task only)
- [Anything the user specified in this conversation that must carry forward]
## Artifacts
### [artifact name/filename]
[one-line description]
```
[full content]
```
## Open questions / blockers
- [Unresolved item the new chat should surface or resolve]
## Next step
[The single next action, stated concretely enough to act on immediately]
Keep the whole document as short as it can be while losing zero decision-relevant information. Target: a careful reader should be able to act correctly on the new chat's very first response after reading this alone.
Step 4: Deliver
Save as a .md file (filename: short-task-slug-handoff.md) and present it to the user via file tools. Tell the user, in one line, to paste the file or its contents into the new chat to resume.
Anti-patterns to avoid
- Don't write a chronological recap ("First we discussed X, then Y, then...").
- Don't include pleasantries, praise, or meta-commentary about the conversation.
- Don't restate things a new Claude would already know from general knowledge or from the user's memory/preferences — only this conversation's specific state.
- Don't hedge with vague status like "mostly done" — say what specifically remains.
1---2name: chat-handoff3description: Generate a handoff document that lets a NEW Claude conversation resume this one with full context. Use whenever the user asks to "write a handoff," "summarize this chat so I can continue elsewhere," "prep a handoff doc," says they're starting a new chat and want continuity, mentions running low on context/hitting a limit, or asks for a "context dump" or "resume doc" for this conversation. Always trigger this instead of a generic summary when the stated purpose is continuing the work in a different conversation.4---56# Chat Handoff Generator78Produces a markdown file that a fresh Claude instance (no memory of this conversation) can read and immediately resume work at full competence — not a human-readable recap, a resumption packet.910## Core principle1112Optimize for the reader being Claude, not a person. That means:13- State over narrative. Don't tell the story of the conversation; state its current facts.14- Decisions and their reasoning, not the back-and-forth that produced them. If three options were considered and one was picked, record the winner and the one-line reason, not the deliberation.15- Explicit > implied. A new Claude has zero shared context. Anything assumed-but-unstated in the original chat must be spelled out.16- Dense. This is a working document, not prose to be enjoyed. Bullets and tables over paragraphs.1718## Step 1: Scan the conversation for required components1920Before writing, extract:21221. **Objective** — what is the user ultimately trying to accomplish? (Not "what did we talk about," but the actual goal/deliverable.)232. **Current state** — what's done, what's in progress, what hasn't started. Be precise about "in progress" — what exactly is incomplete about it?243. **Decisions made** — any choice between alternatives that was resolved. Format: decision + one-line rationale. Do not include decisions that are still open or that the user waffled on.254. **Constraints and preferences established in this chat** — anything the user specified that should carry forward (format requirements, things to avoid, stated preferences) that a new chat wouldn't otherwise know. Do not duplicate global user preferences/memory Claude already has access to — only capture things specific to THIS conversation's task.265. **Artifacts produced** — files, code, drafts, links. Embed the FULL content of each artifact produced in this conversation (code, drafts, generated documents), not just a description. Artifacts created in claude.ai conversations do not carry over to a new conversation, so the handoff doc is the only place this content will exist for the new chat. Exception: if an artifact is genuinely large (e.g. a long generated report) AND was also saved to a location the user can independently re-attach, note that explicitly instead of embedding — but default to embedding.276. **Open questions / blockers** — anything unresolved that the new chat needs to either ask about or pick up.287. **Next step** — the single most immediate next action. Not a list of everything left; the next one.2930## Step 2: Identify gaps, ask before writing3132If any of the following are ambiguous from the conversation alone, ask the user rather than guessing:33- Which of multiple parallel threads/sub-tasks is actually the priority to resume34- Whether an in-progress item is blocked, paused intentionally, or just not yet started35- Whether draft/exploratory content should be treated as decided or still open36- Whether a very large artifact should be embedded in full or trimmed/referenced (default is still to embed; only ask if it's unusually long)3738Ask concisely, batch the questions, don't ask about things you can resolve by re-reading the conversation.3940## Step 3: Write the handoff file4142Use this structure. Omit any section that's genuinely empty (don't write "N/A") but keep the order.4344````markdown45# Handoff: [short task name]4647## Objective48[1-3 sentences: what's being built/solved/produced and for what purpose]4950## Current state51[Precise status. What's done, what's partial and in what way, what hasn't started.]5253## Decisions made54- [Decision]: [one-line rationale]55- ...5657## Constraints / preferences (this task only)58- [Anything the user specified in this conversation that must carry forward]5960## Artifacts61### [artifact name/filename]62[one-line description]63```64[full content]65```6667## Open questions / blockers68- [Unresolved item the new chat should surface or resolve]6970## Next step71[The single next action, stated concretely enough to act on immediately]72````7374Keep the whole document as short as it can be while losing zero decision-relevant information. Target: a careful reader should be able to act correctly on the new chat's very first response after reading this alone.7576## Step 4: Deliver7778Save as a `.md` file (filename: short-task-slug-handoff.md) and present it to the user via file tools. Tell the user, in one line, to paste the file or its contents into the new chat to resume.7980## Anti-patterns to avoid8182- Don't write a chronological recap ("First we discussed X, then Y, then...").83- Don't include pleasantries, praise, or meta-commentary about the conversation.84- Don't restate things a new Claude would already know from general knowledge or from the user's memory/preferences — only this conversation's specific state.85- Don't hedge with vague status like "mostly done" — say what specifically remains.