handoff

handoff is a skill for Claude Code, Codex from terva-sh/terva. It costs 56 tokens per session (1,214 once invoked), scanned A, original, MIT.

A session handoff document records the context and decisions from current work so a different session or agent can continue it.

In plain words
What is it for?
Use it when changing agents, machines, worktrees, or sessions, or when pausing work that another worker must resume.
Why use it?
It prevents the next worker from having to reconstruct the task from scratch. It also keeps the handoff outside the project workspace, so it does not alter the repository.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Install

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.

agentmods
npx agentmods add skills/terva-sh/terva/handoff
Any agent
npx skills add terva-sh/terva --skill handoff
Clone the repo
git clone --depth 1 https://github.com/terva-sh/terva

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for handoff

README.md
[![agentmods](https://agentmods.dev/badge/skills/terva-sh/terva/handoff.svg)](https://agentmods.dev/skills/terva-sh/terva/handoff)
Your own site
<a href="https://agentmods.dev/skills/terva-sh/terva/handoff"><img src="https://agentmods.dev/badge/skills/terva-sh/terva/handoff.svg" alt="Measured on agentmods" height="20"></a>
Per session 56 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,214 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00056 $0.01214
Opus 5 $0.00028 $0.00607
Sonnet 5 $0.00011 $0.00243
Haiku 4.5 $0.00006 $0.00121

Measured 5d ago against content hash c1cb5e9e483a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

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 5d 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.

packages/agent/skills/builtin/handoff/SKILL.md · 101 lines

How it starts

The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Session handoff

Write a handoff document so the next session can continue this work cold. The next reader has none of your context: no tool results, no reasoning, no shorthand you coined along the way. Write for them, not for a log.

First check the cheaper tool: if the user just wants to continue this same conversation later, terva --continue (or the /sessions picker) resumes it with full context — no handoff needed. Reach for a handoff when the next worker is a different session or agent: a fresh start in another worktree, another machine, another model, or a context too grown to carry forward.

Where

<terva-home>/handoffs/<yyyy-mm-dd>-<short-slug>.md, creating the directory if missing. The terva home is $TERVA_HOME when set; otherwise the platform default (macOS ~/Library/Application Support/terva, Linux $XDG_STATE_HOME/terva or ~/.local/state/terva, Windows %LOCALAPPDATA%\terva; long-standing installs may use the legacy zot sibling — the terva_status tool's session-file path sits inside the live home, so its sessions/ parent settles any doubt).

Never write it into the workspace — it would dirty the repo's status and outlive its usefulness there — and never into a temp dir a cleanup can eat. If a handoff for this same stream of work already exists, update it in place rather than minting a sibling.

The location is part of the design: <terva-home>/handoffs/ is writable and readable even in a jailed session — no /unjail, no extra trust. If a write there is refused anyway, report it as a bug rather than routing around it.

What goes in

Only what the next session cannot cheaply re-derive:

  • Goal — the user's actual objective, one paragraph, in their words where possible; include the "why" when it shaped decisions.
  • State — DONE and verified (with evidence: test run, commit, merged PR) vs IN FLIGHT vs NOT STARTED. Never present unverified work as done.
  • Repo state — repository path, worktree if different, branch, HEAD sha, uncommitted/untracked files that matter. If meaningful work sits uncommitted, say so loudly — or better, make a WIP commit first and record its sha.
  • Next steps — ordered; the first concrete enough to start on immediately.
  • Decisions & constraints — choices already made (and why) that must not be relitigated; traps already hit that must not be re-fallen into.
  • Verify first — the commands proving the recorded state is still true (test suite, build, git status), so drift is caught before work resumes.
  • Open loops — background work still running, PRs awaiting CI or review, questions awaiting the user.
  • Suggested skills — skills the next session should load, by name, with when and why.
  • Pointers — the files to read first, in order.

Read the full file on GitHub · 101 lines

Changes

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.

  1. 5d ago First seen · 101 lines · 56 tokens per session scan A c1cb5e9e483a

Subscribe to this mod's changes

handoff is a skill published in the GitHub repository terva-sh/terva (2 stars, last pushed 4d ago), licensed MIT. It adds 56 tokens to every session and 1,214 once invoked, about $0.0003 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.

Related

Other skills, from other repositories

general

Handle everyday conversation, answer questions, manage files, take notes, run scripts, and maintain persistent memory across sessions. Use when the user asks a general question, requests file operations, wants to brainstorm ideas, needs to-do tracking, asks you to remember something, or requests skill search and…

0xranx/golembot · 61 tokens

memory-index

Index a folder's contents into the MemPalace semantic memory for search and retrieval. Use this skill whenever the user asks to "index a folder", "index a directory", "index memory", "mine a project into memory", "make a folder searchable", "embed a folder", "ingest code into the palace", or "index this directory for…

dimetron/pi-go · 0 tokens

memory-mine

Mine project files or conversations into the MemPalace memory system. Indexes source code and conversation history as searchable palace drawers with semantic embeddings and room assignment.

dimetron/pi-go · 35 tokens

memory-status

Show MemPalace memory system status — drawer counts, wings, rooms, knowledge graph stats, and embedding model state.

dimetron/pi-go · 27 tokens

pi-sync

Daily upstream-sync job for the pi Go port — fetch upstream pi, triage every change since the recorded pin, port what's in scope, verify idiomatic + parity via independent reviews, update the ledger, and push. Use for "sync with upstream", "porting job", or as the scheduled daily run.

sky-valley/pi · 66 tokens

dream-memory

Consolidate recent logs, sessions, and existing memory files into durable topic memories, normalize dates, prune stale entries, and keep MEMORY.md short enough for prompt use.

LearnPrompt/cc-harness-skills · 37 tokens