An eight-stage vulnerability-discovery pipeline.
Point it at a codebase and it hunts memory-corruption bugs on its own — writing its own fuzzing harnesses, proving the crashes in a sandbox, and trying to disprove its own findings before it reports them.
Eight stages, each its own subsystem: recon, hunt, adversarial validation, dedupe, cross-repo reachability tracing, feedback, findings ledger, and CVSS-scored disclosure. Around 66,000 lines with 107 tests.
The part I'm proudest of is harness generation. Given an unfamiliar C library, Quarry reads the headers, infers a fuzzing entry point from the function signatures alone, pairs it with the right cleanup call, generates a libFuzzer harness, and compiles it in a hardened container — no curated template, no hand-written protocol knowledge. Fuzzing backends cover C, Go, Java, Python and Rust.
Validation is adversarial by design: a separate agent with a different prompt tries to knock down each finding before it survives to the report. Findings that can't be reproduced don't ship.
Every milestone was run predict-then-ship — I write down what I expect the run to do, lock it before writing the code, then publish a retro comparing prediction to outcome. The eval directory is predictions and retros side by side, including the ones I got wrong.