Read without running
Finds cross-file renames and broken signatures in 36ms, before any test starts.
MOUHN does not read your diff and guess. It runs the real test, inside an isolated copy, and only says “done” when a real test turns green.
These are the numbers behind the trust problem. The review bottleneck is now the work.
of developers use AI to code.
Stack Overflow Developer Survey 2026fully trust the result.
same surveyspent reviewing AI code each week.
vs 9.8h writing itpackage hallucination in some evaluated cases.
a slopsquatting riskEvery AI reviewer reads your code and offers an opinion. None of them executes a line.
Each layer hands the question to the system that can actually measure it.
Finds cross-file renames and broken signatures in 36ms, before any test starts.
Calls gcc, rustc, go vet, javac, or tsc.
Works in a copy. Your project stays untouched; the result is a patch, not a direct edit.
If the environment blocks measurement, MOUHN says why. It never invents success.
Every label carries a concrete claim about what changed, what ran, and what did not.
| verdict | what it means |
|---|---|
| PROVED | It was red, now green. Only the declared file changed. |
| FIXED (verified) | Same proof, in two separate calls. The agent fixes; you ask it to prove later. |
| NOTHING TO PROVE | It was already green. No invented fix. |
| CHEATED | It went green because something outside the request changed — including a hidden test deletion. |
| CANNOT MEASURE | The environment could not run the code: missing dependency, DNS, or similar. Abstention, never accusation. |
| STRUCTURAL BREAK | A cross-file break was proven by reading, before any test ran. |
| FAILED / GAVE UP | Red, measured, and no success story fabricated. |
These are internal failures, kept in the product because honesty is the feature.
We simulated a malicious agent that deleted the test proving the bug. First version: PROVED. After the fix: CHEATED.
test_removed = true
verdict = CHEATED
Across five popular open-source projects, tsc without a tsconfig.json printed help text. The old MOUHN read that as broken code.
detector v1 → false failure
detector v2 → clean
On a real GitHub Actions runner, python -m pytest without pytest installed produced an unrecognised error. We fixed the mapping on the first deploy.
exit = 1 · dependency missing
verdict = CANNOT MEASURE
Exact capability, no rounded-up compatibility claims.
Install instructions go here once MOUHN Verify is ready to hand out. Everything else on this page is already true — the mechanism and the verdicts.
Lemon Squeezy handles international tax. The free path stays fully useful.
Everything required to run a proof in your own environment.
For teams that need a history and a required gate.
Separate from Verify, with its own API key. Not a rigid template — a reminder list an agent asks for before building, then gets checked against after.
What an experienced developer knows to include that a bare prompt won't mention — before a line of code is written.
The same checklist, checked against the real project — proven present, proven missing, or an honest "cannot check," never inflated.
Your project is checked and never kept. Only the report comes back — nothing about how the check works ships to your machine.
SaaS with login and payments, live now — more categories added the same way, without touching what already works.
This does not catch everything. Ruby and PHP cross-file checks are advisory only — they surface a possible break but never block the verdict, because neither language has a real compiler behind that check. It cannot see how your page looks — only whether files agree; an optional screenshot-based check exists separately and never runs automatically. Team gate is a server-side check on every run, not a lock on your machine — like any CI step, it lives in a workflow file your own branch-protection rules govern. We would rather say this here than let you discover it alone.