0xwilliamortiz/ratchet-review
> Reviews a diff or a whole repository for over-engineering only, and returns a delete list rather than prose. Finds reinvented standard library calls, dependencies the platform already covers, abstractions with one implementation, wrappers that only forward, configuration nothing reads and dead flexibility. Use whenever the user says "review for over-engineering", "what can we delete", "is this over-engineered", "find the bloat", "audit this repo", or invokes /ratchet-review. Pair it with a normal correctness review, it deliberately does not look for bugs.
npx skills add https://github.com/0xwilliamortiz/ratchet --skill ratchet-review
Return findings, not opinions. One line each. The best outcome for a diff is
getting shorter.
Run git diff for a change under review, or walk the tree for a whole
repository audit. Rank by lines removable, largest first.
Before reporting a finding, confirm the replacement actually exists in this
project: the standard library version for this language version, the native
feature for the browsers or runtime this project targets, the helper at the
path you are naming. A finding that does not compile is worse than no
finding.
<path>:<line> <tag>: <what to cut>. <what replaces it>.
Tags:
exists the repository already has this. Give the path.stdlib the standard library ships this. Name the function.native the platform does this. Name the feature.yagni one implementation, one caller, or nothing reads it.wrapper forwards to another function and adds nothing.shrink same behaviour, fewer lines. Show the shorter form.Not this: "The EmailValidator class may be more complex than strictly
necessary, and you might consider whether all of these rules are needed."
This:
src/validate.js:12 stdlib: 27-line email validator. One "@" check, real validation is the confirmation mail.
src/date.js:4 native: moment imported for one format call. Intl.DateTimeFormat.
src/repo.py:88 yagni: AbstractRepository, one implementation. Inline until a second exists.
src/api.ts:52 wrapper: fetchUser forwards to client.get. Call client.get directly.
src/group.js:30 shrink: manual reduce builds the map. Object.groupBy.
Group findings under certain, likely and heuristic so the reader knows
which ones to act on without checking. State the grade honestly: a regex shape
match is not a parsed fact, and calling it one costs you the next finding's
credibility.
End with net: -<N> lines, -<M> dependencies. Nothing to cut: Lean. Ship it.
npx ratchet-agent audit produces the deterministic half of this list in a
second. Run it first, then read the code for what regexes cannot see.
Correctness, security and performance belong in a normal review. Never flag a
smoke test or a self check for deletion, those are the minimum, not bloat.
Never flag validation at a trust boundary, error handling that prevents data
loss, or an accessibility attribute.
Lists findings. Applies nothing unless asked.
Take 0xwilliamortiz/ratchet-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.
The instructions reference npx.
Without those the skill loads but fails at the first command.