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 statusgit 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/status)<a href="https://agentmods.dev/skills/markmhendrickson/neotoma/status"><img src="https://agentmods.dev/badge/skills/markmhendrickson/neotoma/status.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
- medium Rogue Agent · line 26 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
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.02497 |
| Opus 5 | $0.00027 | $0.01248 |
| Sonnet 5 | $0.00011 | $0.00499 |
| Haiku 4.5 | $0.00005 | $0.00250 |
Grade A, and why
status 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 3d 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 — 144 lines — stays where its author put it; the contents beside it link to each section on GitHub.
status
Purpose
Give the user a quick, readable read-out of the session so far: what's been accomplished and what's still outstanding. This is a stock-taking skill, not a closing skill. It is the lightweight counterpart to /end.
This skill is user-level (~/.claude/skills/status/), so it is available in every repo automatically.
How it differs from /end
/statusis read-only. It does NOT store entities, file tasks, write memory, invokestore-neotoma, or render the🧠 Neotomaturn report. It just reports. (Read-only retrieval of an existing plan is allowed — see Project-aware mode — but it never writes.)/endis the closing audit — it files and persists. Reach for/endat the natural close of a session; reach for/statusany time mid-session to check in.
Whole-session coverage (read the transcript when context is partial)
/status must report on the whole session, not just the portion currently in context. Long sessions get compacted: the active context window may hold only a recent slice (a pre-compaction summary plus the last few turns), so reporting from context alone silently under-represents earlier work.
Before composing the report, decide whether context is whole-session or partial. Treat it as partial whenever any of these hold:
- A compaction/summary boundary is present in context (a "This session is being continued…" summary block, or an injected session-summary).
- The session spans multiple days or many turns.
- The user signals the read-out missed earlier work.
When partial, reconstruct the full arc from the transcript before reporting:
- Locate the transcript JSONL — by identity, not recency. Resolve the path in this strict order, stopping at the first that yields exactly one file:
- The exact path named in the compaction/summary block in context (it almost always states it verbatim) — use it directly.
- The harness-provided session id (e.g. a
<session-id>/ transcript path in environment context) →~/.claude/projects/<project-slug>/<session-id>.jsonl. - Only if neither is available: list
~/.claude/projects/<project-slug>/*.jsonl. If exactly one exists, use it. Do not silently pick "the most recently modified" when several exist — a concurrent or prior-day session in the same project would make recency select the wrong file. If multiple remain and none can be disambiguated by the session id, treat it as transcript unresolved (see the not-found handling below) rather than guessing.
- Do not read the whole file into context — it can be multiple MB. Extract a skeleton deterministically: parse the JSONL line by line; keep entries where
type/roleisuserand the text does not match^\s*<(system-reminder|command-name|command-message|local-command); droptool_resultcontent entirely; drop standalone "Continue from where you left off." lines; optionally keep short assistant summary lines. The "filter out tool_result" rule targets thetool_resultcontent type, not user-pasted log/test output inside a genuine user message — keep the latter. This yields the session's request arc in a few hundred chars. - Compose Achieved / Remaining from that whole-session skeleton, not just the in-context tail.
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.
- 3d ago First seen · 144 lines · 54 tokens per session scan A 3cf554a5fb45
status is a skill published in the GitHub repository markmhendrickson/neotoma (31 stars, last pushed 4d ago), licensed MIT. It adds 54 tokens to every session and 2,497 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-09-03.
Other skills, from other repositories
scheduling-tasks
Schedules reminders and recurring tasks via the letta cron CLI. Use when the user asks to be reminded of something, wants periodic work or check-ins, or needs to list, inspect, replace, or cancel scheduled tasks.
customizing-statusline
Creates, edits, and migrates Letta Code statusline mods. Use when handling the /statusline command or continuing work started by /statusline.
imsg
Use imsg to read and send Messages.app iMessage/SMS on macOS.
add-backend
Guide for adding a backend (Rust or Python) to the agent-sec-core security middleware. Use when creating new backends, integrating Rust or Python code into the security middleware, or extending with new backend actions.
pr-body
A tool that reviews all commits on the current branch and creates or updates a pull request title and description. A pull request is a proposed code change submitted for review.
install-claude-code-linux
Install and configure Claude Code on RPM-based Linux systems (e.g., Alibaba Cloud Linux) with multiple fallback methods (native installer, npm, nvm+npm). Includes DashScope/Qwen API configuration template. Use when the user asks to install Claude Code CLI, set up Claude Code CLI, or configure Claude Code with a custom…