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 agentmods add commands/jovesun-lab/whetstone/handoffgit clone --depth 1 https://github.com/jovesun-lab/whetstoneWrote 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/commands/jovesun-lab/whetstone/handoff)<a href="https://agentmods.dev/commands/jovesun-lab/whetstone/handoff"><img src="https://agentmods.dev/badge/commands/jovesun-lab/whetstone/handoff.svg" alt="Measured on agentmods" 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 | $0.00021 | $0.00918 |
| Opus 5 | $0.00010 | $0.00459 |
| Sonnet 5 | $0.00004 | $0.00184 |
| Haiku 4.5 | $0.00002 | $0.00092 |
Grade A, and why
handoff scanned grade A with 0 findings 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 4d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Turn what matters about this session into a handoff the next person or agent can pick up cold —
including a different agent on a different platform. Build it from
templates/handoff.template.md; that template owns the structure, so reuse its sections instead of
inventing your own.
Where it goes. Prefer writing the file somewhere the next session will look — a scratch or temporary location, or an agreed handoff path, kept out of the working tree. If you can't write files, just put the whole handoff in your reply: the text is the deliverable, not the file.
Work through the template's sections, keeping each lean:
- Header — name the session writing this (the session name it has carried since the task crystallized, plus the machine id if your host exposes one). One boot = one session: if this conversation already wrapped once and kept going, it's still the same session — don't mint a second identity for it.
- ⭐️ Goal — the single thing the next session exists to do, as one re-readable sentence. Keep
exactly one anchor, at the start of its line (
⭐️, or the plain-text[MAIN], or amain_goal: trueline — a star buried mid-sentence doesn't count). If an argument was given, read it as that focus and shape the rest of the doc around it. - State — the live picture right now. Flag anything you haven't verified.
- Done — what got finished, in a line or two — and close every goal this session carried with
an explicit verdict under its frozen title:
LANDED(plus the evidence),PARTIAL, orNOT-LANDED(plus where it's carried — it must reappear in Open / Next). No silent closes, no closing a goal under a name it didn't start with; a redirected goal takes its honest NOT-LANDED and the new direction gets its own entry. - Decisions — everything the human confirmed this session, one numbered row each (D1, D2, …), corrections included. Append-only. Write "none" rather than deleting the section.
- Open / Next — what's unresolved, plus the move you'd make next, most important first.
- Re-derive on pickup — spell out what the next agent should reconcile against reality before believing this doc: which files to reopen, which check to rerun, which numbers to re-confirm — and what result to expect from each. Leaving this out is how a stale snapshot quietly turns wrong.
- Suggested next steps / tools / skills — the concrete first actions, plus the capabilities to reach for. Describe the capability, not one app's button.
- References — link out to anything that already lives elsewhere (a plan, an issue, a commit, a diff, a doc) by path or URL.
Three habits while you write:
- Link, don't restage. If a fact already lives in another artifact, point to it rather than copying it in — a copy is one more thing that can fall out of date.
- Strip anything sensitive. No keys, tokens, credentials, or personal data should survive into the doc. Check before you hand it over.
- Stay short and current. A handoff is the latest state plus pointers, not a transcript. Send people to the longer record instead of reproducing it.
The wrap is atomic with the end of the work. If more work lands after the handoff is written — the "wait, one more thing" pattern — the snapshot is stale the moment that work starts. Re-run this whole operation and capture the new state; a stale handoff misleads the next session worse than no handoff at all.
If you can run code, python3 tools/handoff.py check <file> confirms the sections, the single goal
anchor, and the re-derive content, and warns on obvious secrets. It's optional — the document is
complete without it.
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.
- 4d ago First seen · 61 lines · 21 tokens per session scan A f38dc3333b11
handoff is a command published in the GitHub repository jovesun-lab/whetstone (8 stars, last pushed 13d ago), licensed MIT. It adds 21 tokens to every session and 918 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
memorise
Digest files/folders into local, token-free graph memory (Memorised them All).
recall
Recall from local graph memory — returns a tiny, citable slice (token-free).
export-memory
Export the generated memory as portable Markdown files.
forget
Delete a project's local memory (Memorised them All) — irreversible.
memory-status
Check the local stack (deterministic engine, Tesseract, MarkItDown) and projects.
save-session-learnings
Document session learnings to CLAUDE.md and AGENTS.md. Use after completing significant tasks, debugging sessions, or discovering project patterns.