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 markmhendrickson/neotoma --skill agentgit clone --depth 1 https://github.com/markmhendrickson/neotomaWrote 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/markmhendrickson/neotoma/agent)<a href="https://agentmods.dev/skills/markmhendrickson/neotoma/agent"><img src="https://agentmods.dev/badge/skills/markmhendrickson/neotoma/agent/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/markmhendrickson/neotoma/agent"><img src="https://agentmods.dev/badge/skills/markmhendrickson/neotoma/agent.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00063 | $0.01208 |
| Opus 5.5 | $0.00025 | $0.00483 |
| Sonnet 5.5 | $0.00013 | $0.00242 |
| Haiku 4.5 | $0.00006 | $0.00121 |
Grade A, and why
neotoma-agent 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 1mo 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 — 87 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Neotoma Agent Turn Protocol
This skill describes the canonical protocol an agent follows on every turn when writing to Neotoma. @neotoma/agent enforces this protocol by construction; this document describes what the protocol is and why each step exists, for agents and developers who want to understand or extend it.
The protocol
On every turn:
-
Bounded retrieval. Extract concrete identifiers (names, ids, quoted strings, capitalized phrases) from the user message. For each, call
retrieveEntityByIdentifier. Keep the result set bounded (default 8 entities). Failures are non-fatal — proceed with an empty retrieved set. -
Store the user message. Persist a
conversation_messageentity with:role: "user",sender_kind: "user",content: <exact user text>turn_key: "{conversation_id}:{turn_id}"- A
PART_OFrelationship to the conversation entity (created in the same store if it does not exist). - A
REFERS_TOrelationship to every retrieved entity from step 1. idempotency_key: "conversation-{conversation_id}-{turn_id}-user-..."so re-runs of the same turn collapse onto one observation.
-
Run the agent. Invoke the underlying LLM with the retrieved entities available as context. The agent may use them to ground its reply.
-
Store the assistant reply. Persist another
conversation_messageentity:role: "assistant",sender_kind: "assistant",content: <exact reply text>turn_key: "{conversation_id}:{turn_id}:assistant"- A
PART_OFrelationship to the conversation entity. REFERS_TOrelationships to every entity the reply materially cites or produces.idempotency_key: "conversation-{conversation_id}-{turn_id}-assistant-...".
Why each step exists
- Bounded retrieval before write lets the agent see what is already known, so it can correct or extend rather than re-create. Skipping this step produces duplicate entities and contradicts itself across sessions.
PART_OFto the conversation makes the conversation queryable as a single unit: every message hangs off one root.REFERS_TOedges are the agent's working memory in graph form. They let downstream queries answer "which conversations touched this entity?" without re-reading every message.- Deterministic idempotency keys mean the same turn replayed (timeouts, retries, hook fires) produces one observation, not many. The key shape
conversation-{conversation_id}-{turn_id}-{role}is stable, predictable, and collision-free across turns. - Exact content (no summarization at write time) preserves provenance. Summaries are a downstream interpretation, not a substitute for the source.
What ships with it
10 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.
- 1mo ago First seen · 87 lines · 63 tokens per session scan A 2acb6eaba4aa
neotoma-agent is a skill published in the GitHub repository markmhendrickson/neotoma (34 stars, last pushed yesterday), licensed MIT. It adds 63 tokens to every session and 1,208 once invoked, about $0.0003 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-09-03.
Other skills, from other repositories
taste-companion
A general conversation and recommendation skill that remembers confirmed preferences, searches past chats, and uses recommendations and viewing data to help a person decide what to watch or discuss.
taste-explorer
A guided interview skill that asks focused questions to learn what a person likes and dislikes, then saves confirmed preferences as long-term memory.
akf
AKF, the AI native file format (EXIF for AI) — check before you trust, stamp what you verify. A stamp costs 15 tokens; re-verifying costs 15,000.
akf
AKF, the AI native file format (EXIF for AI) — check before you trust, stamp what you verify. Use before building on existing files, after completing verified work, and when handling agent memories or downloaded skills.
core-memory
Use when working with Core Memory from OpenClaw, including finalized-turn writes, memory retrieval, bridge behavior, semantic bead fields, promotion, claims, associations, or integration debugging.
soul-archive
Soul Archive — digital personality persistence + agentic memory. Builds your digital soul clone through everyday AI conversations: persona injection at session start, cross-session recall, failure-pattern warning, pattern distillation. Conversation-end auto sedimentation (autoextract defaults ON). All data local…