# Handoff

> End-of-session summary written to .claude/memory/handoffs/<date>.md so the next session can pick up cleanly. Captures what was done, what's pending, what's blocked, what to verify, and any decisions awaiting the user.

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

---


# /handoff

Write an end-of-session handoff summary so the next session — yours, your teammate's, or a future-you's — can resume work without losing context.

## When to use

- End of a working session, even a short one, if work is left unfinished.
- Before stepping away from a long-running task (deploy in progress, migration mid-flight, large refactor in progress).
- Before switching contexts to a different project.
- After a meaningful milestone (feature shipped, decision made, blocker hit).

## Operating method

Read the current session transcript and produce a structured summary. Save it to `.claude/memory/handoffs/<YYYY-MM-DD>.md`. If a handoff already exists for today, append to it (don't overwrite — sessions can resume mid-day).

### Sections to populate

```markdown
---
name: handoff-<YYYY-MM-DD>-<HH-MM>
type: handoff
description: <one-line: what was the focus today?>
created: <YYYY-MM-DD HH:MM TZ>
---

# Handoff — <date>

## Focus today
<2–3 sentences. The actual goal, not the title.>

## What we did
- <specific change, with file paths or commit refs>
- <…>

## What's left for next session
- [ ] <task 1, with enough detail to start cold>
- [ ] <task 2>

## Blocked / waiting
- <blocker, who/what we're waiting on, when expected>

## Decisions made
- <decision> — chosen because <reason>. Reversible if <condition>.

## Decisions awaiting the user
- <question> — needs answer before <next step>.

## To verify before continuing
- <test that should still pass>
- <metric that should still be in budget>
- <thing the user said they'd check>

## Surprises / things I learned
- <non-obvious fact about the codebase or domain>
  (if it'll matter beyond this week, also save as a project memory)

## Open files / branches
- Branch: <name>
- Uncommitted files: <list>
- Stash entries: <list>

## Next concrete action
<the single first thing to do next session — small enough to not need re-thinking>
```

### Update the index

Append to `.claude/memory/MEMORY.md`:

```
## Handoffs
- [<YYYY-MM-DD>](memory/handoffs/<YYYY-MM-DD>.md) — <focus from description>
```

Newest at the top of the section.

## Behavior rules

- **Don't summarize what's already in git.** A handoff is for state that *isn't* in code: ambiguity, awaiting decisions, surprises, things to verify.
- **Promote to long-term memory if appropriate.** Surprises that'll matter in a month should also be saved to `project/`. Handoffs decay; project memory is curated.
- **Be specific about the next action.** "Continue working on auth" is useless. "Open `src/auth/sign-in.ts:42`, replace the bcrypt call with `argon2.hash` and update the test" is useful.
- **Surface decisions awaiting the user prominently.** This is the highest-value section — questions the user needs to answer to unblock progress.
- **Don't include secrets** — same redaction rules as other memory.

## Output format

Show the handoff before writing. Confirm. Write. Print a one-line "Handoff saved" + the path.

```
## Handoff preview
[…full content…]

Save? [Y/n]
```

After save:

```
✓ Handoff saved: .claude/memory/handoffs/2026-05-02-15-45.md
✓ Indexed in .claude/memory/MEMORY.md

Next session start: read this handoff and pick up at "Next concrete action".
```

## Calibration

A good handoff is roughly the length of a Slack message, not a status report. Three to ten lines per section. If you're padding, drop the section.

If nothing is pending and the session was clean: skip the handoff. Don't write empty stubs.

