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 ariaxhan/kernel-claude --skill retrospectivegit clone --depth 1 https://github.com/ariaxhan/kernel-claudeWrote 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/ariaxhan/kernel-claude/retrospective)<a href="https://agentmods.dev/skills/ariaxhan/kernel-claude/retrospective"><img src="https://agentmods.dev/badge/skills/ariaxhan/kernel-claude/retrospective/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/ariaxhan/kernel-claude/retrospective"><img src="https://agentmods.dev/badge/skills/ariaxhan/kernel-claude/retrospective.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.00058 | $0.02934 |
| Opus 5.5 | $0.00023 | $0.01174 |
| Sonnet 5.5 | $0.00012 | $0.00587 |
| Haiku 4.5 | $0.00006 | $0.00293 |
Grade A, and why
retrospective 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 — 223 lines — stays where its author put it; the contents beside it link to each section on GitHub.
A follow-through audit of every retrospective, chronicle, plan and report in the Vaults counted
24 promised fixes: 15 live, 9 dead or never built. The worst mistake class, unverified claims
reaching a human, had been written up 11 separate times, and both of its proposed fixes were
still unbuilt. Meanwhile improvement-gate.sh, the hook that enforced "every run improves the
system that does the work", was retired 2026-07-28 and nothing ever replaced it.
The old version of this skill was not badly reasoned. Its nine lenses were sharp. It failed for one structural reason: every output was a ledger row, and a ledger row enforces nothing. A lesson written to a ledger that nothing reads at the moment of action is a gravestone with better formatting.
So version 3 inverts what this skill is for.
| v2 | v3 | |
|---|---|---|
| primary question | what did we learn | did the last learnings actually fire |
| output | ledger rows | installed mechanisms, or an explicit accepted-no-mechanism row |
| when learning happens | here, at end of run | at error time, by error-loop.py; here only for what error time cannot see |
| a finding with no mechanism | acceptable | REFUSED, or recorded as explicitly accepted with a reason |
This skill is no longer the primary learning mechanism, and must not be treated as one.
Error-time closing belongs to _meta/services/error-loop.py, which opens a defect the moment a
gate we own fails and refuses the next commit until a lesson or a waive is recorded. That catches
the single instance while the cause is still warm.
What error-time closing structurally CANNOT see is recurrence across runs: the same mistake in different clothes, three independent reinventions of one missing primitive, a guard that has been quietly dead for six weeks. That, and only that, is what this skill is for.
Proportionality is a hard rule, not a preference. Aria has named the failure out loud: "overengineering the fuck out of this". A retrospective longer than the work it describes is a defect. If phase 0 finds nothing dead and phase 2 finds no recurrence, the correct output is four lines saying so.
<on_start> agentdb read-start agentdb recall "<the run's concrete nouns: files, symbols, error text>" for L in beliefs patterns anomalies questions; do tail -20 "_meta/ledgers/$L.jsonl" 2>/dev/null; done python3 _meta/services/error-loop.py list # anything still open from error time? ls -t _meta/reports/retrospective-*.json 2>/dev/null | head -3 </on_start>
A run that adds a new promise while an old one lies dead has made the problem worse, so this phase runs first and cannot be skipped.
- Read the previous retrospective's
mechanisms[]and the last 20 rows of each ledger. - For each promised mechanism, resolve a verdict. LIVE requires two facts: the file exists AND
something invokes it. Prove the second with a grep, never by reading the file.
- wired into a
settings.jsonhook chain, or - a
jobctlregistry entry thatlaunchctl listactually shows loaded, or - a git hook, or
- a script another live script calls.
- wired into a
- Any mechanism whose file exists but which nothing invokes is DEAD, not live. Say so in those words. A file nobody runs is indistinguishable from a file nobody wrote.
- Any mechanism that was retired: find its replacement and verify the replacement is LIVE. A retirement with no live successor is a REGRESSION and outranks every new finding this run.
- Count: promised, LIVE, DEAD, NEVER BUILT. That ratio is the headline of the report.
OUTPUT: followthrough[], one row per prior mechanism with {name, verdict, invoked_by, evidence},
plus the four counts. A phase 0 with no counts did not run.
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 Changed · -7 tokens per session 2b5c6020f2fb
- 1mo ago Changed · +88 lines · +25 tokens per session 876ab34dd5d4
- 1mo ago First seen · 135 lines · 40 tokens per session scan A dee2761e92b1
retrospective is a skill published in the GitHub repository ariaxhan/kernel-claude (14 stars, last pushed yesterday), licensed MIT. It adds 58 tokens to every session and 2,934 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-30.
Other skills, from other repositories
lemmalog
Externalize working memory and logical state into the lemmalog Datalog engine (MCP). Use for ANY multi-step task where state should outlive one context window or span agents: long investigations, debugging sessions, audits, multi-agent searches, systematic explorations, planning with many interdependent constraints…
causal-memory
Causal memory for agents — install/setup the causal-memory MCP server, then record decisions/outcomes and recall them before acting. Trigger when the user asks to install or set up causal-memory/agent memory, when causal-memory MCP tools are available and the agent faces a non-trivial decision (architecture, debugging…
setup-brain
Set up or upgrade an AI-powered Obsidian vault. Interviews you, builds your vault structure (or works with what you already have), creates your CLAUDE.md memory file, installs tools, and gets you journaling — all in one conversation. Also has a repair/upgrade path for existing users.
second-brain-mapping
Use when the user wants to map or remap their second brain, refresh the vault's queryable metadata index, extract structured frontmatter from typed notes (books, meetings, people, journals, goals), fill wikilink gaps, or surface cross-type insights and patterns no single file shows. Triggers: /second-brain-mapping…
cartographer-kb-create
Operator procedure to declare and provision a new Knowledge Base GitOps-style, so it survives pod restarts; also covers authoring the KB's artifacts (skills, subagents, hooks, MCP descriptors) and the SOPS encryption flow.
cartographer-kb-import
Agent-guided procedure to import an existing non-OKF wiki or knowledge base (Obsidian vault, markdown folder, wiki export) into a Cartographer KB, incrementally and without big-bang LLM rewriting.