I wasn't looking for this. I was digging through Claude Code skill repos at 1am, the way you do, and I almost scrolled past a small project called Guardsman. Two stars. Eighteen commits. No flashy benchmark chart at the top of the README.
That absence is exactly what made me stop scrolling.
Every "AI coding skill" README follows the same script now: a bold claim in the title ("73% fewer tokens!", "10x faster shipping!"), a chart with no visible methodology, and a repo that's three weeks old. You can't reproduce the number. You can't even tell what it was measured against. You just have to believe it.
Guardsman does the opposite, and it says so out loud, in its own README:
A tool that invents numbers about your codebase has no business guarding it.
There's no unbuilt parallel-universe version of your repo to diff against, so the author β Hedi Manai β just doesn't claim a savings number. The benchmarks/
folder is there, with a real protocol (a live open-source repo, twelve feature tickets, multiple arms, scored on lines changed, guards kept, and checks actually executed) β but the results aren't in yet, and the repo says so plainly instead of backfilling a plausible-looking figure.
That's a strange thing to lead with in a space full of overclaiming. It's also why I kept reading.
Guardsman is a Claude Code / Codex / Cursor skill built around one observation: code size is not risk. Blast radius is risk.
Most "write less code" tools optimize for one failure mode β the agent that over-builds, adds a dependency and a config layer for a five-line ask. Guardsman targets that and the failure mode that's much harder to catch: the confidently small diff. Five clean lines, no tests, straight onto a path that touches money or auth. It compiles. It demos. It breaks in week three.
Guardsman's answer is a risk tier, assigned before a line of code is written:
| Tier | When | The check |
|---|---|---|
| trivial | one-off, no downstream | manual run, output shown |
| standard | everyday feature work | one check written and executed this turn |
| sensitive | money, auth, user data in scope | a real test on the failure path |
| critical | getting it wrong is an incident | full coverage, or the gap is surfaced, never routed around |
Higher tier always wins on disagreement. The agent can be told to downgrade a tier β it's never allowed to infer one just because the code looks simple. That's the detail that sold me: "looks simple" is precisely the disguise the dangerous diff wears.
Before any of that, it reads your repo's actual conventions β formatter, linter, real test command, how your codebase already solves the nearest similar problem β with a deterministic detection script, not a guess.
Once the tier is set, it climbs a fixed ladder and stops at the first rung that holds: does this need to exist β is it already in the codebase β does the stdlib do it β does the platform already do it (a DB constraint instead of app-level validation, CSS instead of JS) β does an already-installed dependency solve it β can it be one line β only then, the minimum code the tier calls for.
Two refinements stood out. Bug fixes are chased to root cause β it greps every caller before touching a shared function, instead of patching the one call site the ticket mentioned. And YAGNI isn't treated as an excuse to ignore work that's already scheduled: if a second consumer is near-certain, it adds the seam and says why in one line, because the rewrite next week costs more than the extra line today.
Instead of TODO
comments that nobody greps and nobody triages, deliberate shortcuts get written as structured, severity-tagged entries:
A bundled scanner reads the whole repo and flags anything overdue or malformed. Technical debt stops being folklore in someone's head and becomes something a script can actually check.
build
(persistent, default), review
(diff-only, no changes applied), audit
(whole-repo pass for duplicate deps, dead config, single-implementation interfaces), logbook
(surfaces open shortcuts by severity), and post-report
β which only ever prints what's directly countable on your repo, right now. If nothing's been scanned yet, it says so instead of showing a number.
/plugin marketplace add hedimanai-pro/guardsman
/plugin install guardsman@guardsman
Not on Claude Code? The condensed ruleset in adapters/AGENTS.md
ports the tiers and build ladder to any agent that reads custom instructions.
Normally I'd wait for the numbers. Here, the absence of numbers is the actual signal worth sharing β a tool built by someone who'd rather ship "we haven't measured this yet" than a chart that doesn't survive scrutiny. In a category full of unverifiable 10x claims, that restraint is the differentiator.
I'll be watching benchmarks/
for when the real, reproducible results land. Starring the repo gets you the same notification.
π