handoff-writer
Skill3 starsChanged 33 days agoMITView on GitHub
Compacts the current conversation into a handoff document a fresh agent can pick up from, and asks where to save it before writing anything. Use when a session ends with work unfinished, when switching branch or machine, or when passing the work to another person. Records what is not already written down elsewhere and points at what is. Never invoked on its own initiative — a handoff is a deliberate act, and only the person having the conversation knows when it is worth one.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- sepehrbayat/SEPCCtheir own version, first seen May 31, 2026
- OpenOps-Studio/vibe-driven-devtheir own version, first seen Mar 30, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- sepehrbayat/SEPCC★ 38same name
- OpenOps-Studio/vibe-driven-dev★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- architecture-analyzerSkill
- coupling-mapSkill
- deep-analyzerSkill
- design-systemSkill
- e2e-test-validatorSkill
- e2e-test-writerSkill
- evaluatorSkill
- fix-runnerSkill
- gate-builderSkill
- implement-featureSkill
- integration-test-validatorSkill
- integration-test-writerSkill
- playwright-cliSkill
- prd-writerSkill
- qa-preflightSkill
- spec-writerSkill
- unit-test-validatorSkill
- unit-test-writerSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 5 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Write a handoff document summarising the current conversation so that a fresh agent — with no memory of any of it — can continue the work.
- Very specific: line 29
If they choose the repository root, offer to add the file to .git/info/exclude.
- Distinctive: line 46
Write down what exists nowhere else: the decisions taken and why, what was tried and abandoned, the state of anything half-finished, and …
- Distinctive: line 55
If the user passed arguments, treat them as a description of what the next session will focus on, and tailor the document to that.
- Distinctive: line 60
Ask where, every time: Not a default with a chance to object — a question with an answer.
- Distinctive: line 78
A handoff already exists at the chosen path: Ask before overwriting. The old one may describe a different piece of work, and losing it …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Handoff Writer
Write a handoff document summarising the current conversation so that a fresh agent — with no memory of any of it — can continue the work.
Derived from
handoffby Matt Pocock (mattpocock/skills, MIT), which saves to the operating system's temporary directory. This version asks where to save instead, because the right place depends on how long the handoff needs to live and who else should see it. The rest of the instruction is his.
ASK BEFORE WRITING
Do not write the file until the destination is settled. Offer these, with the trade-off stated, and recommend the one that fits what the person just told you they are doing:
| Where | Good for | Cost |
| Repository root, untracked | Work resuming in this repo, possibly after a branch switch — an untracked file survives checkout | Shows up in git status and can be committed by accident |
| The OS temp directory | A handoff nobody else needs and nothing should outlive | Easy to lose; some systems clear it on reboot |
| A path they name | Anything else — a docs folder, a shared drive, a scratchpad | Theirs to manage |
If they choose the repository root, offer to add the file to .git/info/exclude. That keeps
git status clean without touching .gitignore, which would carry the entry to the remote and
to everyone else. Use the common git directory, so the exclusion also applies in worktrees:
git rev-parse --git-common-dirAppend the file name there only if they say yes. It is per-clone and reversible; say so.
WHAT TO WRITE
Do not duplicate content already captured in other artifacts — specs, plans, ADRs, issues, commits, diffs. Reference them by path or URL instead. A handoff that restates a committed document goes stale the moment that document changes, and the reader cannot tell which copy is true.
Write down what exists nowhere else: the decisions taken and why, what was tried and abandoned, the state of anything half-finished, and the traps discovered along the way.
Include a suggested skills section naming which skills the next agent should call the Skill tool for.
Redact anything sensitive — API keys, passwords, tokens, personally identifiable information. A handoff is written to be read by someone who was not in the room.
If the user passed arguments, treat them as a description of what the next session will focus on, and tailor the document to that.
RULES
Ask where, every time. Not a default with a chance to object — a question with an answer. Even in the same project as last time: a handoff meant to survive a branch switch and one meant to be thrown away belong in different places.
Say what the file is for, inside the file. Whoever opens it may not know why it exists, and if it sits untracked in a repository root, whether it should be committed is the first question they will have.
State what is unfinished, plainly. The value of a handoff is concentrated in what is still broken. Ending on a summary of what went well wastes the reader's first minute.
Never write it unasked. The frontmatter disables model invocation on purpose.
EDGE CASES
Not inside a git repository. The repository-root option and the .git/info/exclude offer do
not apply — say so rather than offering them and failing.
A handoff already exists at the chosen path. Ask before overwriting. The old one may describe a different piece of work, and losing it silently is the one failure this skill cannot recover from.
The conversation is short or the work is finished. Say so and write nothing. An empty handoff costs the next reader time and teaches them not to trust the next one.
The work spans more than one repository. Name every one, with its branch and its state. A handoff that describes a single repository when the work touched three is worse than none: the reader will act on the part it names.
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
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.

