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 skills/willcaboutthat/odin-adapter/close-sessionnpx skills add WillCAboutThat/odin-adapter --skill close-sessiongit clone --depth 1 https://github.com/WillCAboutThat/odin-adapterWrote 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/willcaboutthat/odin-adapter/close-session)<a href="https://agentmods.dev/skills/willcaboutthat/odin-adapter/close-session"><img src="https://agentmods.dev/badge/skills/willcaboutthat/odin-adapter/close-session.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.00092 | $0.01219 |
| Opus 5 | $0.00046 | $0.00609 |
| Sonnet 5 | $0.00018 | $0.00244 |
| Haiku 4.5 | $0.00009 | $0.00122 |
Grade A, and why
odin-close-session 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.
How it starts
The opening of the file, as written. The whole thing — 97 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Odin close-session - settle the base
You are Odin, closing out a working session on a Muninn. The on-load
ritual (one status read, one nudge) has a structural gap: nothing dependable
fires at session END, so everything worth settling waits for the next open -
and on a git-backed base, unpushed work becomes the next machine's stale-clone
problem. The user invoking this skill IS the end-of-session signal no hook
could provide. Full verb behavior: docs/odin/SKILLS.md; the adapter
contract's rules all bind here (consent, no silent writes, surface never
silently repair).
Governing rule - settle git LAST. Run the content steps first (candidates, lint heals, inbox); only then offer the commit/push. Settling git before the content is complete just loops (push, then a heal dirties the tree, then push again). Get it right, then settle it.
Locate the Muninn first (at or above the working directory, or the path the user names). No Muninn found = say so and stop; closing is not initializing.
1. Pending candidates (offer, batch)
list-candidates (or odin_list_candidates). If any are pending, offer -
once - to run review-candidates over them now: this is the batch moment
the load-time offer exists for, and close is its natural second chance. Per
the contract: re-read each candidate's cited source bytes, then
promote / fold / decline on the user's word. Declining to review is fine -
they keep pending and the next load nudges.
2. Lint (verify, surface, offer heals)
Run lint. 0 errors is the closing posture. Findings are surfaced with
their heal offered (regenerate for a missing summary or stale doc, the
consented paths for the rest) - never silently fixed (I5). If the user
declines a heal, close anyway and say plainly what is being left unhealed;
a session may close imperfect, but never uninformed. Warnings (L10, L18,
L25, ...) are named in one line each; they do not block a close.
3. Inbox (name what is still parked)
If inbox/ holds pending files or parked explore findings, name them in the
close report - the inbox's meaning is exactly "still pending," and a close
that stays silent about it buries work. Offer to ingest now or leave parked;
either answer is fine.
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 · 97 lines · 92 tokens per session scan A 415e38eda456
odin-close-session is a skill published in the GitHub repository WillCAboutThat/odin-adapter (1 stars, last pushed 10d ago), licensed MIT. It adds 92 tokens to every session and 1,219 once invoked, about $0.0005 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 skills, from other repositories
marm-init
Guided MARM MCP setup. Invoke after running marm-memory init on the CLI to configure MARM memory across your agent. Drives transport choice, runtime choice, MCP config writing, multi-agent linking, and server start. Works on Claude, Codex, Gemini, Qwen, Cursor, VS Code, and other MCP-capable agents.
neo4j-agent-memory-skill
Authoritative reference for the neo4j-agent-memory Python package — a graph-native memory system for AI agents built on Neo4j — and for the hosted service (NAMS) at memory.neo4jlabs.com. Use this skill whenever the user mentions neo4j-agent-memory, agent memory with Neo4j, context graphs, the POLE+O model…
forgetful-encode-repo
Encode a repository into the Forgetful knowledge base — bootstrap the project, its entities, memories, and documents from the codebase itself. Use when bringing a new repo under Forgetful or refreshing a stale encoding. Re-encoding is an update pass: query-before-create makes it supersession, not duplication.
integrate
This skill should be used when the user asks to "integrate mnemonic", "wire plugin", "add memory to plugin", "enable memory capture in plugin", "integrate memory operations", "add mnemonic protocol", "remove mnemonic integration", "rollback plugin integration", or "migrate legacy memory sections". It wires mnemonic…
core
This skill should be used when the user says "capture memory", "save to memory", "remember this", or trigger phrases like: "I've decided", "let's use", "we're going with", "I learned", "turns out", "TIL", "discovered", "I'm stuck", "blocked by", "always use", "never do", "convention is". Also triggers on recall…
blackboard
Cross-session handoff, persistent context via blackboard, and agent coordination patterns.