PROOF — CONTINUOUS CORRECTNESS AUDIT · REQPROOF.COM
How sure are you?
READ THE DRAWING
Green builds aren’t proof.
Evidence is.
Proof turns the promises your software makes into tests that run in your CI. Below: the evidence.
The Receipts
Issues we found. Fixes that shipped. Check every row.
| Finding | Age | Status | Links |
|---|---|---|---|
| memory safety in path handling | ~20 yrs | fixed, shipped ✓ | report ↗PR ↗ |
| silent data corruption on resumed transfers | ~15 yrs | fixed, shipped ✓ | report ↗PR ↗ |
| temp-file race | ~10 yrs | fixed, shipped ✓ | report ↗PR ↗ |
| Finding | Scope | Status | Links |
|---|---|---|---|
| F-001 · unguarded negative index → panic class | 8 call sites | closed same day, pinned ✓ | register ↗ |
| MISS-001 · silent data loss in Set() · escaped with 100% MC/DC · caught by a user | 1 function + sibling sweep | postmortem public ✓ | postmortem ↗ |
| 123 requirements signed · full register ↗ | |||
| Contribution | Status | Links |
|---|---|---|
| input-validation fix · parser hardening | merged ✓ | PR ↗ |
| bounds check on length decode | merged ✓ | PR ↗ |
| error-path file-handle leak fix | merged ✓ | PR ↗ |
| Finding | Status |
|---|---|
| protocol edge case in redirect handling | fixed upstream ✓ |
| unsafe TLS option default | fixed ✓ |
| Finding | Status |
|---|---|
| ISR-latency promise formalized, then violated under load | fixed, verified ✓ |
| watchdog re-arm race | fixed ✓ |
| Finding | Status |
|---|---|
| idempotency-key race in the retry path | fixed ✓ |
| rounding drift in currency conversion | fixed ✓ |
| Finding | Status |
|---|---|
| backpressure data loss under burst ingest | fixed ✓ |
Which of your promises has nobody ever written down?
More than you think — and a test suite cannot catch a promise nobody wrote down.
Every codebase carries obligations that live only in old tickets, commit messages, and the heads of whoever wrote them. Our agents dig those promises out of your code, its history, and its issue tracker — and your engineers approve every line, by name.
On jsonparser, the dig recovered 0 requirements: the library’s actual contract, written down and signed for the first time in its ten-year life.
123 approved · the live registerWhen an agent ships code at 2am, who vouches for it?
Machines check everything, every time. People sign what machines can’t.
Agent-written and human-written changes are graded by the same bar, on every commit. The gate does not negotiate and does not tire. A finding’s authority is its reproducer — a failing check anyone can re-run — not a reviewer’s glance.
People sign what no machine can: the promises — your engineers approve every requirement — the bar the code is graded against, and our mistakes, in public.
If your software silently lost data tonight, would anyone notice?
Usually not. That is exactly how we met this bug.
jsonparser’s Set() could silently lose data —
no error, no crash, just a wrong result handed back as if nothing happened.
A test suite ran green over it for years.
It got past our audit too: it escaped with 100% MC/DC coverage on the affected code, and a downstream user found it first. We treated the miss as a finding against ourselves — published the postmortem, added the requirement that would have caught it, swept the failure class for siblings, and pinned the fix so it can never quietly return.
MISS-001 · postmortem publicSOME SIGNATURES NEVER AUTOMATE.
The bug you fixed last year — are you sure it stayed fixed?
Under Proof, a fix is not finished when the ticket closes.
Every confirmed defect becomes a permanent pin: a reproducer that runs on every audit, forever. If the bug ever tries to come back, it is caught before it ships — not rediscovered by a customer.
And every miss is root-caused, not just patched. If one function could fail this way, the functions shaped like it are swept too, and the whole pattern is pinned. Classes of bugs go extinct. Tickets merely close.
reproducer → pin → foreverWatch a promise become a test that never stops running.
FIVE STAGES · A REAL BUG · KEEP SCROLLING
01 / 05 · The dig
Recovered promises
saving a value must not delete others
invalid input must not crash
results must match what was stored
func (d *Document) Set(key string, val []byte) error {
if !json.Valid(val) {
return ErrMalformed // never crash on bad input
}
idx := d.find(key)
d.buf = splice(d.buf, idx, val) // one key changes, siblings stay
return d.verify(key, val) // read back what was written
}
Your code knows what it does — not why. We dig the promises out.
02 / 05 · The contract
When Set() writes one value, every other value survives.
Acceptance criteria
- Saving preserves all other values
- Malformed input returns an error, never a crash
- What you read equals what you wrote
Each promise becomes a requirement your engineers sign — with its acceptance criteria.
03 / 05 · The proof
“When Set() writes one value, every other value survives.”
Then we turn them into math — and prove no two promises contradict.
04 / 05 · The coverage
An illustrative grid of condition combinations fills in one by one; two rows are flagged as worst cases: silent data loss, and crash on bad input.
The math tells us how many tests are enough — including the worst cases.
05 / 05 · The gate
They run in your CI on every change. Forever.
Stop hoping.
Start knowing.
Tell us which component you would least like to be asked about under oath. We reply with a confidential scoping note: what we would audit, what evidence you would hold at the end, and the fixed fee. A named human replies — not an autoresponder.
A named human — not an autoresponder — replies within two business days.