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 kimgoetzke/coding-agent-configs --skill ahagit clone --depth 1 https://github.com/kimgoetzke/coding-agent-configsWrote 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/kimgoetzke/coding-agent-configs/aha)<a href="https://agentmods.dev/skills/kimgoetzke/coding-agent-configs/aha"><img src="https://agentmods.dev/badge/skills/kimgoetzke/coding-agent-configs/aha/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/kimgoetzke/coding-agent-configs/aha"><img src="https://agentmods.dev/badge/skills/kimgoetzke/coding-agent-configs/aha.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.00073 | $0.02223 |
| Opus 5.5 | $0.00029 | $0.00889 |
| Sonnet 5.5 | $0.00015 | $0.00445 |
| Haiku 4.5 | $0.00007 | $0.00222 |
Grade A, and why
aha 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 2d 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 — 155 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Aha
Capture and revisit insights — the small "I didn't know that" moments that otherwise evaporate.
Three modes, picked by the argument:
| Argument | Mode |
|---|---|
| (none) | Scan recent context, propose insights, record those the user wants |
quiz |
Quiz the user on existing insights |
| anything else | Treat argument as a topic hint; focus capture on that subject |
Each insight is identified by {yyyy-mm-dd}, its creation date, and {succinct-description} in kebab-case.
Persistence
This skill belongs to the insights skill group. A persistence implementation decides where and how insights are stored. Before creating or listing insights, find the setting:
R="$(git rev-parse --show-toplevel 2>/dev/null)/.ai/config.properties"; { cat "$R" ~/.ai/config.properties | grep '^persistence\.insights[[:space:]]*=[[:space:]]*[^[:space:]]'; cat "$R" ~/.ai/config.properties | grep '^persistence[[:space:]]*=[[:space:]]*[^[:space:]]'; } 2>/dev/null | head -1 | tr -d ' \t\r'
- No output: use
local-ai-folder-markdown, the default for this skill group persistence.insights={value}orpersistence={value}: use{value}. If./persistence/{value}.mddoes not exist, tell the user theinsightsskill group has no{value}implementation and uselocal-ai-folder-markdown
Read ./persistence/{implementation}.md and follow it whenever this skill creates, lists or reads an insight.
Step 0: Resolve the argument
Before doing anything else, classify the invocation argument and pick the mode. Do this explicitly — state the resolution to the user in one short sentence before proceeding.
- Trim leading/trailing whitespace from the argument
- Lower-case the trimmed argument for comparison only (keep the original for use as a topic hint)
- Classify:
- Empty / whitespace only → Mode 1 (Capture)
- Exactly
quiz(case-insensitive, no other words) → Mode 3 (Quiz) - Anything else → Mode 2 (Capture with topic hint); pass the original (un-lowercased) argument through as the hint
- Ambiguity guard: if the argument starts with
quizfollowed by more text (e.g.quiz me on spring boot), treat it as Mode 3 and use the remainder as an optional topic filter for which insights to draw from. If unsure, ask the user which mode they meant before continuing. - Announce: tell the user which mode was picked, e.g.
Mode: capture (topic hint: "spring boot dynamic properties"). Then proceed to the matching mode below.
What ships with it
2 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.
- 2d ago Changed · +12 lines · -7 tokens per session 1f21013860f9
- 1mo ago First seen · 143 lines · 80 tokens per session scan A df3857fe536a
aha is a skill published in the GitHub repository kimgoetzke/coding-agent-configs (2 stars, last pushed 3d ago), licensed MIT. It adds 73 tokens to every session and 2,223 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-08-31.
Other skills, from other repositories
codebase-memory
Use the codebase knowledge graph for structural code queries. Triggers on: explore the codebase, understand the architecture, what functions exist, show me the structure, who calls this function, what does X call, trace the call chain, find callers of, show dependencies, impact analysis, dead code, unused functions…
accordion-context-folding
Read this skill if you see {# FOLDED} markers in your context (e.g. {#3f9a2c FOLDED}), or if earlier parts of your context look summarized. Accordion is a desktop tool that may compact older context blocks to keep you under a token budget. The unfold tool restores a folded block (open from your next turn); the recall…
accordion-context-recall
Read this skill when you need to read the full content of a folded context block RIGHT NOW as a tool result — without opening it in your standing context. Use recall(codes) when you only need a value once and do not want to permanently restore the block. Accordion may fold older parts of your context to keep token…
memory-compounding
Review and sharpen persistent memory so it compounds instead of accumulating. Use when pruning pi-hermes-memory entries, doing monthly memory hygiene, or when the same lesson has been recorded multiple times.
session-search
Search and verify Joel's Pi, Claude, Codex, Cursor, Grok, and OpenCode session history. Use when asked to recover prior context, find exact transcript evidence, inspect session receipts, continue old work, or verify capture health. Prefer flowing recall before raw transcript search when the question is about prior…
session-capture
Historical pointer for the retired Codex-to-Central capture plugin. Use only to inspect legacy state during migration; current capture belongs to the joelclaw flowing-memory host adapter.