Verification
for AI agents
Runs your real tests on a copy of your project. If anything breaks, nothing gets written.
Verified before it lands.
A real Claude Code session: it migrates to the SQLAlchemy 2.0 session API, calls Refactron to check its own diff, and merges only on a SAFE verdict.
session = Session()with self.session_factory() as session:rows = session.query(Ledger).filter(...)rows = session.execute(select(Ledger)...)The agent calls verify_change over MCP before it lands. The same gate runs in CI or on a migration.
Verify a diff Refactron didn't author.
Point it at any change, an agent's, a codemod's, or your own, and it runs the same deterministic gate, scoped to exactly what the change touches.
- 01PARSE DIFF
Map the changed symbols: agent, codemod, or human.
- 02BLAST RADIUS
Trace the import + call graph to everything affected.
- 03COVERAGE PREFLIGHT
Is the changed code actually exercised by a test?
- 04SHADOW-TREE RUN
Run the scoped suite in an isolated copy of the repo.
- 05VERDICT + REPORT
SAFE · UNSAFE · UNPROVEN, with signed evidence.
Three answers, and one is honest in a way no one else is.
“Tests pass” can be a lie of omission. This document is exactly what Refactron returns: signed, reproducible, three possible outcomes. When the changed code isn't exercised, we call it UNPROVEN instead of pretending.
Every diff runs against your real tests in an isolated shadow tree before it can land. Watch the gates clear, or not.
SAFE, UNSAFE, or UNPROVEN. Signed and reproducible, streamed to your PR with the agent that authored the change.
Wherever the change happens.
The verdict is only useful at the moment of the merge. So we meet it there: as the tool your agent calls, the check that guards your CI, and the gate on your scariest migration.
The tool your agent calls before it lands
Your agent proposes a diff, calls verify_change, and gets a verdict + report back, so it can decide whether to land.
$ verify_change(diff)Drop it into your stack.
One gate, every surface: run it from the CLI, gate it in CI, hand it to your agent over MCP, or point it at a migration. Python and TypeScript, today.
Everyone runs tests. We stake a verdict on them.
“Review the diff.”
We prove the diff is safe, and flag it when it isn't provable.
“Our model says it's correct.”
Your own tests say it's correct. Python and TS, today.
“They generate the change.”
We're the gate that lets you trust what they merged.
The guarantee holds by construction.
Roughly a quarter of AI-generated codemods introduce silent breakage. Refactron can't ship one: a change lands only after it clears three gates against your real test suite: atomically, in an isolated copy, or not at all. It's slower than a blind rewrite. That's the point.
of AI-generated codemods are wrong: the silent-breakage class we gate (industry estimate)
unsafe changes reach disk. A change lands atomically, only on green
every diff clears: syntax · imports · your real test suite
Python + TypeScript, verified against the suite you already run
Verify your agent's PRs
before anyone else.
The MCP server and CI gate are being built in the open. Join as a design partner and shape the trust layer your team will run.
No spam, just the verification layer, early. By joining you agree to our Privacy Policy.
Questions, answered.
What the verdict means, what leaves your machine, and what ships today versus next.
Still curious? Read the docsThat's the point. Refactron verifies a diff whoever authored it: Cursor, Claude Code, Copilot, Codex, a codemod, or you. Via MCP your agent can call it before it lands (early access).

