
Handoff
- 9k installs
- 26.6k repo stars
- Updated August 3, 2026
- rohitg00/agentmemory
handoff is an agent skill for 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
About
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. --- 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 { "limit": 20 } ``` Pick the most recent session whose `cwd` matches this project, then: `memory_recall { "query": "<session top concepts>", "limit": 10 }`. Expected output: ```text Resuming 7f3a9c2 "Auth refresh rework". Open question: should logout revoke all device tokens or just the current one?
- Resolve the project path: if `$ARGUMENTS` is given, normalize it to absolute
- Call `memory_sessions`. Pick the most recent session whose normalized `cwd`
- If the session ended on an unanswered user-facing question, surface it FIRST.
- Summarize: title/summary, key files, key decisions or errors, using
- End with one concrete "next step?" pointer.
Handoff by the numbers
- 8,987 all-time installs (skills.sh)
- +658 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #69 of 2,203 Security skills by installs in the Skillselion catalog
- Security screen: HIGH risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
handoff capabilities & compatibility
- Capabilities
- resolve the project path: if `$arguments` is giv · call `memory_sessions`. pick the most recent ses · if the session ended on an unanswered user facin · summarize: title/summary, key files, key decisio · end with one concrete "next step?" pointer.
- Use cases
- documentation
What handoff says it does
--- 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.
npx skills add https://github.com/rohitg00/agentmemory --skill handoffAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 9k |
|---|---|
| repo stars | ★ 26.6k |
| Security audit | 2 / 3 scanners passed |
| Last updated | August 3, 2026 |
| Repository | rohitg00/agentmemory ↗ |
When should developers use handoff and what problem does it solve?
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", o
Who is it for?
Developers working with handoff patterns described in the skill documentation.
Skip if: Skip when cached docs are empty or the task is outside the skill's documented scope.
When should I use this skill?
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", o
What you get
Grounded guidance and workflows from SKILL.md for handoff.
- restored session context
- latest observation summary
Files
The user wants to resume work. Optional cwd override: $ARGUMENTS
Quick start
memory_sessions { "limit": 20 }Pick the most recent session whose cwd matches this project, then: memory_recall { "query": "<session top concepts>", "limit": 10 }.
Expected output:
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. 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: fall back to the single most recent session overall. 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. 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 ../_shared/TROUBLESHOOTING.md if memory_sessions or memory_recall is not available.
handoff worked examples
1. Resume with an open question
User: "Where were we?"
Project cwd: /Users/dev/app. Invocation:
memory_sessions { "limit": 20 }Response:
{
"sessions": [
{ "id": "7f3a9c21", "cwd": "/Users/dev/app", "title": "Auth refresh rework",
"status": "completed", "startedAt": "2026-06-07T09:00:00Z",
"summary": "Reworked refresh rotation. Open: should logout revoke all device tokens?",
"concepts": ["jwt-refresh-rotation", "logout"] }
]
}Pull supporting context:
memory_recall { "query": "jwt-refresh-rotation logout", "limit": 10 }Present:
Resuming 7f3a9c2 "Auth refresh rework".Open question: should logout revoke all device tokens or just the current one?
Touchedauth/refresh.ts,auth/logout.ts. Refresh rotation is done.
Next step: decide the revoke scope, then finish auth/logout.ts.2. Sibling-repo guard
Project cwd: /Users/dev/repo-a. Sessions include one with cwd: /Users/dev/repo-a-staging.
A raw prefix would match repo-a-staging. The boundary check rejects it because /Users/dev/repo-a-staging does not equal /Users/dev/repo-a and does not start with /Users/dev/repo-a/. Pick the real repo-a session instead, or fall back to the most recent session overall if none matches.
3. Empty session
User: "Resume."
If the matched session has zero observations:
The most recent session c98f110 for this project has no recordedobservations. Nothing to hand off. Want to start fresh from the current state?
Related skills
How it compares
Use handoff to restore one latest session; use recap when you need a multi-session chronological summary instead.
FAQ
What does handoff do?
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 w
When should I invoke handoff?
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 w
Where is the source documentation?
Ground claims in SKILL.md excerpts and linked reference files from the cached docs.
Is Handoff safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.