Install
openclaw skills install @dennisrongo/handoffCapture a session hand-off so work can resume cleanly in a new Claude session before context runs out. Writes a canonical dated Markdown file (objective, progress, decisions, files, open issues, and a ready-to-paste "Next Session Prompt") AND a lightweight project-memory pointer to it. Use this skill whenever the user says "/handoff", "hand off", "handoff", "save context", "preserve context", "running out of context", "wrap up for next session", "before we lose context", or otherwise asks to snapshot the current state for a fresh session — even if they don't say "skill".
openclaw skills install @dennisrongo/handoffPreserve everything the next Claude session needs to pick up where this one left off. The hand-off is a real artifact (a Markdown file in the repo) plus a small memory pointer so future sessions auto-discover it.
/handoff or types "handoff" / "hand off".Do not auto-trigger when the user just says "let's stop here" without asking for continuity. Wait for an explicit hand-off cue.
Every invocation produces BOTH:
.claude/handoffs/<YYYY-MM-DD>-<short-slug>.md in the current project root.
oauth-account-linking, cache-invalidation-fix).-2, -3, etc..claude/handoffs/).Write a project-type memory entry per the auto-memory system. Keep it short — its only job is to surface the hand-off file:
---
name: handoff-<short-slug>
description: Hand-off doc for <one-line topic> — see file for full state.
metadata:
type: project
---
Active hand-off for <topic> at `<relative path to handoff file>`.
**Why:** Session was checkpointed on <YYYY-MM-DD> to resume work cleanly in a new context.
**How to apply:** When the user opens a new session and references this topic, read the hand-off file first before doing anything else. Remove this memory entry once the work is finished or superseded.
Then add the standard one-line pointer to MEMORY.md.
Use these headings in this order, with this phrasing. Skip a section only if it would be empty AND irrelevant — don't pad.
# Handoff: <topic> — <YYYY-MM-DD>
## Objective
<1–3 sentences: what are we building / fixing / investigating, and why.>
## Progress
**Completed:**
- <done item>
- <done item>
**In Progress:**
- <what's mid-flight, with enough context to resume>
**Blocked:**
- <blocker> — <on whom / what>
## Decisions
- <decision> — <why; the reasoning matters more than the choice>
- <decision> — <why>
## Important Files
- `<path>` — <one line on what changed or why it matters>
- `<path>` — <one line>
## Open Issues
- <unresolved bug, race condition, or question>
- <unresolved bug, race condition, or question>
## Next Session Prompt
> Copy-paste this into the new session.
Read `.claude/handoffs/<this-filename>.md` first.
**Goal:** <one-sentence resume goal>
**Start by reviewing:**
1. `<path>`
2. `<path>`
**Then:**
- <next concrete step>
- <next concrete step>
- <verification command, e.g. `pnpm test auth`>
The Next Session Prompt is the most important section — it's what the user pastes into the new chat to bootstrap continuity. Write it so a fresh Claude with no prior context can act on it immediately.
A prompt that survives a fresh session vs. one that doesn't:
linkAccount merge OAuth identities instead of erroring. Start by reviewing: src/auth/link.ts (the linkAccount stub at line 42), src/auth/__tests__/link.test.ts. Then: implement the merge branch for the existing-verified-email case; run pnpm vitest run src/auth -t linkAccount — currently failing with Error: account already exists." — names the file, the failing test, the exact command, and the next action.git status and git diff --stat to confirm which files actually changed in this session. Don't trust memory alone; verify..claude/handoffs/ if missing, then write the file with the Write tool.MEMORY.md.package.json, Makefile, etc.).pnpm vitest run src/auth -t linkAccount, not "run the auth tests"). Failing test names copied from actual runner output. Branch name from git branch --show-current. Uncommitted-state description from actual git status output — never from memory of what you think you edited.User: "ok let's handoff, I'm running low on context"
Claude:
git status, scans recent edits..claude/handoffs/2026-05-15-oauth-account-linking.md with all six sections filled in.handoff-oauth-account-linking.md and updates MEMORY.md.The new session reads the referenced hand-off file first, confirms files still exist, and resumes from the Next Session Prompt to-do list — no rediscovery needed.
git status — drift between conversation memory and actual repo state.git status, git branch --show-current, and the test runner are the sources of truth..claude/handoffs/ to .gitignore unless the project has explicitly opted in to committing them.docs/handoffs/, NOTES.md), prefer that location and tell the user you're using it.