Cadora · evidence pack
A run finishes green — but green on your machine is a claim until someone else can check it. Cadora packs each run into a portable evidence pack: tamper-evident by checksum, attributable by signature, and verifiable by anyone, offline. This is that pack's journey off your machine.
Every gate cleared and the DAG reads clean — three green nodes, each stamped with its gate and review outcome. The evidence is all there in the archive: per-node cost, duration, gate and integrity verdicts, and who decided what at each human gate. What's missing is a way to carry that proof to someone who wasn't watching.
One command turns the archived run into a self-contained pack under runs/pr1-verify/report/: report.html to read, report.json for machines, and checksums.txt — the SHA-256 of every archived file plus report.json. That last file is what makes the pack tamper-evident: change one byte anywhere and a hash stops matching.
The pack is checksummed, not yet signed — anyone can confirm it's unchanged, but not yet who stands behind it. That's the next step.
A detached SSH signature over checksums.txt binds the whole pack to a key you already have — no new dependency, just ssh-keygen -Y sign under the hood. Now the pack is tamper-evident and attributable: a verified pack proves both that nothing changed and who signed it.
The signature travels beside the pack as checksums.txt.sig and signature.json (the public key plus its fingerprint), so a recipient can verify entirely offline.
The pack is a handful of small files and nothing else — no server, no database, no live Cadora. Mail it, attach it to a deliverable, drop it in a ticket. It carries its own proof: the report to read, the checksums to recompute, the signature to attribute.
Self-contained by design — report.html embeds its own styles and links to nothing external, so it renders the same on a machine that has never heard of Cadora.
The recipient runs one command. Cadora recomputes every hash in the pack, then checks the signature against the public key that travels with it. The verdict is two plain lines and a bottom line — VERIFIED only if the hashes hold and the signature checks out; otherwise NOT VERIFIED and a non-zero exit.
Self-attested means the signature was checked against the key in the pack — proof it hasn't changed since signing. To bind it to a person, confirm that fingerprint out of band, or verify against an --allowed-signers file you already trust.
The terminal frames above reproduce real cadora report / sign / verify output, rendered as editable HTML rather than raster captures — lift them into Figma or iterate directly. This is Cadora's audit-grade endgame: a run's proof survives leaving the machine that made it — tamper-evident, attributable, and verifiable by anyone who receives it.