Audits CLAUDE.md files (root, nested, `.claude/rules/*.md`) for context bloat and emits ranked suggestions across two levers — (1) shrink inventory entries, (2) flag rarely-used agent-invokable skills that should become slash-only to drop their description from the always-on available-skills list. Triggers on Claude Code's "Large CLAUDE.md will impact performance" warning (> 40k chars), inventory entries duplicating harness-loaded skill descriptions, "CLAUDE.md is too big", "shrink CLAUDE.md", "optimize CLAUDE.md", "/optimize-claude-md". Three modes — `audit` (read-only ranked report + slash-conversion candidates), `trim` (interactive one-line hook + diff approval), `extract` (moves sections to linked files preserving content). Composes with `docs` (Placement Resolver) and `create-skill` (invocation matrix). Hard rules: refuses files < 10k chars; never deletes silently; never edits any skill's canonical `SKILL.md` frontmatter — routes to `/create-skill`.
66
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Reduces the recurring token cost of CLAUDE.md (and its nested + linked
siblings) by identifying paragraph-length entries, redundant content, and
hot-path bloat — then trimming or extracting them while preserving the
canonical source.
This
SKILL.mdis a thin index. Detailed rules live inrules/*.mdand load on demand. Worked examples live inreferences/*.md. Reading them all up-front would burn tokens you do not need yet.
Run when any of these hold:
Large CLAUDE.md will impact performance (Xk chars > 40.0k) at session start.description frontmatter, which is preloaded automatically).CLAUDE.md repeats content from the root.Refuse if the target file is < 10k chars — see rules/hard-rules.md.
Parse $ARGUMENTS and detect the mode. First positional is mode; second is
optional path (default ./CLAUDE.md).
| Mode | Default | Trigger |
|---|---|---|
audit | yes | Default. Or audit, "review", "report", no mode argument. |
trim | trim, "shorten", "condense", "make entries one-liners". | |
extract | extract, "move to file", "split out", "externalize inventory". |
State the detected mode and target file in one line before continuing:
Mode: audit
Target: /abs/path/to/CLAUDE.md (43,012 chars / ~10,750 tokens)| Phase | Name | Rule file | Gate |
|---|---|---|---|
| 0 | Preflight | rules/hard-rules.md | File exists, ≥ 10k chars, readable, in a project root or .claude/. |
| 1 | Measure | rules/measurement.md | Chars, approx tokens, line counts per section captured. |
| 2 | Classify content | rules/classification.md | Every section labelled hot-path / cold-path / borderline. |
| 2.5 | Invocation review | rules/invocation-review.md | Slash-conversion candidates (if any) listed with baseline-savings estimate. Skipped if the repo doesn't own skills/. |
| 3 | Mode-specific run | audit-mode.md, trim-mode.md, extract-mode.md | Report emitted or diff applied with user approval. |
| 4 | Verify | rules/hard-rules.md | Before/after metrics shown; no content lost in trim or extract. |
Load on demand — do not preload.
| Phase | Files |
|---|---|
| 0 | rules/hard-rules.md |
| 1 | rules/measurement.md |
| 2 | rules/classification.md, references/bloat-patterns.md (optional, for pattern matching) |
| 2.5 | rules/invocation-review.md, and the canonical create-skill/rules/invocation-control.md for the matrix. |
| 3 | One of rules/audit-mode.md, rules/trim-mode.md, rules/extract-mode.md — by mode. |
| 4 | rules/hard-rules.md (preservation invariant check) |
CLAUDE.md is a
recurring token cost once loaded, and survives compaction at a per-session
slice. Optimize for the smallest hot-path footprint that still preserves
the rules an agent must follow.description frontmatter is preloaded by Claude Code automatically. An
inventory paragraph in CLAUDE.md that restates it pays the token cost
twice. Replace with a one-line hook + link.trim / extract.
(b) Convert rarely-used agent-invokable skills to slash-only via Phase
2.5 — removes their description from the always-on available-skills
list. Both reduce per-session context cost.CLAUDE.md. Design rationale,
feature history, verbose descriptions → move to linked files.trim and extract always preserve content
somewhere reachable. If you cannot find a destination, abort and ask.SKILL.md frontmatter is
the authority for that skill. Never edit it from this skill — route
invocation-flag changes to /create-skill review.rules/classification.md)description frontmatter verbatim.CLAUDE.md — belongs in the skill's own CLAUDE.md or a rule file.CLAUDE.md that repeats root content.CLAUDE.md itself — examples belong in skill files.docs skill's Placement
Resolver via Skill("docs", "pattern <glob>") when an extraction
needs cross-cutting placement (e.g. a rule applies to multiple subtrees).create-skill's
token-economics.md and
progressive-disclosure.md
for the underlying conciseness principles — do not duplicate that
guidance here.A run is complete when:
skills/ exists in the repo; candidates listed with baseline-savings estimates.audit: ranked report emitted with top-N concrete suggestions (lever 1 + lever 2), each tagged hot-path / cold-path or slash-conversion.trim and extract: every applied change shows before/after chars + estimated tokens saved.SKILL.md frontmatter edited (route to /create-skill for invocation flag changes).39b3f44
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.