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/ariaxhan/kernel-claude/retrospectivenpx 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.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.1 | $0.00065 | $0.02941 |
| Opus 5 | $0.00032 | $0.01470 |
| Sonnet 5 | $0.00013 | $0.00588 |
| Haiku 4.5 | $0.00006 | $0.00294 |
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 yesterday.
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.
- yesterday Changed · +88 lines · +25 tokens per session 876ab34dd5d4
- 5d ago First seen · 135 lines · 40 tokens per session scan A dee2761e92b1
retrospective is a skill published in the GitHub repository ariaxhan/kernel-claude (12 stars, last pushed yesterday), licensed MIT. It adds 65 tokens to every session and 2,941 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-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…
prolong
Recover and use durable coding-session history from PRO-LONG's local append-only log. Use on long-running coding tasks, after context compaction or session resume, when reconstructing prior decisions or tool results, or before repeating work that may already have been attempted.
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…
release_followup_lookup
Use this checklist when a user vaguely references a previous release or vendor decision.
another-brain
Use the another-brain MCP tools (remember, search, recent, get, reinforce, forget) as shared long-term memory. Activates at the start of a task that may continue previous work, when recalling past decisions/fixes/preferences, when learning something worth remembering across sessions or agents, or after using a…
memory
Two-layer memory system with grep-based recall.