read-handoffs

read-handoffs is a skill for Claude Code from edg-l/engram-mcp. It costs 36 tokens per session (1,284 once invoked), scanned A, original, Apache-2.0.

A session-resumption instruction for loading recent handoff notes from Engram, a shared store of previous coding-session context. It explains how to use the current branch and what to do when no handoff exists.

In plain words
What is it for?
Use it at the start of a session or when continuing earlier work, especially when you need previous decisions, debugging notes, or unfinished-task context.
Why use it?
It helps an agent recover decisions, progress, and linked memories from earlier work instead of starting without context. It also provides a fallback for finding relevant handoffs on other branches.

Skill for Claude Code

Written for Claude Code: disable-model-invocation in frontmatter.

Good fit Use it at the start of a session or when continuing earlier work, especially when you need previous decisions, debugging notes, or unfinished-task context.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/edg-l/engram-mcp/read-handoffs
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.

Any agent
npx skills add edg-l/engram-mcp --skill read-handoffs
Clone the repo
git clone --depth 1 https://github.com/edg-l/engram-mcp

Made for: Claude Code.

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 read-handoffs

README.md
[![agentmods](https://agentmods.dev/badge/skills/edg-l/engram-mcp/read-handoffs/github.svg)](https://agentmods.dev/skills/edg-l/engram-mcp/read-handoffs)
Your own site
<a href="https://agentmods.dev/skills/edg-l/engram-mcp/read-handoffs"><img src="https://agentmods.dev/badge/skills/edg-l/engram-mcp/read-handoffs/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.

agentmods 80×15 button for read-handoffs

Your own site · 80×15
<a href="https://agentmods.dev/skills/edg-l/engram-mcp/read-handoffs"><img src="https://agentmods.dev/badge/skills/edg-l/engram-mcp/read-handoffs.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 36 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,284 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.00036 $0.01284
Opus 5.5 $0.00014 $0.00514
Sonnet 5.5 $0.00007 $0.00257
Haiku 4.5 $0.00004 $0.00128

Measured 7d ago against content hash 1b74ff17dc26, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

read-handoffs 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 7d 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.

skills/read-handoffs/SKILL.md · 51 lines

How it starts

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

Load session context from Engram via the mcp__engram__handoff_resume MCP tool. Engram is the canonical store; legacy .claude/handoff/*.md files were ported via engram-port-handoffs and are no longer read.

Steps

  1. Call mcp__engram__handoff_resume, passing branch from git branch --show-current. Other defaults: max_sections: 5, include_off_branch: false.

    Pass the branch explicitly for the same reason handoff writes it explicitly: the server falls back to the branch of the directory it was launched in, so a session started in the main clone but working in a worktree would resume the wrong branch and report "no prior handoffs". Omit branch only when not in a git repo.

  2. Inspect the result. Engram returns:

    • branch — the resolved branch (or null if detached HEAD)
    • latest_handoff_id — most recent handoff on this branch
    • chain — handoff ids ordered oldest-to-newest via continues_from (capped at depth 5, cycle-detected)
    • open_todos — the project's live open todo list for this branch, from the durable store rather than any handoff, as {id, title} items ordered by importance, then most recently updated. Returned outside the similarity ranking, and present even when no handoff exists
    • open_todo_count — the true number of open todos; open_todos is capped, so this can be larger
    • stale_todo_count, stale_todo_ids — open todos untouched for 30+ active store-days, oldest first (at most 5 ids)
    • open_blockers — the newest handoff's unresolved blockers verbatim, also outside the ranking
    • top_sections — highest-scoring sections across the chain, each with handoff_id, section_name, section_text, score
    • linked_memories — decision/pattern/debug memories the latest handoff links to via derived_from
    • message — only present when branch could not be resolved
  3. Handle the empty case. If chain is empty AND latest_handoff_id is null, say "No prior handoffs on this branch." Then call mcp__engram__handoff_resume again with include_off_branch: true to surface handoffs from other branches as background. Note that open_todos is still meaningful here — a project can have todos before its first handoff, so report them even when no handoff was found.

  4. Handle detached HEAD. If message is set, tell the user no current branch was detected and present whatever off-branch results came back, flagged as such.

  5. Present to the user, in this order:

    • Status line: Resuming \`, handoff(s) in chain, latest from `
    • Open todos / blockers: print open_todos (title and id) and open_blockers in full, before anything else. They are the open state of the work and are not subject to the ranking. When open_todo_count exceeds the items returned, say how many more there are and that mcp__engram__todo_list lists them. open_todos is the durable list — treat it as the authoritative record of outstanding work, and reconcile it with mcp__engram__todo_write as you go rather than only at session end.
    • Stale todos: when stale_todo_count is above 0, name the stale ids and offer to finish, edit, or drop each one (a drop needs a reason). A todo nobody touches for a month of active work is usually done or dead.
    • Top sections: summarize each top_sections entry. Group by handoff_id if multiple sections come from the same handoff. Quote the strongest section text verbatim; paraphrase weaker matches. Call out any tried section as approaches already ruled out.
    • Linked memories: bullet list of linked_memories with their type and content preview ("Related decision: ...", "Related debug: ...").
  6. Pair with mcp__engram__memory_context. Call it with a short description of the inferred current task (derived from top_sections and linked_memories). Surface any additional memories that didn't come through the handoff chain.

  7. Closing note. End with a one-liner: which handoff in the chain is the working starting point, and whether you followed any cross-references the user might want expanded.

Read the full file on GitHub · 51 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. 7d ago Changed · +9 lines 1b74ff17dc26
  2. 1mo ago First seen · 42 lines · 36 tokens per session scan A e9b10c31ec36

Subscribe to this mod's changes

read-handoffs is a skill published in the GitHub repository edg-l/engram-mcp (18 stars, last pushed 8d ago), licensed Apache-2.0. It adds 36 tokens to every session and 1,284 once invoked, about $0.0001 per session on Opus 5.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-30.

Related

Other skills, from other repositories

engrama-onboard

Build a personalized Engrama memory graph for any user through a conversational interview. Use this skill whenever someone says "set up Engrama", "create my graph", "onboard", "build my profile", "configure Engrama for me", or asks how to start using Engrama. Also use when the user mentions they have a different role…

scops/engrama · 104 tokens

memory-review

Memory hygiene audit -- finds stale facts, contradictions, low-confidence entries, and consolidation candidates in Pensyve memory. Use periodically to maintain memory quality.

major7apps/pensyve · 33 tokens

session-memory

End-of-session memory capture -- classifies session signals using a tiered taxonomy and stores confirmed items via Pensyve. Use when ending a work session or when the user wants to capture what was learned.

major7apps/pensyve · 44 tokens

context-loader

Session-start context loading -- loads historical decisions, issues, and patterns from Pensyve to provide cross-session continuity. Use at session start or when switching context.

major7apps/pensyve · 35 tokens

memory-informed-refactor

Pre-refactor context briefing -- loads relevant prior decisions, failures, and pitfalls from Pensyve memory before refactoring a module. Use before any refactor to avoid repeating past mistakes.

major7apps/pensyve · 42 tokens

memory-informed-longitudinal-work

Long-running multi-session work (research, eval loops, iterative benchmarks) with continuity -- resume prior lessons, capture per-run outcomes, build up stable truths over time. Use for eval/research/benchmark work that spans sessions.

major7apps/pensyve · 52 tokens