Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Sting25/claude-code-handoff --skill handoffgit clone --depth 1 https://github.com/Sting25/claude-code-handoffWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sting25/claude-code-handoff/handoff)<a href="https://agentmods.dev/skills/sting25/claude-code-handoff/handoff"><img src="https://agentmods.dev/badge/skills/sting25/claude-code-handoff/handoff/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/sting25/claude-code-handoff/handoff"><img src="https://agentmods.dev/badge/skills/sting25/claude-code-handoff/handoff.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00106 | $0.05979 |
| Opus 5.5 | $0.00042 | $0.02392 |
| Sonnet 5.5 | $0.00021 | $0.01196 |
| Haiku 4.5 | $0.00011 | $0.00598 |
Grade B, and why
handoff scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
> with `--local`, or `~/.claude/settings.json`) How it starts
The opening of the file, as written. The whole thing — 439 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/handoff — write a session handoff
Prerequisite: this skill drives scripts and hooks from https://github.com/Sting25/claude-code-handoff:
write_handoff.shunder~/.claude/bin/and the Stop / SessionStart / SessionEnd hooks in the project's.claude/settings.json(or.claude/settings.local.jsonwith--local, or~/.claude/settings.json) are NOT part of this file. Run./install.sh --scope project --project <dir>from that repo before first use.
Used at clean boundaries (after a commit, when a major track wraps),
when the user signals context pressure, or whenever the user invokes
/handoff. Hands the next session a complete state snapshot so
nothing gets lost across the restart boundary.
What this skill does
- Snapshot state: runs
write_handoff.sh(resolved from~/.claude/bin/, see Steps below), which captures:- HEAD, branch, recent commits, working-tree state for the current repo
- Same for an optional sibling "substrate" repo (configured via
HANDOFF_SUBSTRATE_NAME, e.g. a shared decisions / RFCs repo) - In-flight (untracked or modified)
.mddocs under the configured directories (default:docs/; configurable viaHANDOFF_INFLIGHT_DIRS) - The "verify state matches reality" command block
- Before overwriting
handoff_current.md, the script rotates the previous one into.claude/handoff_history/and prunes to the lastHANDOFF_HISTORY_KEEP(default 5). The next session's SessionStart hook auto-includes the most recent history entry if the current handoff has no curated Notes;/handoff-morelets a future session pull more of the history into context on demand. (Auto-compaction is also checkpointed: aPreCompacthook fires the same--if-curatedsafety net, so an uncurated session gets a mechanical snapshot before compaction destroys the conversation. That snapshot is a placeholder — running/handoffto curate is still the only path that captures intent.)
- Replace the placeholder block with session-specific intent — the script's snapshot is git-state-only; the conversation knows things git doesn't (decisions made, in-flight ASKs, open questions, "next session should start with X" notes). The auto-generated file contains a
## Notes from this sessionsection with a placeholder block bracketed by a<!-- HANDOFF_PLACEHOLDER: ... -->sentinel comment. Replace the entire placeholder block (sentinel + italic prose) with curated Notes using Edit — do not just append below the placeholder, because the SessionEnd safety-net detects "no curation happened" by the presence of that sentinel. Removing the sentinel is what tells the SessionEnd hook to stand down and preserve your work. Explicit fences for the next session go in the marker-wrapped## Rulessection, NOT in Notes (see Steps). After editing, re-sign withwrite_handoff.sh --restampso the rules load as binding, not data. - Confirm the raw-dump backup exists — the
Stophook (handoff_turn_append.sh) has been appending turn-by-turn to.claude/handoff_backups/handoff_raw_<session_id>.mdthroughout the session, so by the time/handoffruns the backup is already there. Verify it:ls -la .claude/handoff_backups/. If the file is missing (hook not installed, or session started before the hook landed), fall back to writing a one-shot dump per the "Raw dump fallback" section below. The hook prunes to 3 newest automatically — you do not need to. - Print a loud, unmissable banner — the ASK must be impossible to miss (the user specifically asked for this; do not soften).
- Stop. Do not start new work after the banner. The session is over.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago Changed · -24 lines 04c914a55182
- 4d ago Changed · -1 lines a59c63e427b2
- 5d ago Changed · +3 lines 0ca79ce592d1
- 2mo ago Changed · +10 lines 5ad8f8d3ce8f
- 2mo ago First seen · 451 lines · 106 tokens per session scan B cfd519f47bf4
handoff is a skill published in the GitHub repository Sting25/claude-code-handoff (5 stars, last pushed yesterday), licensed MIT. It adds 106 tokens to every session and 5,979 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
handoff compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| handoffSting25/claude-code-handoff | Skill | 5 | yesterday | MIT | B | 106 | Claude Code |
| checkpointShweta-Mishra-ai/tokenmizer | Skill | 35 | yesterday | MIT | A | 61 | Claude Code |
| resumeShweta-Mishra-ai/tokenmizer | Skill | 35 | yesterday | MIT | A | 86 | Claude Code |
| resumeArcticFox2029/chamnan | Skill | 10 | 9d ago | MIT | A | 36 | Claude Code |
| handoffAndrewDongminYoo/cc-agents-kit | Skill | 3 | yesterday | Apache-2.0 | A | 63 | Claude Code |
| audit-contextMalo-T/claude-toolbelt | Skill | 2 | yesterday | MIT | A | 218 | Claude Code |
| handoffMalo-T/claude-toolbelt | Skill | 2 | yesterday | MIT | A | 151 | Claude Code |