The bottleneck is belief, not code
Writing the feature
mostly solvedA base model already writes most of a feature correctly on the first try.
Believing it is safe to merge
Does anyone, human or agent, actually believe the change is safe? At Prover, a company built on formally proving designs, that answer should not rest on instinct.
Attention Is All You Need
The paper the name echoes: one mechanism, applied consistently, replacing a pile of bespoke architecture.
Verification is all you need
Once a change is verified mechanically, then in a real browser, no trust ritual around the agent is left to perform.
Gate 1: what machines prove
make check runs identically on a developer's machine and in CI, the pipeline that runs on every merge request. Strict, and cheap.
backend tests, plus ruff and mypy, on every push
frontend tests, eslint, feature-map check, production build
container images built, not pushed, on every merge request
skip flags: a failing check is a fail, not a TODO
Wrong endpoint
Gate 1 greenA migration applies cleanly, and a form still points at the wrong endpoint.
Unreachable button
Gate 1 greenA component passes every type check, and renders a sign-in button nobody can reach with the keyboard.
Ruff does not watch a browser. The second gate does what the first structurally cannot: it looks.
Gate 2: an independent witness, not a script
Why ARIA roles
They are the handles a screen-reader user relies on: a second reason to insist on them.
Why curated evidence
A click-by-click transcript would just be a new haystack.
The reviewer spends model time on judgment. Scripts handle scope, environment, browser mechanics and evidence storage.verification/README.md, Prover Labs
A verdict cannot outlive its patch
A PASS that survives the next commit is worse than no verdict. So the verdict is keyed to a stable git patch-id of the branch diff, not to a commit hash, a timestamp or someone's word.
Local verdict hook
early warningOnly a developer's own Git can see it. GitLab cannot see an ignored file.
CI gate
protects mainWhat actually protects main.
The framework had to pass its own bar
UI unit tests dropped
Snapshot tests dropped
Standing end-to-end suite dropped
Expensive in tokens to write and maintain, and for a product this size already covered by a real browser pass. What is left earns its keep every run.
Lines added by the merge request, lower is better
−1,695 net lines in the cleanup commitunmatched empty6c64b85cThe cleanup touched only verification tooling, so the six-feature browser drive already on record still applied. Reusing a true verdict is not the same failure as reusing a stale one.
Trust is earned per diff, not per agent
Cheap enough
to run on every change.
Strict enough
to mean something when it is green.
Expires
the moment the diff it describes does.
Not a bigger model: a narrower gap between "the change looks right" and "the change is right".