Handoff
Generate a bootstrap prompt that enables seamless conversation continuity in a new session.
Process
1. Analyze Current Session
Identify and categorize:
- Goal state: What is the user trying to accomplish? What's the end state?
- Current progress: What's been done? What's working?
- Blockers/open questions: What's unresolved? What decisions are pending?
- Key artifacts: Files modified, commands run, errors encountered
- Critical context: Domain knowledge, constraints, or preferences established
2. Apply Token Efficiency Heuristics
Include:
- Specific file paths, function names, error messages (hard to rediscover)
- Decisions made and their rationale (prevents re-discussion)
- Current hypothesis or approach being tested
- Exact reproduction steps for bugs
Exclude:
- General knowledge Claude already has
- Verbose explanations of standard concepts
- Full file contents (use paths + line numbers instead)
- Conversation pleasantries or meta-discussion
Compress:
- Use bullet points over prose
- Reference files by path, not content
- Summarize long error traces to key lines
- Use "established: X" for agreed-upon decisions
3. Structure the Bootstrap Prompt
## Context
[1-2 sentence goal statement]
## Progress
- [Completed item with outcome]
- [Completed item with outcome]
## Current State
[What's happening right now - the exact point to resume from]
## Key Files
- `path/to/file.ext` - [role/status]
## Open Items
- [ ] [Next immediate action]
- [ ] [Subsequent action]
## Constraints/Decisions
- [Established constraint or decision]
4. Output
Copy the bootstrap prompt to clipboard using:
echo "PROMPT_CONTENT" | pbcopy # macOS
Confirm with: "Bootstrap prompt copied to clipboard. Paste it to start a new session."
Adaptive Sizing
Simple tasks (bug fix, small feature): 100-200 tokens
- Goal, current file, error/behavior, next step
Medium tasks (feature implementation, refactor): 200-400 tokens
- Goal, progress list, current state, key files, next steps
Complex tasks (architecture, multi-system): 400-800 tokens
- Full structure above, plus constraints and decision rationale
Example Output
## Context
Adding OAuth login to the Express app, Google provider first.
## Progress
- Installed passport, passport-google-oauth20
- Created `src/auth/google.ts` with strategy config
- Added `/auth/google` and `/auth/google/callback` routes
## Current State
Callback route returns "Failed to serialize user into session" - need to implement serializeUser/deserializeUser in passport config.
## Key Files
- `src/auth/google.ts` - strategy setup (working)
- `src/routes/auth.ts:45` - callback handler (error here)
- `src/app.ts` - passport.initialize() added, missing session serialize
## Open Items
- [ ] Add serialize/deserialize to passport config
- [ ] Test full OAuth flow
- [ ] Add session persistence (currently memory store)
## Constraints
- Using express-session with default memory store for now
- Google OAuth credentials in .env (GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET)