Skill: handoff-notes
Compress the session into the smallest document from which someone else could continue.
The failure mode is a transcript. A successor who has to read four pages to find the one broken spec
would have been better off starting fresh. Aim for something a competent person reads in ninety
seconds and then knows exactly what to do next.
When to use
- Context is filling mid-task and the work must continue elsewhere.
- Stopping for the day mid-flow.
- Passing the work to someone else.
Not when the work is finished. Completed and committed work needs a summary, not a handoff — say
what you did and stop.
Rules
- Write outside the repository. A temporary path —
/tmp/handoff-<short-name>.md or the platform
equivalent. A handoff is scratch: it must not appear in the working tree, in a commit, or in a diff
someone reviews next week.
- Point, do not paste. The branch by name, files by path, commits by reference, the diff by the
command that produces it. Never copy file contents a successor can read themselves — that is what
turns a handoff into a transcript.
- No secrets, no personal data. If a configuration value matters, name the key, never the value.
Assume the file will be pasted into a chat window or a ticket, because it usually is.
- Record decisions, not deliberation. What was settled, so nobody reopens it. Not the reasoning
that got there.
- State what is uncertain. A successor acting on your guess as if it were established fact is the
most expensive way this document fails. Mark unverified things unverified.
- Shape it around the goal. If the user named a focus when invoking this, that focus is the
successor's goal, and everything else is context.
Ground it in facts, not recollection
Before writing, establish from the repository rather than memory: the current branch, what is
uncommitted, which commits are on the branch, the scope of the change, and the last result of the
relevant test run. Getting any of these wrong sends the successor in a direction with confidence,
which is worse than sending them nowhere.
The document
# Handoff — <one-line task>
## Next goal
<the single thing the successor should achieve, in one or two sentences>
## Where things stand
- Branch: <name> → base: <name>
- Uncommitted: <summary, or "clean">
- Last run: <what ran, against what, result — or "not run since <change>">
- Target/environment: <name>
## Done
- <what is finished, with paths — one line each>
## Not done
- <what is half-built, what is untouched, what is blocked and by what>
- <e.g. "the refund spec is written but red — locator drift on the confirmation dialog, not yet fixed">
## Settled — do not reopen
- <decisions already made: layer, environment, scope of negative paths, reuse vs new>
## Uncertain
- <assumptions made without verifying, and how to check each>
## Next steps
1. <concrete action> — <which skill or agent, and why that one>
2. <…>
## Watch out for
- <the flaky spec, the environment that is down, the check that must pass, the file not to touch>
Cut any section that would be empty. An empty heading implies you looked and found nothing, which is a
claim in itself.
Guardrails
- Never write the handoff into the repository, even temporarily. "I'll delete it after" is how these
get committed.
- Never include a token, password, key, connection string, or personal data — not even redacted in a
way that reveals its shape.
- Do not claim a spec passes unless you ran it. "Written, not yet run" is a perfectly good status and
a false green wastes hours.
- Do not include background the successor can get from the repo. Volume is the enemy of use.
- Do not use this to end a task early. If the work is done, finish it.
Done when
The file is written outside the repo, states one goal, distinguishes verified from assumed, names the
next skill to invoke, and you have given the user the path and a one-line summary of what it says.
1---2name: handoff-notes3description: Use when test-automation work must continue in a fresh session or be picked up by someone else — the context window is filling mid-task, the day is ending, or the work is being passed on. Writes a handoff document to a temporary location (never the repo) containing what a successor needs and nothing they could read for themselves, with secrets excluded and open decisions recorded so they are not re-litigated. Not for finished work.4---56# Skill: handoff-notes78Compress the session into the smallest document from which someone else could continue.910The failure mode is a transcript. A successor who has to read four pages to find the one broken spec11would have been better off starting fresh. Aim for something a competent person reads in ninety12seconds and then knows exactly what to do next.1314## When to use1516- Context is filling mid-task and the work must continue elsewhere.17- Stopping for the day mid-flow.18- Passing the work to someone else.1920**Not** when the work is finished. Completed and committed work needs a summary, not a handoff — say21what you did and stop.2223## Rules24251. **Write outside the repository.** A temporary path — `/tmp/handoff-<short-name>.md` or the platform26 equivalent. A handoff is scratch: it must not appear in the working tree, in a commit, or in a diff27 someone reviews next week.282. **Point, do not paste.** The branch by name, files by path, commits by reference, the diff by the29 command that produces it. Never copy file contents a successor can read themselves — that is what30 turns a handoff into a transcript.313. **No secrets, no personal data.** If a configuration value matters, name the key, never the value.32 Assume the file will be pasted into a chat window or a ticket, because it usually is.334. **Record decisions, not deliberation.** What was settled, so nobody reopens it. Not the reasoning34 that got there.355. **State what is uncertain.** A successor acting on your guess as if it were established fact is the36 most expensive way this document fails. Mark unverified things unverified.376. **Shape it around the goal.** If the user named a focus when invoking this, that focus is the38 successor's goal, and everything else is context.3940## Ground it in facts, not recollection4142Before writing, establish from the repository rather than memory: the current branch, what is43uncommitted, which commits are on the branch, the scope of the change, and the last result of the44relevant test run. Getting any of these wrong sends the successor in a direction with confidence,45which is worse than sending them nowhere.4647## The document4849```markdown50# Handoff — <one-line task>5152## Next goal53<the single thing the successor should achieve, in one or two sentences>5455## Where things stand56- Branch: <name> → base: <name>57- Uncommitted: <summary, or "clean">58- Last run: <what ran, against what, result — or "not run since <change>">59- Target/environment: <name>6061## Done62- <what is finished, with paths — one line each>6364## Not done65- <what is half-built, what is untouched, what is blocked and by what>66- <e.g. "the refund spec is written but red — locator drift on the confirmation dialog, not yet fixed">6768## Settled — do not reopen69- <decisions already made: layer, environment, scope of negative paths, reuse vs new>7071## Uncertain72- <assumptions made without verifying, and how to check each>7374## Next steps751. <concrete action> — <which skill or agent, and why that one>762. <…>7778## Watch out for79- <the flaky spec, the environment that is down, the check that must pass, the file not to touch>80```8182Cut any section that would be empty. An empty heading implies you looked and found nothing, which is a83claim in itself.8485## Guardrails8687- Never write the handoff into the repository, even temporarily. "I'll delete it after" is how these88 get committed.89- Never include a token, password, key, connection string, or personal data — not even redacted in a90 way that reveals its shape.91- Do not claim a spec passes unless you ran it. "Written, not yet run" is a perfectly good status and92 a false green wastes hours.93- Do not include background the successor can get from the repo. Volume is the enemy of use.94- Do not use this to end a task early. If the work is done, finish it.9596## Done when9798The file is written outside the repo, states one goal, distinguishes verified from assumed, names the99next skill to invoke, and you have given the user the path and a one-line summary of what it says.