handoff · rohitg00 — Claude Code skill: what it does, how to install
Resumes the latest agent session for the current directory and surfaces any unanswered questions first.
npx skills add rohitg00/agentmemory --skill handoff -a claude-codeWhat handoff does
The skill locates the most recent session for the current working directory using memory_sessions. It verifies directory paths against boundary separators rather than raw prefixes, preventing false matches between sibling directories like /repo and /repo-staging.
When a previous run stopped on an unanswered user question, handoff displays that question before summarizing. It then queries memory_recall for key files, decisions, and errors, closing with a single next step. The skill depends directly on memory_sessions and memory_recall tools being available in your setup.
What it helps with
- resume interrupted agent sessions in the current directory
- surface unanswered questions from the previous run
- prevent context mix-ups between sibling project paths
Example prompts for the agent
- where were we?
- pick up where I left off
- resume work on this project
How to install handoff
1Skills CLI (Vercel)
npx skills add rohitg00/agentmemory --skill handoff -a claude-code2Manually: put the files in place
~/.claude/skills/handoff/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/handoff/
1Skills CLI (Vercel)
npx skills add rohitg00/agentmemory --skill handoff -a codex2Manually: put the files in place
.agents/skills/handoff/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add rohitg00/agentmemory --skill handoff -a cursor2Manually: put the files in place
.cursor/skills/handoff/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install rohitg00/agentmemory handoff2Manually: put the files in place
.github/skills/handoff/SKILL.md1Skills CLI (Vercel)
npx skills add rohitg00/agentmemory --skill handoff -a gemini-cli2Platform CLI
gemini skills install https://github.com/rohitg00/agentmemory --path plugin/skills/handoffManually: put the files in place
.devin/skills/handoff/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add rohitg00/agentmemory --skill handoff -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set11
The whole set →Other versions of handoff
Similar
Questions about handoff
How to install handoff in Claude Code?
Run npx skills add rohitg00/agentmemory --skill handoff -a claude-code in your terminal.
What does the handoff skill do?
It recalls the most recent session for your directory, flags any unanswered question first, and suggests the next action.
What dependencies does handoff require?
It requires memory_sessions and memory_recall tool calls to fetch session metadata and observations.
Source text
SKILL.md · Apache-2.0
---
name: handoff
description: Resume the most recent agent session for the current working directory, leading with any unanswered question. Use when the user says "where were we", "resume", "handoff", "pick up where I left off", or starts a session with no fresh context.
argument-hint: "[optional cwd override]"
user-invocable: true
---
The user wants to resume work. Optional cwd override: $ARGUMENTS
## Quick start
```json
memory_sessions { "project": "<current-project-id>", "limit": 20 }
```
Pick the most recent session whose `cwd` matches this project, then:
`memory_recall { "query": "<session top concepts>", "project": "<current-project-id>", "limit": 10 }`.
When an agent is requested, pass the same `agentId` to both calls.
Expected output:
```text
Resuming 7f3a9c2 "Auth refresh rework".
Open question: should logout revoke all device tokens or just the current one?
Next step: decide revoke scope, then update auth/logout.ts.
```
## Why
Match the session by directory boundary, not raw prefix, so a sibling repo never
gets mistaken for this one. Never invent observations for an empty session.
## Workflow
1. Resolve the project path: if `$ARGUMENTS` is given, normalize it to absolute
(`path.resolve(process.cwd(), $ARGUMENTS)`); else use the cwd.
2. Call `memory_sessions` with the exact project identifier when known, and
`agentId` when requested. Otherwise follow `nextCursor` until the matching
directory is found or pagination ends. Preserve filters between pages.
Pick the most recent session whose normalized `cwd`
matches by directory boundary: equality, OR `cwd.startsWith(projectPath + sep)`,
OR `projectPath.startsWith(cwd + sep)`. Prefer `completed` over `abandoned`.
No match: report that this project has no matching session and stop. Do not
substitute a different project's session.
3. If the session ended on an unanswered user-facing question, surface it FIRST.
Look in `summary` or recent `conversation` observations whose `narrative`
ends in `?`.
4. Summarize: title/summary, key files, key decisions or errors, using
`memory_recall` on the top concepts, limit 10, preserving the chosen project
and agent scope. Check each result's session or
project provenance before including it; a query alone does not enforce scope.
5. End with one concrete "next step?" pointer.
## Anti-patterns
WRONG: `session.cwd.startsWith(projectPath)` matches `/repo-a-staging` when the
project is `/repo-a`, resuming the wrong repo's session.
RIGHT: `session.cwd === projectPath || session.cwd.startsWith(projectPath + sep)`,
a directory-boundary check that cannot cross sibling repos.
## Checklist
- cwd override resolved to an absolute, normalized path.
- Match used a directory-boundary check, not a raw prefix.
- Unanswered question (if any) leads the response.
- Empty session is reported plainly, with an offer to start fresh.
## See also
- `recap`, `session-history`, `recall`: same session data, broader views.
## Troubleshooting
See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) if `memory_sessions` or `memory_recall` is not available.
© rohitg00 · Apache-2.0 · rohitg00/agentmemory