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 instructions/hmbown/codewhale/agents-mdgit clone --depth 1 https://github.com/Hmbown/CodeWhaleWhat 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.02763 | $0.02763 |
| Opus 5 | $0.01381 | $0.01381 |
| Sonnet 5 | $0.00553 | $0.00553 |
| Haiku 4.5 | $0.00276 | $0.00276 |
Grade A, and why
CodeWhale AGENTS.md 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 today.
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 — 215 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Codewhale agent guidance
Keep this file durable. Derive changing release, provider, branch, and flake
state from the repository, tests, CI, and current issue tracker rather than from
instructions or memory. The nearest scoped AGENTS.md adds path-specific rules.
The ponytail method
From dietrichgebert/ponytail — "the laziest senior dev in the room." He says nothing. He writes one line. It works. The best code is the code you never wrote.
Before writing code, walk the decision ladder in order and stop at the first rung that answers:
- Does this need to exist? → Skip it.
- Already in this codebase? → Reuse it.
- Stdlib does it? → Use it.
- Native platform feature? → Use it.
- Installed dependency? → Use it.
- One line? → One line.
- Only then: the minimum that works.
The ladder runs after understanding the problem. Lazy about solutions, never about reading the code first — a short diff written without reading the call sites is not ponytail, it is a guess.
Never cut, at any rung: trust-boundary validation, data-loss handling, security, accessibility. Brevity is not a reason to drop a guard.
Rung 2 is the one this repository keeps failing. The model_* / *_config /
provider_* grep rule below is rung 2 with a name; so is "one turn loop, one
base prompt". Two more corollaries earned here:
- An abstraction must delete caller code. If adopting it is pure obligation — required methods, no default bodies that do work — it gets built, adopted once, and abandoned.
- Migrate the last consumer, or do not start. Framework, one caller,
ticket the rest, silence the warning: that ships two systems and a comment
that is no longer true. If the migration will not fit, narrow the slice —
never the adoption. The standing
#[allow(dead_code)]count is the running receipt;scripts/check-dead-code-budget.pyprints it.
Working rules
- Inspect status and existing consumers before editing. Preserve unrelated, dirty, and untracked work.
- Before adding a module named
model_*,*_config,provider_*, or anything that "bridges", "mirrors", or "stages" an existing thing, grep for the existing thing and edit it. A new layer must name the predecessor it replaces in the module doc; otherwise edit the original. - Prefer the simplest implementation that preserves observable contracts. A rewrite is acceptable when justified by product intent and observed behavior, not as a shortcut around understanding existing code.
- Search for behavior and symbols before reviving work from an old branch. If a lane is obsolete, preserve its intent and evidence rather than merging stale code mechanically.
- A small coherent change may be committed directly to
mainwhen that checkout is current, clean, and owns the affected files. A worktree remains the right safety boundary for conflicting, dirty, stale, or independent work. Local commit permission never implies push, merge, tag, release, or deploy permission. - When the task is local-only, stay fully offline: no browsing, GitHub or remote Git operations, downloads, dependency installation, provider calls, or source/diff transmission. Record the missing external receipt and keep working locally.
- Public name is Codewhale. Compatibility identifiers such as
CodeWhale,codew, protocol names, and storage keys change only through an explicit migration. - Keep providers and models first-class and provider-neutral.
- Never rewrite published history, retag a release, force-push a shared ref, or publish without explicit authorization. Preserve human contributor credit.
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.
- today Changed · +55 lines · +662 tokens per session bb6ef1ed9316
- 3d ago First seen · 160 lines · 2,101 tokens per session scan A f2831867d8be
CodeWhale AGENTS.md is an instructions file published in the GitHub repository Hmbown/CodeWhale (40,889 stars, last pushed today), licensed MIT. It adds 2,763 tokens to every session, about $0.0138 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 instructions, from other repositories
alook AGENTS.md
Instructions for alookai/alook, covering alook, navigation, must, release — unified version bump and e2e ui (browser tests).
zot AGENTS.md
Instructions for patriceckhart/zot, covering working agreement for zot, product intent, starting a task, code ownership map and correctness contracts.
Tianshu-harness CLAUDE.md
Instructions for huiliyi37/Tianshu-harness, covering 天枢 (tianshu) / rivet, build & test, architecture, conventions and known constraints.
alook CLAUDE.md
Instructions for alookai/alook, a project described as: Rooms for people and agents.
claudectl CLAUDE.md
Instructions for mercurialsolo/claudectl, covering claudectl, build & test, architecture, workspace layout and core modules — claudectl-core (crates/claudectl-core/src/).
claudectl AGENTS.md
Instructions for mercurialsolo/claudectl, covering claudectl, what claudectl does, integration points, key differentiators vs. similar tools and build & test.