A review agent that tries to refute its own findings

2 minute read

Published:

A review agent that tries to refute its own findings

ADRA (Adversarial Dev Review Agent) is a deterministic-first, client-agnostic validation engine. It reviews PRs, designs and runs validation experiments, writes documentation back, and escalates to a human where a senior engineer would. It is on PyPI (pip install adra) and runs offline with no API key. The specific problem it targets is the one that made me build it: a code-review model that states a finding confidently and wrongly.

The AI-review market splits in two and both halves miss the same spot. Reviewers (CodeRabbit, Greptile, Qodo and the like) feed linters into an LLM, but the model’s prose is the verdict, so a plausible-but-false finding leaks through. Autonomous coders (Devin, OpenHands, SWE-agent) write code and treat “tests pass” as success rather than trying to prove the change wrong. ADRA sits in the gap: a deterministic spine grounds a blocking adversarial critic whose job is to refute each artifact, not bless it.

The mechanism is the part I care about:

Deterministic-first, then adversarial:
tools (git, the exact CI command, bundle validate, language and leak scan, SQL probe) run first and become the grounding the model may not contradict
a blocking critic then tries to refute every finding; each finding carries its evidence, and the run escalates when nothing deterministic backs the verdict
Because the deterministic floor carries the verdict, the whole loop (and the test suite) runs offline with no API key. Connecting a real provider adds the semantic layer on top; it never becomes the gate.

Six skills share one loop, differing only by domain prompt and tools: code review, PR evaluation, a hypothesis-driven validation experiment, a minimum-functional improvement proposal, documentation write-back, and a human-owned routing decision. Every run leaves an immutable provenance record, writes English only, and scans anything written to disk for AI-authorship leaks.

It stays honest about its own maturity: the GitHub, Azure DevOps, Databricks and Azure connectors are implemented and an offline emulator runs the full flow, but it stays on 0.x while the connectors are partly untested live, and the dual-LLM capability split and sandboxed egress filtering for reading untrusted repo content are planned, not yet built. The engine is the public OSS tool; a separate private console is the connected instance. Live · source · pip install adra.