Continuous Correctness Audit — Session Live
Your CI goes red
until the promise holds.
A standing correctness audit on one component of your system. Findings arrive as tests that fail on your main — and keep failing until the fix lands.
First public audit: jsonparser.
A Go JSON library with a decade of production use. Every number below links to a re-runnable artifact — including the one we got wrong.
requirements
found
miss
the gate
LIVE REGISTER → portal.reqproof.com/projects/jsonparser
A finding is a failing build.
Most audits end as a PDF. Ours ends as a gate in your pipeline: every finding ships with a reproducer test pinned to your main branch, and the audit re-runs on every commit. Nothing closes on assertion — only on evidence.
- H-01Silent data lossNamed · Reproduced · Pinned
- H-02Panic classesNamed · Reproduced · Pinned
- H-03Contract driftNamed · Reproduced · Pinned
- H-04Unverified requirementsFormalized · Gated
Evidence lives in your repo.
Specs, hazards, findings, coverage — checked in next to the code they govern. When we leave, the audit stays. When you doubt a claim, you re-run it.
Requirements as artifacts
123 approved requirements on jsonparser, each with per-requirement hazard analysis. Not a wiki — files under version control, reviewed like code.
Findings as failing tests
7 real bugs found, including one panic class reachable from 8 call sites. Each finding is signed by a named reviewer and lands as a reproducer that is red on main.
Coverage you can dispute
MC/DC — the avionics coverage bar — on every scoped decision. If a decision isn’t exercised in both directions, the gate says so.
jsonparser/ ├── specs/ │ ├── system/requirements/ 123 approved │ └── hazards/ per-requirement analysis ├── evidence/ │ ├── findings/ │ │ ├── F-001_panic_class_test.go 8 call sites │ │ ├── F-002_contract_drift_test.go │ │ └── F-003_reproducer_test.go RED on main │ └── coverage/mcdc/ every scoped decision └── postmortem/ └── MISS-001_set_data_loss.md published · re-runnable
MISS-001 · SELF-REPORTED
The miss we published.
A silent data-loss defect in Set() escaped our jsonparser audit — with 100% MC/DC on the affected code. The coverage bar was met. The bug got through anyway.
We wrote the postmortem, made it re-runnable, and put it on the public register next to the wins. An audit that only reports successes is unfalsifiable — which is another word for useless.
Flight-software discipline. Ordinary CI.
The techniques are decades old and boringly effective. What’s new is installing them as a standing gate in an ordinary CI pipeline — in eleven languages, Go, Rust, Solidity and Zig among them.
M.1 — Requirements
FRETish requirements language
Requirements written in FRETish — a structured natural language with NASA flight-software lineage. Precise enough to hand to a model checker, readable enough to hand to your team.
M.2 — Verification
Formal verification: Kind2 + Z3
Every formalized requirement is checked for realizability, consistency and vacuity with the Kind2 model checker and the Z3 SMT solver. Contradictions surface before code does.
M.3 — Coverage
MC/DC — the avionics bar
Modified condition/decision coverage on every scoped decision. Not line coverage, not branch coverage — the standard certification authorities demand for flight software.
M.4 — Hazards
Per-requirement hazard analysis
Each requirement carries its own hazard analysis: what breaks if this is violated, how it fails silently, which call sites are exposed. The panic class at 8 call sites came from exactly this.
Security firms audit whether your software can be broken into.
We audit whether it works.
Developers who distrust the accuracy of AI output, versus those who trust it.
Stack Overflow Developer Survey · 2025AI adoption among teams — while 30% report little or no trust in the generated code they ship.
DORA Report · 2025Fixed fee. Four weeks. Then standing.
We don’t audit everything — we audit the component where being wrong is expensive, and we leave behind machinery that keeps auditing it.
Scope
ConfidentialYou name the component where correctness matters most. We agree on the requirement surface and a fixed fee. No meters, no scope creep.
Install
~4 weeksWe formalize requirements in FRETish, verify them with Kind2 + Z3, build the hazard analyses, and wire the 52-check audit gate into your CI.
Standing audit
ContinuousThe audit re-runs on every commit — without us in the loop. Findings arrive as failing tests, signed by a named reviewer.
REQ-SCOPE · INTAKE
Request confidential scoping
Tell us where correctness is costing you sleep. We’ll come back with a scoped requirement surface and a fixed price.
- Fixed fee, agreed before work starts
- One component, precisely scoped
- Findings signed by a named reviewer
- Gate stays in your CI after we leave