agentleFS
NathanForsterNathanForster/claude-commands/skills/handoff/SKILL.md

handoff

Skill1 starsChanged 26 days agoMITView on GitHub

Session continuity helper. On start, load the project's HANDOFF.md and summarize where work left off; on end, update HANDOFF.md and produce a session summary. Use when starting or resuming work on a project, or when wrapping up a session.

  • Commits and pushes

191 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use decision-mapping, setup-ts-deep-modules and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • FabienDehopreSkill

    decision-mapping

    Turn a loose idea into a sequenced map of investigation tickets, then drive them to resolution one at a time.

    Also in 8 projects that use this

  • liufeng1976Skill

    setup-ts-deep-modules

    Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.

    Also in 42 projects that use this

  • AWSSkill

    to-questionnaire

    Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

    Also in 93 projects that use this

  • GoogleSkill

    ask-matt

    Ask which skill or flow fits your situation. A router over the skills in this repo.

    Also in 87 projects that use this

  • RoentekSkill

    loop-me

    Grill me about specs for the workflows I want to build, within this workspace.

    Also in 51 projects that use this

  • LesaniSkill

    writing-beats

    Shape an article as a journey of beats, choose-your-own-adventure style. The user picks a starting beat from the raw material, you write only that beat, then offer options for where to pivot next, beat by beat, until the article reaches a natural end. Use when the user has raw material and wants to assemble it as a narrative rather than an argument.

    Also in 54 projects that use this

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 5 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 172 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Look at what the user typed after the skill name (in Claude Code it may be appended at the end as ARGUMENTS: ...):

    line 15
  2. Very specific:

    Read HANDOFF.md in the project root in full.

    line 26
  3. Distinctive:

    If the file does not exist (first session on this project), offer to create it from the template in the HANDOFF.md template section below, …

    line 28
  4. Very specific:

    Verify freshness: Run git log -1 --format="%H %s" and compare against the Last commit recorded in HANDOFF.md.

    line 32
  5. Distinctive:

    Do NOT re-read the handoff on every subsequent turn — it is loaded once.

    line 45
  6. Distinctive:

    When the session's conversation is in context, infer these and confirm the assembled delta once, rather than prompting for each item.

    line 53
  7. Very specific:

    Read HANDOFF.md — if it does not exist, create it from the template in the

    line 64
  8. Very specific:

    Write the updated file back to HANDOFF.md.

    line 74
  9. Very specific:

    Use today's date for <date> (check it with Get-Date or date if you are not sure of it).

    line 102
  10. Distinctive:

    Ask the user whether to push the current branch: git push origin HEAD.

    line 105
  11. Very specific:

    When creating HANDOFF.md for the first time (either mode), seed it with:

    line 111
  12. Distinctive:

    Never include actual credential values in the handoff document — reference config/env files by path only.

    line 144

“Common” is measured: kept by at least 6 in 10 of the 172 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Handoff — Session Start / End Helper

Reads the project handoff document and either:

  • Session start: surfaces all context needed to resume work immediately, or
  • Session end: prompts for what changed and updates the handoff document.

Detecting mode

Look at what the user typed after the skill name (in Claude Code it may be appended at the end as ARGUMENTS: ...):

  • start (or empty at the start of a new session): run START mode.
  • end (or update): run END mode.
  • Anything else / ambiguous: ask "Are you starting a new session or ending one?"

START mode

  1. Read HANDOFF.md in the project root in full.

    If the file does not exist (first session on this project), offer to create it from the template in the HANDOFF.md template section below, then skip to step 4.

  2. Verify freshness. Run git log -1 --format="%H %s" and compare against the Last commit recorded in HANDOFF.md. If they differ, warn the user that the previous session likely ended without running /handoff end, so the handoff may be stale — recent commits may not be reflected below.
  3. Print a concise "Ready to work" summary covering:
    • Last commit SHA and message
    • In-progress work and current status
    • Any known blockers or follow-up items
    • Next steps the user left off at
  4. Confirm: "Handoff loaded. What would you like to work on?"

Do NOT re-read the handoff on every subsequent turn — it is loaded once.


END mode

Step 1 — Gather session delta

When the session's conversation is in context, infer these and confirm the assembled delta once, rather than prompting for each item. Only fall back to asking item-by-item if the conversation is unavailable or ambiguous:

  • What was worked on this session?
  • What was the last commit SHA and message?
  • Were any new paths, patterns, or gotchas discovered?
  • Were any known limitations resolved or added?

Step 2 — Update HANDOFF.md

Read HANDOFF.md — if it does not exist, create it from the template in the HANDOFF.md template section below first — then apply these specific updates:

SectionWhat to update
Header lineLast updated, Last commit
Recent commitsPrepend new commits (keep last ~8)
Known limitationsAdd/remove items as appropriate
Any sectionAdd new paths, patterns, gotchas

Write the updated file back to HANDOFF.md.

Step 3 — Compose the session summary

Produce a compact Markdown summary suitable for pasting into the next session's context. Include:

  1. Primary Request and Intent — what the user asked for
  2. Key Technical Concepts — algorithms, patterns, design decisions
  3. Files and Code Sections — exact paths and key changes with snippets
  4. Errors and Fixes — bugs hit and how they were resolved
  5. Problem Solving — non-obvious decisions
  6. User Requests — paraphrased list of what the user asked for (quote verbatim only where exact wording matters)
  7. Pending Tasks — anything explicitly left incomplete
  8. Current Work — last thing done before session end

Step 4 — Commit the handoff file

When run as part of the session-close skill: skip this step. Session-close makes a single commit that already includes HANDOFF.md. Only commit here when /handoff end was run on its own.

git add HANDOFF.md
git commit -m "docs: update HANDOFF.md for session end <date>"

Use today's date for <date> (check it with Get-Date or date if you are not sure of it).

Ask the user whether to push the current branch: git push origin HEAD.


HANDOFF.md template

When creating HANDOFF.md for the first time (either mode), seed it with:

# HANDOFF

Last updated: <date> | Last commit: <SHA> — <message>

## Current state

<one paragraph on where the project stands and what is in progress>

## Recent commits

- <SHA> — <message>

## Known limitations

- <item, or "None known">

## Next steps

- <item>

Fill the placeholders from git log and the current session before writing — do not leave literal <...> markers in the committed file.


Notes

  • HANDOFF.md is assumed to live at the project root.
  • It should be committed to the repo (not gitignored) so it travels with the code.
  • Never include actual credential values in the handoff document — reference config/env files by path only.
  • The session summary (Step 3) is separate from HANDOFF.md — it is printed to the chat for the user to copy, not written to any file.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.