wesammustafa/claude-md-review
Audit a CLAUDE.md file for the patterns that actually degrade Claude Code's output — vagueness, unnamed files, stale facts, and bloat. Use when asked to review, audit, improve, shrink, or fix a CLAUDE.md, and when a project's results feel inconsistent or Claude keeps rediscovering the same context.
npx skills add https://github.com/wesammustafa/Claude-Code-Everything-You-Need-to-Know --skill claude-md-review
Audit a CLAUDE.md against the failure modes that actually cost output quality.
Premise: CLAUDE.md loads into context on every single session, so every line is either paying rent or costing you tokens on every turn forever. Most "the model isn't following instructions" problems are instruction problems.
./CLAUDE.md; also check ~/.claude/CLAUDE.md and any nested **/CLAUDE.md if the project has them, since the closest one wins).Specificity — the highest-leverage dimension.
"Refactor functions over 40 lines" is checkable; "keep functions short" is not.Named anchors.
src/config/env.ts, src/api/client.ts.CLAUDE.md pointing at a deleted file actively misleads.Staleness.
package.json, Makefile, pyproject.toml, or equivalent — a wrong test command is worse than none.Bloat and rent.
Conflicts.
CLAUDE.md or ~/.claude/CLAUDE.md overriding what the author expects.What's missing. The gaps worth calling out, if absent:
## CLAUDE.md review — <path> (<N> lines)
**Verdict:** <one sentence>
### Blocking
- L<n>: <quoted line> → <concrete rewrite>
### Worth fixing
- L<n>: <quoted line> → <concrete rewrite>
### Delete (costs context on every session, earns nothing)
- L<n>–<m>: <what and why>
### Missing
- <gap> → <suggested line to add>
**Estimated size after edits:** <N> lines (from <M>)
None. — a clean file is a valid result.CLAUDE.md is short enough that people actually read it.Take wesammustafa/claude-md-review from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.