Your tests check the cases you remembered. proob finds the ones you didn't.
One command on python-semver found the bug its maintainers later fixed, in five minutes, without touching the repository.
In Claude Code, inside your repository:
/plugin marketplace add proob-ai/proob /plugin install proob@proob /proob:try
/proob:try works on a private copy. Your files and git status stay as they were.
Failures on realistic inputs: - The next version can sort before the current one. 1.2.3-zeta → 1.2.3-rc.1 1.2.3-rc9 → 1.2.3-rc10 (rc10 sorts first) Failures only on less common inputs: - Equal versions can have different hashes. prerelease='0' == prerelease='00', hashes differ Scores: 3 passing tests caught 3, 6 and 9 of 30 mutants, so they're weak. Cooked for 4m 21s
From docs/try.gif, on the commit before issue #497 was fixed.
Make proof as cheap as code.
Spec it. Prove it. Merge it.
An agent writes more code than a team can read line by line. proob has it say, in plain English, what the code must do, and back each sentence with a check that can fail. Your reviewer approves the sentence; machines keep checking it on every pull request.
14 of 15 known bugs found, with no hint.
Bugs from libraries like packaging, tomlkit and bytes, each rolled back to before its fix. 9 of the 10 fixed after the AI model's training data ends were found too. How we measure.
The agent proposes. It never decides.
One required check, one review habit
Python and Rust today. Python is checked by tests, so it reads Checked (tested) at best. Statuses, limits and team setup: the guide.