The Session Handoff skill creates comprehensive handoff documents that enable fresh AI agents to seamlessly continue work with zero ambiguity. It solves the long-running agent context exhaustion problem by preserving complete context, decisions, and state across sessions.
When working on complex, multi-session projects with AI agents, context gets lost between sessions. This skill provides a structured approach to:
- Preserve context - Capture all critical information before context window fills
- Enable continuity - Allow new agents to pick up exactly where you left off
- Document decisions - Record architectural choices and their rationale
- Track progress - Maintain clear status of completed and pending work
- Chain sessions - Link related handoffs for long-running projects
- User says "save state", "create handoff", "I need to pause"
- User requests "load handoff", "resume from", "continue where we left off"
- User mentions "context is getting full" or "save this for later"
- Context window approaching capacity (>80% full)
- Major task milestone completed
- Work session ending with significant progress
- After substantial work (5+ file edits, complex debugging, architecture decisions)
- Before switching to a different task
- Starting a new session on an existing project
- Different agent needs to continue the work
- Need to recall decisions made in previous sessions
- Picking up after a long break
The skill operates in two primary modes:
Generates a comprehensive handoff document capturing current state:
- Generate Scaffold - Smart script pre-fills metadata (timestamp, git status, modified files)
- Complete Document - Fill in critical sections (state, context, decisions, next steps)
- Validate - Automated checks for completeness, quality, and security
- Confirm - Present location and summary to user
Loads and validates existing handoff documents:
- Find Handoffs - List available handoffs in project
- Check Staleness - Assess if context is still current
- Load Document - Read handoff (and chain if linked)
- Verify Context - Validate assumptions and environment
- Begin Work - Start from "Immediate Next Steps"
The create_handoff.py script automatically captures:
- Timestamp and project path
- Current git branch and recent commits
- Modified and unstaged files
- Handoff chain links (if continuing from previous)
The validate_handoff.py script checks:
- No incomplete
[TODO: ...]placeholders - All required sections populated
- No potential secrets (API keys, passwords, tokens)
- Referenced files exist
- Quality score (0-100)
The check_staleness.py script assesses:
- Time elapsed since handoff creation
- Git commits made since handoff
- Files changed since handoff
- Branch divergence
- Missing referenced files
For long-running projects, chain handoffs together:
handoff-1.md (initial work)
↓
handoff-2.md --continues-from handoff-1.md
↓
handoff-3.md --continues-from handoff-2.md
Each handoff links to its predecessor, providing context breadcrumbs for new agents.
Basic handoff creation:
python scripts/create_handoff.py implementing-user-authContinuation handoff (linked to previous):
python scripts/create_handoff.py "auth-part-2" --continues-from 2024-01-15-auth.mdValidate before finalizing:
python scripts/validate_handoff.py .claude/handoffs/2024-01-15-143022-implementing-auth.mdList available handoffs:
python scripts/list_handoffs.pyCheck if handoff is current:
python scripts/check_staleness.py .claude/handoffs/2024-01-15-143022-implementing-auth.mdLoad and continue work:
- Read the handoff document completely
- Verify context using resume checklist
- Start with first item in "Immediate Next Steps"
A complete handoff includes:
- Metadata - Timestamp, project path, git branch, commits
- Current State Summary - What's happening right now
- Important Context - Critical information for next agent
- Decisions Made - Architectural choices with rationale
- Immediate Next Steps - Clear, actionable first steps
- Pending Work - Remaining tasks and priorities
- Critical Files - Important locations and their purpose
- Key Patterns Discovered - Conventions and approaches
- Potential Gotchas - Known issues and workarounds
- Handoff Chain - Links to previous/next handoffs
See references/handoff-template.md for the complete template.
Handoffs are stored in: .claude/handoffs/
Naming convention: YYYY-MM-DD-HHMMSS-[slug].md
Example: 2024-01-15-143022-implementing-auth.md
| Script | Purpose | Usage |
|---|---|---|
create_handoff.py |
Generate new handoff with smart scaffolding | python scripts/create_handoff.py [slug] [--continues-from <file>] |
list_handoffs.py |
List available handoffs in a project | python scripts/list_handoffs.py [path] |
validate_handoff.py |
Check completeness, quality, and security | python scripts/validate_handoff.py <file> |
check_staleness.py |
Assess if handoff context is still current | python scripts/check_staleness.py <file> |
Do not finalize a handoff if:
- Validation score is below 70
- Secrets are detected
[TODO: ...]placeholders remain- Required sections are empty
Best practices:
- Write clear, specific next steps (not vague goals)
- Document the "why" behind decisions, not just the "what"
- Include code snippets for critical patterns
- Reference specific file paths and line numbers
- Update handoffs as work progresses
- handoff-template.md - Complete template structure with guidance
- resume-checklist.md - Verification checklist for resuming agents
- evals/model-expectations.md - Model behavior expectations
- evals/test-scenarios.md - Test cases for handoff creation and resumption
- Zero ambiguity - New agents know exactly what to do
- Context preservation - No loss of critical information
- Decision history - Understand why choices were made
- Reduced onboarding - Faster agent startup on existing work
- Quality assurance - Automated validation prevents incomplete handoffs
- Security - Secret detection prevents credential leaks
- Long-term memory - Handoff chains maintain project history