Project description
Popper is an adversarial verification gate for pull requests. We built it after AI coding agents began producing fixes faster than we could confidently review them. A green test was not always proof—it sometimes passed before the fix too.
Popper extracts the behavioral claim behind a pull request, generates tests designed to break that claim, and executes each test against both versions of the code:
Fail before + Pass after = Evidence of a fix
Fireworks extracts the claim and generates adversarial tests. Daytona runs them safely in isolated sandboxes. CodeRabbit provides an independent static review, which Popper compares with the executed evidence while keeping opinion and proof clearly separated. Braintrust traces the pipeline, and CopilotKit lets reviewers ask questions about the results.
Popper flags tests that pass on both versions as inconclusive and treats sandbox failures as missing evidence—not failed code. It then presents the claim, test results, disagreements, and a recommendation. A human always makes the final merge decision.
We built Popper with Next.js and TypeScript, plus a replay system that can instantly load a previously verified run if a live service becomes unavailable.