Weeder — Development skill for Claude Code
The judge of the diff: a static binary that reads what an agent produced and refuses dishonest growth, as SARIF, in milliseconds.
How to install Weeder
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open jahala/weeder and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Weeder does
The judge of the diff: a static binary that reads what an agent produced and refuses dishonest growth, as SARIF, in milliseconds.
Alternatives in Development
- Ansoff Matrix — Ansoff Matrix analysis across 4 growth strategy quadrants 7.8k ★
- JWT Scan — JWT attack toolkit (offline) — alg:none forgery, RS256→HS256 algorithm confusion, weak-secret crack, static cl 4.5k ★
- Gallery — Build a static, shareable gallery from your fidelity reports — an index of score cards plus a permalink page ( 3.6k ★
README
weeder
weeder is a gate for code an agent wrote. It reads the diff, refuses dishonest growth, and leaves with an exit code that says whether the change goes through. Deleted or weakened tests, skips, stubs, swallowed errors, secrets, guardrail edits and dependency-direction violations are the shapes it refuses. A static Rust binary, milliseconds, no tokens spent, every finding as SARIF 2.1.0.
$ weeder check
error G1 src/parser.ts:2 a merge conflict marker (<<<<<<<) was added.
error G1 src/parser.ts:4 a merge conflict marker (=======) was added.
error G1 src/parser.ts:6 a merge conflict marker (>>>>>>>) was added.
3 errors, 0 warnings, 0 notes
Exit 2. The commit does not happen.
Why
An agent that has just written a change is the worst available judge of it. It will report success, and it has every incentive to reach success by the shortest road: delete the failing test, add a skip, catch the exception and move on, widen the timeout until the flake stops. Those are cheap to do and expensive to notice, and a reviewer reading a thousand-line diff notices them last.
weeder notices them first, deterministically, before a human opens the pull request. It has no model, no prompt and no opinion about style. It reads what changed against what was there and reports shapes: a test that is gone, an assertion that was dropped, a `TODO` where an implementation belongs.
Install
Release binaries are built for linux and macos on x86_64 and aarch64, one `weeder-.tar.gz` per platform on the [releases page](https://github.com/jahala/weeder/releases), with its SHA-256 beside it. The tarball holds the executable, `garden.json` and `SKILL.md`.
target=aarch64-apple-darwin # or x86_64-apple-darwin, x86_64-unknown-linux-musl, aarch64-unknown-linux-musl
base=https://github.com/jahala/weeder/releases/latest/download
curl -fsSLO "$base/weeder-$target.tar.gz" -O "$base/weeder-$target.tar.gz.sha256"
shasum -a 256 -c "weeder-$target.tar.gz.sha256"
Related Skills
Update Account Graph
Pull the live Kalshi balance + open positions and regenerate the account-growth graph (interactive HTML + stat
Unleash
Unleash Claude Code - 113 patches, zero refusals/telemetry, 42 gates. Bun SEA bytecode patcher + TUI. Static G
Desktop Electron
Desktop application hunting — Electron / Tauri / WebView2. Static binary inspection + IPC fuzzing + proxied tr
Herdr Telegram Agents
Herdr plugin: a Telegram forum topic per live coding agent, status in the topic icon, prompts and answers both
The Docket
the-docket is a Claude Code plugin that keeps a repo's decisions from being undone. A hook prints what governs
Go To Market
Build a phased launch plan, pre-launch, launch week, and 30/60/90 day growth, for a product or offer. Referenc
Related Agents
Debate Judge
L0.97 Adversarial Verification — reads all 3 rounds of prosecution and defense transcripts plus the original d
Malware Analyst
Malware analysis specialist for static and dynamic analysis. Handles PE/ELF/APK binary triage, behavioral anal
Uxaudit Reconciler
Reconciler for the uxaudit pipeline. Runs after every Judge has produced a verdict. The ONLY role allowed to s