Detects natural language handoff requests and generates structured context summaries for seamless thread continuation. Use when user says "handoff", "new thread", "continue in fresh thread", or similar phrases.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add shrwnsan/vibekit-claude-plugins --skill handoff-context --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Handoff Context?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/shrwnsan-handoff-context)More formats (shields.io, HTML) on the badges page.
---
name: handoff-context
description: Detects natural language handoff requests and generates structured context summaries for seamless thread continuation. Use when user says "handoff", "new thread", "continue in fresh thread", or similar phrases.
user-invocable: true
disable-model-invocation: true
allowed-tools:
- bash(git:*)
- bash(mktemp:-d)
- bash(mkdir:-p /tmp/claude/handoff-*)
- bash(mkdir:-p /tmp/handoff-*)
- bash(ls:-la /tmp/claude/handoff-*)
- bash(ls:-la /tmp/handoff-*)
- bash(chmod:700)
- bash(touch:*)
- bash(rm:-f)
- bash(date:*)
- bash(tr '\n' ' ')
- bash(sed 's/ $//')
- bash(cat /tmp/claude/handoff-*)
- bash(cat /tmp/handoff-*)
- bash(echo:*)
- bash(write to /tmp/claude/handoff-*)
- bash(write to /tmp/handoff-*)
- Read(/tmp/claude/handoff-*)
- Read(/tmp/handoff-*)
- Write(/tmp/claude/handoff-*)
- Write(/tmp/handoff-*)
---
# Handoff Context
Generates structured context summaries for seamless thread continuation.
## Quick Start
**Direct invocation (most reliable):**
```bash
/handoff-context
```
**Natural language trigger phrases:**
- "Handoff and [action]" → continuation workflow
- "Handoff to [agent/skill]" → targeted handoff
- "Start a new thread with this" → explicit continuation
- "Let's handoff" / "Lets handoff" / "Just handoff" → context preservation
**Note:** The slash command works reliably across all agents. Natural language triggers depend on each agent's semantic understanding.
## Configuration
### Config File Locations
The handoff-context skill looks for configuration in the following order (highest to lowest priority):
| Priority | Location | Scope | Use Case |
|----------|----------|-------|----------|
| 1 | `~/.config/agents/handoff-context-config.yml` | Cross-tool | Amp, other AI tools |
| 2 | `~/.claude/handoff-context-config.yml` | Claude Code | Claude Code specific |
| 3 | `.agents/handoff-context-config.yml` | Project-local | Per-project overrides |
| 4 | Built-in defaults | Fallback | Ships with plugin |
### Quick Setup
Copy the example config to your preferred location:
```bash
# Cross-tool location (recommended for multi-tool users)
mkdir -p ~/.config/agents
cp ~/.claude/plugins/base/skills/handoff-context/handoff-context-config.example.yml \
~/.config/agents/handoff-context-config.yml
# Claude Code specific
cp ~/.claude/plugins/base/skills/handoff-context/handoff-context-config.example.yml \
~/.claude/handoff-context-config.yml
# Project-local
mkdir -p .agents
cp ~/.claude/plugins/base/skills/handoff-context/handoff-context-config.example.yml \
.agents/handoff-context-config.yml
```
### Configuration Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `format` | string | `yaml` | Output format: `yaml` or `markdown` |
| `include.learnings` | boolean | `true` | Include learnings section |
| `include.approaches` | boolean | `true` | Include approaches section (what worked/didn't) |
| `include.git_state` | boolean | `true` | Include git state (branch, files) |
| `include.quick_start` | boolean | `true` | Include quick_start section |
| `confidence.minimum` | float | `0.3` | Minimum confidence score floor |
| `confidence.threshold` | float | `0.7` | Warning threshold for low quality |
### Example Configuration
```yaml
# ~/.config/agents/handoff-context-config.yml
# Output format
format: yaml # yaml | markdown
# Include optional sections
include:
learnings: true
approaches: true
git_state: true
quick_start: true
# Confidence scoring thresholds
confidence:
minimum: 0.3 # Floor score (0.3 = tentative, still some value)
threshold: 0.7 # Warning threshold (below = add more context)
```
### Config Metadata in Handoff
Each handoff file includes metadata about which config was used:
```yaml
metadata:
config:
source: "/home/user/.config/agents/handoff-context-config.yml"
format: "yaml"
```
### Temp Directory Behavior
Handoff files respect the following temp directory priority:
| Environment | Priority | Default Path |
|-------------|----------|--------------|
| **Claude Code** | `CLAUDE_CODE_TMPDIR` (1st) | `/tmp/claude/handoff-XXX/` |
| **Amp, Droid, others** | `TMPDIR` (2nd) | System temp (e.g., `/var/folders/.../T/` on macOS) |
| **Fallback** | `/tmp` (3rd) | `/tmp/handoff-XXX/` |
**Why this priority?** Claude Code's sandbox denies direct `/tmp/` writes but allows writes to `CLAUDE_CODE_TMPDIR` (default: `/tmp/claude`). Other tools respect the standard `TMPDIR` environment variable.
**Typical paths by tool:**
- Claude Code: `/tmp/claude/handoff-a1b2c3/handoff-20260111-143022.yaml`
- Amp (macOS): `/var/folders/xx/.../T/handoff-d4e5f6/handoff-20260111-143022.yaml`
- Droid (Linux): `/tmp/handoff-g7h8i9/handoff-20260111-143022.yaml`
## Invocation Method Reliability
| Method | Reliability | Output |
|--------|-------------|--------|
| `/handoff-context` | ✅ 100% | YAML file + structured display |
| "Let's handoff" | ⚠️ Variable | May produce text-only or .txt file |
**Recommendation:** Use `/handoff-context` for consistent cross-agent behavior.
## Workflow Requirements
**When this skill is triggered, you MUST follow these steps exactly:**
1. **Execute the script first:**
```bash
# Find script in plugin cache (works across different directories)
# Alternative locations: ~/.claude/plugins, ~/.agent/skills
bash $(find ~/.claude/plugins -name "capture-context.sh" 2>/dev/null | head -1)
```
2. **Capture the HANDOFF_FILE path** from script output (format: `HANDOFF_FILE=/tmp/...`)
3. **Read that file** and populate conversation context:
- Current work (tasks, status, affected files)
- Conversation summary (phases, outcomes, decisions)
- Next steps (continuation action context)
- Preserved context (key details to remember)
4. **Overwrite the same file** with complete context
5. **Display summary** to user with file path
⚠️ **CRITICAL REQUIREMENTS:**
- ✅ MUST create .yaml file (not .txt)
- ✅ MUST use YAML format in file (not Markdown)
- ✅ MUST execute script (not bypass with manual commands)
- ✅ MUST display file path with continuation instruction
**What the script captures:**
- Session tracking (unique ID, timestamps)
- Metadata (confidence score, quality indicators)
- Quick start info (project type, package manager)
- Git state (branch, staged/unstaged/untracked files)
- YAML structure with dynamic timestamps
- Secure temp directory with proper permissions
**What you need to add:**
- Current work, conversation summary, next steps, preserved_context
- **Update confidence_score** based on populated content:
- Base: 0.5
- +0.1 if git_state has files
- +0.1 if conversation_summary has 1+ items
- +0.1 if current_work has 1+ items
- +0.1 if next_steps has 1+ items
- +0.1 if continuation_action is not null
- -0.1 for each empty critical section
- Cap: 0.3 minimum, 0.95 maximum
- **Populate learnings** with patterns/techniques discovered (0.3-0.9 confidence)
- **Populate approaches** (successful, failed, not attempted)
- **Fill session.started** and **session.duration_minutes**
- **Fill quick_start** fields (verification_command, files_to_read_first, context_priority, estimated_time_minutes)
**Result:** Complete `/tmp/handoff-XXX/handoff-YYYYMMDD-HHMMSS.yaml` with full context.
## Success Criteria
Before completing handoff, verify:
- [ ] Script was executed (find + bash, not manual commands)
- [ ] File has .yaml extension (not .txt)
- [ ] File contains valid YAML structure (not Markdown with ##)
- [ ] File path is shown to user
- [ ] Continuation instruction includes exact file path
- [ ] Human-readable summary displayed alongside file
- [ ] **Confidence score ≥ 0.7** (or document reason for lower score)
- [ ] **Session tracking populated** (started, duration_minutes)
- [ ] **Critical sections filled** (current_work, conversation_summary)
**If any criteria fails:** Re-invoke with `/handoff-context` slash command.
## Quality Thresholds
| Confidence Score | Quality Level | Recommendation |
|------------------|---------------|----------------|
| ≥ 0.9 | Comprehensive | Ready for immediate continuation |
| 0.7 - 0.9 | Good | Acceptable, minor gaps possible |
| 0.5 - 0.7 | Acceptable | Consider adding more context |
| < 0.5 | Needs Work | Add more context before handoff |
## What Gets Captured
| Category | Details |
|----------|---------|
| **Session** | Unique ID, timestamps, duration (calculated by agent) |
| **Metadata** | Confidence score (0.3-0.95), quality level, missing context flags |
| **Quick Start** | Project type, package manager, priority files, estimated time |
| **Git State** | Branch, staged/unstaged/untracked files |
| **Conversation** | Phase summaries, outcomes, decisions |
| **Current Work** | Active tasks with status and affected files |
| **Learnings** | Patterns discovered, debugging techniques, confidence levels |
| **Approaches** | What worked, what didn't, what's left to try |
| **Next Steps** | Continuation action (if specified) |
| **Preserved Context** | Key decisions and important details |
## Example Output
```text
🔄 Handoff ready
Context written to: /tmp/handoff-20260126-143022.yaml
To continue in a new thread:
1. Start a new AI agent conversation
2. Tell the agent: "Continue from /tmp/handoff-20260126-143022.yaml"
```
## Quick Examples
**Continuation:** "Handoff and build an admin panel" → action extracted
**Preservation:** "Handoff this context" → full state saved
**Targeted:** "Handoff to code-reviewer" → specific agent
**Quick reference:** See [examples.md](examples.md) - 4 concrete scenarios:
1. Continuation Handoff - "Handoff and build an admin panel"
2. Context Preservation - "Handoff this context"
3. Targeted Handoff - "Handoff to code-reviewer for security check"
4. Fresh Thread for Next Phase - "Continue in a fresh thread"
## Documentation
| File | Purpose |
|------|---------|
| [references/patterns.md](references/patterns.md) | All trigger patterns and regex matching rules |
| [references/workflow.md](references/workflow.md) | Complete step-by-step workflow manual |
| [references/examples.md](references/examples.md) | Quick reference scenarios |
| [references/templates.md](references/templates.md) | YAML template structures |
## Evaluations
Test files for validating skill behavior:
- [assets/eval-continuation.json](assets/eval-continuation.json)
- [assets/eval-context-preservation.json](assets/eval-context-preservation.json)
- [assets/eval-targeted-handoff.json](assets/eval-targeted-handoff.json)
- [assets/eval-non-git-repo.json](assets/eval-non-git-repo.json)
- [assets/eval-negative-cases.json](assets/eval-negative-cases.json) - Failure scenario detection
Run evaluations to verify pattern detection, YAML generation, and failure handling.
## Common Scenarios
- After implementing a feature → move to next phase in fresh thread
- Long thread → start fresh with preserved context
- Bug fix → audit similar patterns elsewhere
- Planning → implementation transition
## Error Handling
| Scenario | Handling |
|----------|----------|
| Script not found | Follow manual workflow in [references/workflow.md](references/workflow.md) |
| Script execution fails | Fall back to manual workflow steps |
| No git repo | Script omits git_state, proceeds with conversation context |
| No action | Script sets continuation_action: null |
| Empty conversation | Script provides minimal context with working directory |
*See [references/workflow.md](references/workflow.md) for complete manual workflow and error scenarios.*
## Integration
Works with:
- **workflow-orchestrator**: Handoff detection during workflow execution
- **crafting-commits**: Context preservation before committing
- **systematic-debugging**: Preserves error context during debugging
## Philosophy
**Seamless continuation without losing context.**
No buttons to click, no commands to remember—just say "handoff" and continue working.
## Limitations
- Does not automatically create new threads (platform capability)
- Context in `/tmp/` may be cleared on system reboot
- Git state is captured at handoff time, not live-synced
---
*Use when transitioning to a fresh thread. Skip when the conversation is still manageable.*
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!