agentsclimarketplace

Session handoff

Skill rb17080/session-handoff/session-handoff

A Claude Code skill that writes a real session handoff from git data, not recall - so the next chat picks up cold without re-deriving everything.

Install
npx -y skills add rb17080/session-handoff --skill session-handoff

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 16 days oldThe repository was created 16 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Write or update a comprehensive HANDOFF.md at the repo root that captures the whole current session so the next chat can resume cold - what got done, what shipped, what failed, what was learned, where things stand, and how it got there chronologically since the last handoff. Use whenever the user says "update the handoff", "write the handoff", "wrap up this session", "where did we leave off", or is closing out a work session.

SKILL.md

4.5 KB, 929 tokens by cl100k_base, as published. Nobody here has run it

Session handoff

The next session starts with zero memory of this one. The handoff is the only thing that lets it pick up without re-deriving everything from scratch. Make it genuinely comprehensive - not a terse note, but the full story of the session, grounded in real git data rather than recall.

Write to HANDOFF.md at the repo root. This is live session state, so it is always gitignored - see "The file is always ignored" below.

Pull real data first, never recall

Before writing a word, gather ground truth. Recall drifts - the git log does not.

  • git log since the last handoff: commit hashes and subjects. Do not paraphrase these from memory.
  • git status: uncommitted or dirty files.
  • Current branch, and whether HEAD is pushed or ahead of origin.
  • Read the existing HANDOFF.md if there is one, so you continue its timeline instead of starting over.

If it is the first-ever handoff (no file yet), or the repo has no commits, or HEAD is detached - say so plainly and work from whatever ground truth exists. Do not invent a history that is not there.

Match the project's voice, do not impose one

Read a few recent commit messages and any existing docs, and write the handoff in that voice. A handoff that sounds like the rest of the project reads as part of it; one in a generic assistant register reads as bolted on. The project sets the tone, not the skill.

Structure - use these sections, in this order

Session date and headline

The date, and a one-line headline of what this session was about.

What we did

A chronological narrative of the session - the actual sequence of what happened, picking up from where the last handoff left off. This is the "how we got here" thread: what got tackled first, what that led to, how it progressed. Tell it as a story a cold reader could follow start to finish.

What we shipped

Concrete, verifiable results: commits (hash plus one-line summary, from the real git log), anything deployed (with the live URL), files created or changed. This is the "it is actually done" list.

What we failed or got stuck on

An honest account of dead ends, rejected approaches, bugs not yet fixed, things that did not work. This is often the most useful section for the next session, because it stops them repeating a mistake that already cost time once.

What we can learn

The lessons and gotchas worth carrying forward: "do not do X again", "Y only works if Z", a surprising constraint discovered this session. Durable, cross-session insight.

Where things stand now

The current state: git (head, branch, pushed or dirty), what is DECIDED and locked versus what is STILL OPEN and waiting on a decision.

Next session - start here

Explicit first steps for the next chat, so it can act immediately instead of spending time orienting.

The file is always ignored

HANDOFF.md is transient session state, not documentation. Add it to .gitignore and keep it there. It should never enter git history - it is rewritten every session and would only churn the log. If .gitignore does not already list it, add it before writing.

Keep the layers clean - handoff is transient, memory is durable

The handoff is what happened this session. It is not where permanent truths live.

If a fact is durable - a hard rule, a standing preference, a constraint that will still be true three sessions from now - it belongs in your MEMORY.md, not buried in a handoff that gets rewritten and pruned. When you notice one, promote it to memory instead of parking it here. The two layers are a pair: the handoff is this session, the memory is everything permanent. See the companion memory system: https://github.com/rb17080/claude-memory

When you rewrite the handoff, prune anything from a previous session that is now done and no longer load-bearing. A handoff that only grows becomes noise.

What not to put in it

No secrets, tokens, API keys, passwords, or private URLs - the file lives on disk and can be copied around. No full file dumps: reference paths and line numbers, do not paste whole files. The handoff points at the work; it is not a copy of it.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 327,069. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.