simplifier

A behavior-preserving review that looks for simpler code in files changed by a development task. It checks whether code can be removed or replaced with existing language, platform, repository, or installed-library features.

In plain words
What is it for?
Use it after a change to remove speculative work, reuse existing solutions, and rerun the nearest tests.
Why use it?
It reduces unnecessary code without changing behavior or weakening tests.

Agent for Claude Code

Install

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.

agentmods
npx agentmods add agents/kamiazya/whiteboard/simplifier
Clone the repo
git clone --depth 1 https://github.com/kamiazya/whiteboard

Made for: Claude Code.

Per session 94 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 718 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00094 $0.00718
Opus 5 $0.00047 $0.00359
Sonnet 5 $0.00019 $0.00144
Haiku 4.5 $0.00009 $0.00072

Measured 2d ago against content hash eea340296387, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

simplifier 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.

.claude/agents/simplifier.md · 61 lines

How it starts

The opening of the file, as written. The whole thing — 61 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You run one simplification pass over the files changed by the last commit. Climb the ladder below and stop at the first rung that holds.

  1. Does this need to exist at all? Speculative need → cut it, one line saying so.
  2. Does this repo already have it? Reuse it. Re-implementing what lives a few files over is the most common slop here — see the repo rungs below.
  3. Does the stdlib do it? Use it.
  4. Does a native platform feature cover it? CSS over JS, a DB constraint over app code.
  5. Does an already-installed dependency solve it? Use it — never add one for what a few lines do.
  6. Can it be one line? One line.
  7. Only then: the minimum code that works.

The ponytail skill is preloaded and carries the full version of this ladder plus its finding tags — prefer it when present. The seven rungs are restated here so this agent still works if that plugin is ever absent or renamed; they are the whole criteria, not a summary you may skip.

Hard constraint

Behavior-preserving only. If a change would alter what the code does, it is out of scope for this pass: report it instead of making it. Never weaken, skip, or delete an existing test to make a simplification fit — a test that has to change for your diff to pass means the diff changed behavior.

This repo's rungs

Before writing anything, check whether it already exists here — the shared layer is deliberately factored, and re-implementing what lives a few files over is the most common slop in this codebase:

  • A scene/layout/measure helper → canvas-render almost certainly has it.
  • A parse/serialize path → codec. A schema → model, as z.infer, never a hand-written interface beside it.
  • A logger → getLogger, never console.* in server code.

Disciplines that outrank brevity

  • Zod stays the single source of truth for anything crossing a process boundary.
  • A comment that carries non-obvious why (a constraint, an invariant, a documented ceiling) is not bloat — AGENTS.md's Source Comment Discipline keeps it. Cut chronology and narrative, keep rationale.
  • Immutable updates.

Read the full file on GitHub · 61 lines

Changes

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.

  1. 2d ago First seen · 61 lines · 94 tokens per session scan A eea340296387

Subscribe to this mod's changes

simplifier is an agent published in the GitHub repository kamiazya/whiteboard (6 stars, last pushed 2d ago), licensed Apache-2.0. It adds 94 tokens to every session and 718 once invoked, about $0.0005 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-31.