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 nomadop/session-watcher --skill sw-handoffgit clone --depth 1 https://github.com/nomadop/session-watcherWrote 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/nomadop/session-watcher/sw-handoff)<a href="https://agentmods.dev/skills/nomadop/session-watcher/sw-handoff"><img src="https://agentmods.dev/badge/skills/nomadop/session-watcher/sw-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/nomadop/session-watcher/sw-handoff"><img src="https://agentmods.dev/badge/skills/nomadop/session-watcher/sw-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.00054 | $0.01230 |
| Opus 5.5 | $0.00022 | $0.00492 |
| Sonnet 5.5 | $0.00011 | $0.00246 |
| Haiku 4.5 | $0.00005 | $0.00123 |
Grade A, and why
sw-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 18d 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.
How it starts
The opening of the file, as written. The whole thing — 62 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Session Watcher Handoff
Prepare a handoff package so the next session can resume without re-reading what its first task needs, and without carrying what that task will not open.
Steps
-
Get turn skeleton via the
get_turn_skeletontool →{ snapshot_id, skeleton_path, notes_path, protocol }. Follow theprotocolsentence it returns; it states how the two files are filled.- The call fails — an error instead of that shape, whatever its cause. Stop this run: report to the user that the turn skeleton could not be captured; do not produce or submit notes, and do not go on to
prepare_handoff.
- The call fails — an error instead of that shape, whatever its cause. Stop this run: report to the user that the turn skeleton could not be captured; do not produce or submit notes, and do not go on to
-
Produce turn notes you MUST follow
NOTES.mdexactly for what each note says. Write them inline — do not delegate to a subagent. -
Submit notes via the
submit_turn_notestool withsnapshot_id. The tool readsnotes_pathitself.invalid_notes— eachissuesentry names at, and each one is one section ofnotes_path. Edit those sections and submit again, at most three times (four submissions in all). If the last one still rejects, stop and report to the user; do not loop.
The other three codes stop this run. Report the error to the user and take no further step:
stale_snapshot— snapshot is no longer current. Stop: report to the user; do not re-fetch the skeleton or re-produce notes.invalid_snapshot— the capture's source identity or required metadata is invalid, including a transcript that cannot be read. Stop: report to the user.storage_unavailable(retryable: true) — store temporarily unavailable. Stop: report to the user; they may re-run the skill when ready.
-
Fetch bucket data via the
get_bucket_summarytool.If
metrics.br < 0.05AND few turns: note "Context is still light — handoff may not be necessary yet, but proceeding as requested." -
Select paths to keep. The kept set is what the next task must have in hand before it can act. Candidates are the bucket summary plus any path this segment used that the bucket lacks. For each candidate, name the act of
next_taskthat opens it; a candidate with no such act is not kept, whatever this segment did with it.- The repo outlives the context reset and the conversation does not, so a file the next session can read on demand is kept only where that first act needs it in hand: the file the task edits, the test that guards it, the artifact under discussion.
- A blob under review is read by its reviewer, so what the next task needs is the review's return and the sources it cites.
- Read each candidate's
tokensfrom the bucket summary and total them before prepare. Where one path carries more than half that total, state which act needs all of it, or keep itssymbolsalone.
What ships with it
2 files 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.
- 18d ago Changed 93ec1645a6c8
- 21d ago Changed · +4 tokens per session 1d3bec64e0fc
- 1mo ago Changed · +3 lines 9deeeb7a9ba2
- 1mo ago Changed · +2 lines bc678b863ea0
- 1mo ago Changed · +12 lines 7a988ad613c1
- 1mo ago First seen · 45 lines · 50 tokens per session scan A ff1927d8f072
sw-handoff is a skill published in the GitHub repository nomadop/session-watcher (5 stars, last pushed yesterday), licensed MIT. It adds 54 tokens to every session and 1,230 once invoked, about $0.0002 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-31.
Other skills, from other repositories
context-efficient-coding
Use ContextFlux to minimize coding-agent context and tool calls when exploring, planning, debugging, reviewing, or modifying an unfamiliar or multi-file repository. Trigger for codebase discovery, symbol search, architecture questions, cross-file changes, error tracing, review feedback, test discovery, or any request…
git-ai-search
Search and restore AI conversation context from git history.
usage-audit
Audit a Claude Code setup for token waste and context bloat. Checks MCP servers, CLAUDE.md, skills, and settings against bloat filters. Triggers on: "audit my context", "usage audit", "token audit", "context bloat". NOT for codebase audits.
memorix-sessions
Use when resuming work, preparing handoff context, binding an HTTP control-plane project, or deciding whether sessionstart is useful.
frontmcp-extensibility
Use when extending FrontMCP beyond the core SDK by integrating external npm packages, libraries, or third-party services into providers and tools. Covers VectoriaDB for in-memory semantic and vector search (ML-based embeddings or TF-IDF keyword engines, with persistence) and the tamper-evident, hash-chained skill…
memory-audit-pattern-extraction
A method for investigating repeated mistakes by comparing related memories and checking whether an earlier reminder failed. It looks at where the reminder was stored, when it was created, and whether it was strong enough to prevent the mistake.