- 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.
GitHubで見る