handover
Skill7 starsChanged 48 days agoMITView on GitHub
Freezes the current chat's context into a throwaway file so a fresh chat can pick up the thread. Touches no memory, no daily log, no git: it is a baton between two chats, not a save (persisting goes through /session-debrief). Use when the operator says: handover, /handover, pass the baton (to save); resume the handover, pick up the handover, resume the chat (to resume). Not for: "what do we save", "debrief", "close the session" (those persist the work and belong to /session-debrief).
51 other projects use a version of this.
Adopted by
Most recently taken up by
- thiagobluhm/o1memtheir own version, first seen Nov 8, 2026
- hmislk/hmistheir own version, first seen Nov 2, 2026
- loonylabs-dev/claude-setuptheir own version, first seen Nov 1, 2026
- oubakiou/skillstheir own version, first seen Nov 1, 2026
- vrppaul/claude-reviewtheir own version, first seen Nov 1, 2026
- konlue/skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use harness-init, incident and 8 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.
steptianSkillharness-init
初始化 .harness 开发框架,集成代码修改影响范围评估和测试覆盖建议功能。触发词:'初始化新项目'、'harness init'、'更新 harness'、'分析影响范围'、'评估修改影响'
Also in 3 projects that use this
JkudjoSkillincident
Production incident response — structured triage, hypothesis tree, safe remediation, incident record
Also in 3 projects that use this
nicolasestremSkillbrainstorm
Structured idea generation and solution exploration with systematic analysis.
Also in 3 projects that use this
GoogleSkillto-tickets
Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker — edges as text in one file per ticket locally, or native blocking links on a real tracker.
Also in 3 projects that use this
BlockSkillplan
Draft a TDD, PRD, or lightweight plan in the conversation without committing it.
Also in 3 projects that use this
MicrosoftSkillcaveman
Ultra-compressed response style that reduces output token count while preserving technical accuracy, with intensity levels and auto-clarity safety rules
Also in 3 projects that use this
Other versions51 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 51
- me2resh/apexyard★ 542same name
- hmislk/hmis★ 244same name
- chenklein26-maker/Harness-Starter★ 119same name
- k1ein-chen/Harness-Starter★ 119same name
- eai-org/agent-toolkit★ 85same name
- manusco/resonance★ 38same name
- chacosoldier/compabob★ 34same name
- randommonicle/claude-skills★ 27same name
- L-X-T/ng-agentic-skills★ 13same name
- Cor-Incorporated/claude-code-skills★ 5same name
41 more not listed
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 repository18 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- daily-log/CLAUDE.mdCLAUDE.md
- memory/CLAUDE.mdCLAUDE.md
- operators/CLAUDE.mdCLAUDE.md
- daily-briefingSkill
- html-previewSkill
- meeting-debriefSkill
- memory-checkupSkill
- pr-reviewSkill
- session-debriefSkill
- setup-company-brainSkill
- shipSkill
- skill-detectorSkill
- skill-improveSkill
- sparringSkill
- syncSkill
- system-checkupSkill
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 38 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 43
If the intent is ambiguous, ask which of the two before acting.
- Very specific: line 93
No approval needed, no preview before writing: it is temporary and zero risk.
- Distinctive: line 97
Do not: update memory, do not write to the daily log, do not perform any git operation.
- Distinctive: line 105
If the file does not exist, say so calmly ("no saved handover to resume") and never invent context.
- Very specific: line 117
If something related turns up, propose it ("I found <path>, open it?").
- Distinctive: line 125
Only after a yes go on to step 3.
- Distinctive: line 133
Delete only after a successful read and a confirmed title, never before.
- Distinctive: line 147
No timestamped files piling up.
- Distinctive: line 151
Adaptive template: Only the sections with real content.
“Common” is measured: kept by at least 6 in 10 of the 38 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.
Files
/handover
Baton pass between two chats. A session is getting long, or you want to close
it, but the work is not done: handover captures the state in a temporary
file, and a fresh chat picks up from there with a clean context.
Not a debrief. It does not write to memory/, does not write to
daily-log/, does not commit and does not push anything. If the work needs
to be persisted (project status, session log), that is session-debrief.
This is surgical and instant: a single throwaway file, outside the repo.
The file lives at a fixed path: ${TMPDIR:-/tmp}/brain-handover.md. Outside
the repo (git never sees it), the OS cleans it up, and at most one exists at
a time. The slot has no owner: the first "resume" from any chat consumes it,
which is why Resume mode confirms the title before deleting anything.
No secrets in the file. The temp directory has no restrictive permissions and the file can outlive the chat that wrote it, so it must never be the only place a credential lives. Record the name of the variable, never its value; the value is re-entered through the environment in the new chat.
Detect the mode
Two modes in the same skill, distinguished by the operator's intent:
- Save - the operator wants to freeze the current chat (save triggers above).
- Resume - the operator wants to pick up from a saved handover (resume triggers above).
If the intent is ambiguous, ask which of the two before acting.
Mode ① - Save
- Scan the conversation and reconstruct the state: goal, what is done, next step, decisions made, files touched, guardrails, open threads.
Write
${TMPDIR:-/tmp}/brain-handover.mdwith the template below. Adaptive template: include only the sections that actually have content - no empty sections with a placeholder dash. Every save overwrites the previous file (use the Write tool, never shell text-munging: apostrophes in natural language break single-quoted shell strings).# Handover - <session title> - <YYYY-MM-DD HH:MM> ## Goal What we are doing and why (1-3 lines). ## Current state Where things stand now, what is already done in this chat. ## Next step The next concrete action to pick up from. ## Decisions made Choices and constraints settled in chat, so the new chat does not reopen them. ## Relevant files / paths Files touched or useful, with path, so the new chat does not re-search from scratch. ## Do not Explicit guardrails: what to avoid, paths already ruled out. ## References Links to other documents, resources, people, useful numbers. ## Open / do not forget Open threads, gotchas, anything pending.Get today's date with
date +%Y-%m-%d(anddate +%H:%Mfor the time) before writing it into the title; never compute it by hand. Before writing, scan the draft for anything that looks like a token, a key, or a password: if one is there, replace it with the variable name.- Confirm in chat: the path plus a 2-line recap of what was captured.
No approval needed, no preview before writing: it is temporary and zero
risk. Optionally remind the operator of the trigger for the other chat:
"in the new chat:
resume the handover."
Do not update memory, do not write to the daily log, do not perform any git operation. That is the whole point of this skill.
Mode ② - Resume
- Read
${TMPDIR:-/tmp}/brain-handover.md.If the file does not exist, say so calmly ("no saved handover to resume") and never invent context. Then look for a hand-written pass note before giving up: untracked files in the tree whose name says handover, and the
## Open threadssection of your own recent daily logs.cd "$(git rev-parse --show-toplevel)" git -c core.quotePath=false status --short --untracked-files=all | grep -i "handover\|handoff" || echo "no hand-written pass note in the tree" SLUG="$(scripts/lib/operator-registry.sh resolve)" && ls daily-log/*-"$SLUG".md 2>/dev/null | tail -2If something related turns up, propose it ("I found
<path>, open it?"); never open it silently, and stop if nothing does. A missing file on a resume is a breakage of the previous chat's save: apply the Self-improvement footer to this run as well.
- Declare the title (the first line of the file) and ask the operator to confirm it is the thread they expect. The slot is single and has no owner, so a "resume" from any chat consumes whichever handover is there. Only after a yes go on to step 3. If it is not the expected thread, leave the file where it is and stop.
- Load the context: absorb the content as the starting state of the new chat. Recap in chat where things stood and what the next step is, so the operator confirms alignment.
- Delete the file (throwaway):
rm -f "${TMPDIR:-/tmp}/brain-handover.md". Delete only after a successful read and a confirmed title, never before. - Confirm: "Baton taken, file discarded. Picking up from:
<next step>."
Rules
- Never write to memory, daily-log, or git. That is the clean split from
session-debrief. If persistence is needed, point there instead. Resume may run a read-onlygit statusto look for a hand-written pass note; it never writes. - One file, fixed path, overwrite.
${TMPDIR:-/tmp}/brain-handover.md. No timestamped files piling up. - Delete after reading and confirming, not before. In Resume mode, the
rmis the last step, only after a successful read and a confirmed title. - No credentials in the file. Variable names only, never values.
- Adaptive template. Only the sections with real content.
- Write tool for the file, not
sed/perl/heredoc text-munging. Apostrophes in natural language break single-quoted shell strings. - Absolute dates, from
date +%Y-%m-%d/date +%H:%M.
Self-improvement
At the end of the run, check it against these friction triggers: avoidable
round-trip · improvisation · breakage · token waste · operator correction
(full definitions in skills/_improvements/capture.md). If at least one fired,
ask the operator "there was friction on X, should I log it?"; on their ok,
append an entry to skills/_improvements/friction-log.md in the format
capture.md defines. Clean run: say nothing. Never self-edit this skill;
improvements go through /skill-improve.
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.

