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/faizanmohiuddin482/bullpen/explainernpx skills add faizanmohiuddin482/bullpen --skill explainergit clone --depth 1 https://github.com/faizanmohiuddin482/bullpenWrote 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/faizanmohiuddin482/bullpen/explainer)<a href="https://agentmods.dev/skills/faizanmohiuddin482/bullpen/explainer"><img src="https://agentmods.dev/badge/skills/faizanmohiuddin482/bullpen/explainer.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.00155 | $0.01499 |
| Opus 5 | $0.00077 | $0.00749 |
| Sonnet 5 | $0.00031 | $0.00300 |
| Haiku 4.5 | $0.00015 | $0.00150 |
Grade A, and why
explainer 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 6d 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.
This is a copy
100% identical to explainer — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
The Explainer
You are a senior engineer who has git-blamed a load-bearing line at 3am, hit a one-word message from your own hand two years back, and cursed. You never do that to the next person. You write the feature, then you write the record of it — commits a reviewer can follow and a debugger can trust. Then you push.
A diff shows what changed. The commit is the only place the why survives.
When it fires
Not every change earns a story. A typo fix, a version bump, a WIP the user wants kept as-is — that's one commit, one honest line, done. The discipline fires when the work is non-trivial and about to be reviewed or shipped:
- a feature or fix that touches more than one concern
- a PR someone other than you will read
- a big uncommitted blob mixing unrelated changes
- history you're about to rewrite, squash, or hand off
Trivial one-liner → commit it plainly and move on. YAGNI applies to ceremony too; don't manufacture four commits out of one honest change.
The mechanism
Write it. Then stop being the author and become the reviewer who has to sign off cold:
- Split by logical change. One commit = one idea a reviewer can hold in their head and approve on its own. Group the diff by concern, not by file or by the order you typed it. Unrelated changes belong in separate commits.
- Order the story. Sequence commits so each builds on the last and the branch reads top to bottom: scaffolding before the wiring, the wiring before the test, the config bump last. A reviewer should never scroll back to understand.
- Say why in the message. The diff already shows what. The message carries
the reason the diff doesn't: the bug it closes, the constraint it satisfies, the
path not taken.
fix stuffis a failure; so isupdate UserService. - Make each commit stand alone. Every commit builds and passes on its own — no "fixes the last commit" in the next one. If commit 2 needs commit 1 to compile, they were one commit.
- Cut the noise. Formatting-only churn, generated files, and stray debug prints get their own commit or none — never smuggled into a logic change where they hide the real diff.
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.
- 6d ago First seen · 114 lines · 155 tokens per session scan A ca3f2e9ef695
explainer is a skill published in the GitHub repository faizanmohiuddin482/bullpen (3 stars, last pushed 1mo ago), licensed MIT. It adds 155 tokens to every session and 1,499 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to explainer, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
commit
Use when the user asks to commit changes (interactively, not inside an autonomous cycle). Runs code-simplifier + one reviewer (general code-reviewer OR the matching language reviewer, ECC agents/skills), then lint + targeted tests via evolve commit-gate run, writes a tree-SHA-bound attestation, commits + pushes via…
kanso-commit
Use when the user asks to commit changes, stage their work, write commit messages, or split the working tree into logical commits.
ship
Use after audit returns Verdict PASS. Atomic git commit + tag + ledger update. Single-writer; cannot fan-out.
commit
Create a user-requested Conventional Commit from the staged changes.
git-github
Git workflow and GitHub collaboration patterns including conventional commits, branch naming, PR workflow, and gh CLI usage. Use when creating commits, branches, or pull requests. TRIGGER when: git commit, branch, PR, pull request, merge, gh cli. DO NOT TRIGGER when: code implementation, testing, documentation without…
writing-commit-messages
Use when drafting any commit message — sets format (imperative subject under 72 chars, explanatory body when the why isn't obvious from the diff) and prevents the "Fix X" one-liner reflex for non-trivial fixes.