The most counterintuitive finding in agent tooling this year: teams measured LLM-generated AGENTS.md files making their agents worse, with lower task success and higher cost. The culprit wasn't bad information. It was duplication: auto-generated files that restate what the agent can already read in the repo, padded with advice the model already follows. Auto-generated agent config is now the most-cited anti-pattern in the AGENTS.md ecosystem, which is a remarkable thing to say about a file format whose entire job is helping agents.
This tracks exactly with what I see in audits. The failure mode of agent config files is never "too little"; it's a file that grew by accretion into a wall of text where the two rules that matter drown in twenty that don't. Every sentence in an always-loaded file is a per-session tax, and generic sentences are tax with no services rendered.
So the new tool cuts in the opposite direction of every generator: the AGENTS.md Converter + Bloat Linter converts between CLAUDE.md and AGENTS.md formats, and then tells you what to delete. Free, no sign-up, client-side.
What the linter flags
Paste your file and you get a lean score, a token cost per section, and line-by-line findings:
- Generic boilerplate (high severity): "write clean, maintainable code", "follow best practices", "use meaningful variable names", "handle errors gracefully". The model was trained on more clean-code advice than any of us have read. These lines cost tokens on every session of every teammate forever and change nothing. Delete them without ceremony.
- Repo-derivable facts (medium): "This project uses TypeScript and Next.js." The agent can read package.json; it's often the first thing it does. Duplicating the repo into config buys you a second copy that goes stale, and stale context is worse than no context because the agent trusts it.
- Duplicate lines (medium): files that grow by accretion accumulate near-identical rules paragraphs apart. The linter catches exact duplicates; treat each one as a hint that nobody has read this file end-to-end in months.
- Emphasis inflation (medium): more than a handful of IMPORTANT / ALWAYS / NEVER / MUST and the linter calls it out. When everything is IMPORTANT, nothing is. Reserve the caps-lock for the two or three rules that are genuinely non-negotiable, and consider whether those belong in deterministic hooks instead of prose, since a hook fires every time and a plea fires probabilistically.
The token-per-section table is the part that changes behavior in practice. An abstract "your file is bloated" gets a shrug; "your Conventions section costs 800 tokens per session and six of its lines are boilerplate" gets edits.
The converter half
AGENTS.md is the cross-tool standard now, read natively by Codex, Copilot, Cursor, Gemini CLI, Windsurf, Zed, and 20+ others, with tens of thousands of repos already carrying one. If your team is multi-tool, you want one source of truth, not a CLAUDE.md and an AGENTS.md drifting apart.
The conversion is mostly a rename, with one real gotcha the tool handles: CLAUDE.md supports @path/to/file imports and AGENTS.md doesn't. The converter finds your imports and rewrites them as explicit references so nothing silently vanishes in translation. Going the other direction, your AGENTS.md drops into CLAUDE.md unchanged, and the linter applies either way, because bloat is format-agnostic.
What a good file looks like when you're done
Short. Uncomfortably short. The residency test from the CLAUDE.md guide applies to both formats: every line must be true and relevant in every single session. Build commands the agent can't guess. Conventions that contradict defaults. Constraints the code can't express. That's the whole list. Procedures go in skills, path-specific rules get scoped, and everything else lives in the repo where the agent can fetch it when needed.
Then verify the payoff: run /context, paste it into the context auditor, and watch your memory-files bar shrink. Deleting config that made your agent worse is the rare optimization with no trade-off on the other side.
Lint yours. If your lean score starts below 50, congratulations: you've found free performance.