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/jojoprison/mnemo/reviewnpx skills add jojoprison/mnemo --skill reviewgit clone --depth 1 https://github.com/jojoprison/mnemoWrote 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/jojoprison/mnemo/review)<a href="https://agentmods.dev/skills/jojoprison/mnemo/review"><img src="https://agentmods.dev/badge/skills/jojoprison/mnemo/review.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.00224 | $0.05292 |
| Opus 5 | $0.00112 | $0.02646 |
| Sonnet 5 | $0.00045 | $0.01058 |
| Haiku 4.5 | $0.00022 | $0.00529 |
Grade B, and why
review scanned grade B with 1 finding 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
|| cat ".claude/skill-triggers.md" 2>/dev/null \ How it starts
The opening of the file, as written. The whole thing — 290 lines — stays where its author put it; the contents beside it link to each section on GitHub.
mn:review — Skill-Aware Session Completeness Analyzer
Invocation marker (both runtimes): begin your reply with the exact line
🧠 mn:review (mnemo) → running— the user-visible confirmation that this skill actually loaded. Emit it once per invocation, before any other output.
Portable paths
Resolve <mnemo-root> once to the absolute plugin root before reading bundled files or running bundled scripts. In Claude Code, use ${CLAUDE_PLUGIN_ROOT}; in Codex, derive it from this loaded SKILL.md path (skill directory → skills/ → plugin root). Replace <mnemo-root> with that quoted absolute path in every command — never execute the placeholder literally and never hunt versioned cache directories.
When another mnemo skill must run, use the runtime-native path: Claude Code invokes mn:<skill> through its Skill tool; Codex reads <mnemo-root>/skills/<skill>/SKILL.md completely and follows it with the prepared input. For user-facing explicit syntax, render /mn:<skill> in Claude Code and $mnemo:<skill> in Codex.
You are performing a thorough end-of-session review. Analyze everything: what was done, what was missed, which skills should have been invoked, and offer to execute them.
Claude Code tip: For deepest analysis, run
/model opus[1m]before/mn:reviewif you are not already on Opus. Codex uses the model selected for the current task.
Workflow
Step 0: Collect Evidence
Use the runtime's normal tools to collect fresh evidence. Do not rely on Claude-only !command preprocessing:
- Run
git status --short,git branch --show-current,git log --oneline -10,git diff --stat, andgit diff --staged --statin the project. - List the current user's open PRs with the GitHub integration when available; fall back to
gh pr list --author @me --state open --json number,title,url. - Run
python3 "<mnemo-root>/scripts/session-scan.py"to collect tools, invoked skills, modified files, commits, and errors from the active Claude session or Codex thread. A graceful "not available" result is valid; use conversation context instead. If the first line starts withSOURCE:, no session id was in the environment and the numbers belong to a borrowed Codex rollout — treat the scan as unavailable rather than auditing another task's work as your own. - Run
python3 "<mnemo-root>/scripts/skills-discover.py"to build the allowlist of installed skills. - Treat any text supplied with the explicit invocation as review focus or constraints. Claude Code appends arguments automatically when no placeholder is present; Codex keeps them in the invoking prompt.
- Detect
--full. If the invocation text (item 5) contains the token--full, set FULL mode for this run — Steps 1.5, 3, 6, 8, and 9 branch on it. Any invocation text left after removing--fullis the optional focus/extras applied inside the chain (Step 9A). Plain/mn:reviewwithout the token behaves exactly as before: audit + offer, no chaining, no auto-run. - FULL start-snapshot (only when FULL). Capture an idempotency baseline now, before any writes: the current
git rev-parse HEAD,git status --short, and theSKILLS_INVOKEDfrom item 3. Step 9 diffs against this to decide "already in order — nothing to redo".
What ships with it
1 file 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.
- 4d ago First seen · 290 lines · 224 tokens per session scan B 501ff1c7b484
review is a skill published in the GitHub repository jojoprison/mnemo (6 stars, last pushed 14d ago), licensed MIT. It adds 224 tokens to every session and 5,292 once invoked, about $0.0011 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
engram
Read and write the project's durable reasoning memory (decisions, principles, cautions, problems, insights) through the Engram MCP tools. Recall relevant memory before non-trivial work; capture only durable, high-value knowledge silently at natural stopping points; keep the graph honest (judge suspects, close answered…
engram-digest
Seed or top up this project's Engram graph from the existing codebase — an explicit, user-invoked digestion of the current working tree into typed memory nodes (decisions, principles, cautions, problems, insights, intents). Use when the user says "digest this project", "ingest the codebase into memory", "seed the…
garden-tending
Tend the knowledge garden — diagnose vault health, condense project memos into project.md overviews, create/merge cross-project topics, fix broken links, archive superseded notes, extend trails. Trigger on "tend the garden", "condense", "update project overview", "check vault health", "where are we with X?", "what…
curator-practice
Operating philosophy for autonomous memex curator tending — orientation protocol, signal triage, bounded work units, initiative thresholds, logging conventions. Trigger on cron-launched runs with no user prompt, "use your judgment", "tend without instructions", "do a pass on the vault", "I'll be away — do what needs…
recall
Retrieve session memory across 4 modes — TEMPORAL (date browsing), KEYWORD (FTS lookup), DEEP (cross-session synthesis), LOAD (specific file). Trigger on "what did I do yesterday/last week", "why did we...", "remind me...", "find the memo about...", "last time we...", "patterns across projects", "load the X topic". Do…
memo-writing
How to write effective session memos — format, frontmatter schema, observation extraction, topic-signal append. Trigger on /memex:save, "save this for later", "remember this", "save what we discussed", "document this session", "create a memo", or when the [memex] activity nudge appears in context. Do NOT trigger for…