── SKILL
session-handoff✓ APPROVED

Capture the session context so you can resume it cold.

An end-of-session brief: progress, decisions, unfinished items with next steps, and the fragile details, then it asks whether to save.

Inside: Progress and decisions, next steps, the would-be-lost pass, and a save gate.

01 / HOW TO USE

Install it in one line, or paste it in.

1
In Claude Code (one command)
Copy the install line, paste it into your terminal, and restart Claude Code. The skill installs itself to ~/.claude/skills/ and runs automatically when it is relevant.
2
In Claude, ChatGPT, or a Project (no terminal)
Open the file, then upload it to your chat or paste its contents in. A skill is just a markdown file of instructions, so any capable AI can follow it.
New to skills? A skill is a plain-text file that teaches your AI a workflow. Point any capable assistant at it and it follows the steps, on your data.
02 / MAKE IT YOURS

Connect your context. Set it to your motion.

CONNECT YOUR CONTEXT · AND WHY IT HELPS
a repo

it reads the diff so "what got done" is grounded in real changes, not memory.

a notes tool

it can append the brief where the next session will look, once you approve.

a task tool

unfinished items become real tasks with next steps, once you approve.

SET IT TO YOUR MOTION

This was built for an operator who resumes work across days and sessions. Set these to your rhythm:

The save is always yours to trigger. Change where it goes and how it reads. The close-out discipline does not change.

Set thisWhat it isDefault / Example
CODE_HOMEwhere the build livesa git repo
NOTES_HOMEwhere handoffs get saveda notes/wiki toola doc
TASK_HOMEwhere open items become tasksa task toola checklist
SAVE_MODEhow the brief gets keptdraft onlyappend to notesopen a task
FRAGILE_PROMPTthe "what would be lost" nudgeon by default
COMMIT_STYLEhow a code commit is framedconventionalplain summary
03 / THE FULL SKILL

Everything the skill does, in full.

── WHAT THIS DOES

Writes the brief you wish the last session had left you. It captures what got done, the decisions made and why, what is still open with the actual next step, and the fragile details, the half-finished thought, the thing you were about to try, that never survive to the next session. Then it stops and asks whether to save or commit it. It never writes anything on its own.

── THE METHOD
  1. 1
    Progress capture

    State what actually changed this session in plain terms. If a repo is connected, ground it in the diff, files touched, what they now do. No connector? Capture what you report, marked as your account, not verified fact.

  2. 2
    Decision capture

    Every decision made this session gets a one-line why. These are the calls the next session must not silently reverse. If a decision log exists, offer to add them there, on approval.

  3. 3
    Unfinished items and next steps

    List what is open, and for each, the specific next step, not "keep going." "Finish the parser" is not a next step. "Handle the empty-row case in the parser" is.

  4. 4
    The fragile-details pass

    The point of a handoff. Capture what lives only in your head right now: the thing you were mid-thought on, the approach you were about to try, the dead end you already ruled out so nobody re-walks it. This is what a bare task list loses.

  5. 5
    The commit-or-save question

    The brief is drafted and shown to you. Then, and only then, it asks: save this to notes, open these as tasks, commit the code, or just hand it back to you. Nothing happens until you choose.

── QUALITY GATES
  • Nothing is committed or saved without your explicit approval. The skill drafts and asks; you decide. This is the rule, not a setting.
  • No claimed progress the skill cannot support. If it is from your account and not a verified diff, it says so.
  • Every unfinished item carries a real next step, not a restatement of the goal.
  • The fragile-details section is never skipped, even on a short session. That is the part that would be lost.
── OUTPUT (EXAMPLE)
EXAMPLE OUTPUT
SESSION HANDOFF · onboarding automation · end of session

DONE THIS SESSION
  - Added domain-based dedupe (grounded in diff: dedupe.js, router.js).
  - Cut the API calls per run roughly in half by batching.

DECISIONS
  - Batch nightly instead of per-signup. Cost, not speed, was the constraint.

STILL OPEN  ->  NEXT STEP
  - EU routing owner undecided  ->  ask the team lead who owns EU signups.
  - Empty-row case in the parser  ->  handle the blank-domain row, it throws.

WOULD BE LOST IF I WALKED AWAY
  - I was mid-way through testing the batch job against last week's data,
    the 3rd run failed on a timeout, likely the sheet read, not the logic.
  - Ruled out per-persona routing already. Do not revisit; it was too noisy.

SAVE THIS?
  [ ] Append to notes   [ ] Open the 2 open items as tasks
  [ ] Commit the code    [ ] Just hand it back to me
  (nothing is saved until you choose)
── EXAMPLE CHAT
EXAMPLE CHAT
You
Wrap this session up. We spent the afternoon on the CSV importer.
CLAUDE
Here's the handoff. DONE THIS SESSION - Added header-mapping so the importer accepts any column order (your account, no diff connected). - Fixed the duplicate-row bug on re-upload. DECISIONS - Skip auto-dedupe on email alone. Too many false merges on shared inboxes. STILL OPEN -> NEXT STEP - Large-file timeout -> test a 50k-row file before the next demo. WOULD BE LOST IF I WALKED AWAY - The timeout only shows up past ~30k rows, and it looks like the parser, not the upload. Ruled out the upload limit already, do not recheck that. SAVE THIS? [ ] Append to notes [ ] Open the 1 open item as a task [ ] Commit the code [ ] Just hand it back to me Four sections, but the one that matters is the fragile-details one. That's the thing tomorrow-you would have re-discovered the hard way. One sharpener: connect the repo so "done this session" is grounded in the actual diff instead of your account of it.
04 / GO FURTHER

Where an operator takes this next.

The handoff is step one. Here is where an operator takes it once the manual version proves out.

You write the close-out once; the system makes sure it gets read.

01
Ground every handoff in the real diff

Connect the repo so "done this session" reads from committed changes, not memory, and the brief cannot overstate progress.

02
Turn open items into real work automatically

Once you approve, push the unfinished items into a task tool with the next step attached, not a restated goal.

03
Close the loop at the start of the next session, too

Schedule a Claude task to re-surface yesterday's fragile-details section the next time you sit down, so it never gets skipped.

05 / PART OF A BIGGER PLAY

One skill is the on-ramp.

── GET NEW SKILLS IN YOUR INBOX

One operator-built skill a week. Free.