Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Write a compact, decision-ready handoff so the next session (or the user) can continue without reconstructing the current one. Use when the session is ending, context is running low, the user asks for a handoff / "pass the baton" / "hand off", or a long-running operation needs a durable state checkpoint.
.claude/skills/hmbown-handoff/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 106% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-05 | ✓→✗ | ▼ Worse | 143% | 0% |
> Write a compact, decision-ready handoff so the next session (or the user) > can continue without reconstructing the current one. Use when the session is > ending, context is running low, the user asks for a handoff / "pass the > baton" / "hand off", or a long-running operation needs a durable state > checkpoint. The goal: the durable artifact survives, the context does not > need to.
Invocation: model+user
"write me a handoff", or the session is about to end / compact.
context loss: commits, branches, PRs, CI, blockers, decisions.
evidence instead of reconstructing the old one.
git branch --show-current, git status --short, git log --onelineorigin/<default>..HEAD (what is local-only), git log --oneline -5 (recent context).
gh pr list --state open,gh pr checks <n>, gh run list) — only what the user's operation actually depends on; do not pad the handoff with a full GitHub dump.
running background jobs/workers, queued CI.
also ask for a "short text-only" variant — then aim under ~15 lines):
markdown # Handoff — <operation/session name> — <date>
preserved (worktrees, uncommitted files, receipts)>
.codewhale/handoff.md in the workspace — thatis the only path the runtime reads back. On the next session's first turn it is injected as the "## Previous Session Relay" block (HANDOFF_RELATIVE_PATH, crates/tui/src/prompts.rs:85; loader at prompts.rs:301-315). A handoff written anywhere else is never picked up, so the next session starts cold no matter how good the note is.
Optionally also write a human-discoverable copy:
codewhale-ops/notes/with a living handoff file), update the living handoff's dated facts and snapshot, or create <topic>-handoff-<date>.md next to it.
HANDOFF.md ordocs/handoff/<topic>-<date>.md. These are for people; nothing in the runtime reads them. Never overwrite someone else's uncommitted handoff without reading it first.
delete the current context, but it can make the context disposable:
(WIP is fine with a real body), stashed with a note, or recorded in the handoff with its exact location.
(background jobs, sub-agents) — record what is still running and its task id.
unambiguous first action.
(the persisted file is the durable copy; the reply is the readable one).
locally, CI-verified, and pending.
before overwriting.
live state before acting on it.
reply and skip the full markdown file unless asked.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 19,150 | 12,896 | -33% | 1 | 1 | 0% | 3,078 | 1,553 | -50% | 0 | 0 | — |
case-02 | fail→fail | 5,286 | 5,833 | +10% | 1 | 1 | 0% | 234 | 1,531 | +554% | 0 | 0 | — |
case-03 | fail→fail | 4,673 | 6,610 | +41% | 1 | 1 | 0% | 253 | 1,619 | +540% | 0 | 0 | — |
case-09 | fail→fail | 16,864 | 6,288 | -63% | 1 | 1 | 0% | 2,334 | 1,479 | -37% | 0 | 0 | — |
case-04 | fail→pass | 12,029 | 4,349 | -64% | 1 | 1 | 0% | 1,944 | 1,965 | +1% | 0 | 0 | — |
case-05 | pass→fail | 3,926 | 5,778 | +47% | 1 | 1 | 0% | 577 | 1,403 | +143% | 0 | 0 | — |
case-06 | fail→fail | 9,328 | 9,878 | +6% | 1 | 1 | 0% | 1,483 | 1,757 | +18% | 0 | 0 | — |
case-07 | fail→pass | 10,651 | 21,790 | +105% | 1 | 1 | 0% | 1,918 | 3,959 | +106% | 0 | 0 | — |
case-08 | fail→fail | 5,831 | 5,612 | -4% | 1 | 1 | 0% | 249 | 1,576 | +533% | 0 | 0 | — |
case-10 | fail→fail | 8,193 | 6,486 | -21% | 1 | 1 | 0% | 1,327 | 1,585 | +19% | 0 | 0 | — |
case-11 | fail→fail | 9,090 | 5,506 | -39% | 1 | 1 | 0% | 1,390 | 1,443 | +4% | 0 | 0 | — |
case-12 | pass→fail | 14,442 | 5,689 | -61% | 1 | 1 | 0% | 2,065 | 1,494 | -28% | 0 | 0 | — |
case-13 | pass→fail | 6,598 | 5,191 | -21% | 1 | 1 | 0% | 872 | 1,453 | +67% | 0 | 0 | — |
case-14 | fail→pass | 13,899 | 3,626 | -74% | 1 | 1 | 0% | 2,283 | 1,759 | -23% | 0 | 0 | — |
case-15 | fail→fail | 8,942 | 5,018 | -44% | 1 | 1 | 0% | 1,283 | 2,108 | +64% | 0 | 0 | — |
case-16 | pass→pass | 13,460 | 5,845 | -57% | 1 | 1 | 0% | 1,902 | 2,086 | +10% | 0 | 0 | — |
case-17 | pass→pass | 7,209 | 8,347 | +16% | 1 | 1 | 0% | 1,152 | 2,562 | +122% | 0 | 0 | — |
case-18 | pass→pass | 12,664 | 8,191 | -35% | 1 | 1 | 0% | 1,950 | 2,389 | +23% | 0 | 0 | — |
case-19 | fail→pass | 12,544 | 8,348 | -33% | 1 | 1 | 0% | 1,826 | 2,395 | +31% | 0 | 0 | — |
case-20 | pass→pass | 10,835 | 8,847 | -18% | 1 | 1 | 0% | 1,770 | 2,639 | +49% | 0 | 0 | — |
case-21 | pass→pass | 6,773 | 4,456 | -34% | 1 | 1 | 0% | 1,090 | 1,889 | +73% | 0 | 0 | — |
case-22 | fail→fail | 7,419 | 5,631 | -24% | 1 | 1 | 0% | 1,304 | 1,476 | +13% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 10 counted toward the lift figure. The other 12 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +5 percentage points is the difference between those two pass rates over the 10 comparable cases. 6 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.