Session Capture & Handoff
Capture key decisions, open questions, and follow-ups at the end of each work session for seamless cross-session continuity.
Every time you start a new Claude Code session, you lose context from the previous one — re-explaining decisions, re-discovering blockers, and wasting the first 10 minutes catching up. This playbook captures key decisions, open questions, and next steps at session end for seamless handoff.
Who it's for: developers working on multi-session coding projects who need context continuity, team leads handing off Claude Code sessions between team members, consultants working on client projects across interrupted work sessions, open source maintainers tracking Claude-assisted contributions across sessions, solo developers managing complex refactoring projects that span multiple days
Example
"Capture everything from this session so I can continue tomorrow" → Session capture pipeline: automatic extraction of key decisions made during the session, open questions and unresolved blockers documented with context, completed and remaining task summary, file change log with rationale for each modification, and structured handoff note that the next session can load as context
New here? 3-minute setup guide → | Already set up? Copy the template below.
# Session Capture & Handoff
## Your Role
You capture key decisions, open questions, and follow-ups from work sessions and write structured entries for cross-session continuity.
## Arguments
- *(none)* — full capture (decisions + questions + follow-ups + context)
- `quick` — abbreviated capture (decisions + follow-ups only, no context summary)
- `project:name` — tag the entry with a specific project name
## Instructions
### Step 1: Identify Session Scope
Review the conversation history and determine:
- **Session topic(s):** What was worked on? (1-2 line summary)
- **Project(s) touched:** Match against known projects
- **Duration indicator:** Brief (< 10 exchanges), Medium (10-30), Extended (30+)
### Step 2: Extract Session Artifacts
Scan the conversation for:
**Decisions made** — things decided or confirmed:
- Configuration changes, skill edits, policy updates
- Approach selections ("we'll use method X instead of Y")
- Commitments ("will send email to X by Friday")
**Open questions** — unresolved items needing future attention:
- Questions raised but not answered
- Items deferred ("we'll handle that next time")
- Blockers or dependencies on external input
**Follow-ups** — concrete next steps:
- Tasks for a future session
- Things to check, test, or verify
- People to contact or documents to review
**Key artifacts** — files written or modified:
- New files or config created
- Documents drafted or edited
- State changes (emails sent, reminders modified)
### Step 3: Write Session Entry
Append to `~/Documents/session-log.md` (newest entries at top):
```markdown
---
## [YYYY-MM-DD HH:MM] — [Session topic summary]
**Project(s):** [project names or "General"]
**Duration:** [Brief/Medium/Extended]
### Decisions
- [Decision 1]
- [Decision 2]
### Open Questions
- [Question 1]
- [Question 2]
### Follow-ups
- [ ] [Action item 1]
- [ ] [Action item 2]
### Artifacts
- [Created/Modified] `path/to/file` — [what changed]
### Context
[2-4 sentences of key context for future session pickup]
```
If the file doesn't exist, create it with:
```markdown
# Session Log
*Auto-generated. Reverse chronological — newest entries at top.*
```
### Step 3.5: Generate Handoff Note
Write to `~/.claude/handoff.md` (overwrite previous):
```markdown
# Handoff — [YYYY-MM-DD]
## Session Topic
[1-line summary]
## Key Decisions
- [Decision 1]
## Open Follow-ups
- [ ] [Most important next step]
## Context for Next Session
[1-2 sentences for seamless pickup]
```
### Step 4: Display Summary
```
SESSION CAPTURED
Topic: [summary]
Decisions: [N] | Questions: [N] | Follow-ups: [N] | Artifacts: [N]
Logged to: session-log.md
```
### Step 5: Maintenance
- Prune entries older than 60 days (archive or remove)
## Error Handling
- **No substantive content:** Report "Nothing to capture — session was too brief."
- **Write fails:** Display the entry in terminal for manual saving.
What This Does
Solves the "where did I leave off?" problem. At the end of any work session, Claude scans the conversation and extracts decisions, open questions, follow-ups, and artifacts into a structured log. It also writes a condensed handoff note so your next session starts with full context.
Quick Start
Step 1: Download the Template
Click Download above, then:
mv ~/Downloads/CLAUDE.md ~/Documents/
Step 2: Run Claude Code
At the end of any work session:
claude
Then: "Capture this session" or "Done"
What Gets Captured
| Category | Examples |
|---|---|
| Decisions made | Config changes, approach selections, commitments |
| Open questions | Unresolved items, deferred decisions, external dependencies |
| Follow-ups | Tasks for next session, things to check/test, people to contact |
| Artifacts | Files created or modified, emails sent, state changes |
Example Output
The session log entry looks like:
## 2026-02-27 14:30 — API Authentication Refactor
**Project:** Backend API
**Duration:** Extended
### Decisions
- Switched from API keys to OAuth 2.0 tokens
- Will use refresh token rotation with 24h expiry
### Open Questions
- Should we support both auth methods during migration?
- Need to check if mobile app handles token refresh
### Follow-ups
- [ ] Update API documentation with new auth flow
- [ ] Test refresh token rotation with the mobile team
- [ ] Draft migration guide for API consumers
### Artifacts
- [Modified] `src/auth/middleware.ts` — replaced API key validation
- [Created] `src/auth/oauth.ts` — new OAuth handler
### Context
Refactored auth to OAuth 2.0 for better security. Mobile team
needs to test token refresh — their current implementation may
not handle rotation. Migration period TBD.
The Handoff File
A condensed summary is written to ~/.claude/handoff.md so your next Claude Code session automatically knows what to pick up:
# Handoff — 2026-02-27
## Session Topic
API authentication refactor to OAuth 2.0
## Key Decisions
- OAuth 2.0 with refresh token rotation (24h expiry)
## Open Follow-ups
- [ ] Test refresh token with mobile team
- [ ] Draft API consumer migration guide
## Context for Next Session
Auth refactor done but mobile compatibility untested.
Modes
| Mode | Command | What's Captured |
|---|---|---|
| Full | "Capture this session" |
Decisions + questions + follow-ups + context |
| Quick | "Quick capture" |
Decisions + follow-ups only |
| Tagged | "Capture for project:API" |
Full capture tagged to a project |
Tips
- Run at the end of every substantive session — makes next-session startup instant
- 60-day auto-pruning — old entries are automatically cleaned up
- Reverse chronological — newest entries at top of the session log
- Works with any project — tag entries with
project:namefor filtering
Troubleshooting
"Nothing to capture" Session was too brief — only substantive work sessions get logged
Session log file doesn't exist It's created automatically on first run
Handoff not loading in next session
Check that your handoff file path matches: ~/.claude/handoff.md