3 of 3 declared stages · recorded in the format stage-receipt-chain/0.3 · ran · received by this console
Records agreeNo
Ran as approveda straight-line run: there is no plan to compare
Signed by a known recorderYes
Committed by a known timeNot anchored
These rows come from a record that does not hold up.
The step-by-step verdicts are here, not on What changed: Contradicts its record: this console's check, with the run's output files required, failed.
The case
Run
p7-41-cold-chain-decision-tampered
ran
→
What it was for
fill_gaps → excursion_check → release
This answer's trail was checked on — the record contradicts itself at step 3.
Held under the checks that ran; not anchored, so it can't be shown to be the record that was made.
Repeat the check
Run it from the run's folder:
onetrace-verify --trust trust.json MANIFEST.json
What the evidence establishes
Each rung is a separate question, with its own evidence.
Records agree
No · This answer's trail was checked on — the record contradicts itself at step 3.
Signed by a known recorder
Yes · demo key (public seed: proves the record wasn't changed since signing, not who signed it) · sha256:6e20550ae0dc…sha256:6e20550ae0dc6b4471d54336d09d74d14f3f623b735045eddd053c444ec3b14c
Nothing declared is missing
Yes · Each declared step left a receipt, as the receipts themselves state.
Ran as approved
a straight-line run: there is no plan to compare
Re-runnable stages reproduced
Not checked · No re-check from the record was run, so this page does not say whether anything comes out the same.
Action authorized, effect confirmed
No records · This console does not record authorization.
Committed by a known time
Not anchored · no anchor beside the chain
None of these says the run's output or action was correct.
{
"data": "invented example data",
"onetrace.kept_inputs": "logger"
}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{"constants":{"data":"invented example data","onetrace.kept_inputs":"logger"}},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["fill_gaps","excursion_check","release"],"emitting_stages":["fill_gaps"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"147","digest":"sha256:709f68a73b08eaa2c7f0ba3b2ce1259a07cac5109ef853afe32bdeb9f5000fa0","media_type":"application/json","name":"logger","trust_class":"externally-sourced"}],"instrument":{"config_digest":"sha256:2fc5f2f663392ebd87297e8e3912b0deed4edbe2c14f89f376c0882f53940736","id":"logger-gap-fill","kind":"transform","manifest_digest":"sha256:f08c6b79f590343465b41eb39c80101b85e425ba46028cda88721b927ba2b5d4","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"565","digest":"sha256:70d05ede16e8c42e4c84ee21ca8eb09a71c8ad6af017139d0a3f6d6bdb2fb7df","media_type":"application/json","name":"filled.json","trust_class":"operator-authored"}],"prev":null,"run_id":"p7-41-cold-chain-decision-tampered","stage":{"index":"1","name":"fill_gaps"},"time":{"ended":"2026-10-25T12:52:10.932+00:00","started":"2026-10-25T12:52:10.888+00:00"}}
The check's own words
[PASS ] receipts/01-fill-gaps.json: receipt format
[PASS ] receipts/01-fill-gaps.json: bytes are canonical
[PASS ] receipts/01-fill-gaps.json: required field 'format'
[PASS ] receipts/01-fill-gaps.json: required field 'run_id'
[PASS ] receipts/01-fill-gaps.json: required field 'stage'
[PASS ] receipts/01-fill-gaps.json: required field 'prev'
[PASS ] receipts/01-fill-gaps.json: required field 'time'
[PASS ] receipts/01-fill-gaps.json: required field 'coverage'
[PASS ] receipts/01-fill-gaps.json: required field 'emission'
[PASS ] receipts/01-fill-gaps.json: required field 'anchor'
[PASS ] receipts/01-fill-gaps.json: required field 'instrument'
[PASS ] receipts/01-fill-gaps.json: required field 'inputs'
[PASS ] receipts/01-fill-gaps.json: required field 'outputs'
[PASS ] receipts/01-fill-gaps.json: required field 'assertions'
[PASS ] receipts/01-fill-gaps.json: required field 'outcome'
[PASS ] receipts/01-fill-gaps.json: time.started carries its zone
[PASS ] receipts/01-fill-gaps.json: time.ended carries its zone
[PASS ] receipts/01-fill-gaps.json: instrument is named and pinned
[PASS ] receipts/01-fill-gaps.json: inputs/logger declares a trust class
[PASS ] receipts/01-fill-gaps.json: outputs/filled.json declares a trust class
[PASS ] receipts/01-fill-gaps.json: assertions name their constants
[PASS ] receipts/01-fill-gaps.json: outcome class is one of ['error', 'ok', 'refused']
[PASS ] receipts/01-fill-gaps.json: coverage declares completeness
[PASS ] receipts/01-fill-gaps.json: anchor state is declared, not absent
[NOT-RUN] receipts/01-fill-gaps.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS ] receipts/01-fill-gaps.json: digest matches the manifest
[PASS ] receipts/01-fill-gaps.json: chain link
[PASS ] receipts/01-fill-gaps.json: output artifact 'filled.json' matches
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["fill_gaps","excursion_check","release"],"emitting_stages":["fill_gaps","excursion_check"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1320","digest":"sha256:2a2ff6222e2c6a3ba59bc3f6e5c19801923373ad5be6ba2a36aa407649ef2457","media_type":"application/json","name":"receipt:fill_gaps","trust_class":"operator-authored"},{"bytes":"565","digest":"sha256:70d05ede16e8c42e4c84ee21ca8eb09a71c8ad6af017139d0a3f6d6bdb2fb7df","media_type":"application/json","name":"filled.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:7206daa7887779f570ba322349330b758ed576c760d99b4184a0d5a3ec4d8700","id":"excursion-check","kind":"checker","manifest_digest":"sha256:f08c6b79f590343465b41eb39c80101b85e425ba46028cda88721b927ba2b5d4","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"42","digest":"sha256:d2ecf56c0f10ede6de2b69a6492ed50ba2fddb8f43e5b10ed650232609997455","media_type":"application/json","name":"excursions.json","trust_class":"operator-authored"}],"prev":"sha256:2a2ff6222e2c6a3ba59bc3f6e5c19801923373ad5be6ba2a36aa407649ef2457","run_id":"p7-41-cold-chain-decision-tampered","stage":{"index":"2","name":"excursion_check"},"time":{"ended":"2026-10-25T12:52:10.945+00:00","started":"2026-10-25T12:52:10.941+00:00"}}
The check's own words
[PASS ] receipts/02-excursion-check.json: receipt format
[PASS ] receipts/02-excursion-check.json: bytes are canonical
[PASS ] receipts/02-excursion-check.json: required field 'format'
[PASS ] receipts/02-excursion-check.json: required field 'run_id'
[PASS ] receipts/02-excursion-check.json: required field 'stage'
[PASS ] receipts/02-excursion-check.json: required field 'prev'
[PASS ] receipts/02-excursion-check.json: required field 'time'
[PASS ] receipts/02-excursion-check.json: required field 'coverage'
[PASS ] receipts/02-excursion-check.json: required field 'emission'
[PASS ] receipts/02-excursion-check.json: required field 'anchor'
[PASS ] receipts/02-excursion-check.json: required field 'instrument'
[PASS ] receipts/02-excursion-check.json: required field 'inputs'
[PASS ] receipts/02-excursion-check.json: required field 'outputs'
[PASS ] receipts/02-excursion-check.json: required field 'assertions'
[PASS ] receipts/02-excursion-check.json: required field 'outcome'
[PASS ] receipts/02-excursion-check.json: time.started carries its zone
[PASS ] receipts/02-excursion-check.json: time.ended carries its zone
[PASS ] receipts/02-excursion-check.json: instrument is named and pinned
[PASS ] receipts/02-excursion-check.json: inputs/receipt:fill_gaps declares a trust class
[PASS ] receipts/02-excursion-check.json: inputs/filled.json declares a trust class
[PASS ] receipts/02-excursion-check.json: outputs/excursions.json declares a trust class
[PASS ] receipts/02-excursion-check.json: outcome class is one of ['error', 'ok', 'refused']
[PASS ] receipts/02-excursion-check.json: coverage declares completeness
[PASS ] receipts/02-excursion-check.json: anchor state is declared, not absent
[NOT-RUN] receipts/02-excursion-check.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS ] receipts/02-excursion-check.json: digest matches the manifest
[PASS ] receipts/02-excursion-check.json: chain link
[PASS ] receipts/02-excursion-check.json: output artifact 'excursions.json' matches
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{},"coverage":{"boundaries":[],"completeness":"complete","declared_stages":["fill_gaps","excursion_check","release"],"emitting_stages":["fill_gaps","excursion_check","release"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1535","digest":"sha256:30c5fd5119b384756feb5547ec5ed09e06e3f32db1052667d5c211b6893a037d","media_type":"application/json","name":"receipt:excursion_check","trust_class":"operator-authored"},{"bytes":"42","digest":"sha256:d2ecf56c0f10ede6de2b69a6492ed50ba2fddb8f43e5b10ed650232609997455","media_type":"application/json","name":"excursions.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:4cbe891e671867fd3edd3dbc2433c3fd3b7833161e4654e5158a077114b106b6","id":"release-rule","kind":"rule","manifest_digest":"sha256:f08c6b79f590343465b41eb39c80101b85e425ba46028cda88721b927ba2b5d4","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"39","digest":"sha256:ef859d7a959e824c714948716216749164b563fb8e87a7901a76f962cb809e87","media_type":"application/json","name":"decision.json","trust_class":"operator-authored"}],"prev":"sha256:30c5fd5119b384756feb5547ec5ed09e06e3f32db1052667d5c211b6893a037d","run_id":"p7-41-cold-chain-decision-tampered","stage":{"index":"3","name":"release"},"time":{"ended":"2026-10-25T12:52:10.957+00:00","started":"2026-10-25T12:52:10.954+00:00"}}
The check's own words
[PASS ] receipts/03-release.json: receipt format
[PASS ] receipts/03-release.json: bytes are canonical
[PASS ] receipts/03-release.json: required field 'format'
[PASS ] receipts/03-release.json: required field 'run_id'
[PASS ] receipts/03-release.json: required field 'stage'
[PASS ] receipts/03-release.json: required field 'prev'
[PASS ] receipts/03-release.json: required field 'time'
[PASS ] receipts/03-release.json: required field 'coverage'
[PASS ] receipts/03-release.json: required field 'emission'
[PASS ] receipts/03-release.json: required field 'anchor'
[PASS ] receipts/03-release.json: required field 'instrument'
[PASS ] receipts/03-release.json: required field 'inputs'
[PASS ] receipts/03-release.json: required field 'outputs'
[PASS ] receipts/03-release.json: required field 'assertions'
[PASS ] receipts/03-release.json: required field 'outcome'
[PASS ] receipts/03-release.json: time.started carries its zone
[PASS ] receipts/03-release.json: time.ended carries its zone
[PASS ] receipts/03-release.json: instrument is named and pinned
[PASS ] receipts/03-release.json: inputs/receipt:excursion_check declares a trust class
[PASS ] receipts/03-release.json: inputs/excursions.json declares a trust class
[PASS ] receipts/03-release.json: outputs/decision.json declares a trust class
[PASS ] receipts/03-release.json: outcome class is one of ['error', 'ok', 'refused']
[PASS ] receipts/03-release.json: coverage declares completeness
[PASS ] receipts/03-release.json: 'complete' is consistent with the stage lists
[PASS ] receipts/03-release.json: anchor state is declared, not absent
[NOT-RUN] receipts/03-release.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS ] receipts/03-release.json: digest matches the manifest
[PASS ] receipts/03-release.json: chain link
[FAIL ] receipts/03-release.json: output artifact 'decision.json' matches -- expected sha256:ef859d7a959e824c714948716216749164b563fb8e87a7901a76f962cb809e87, found sha256:aa79bfb8d85c45f06b446282dfae7285671177667a667be8d43fc55af32abdf7
Where it changed
No comparison with another run was made, so this page does not say where anything changed.
What was checked and what was not
Checked
step 1 of 3 · fill_gaps — 27 checks made — all hold.
step 2 of 3 · excursion_check — 27 checks made — all hold.
step 3 of 3 · release — 27 checks made — all hold.
step 3 of 3 · release — Checked — and the record contradicts itself here: output artifact 'decision.json' matches — expected sha256:ef859d7a959e…, found sha256:aa79bfb8d85c….
The list of steps — 1 check made — it holds.
Not checked
Every step — Held under the checks that ran; not anchored, so none of these steps can be shown to be the record that was made.
The check's own words
These words were read as text, because the machine-readable report was not there. That is the fallback, and it is the only thing on this page that was read that way.
[PASS ] receipts/01-fill-gaps.json: receipt format
[PASS ] receipts/01-fill-gaps.json: bytes are canonical
[PASS ] receipts/01-fill-gaps.json: required field 'format'
[PASS ] receipts/01-fill-gaps.json: required field 'run_id'
[PASS ] receipts/01-fill-gaps.json: required field 'stage'
[PASS ] receipts/01-fill-gaps.json: required field 'prev'
[PASS ] receipts/01-fill-gaps.json: required field 'time'
[PASS ] receipts/01-fill-gaps.json: required field 'coverage'
[PASS ] receipts/01-fill-gaps.json: required field 'emission'
[PASS ] receipts/01-fill-gaps.json: required field 'anchor'
[PASS ] receipts/01-fill-gaps.json: required field 'instrument'
[PASS ] receipts/01-fill-gaps.json: required field 'inputs'
[PASS ] receipts/01-fill-gaps.json: required field 'outputs'
[PASS ] receipts/01-fill-gaps.json: required field 'assertions'
[PASS ] receipts/01-fill-gaps.json: required field 'outcome'
[PASS ] receipts/01-fill-gaps.json: time.started carries its zone
[PASS ] receipts/01-fill-gaps.json: time.ended carries its zone
[PASS ] receipts/01-fill-gaps.json: instrument is named and pinned
[PASS ] receipts/01-fill-gaps.json: inputs/logger declares a trust class
[PASS ] receipts/01-fill-gaps.json: outputs/filled.json declares a trust class
[PASS ] receipts/01-fill-gaps.json: assertions name their constants
[PASS ] receipts/01-fill-gaps.json: outcome class is one of ['error', 'ok', 'refused']
[PASS ] receipts/01-fill-gaps.json: coverage declares completeness
[PASS ] receipts/01-fill-gaps.json: anchor state is declared, not absent
[NOT-RUN] receipts/01-fill-gaps.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS ] receipts/01-fill-gaps.json: digest matches the manifest
[PASS ] receipts/01-fill-gaps.json: chain link
[PASS ] receipts/01-fill-gaps.json: output artifact 'filled.json' matches
[PASS ] receipts/02-excursion-check.json: receipt format
[PASS ] receipts/02-excursion-check.json: bytes are canonical
[PASS ] receipts/02-excursion-check.json: required field 'format'
[PASS ] receipts/02-excursion-check.json: required field 'run_id'
[PASS ] receipts/02-excursion-check.json: required field 'stage'
[PASS ] receipts/02-excursion-check.json: required field 'prev'
[PASS ] receipts/02-excursion-check.json: required field 'time'
[PASS ] receipts/02-excursion-check.json: required field 'coverage'
[PASS ] receipts/02-excursion-check.json: required field 'emission'
[PASS ] receipts/02-excursion-check.json: required field 'anchor'
[PASS ] receipts/02-excursion-check.json: required field 'instrument'
[PASS ] receipts/02-excursion-check.json: required field 'inputs'
[PASS ] receipts/02-excursion-check.json: required field 'outputs'
[PASS ] receipts/02-excursion-check.json: required field 'assertions'
[PASS ] receipts/02-excursion-check.json: required field 'outcome'
[PASS ] receipts/02-excursion-check.json: time.started carries its zone
[PASS ] receipts/02-excursion-check.json: time.ended carries its zone
[PASS ] receipts/02-excursion-check.json: instrument is named and pinned
[PASS ] receipts/02-excursion-check.json: inputs/receipt:fill_gaps declares a trust class
[PASS ] receipts/02-excursion-check.json: inputs/filled.json declares a trust class
[PASS ] receipts/02-excursion-check.json: outputs/excursions.json declares a trust class
[PASS ] receipts/02-excursion-check.json: outcome class is one of ['error', 'ok', 'refused']
[PASS ] receipts/02-excursion-check.json: coverage declares completeness
[PASS ] receipts/02-excursion-check.json: anchor state is declared, not absent
[NOT-RUN] receipts/02-excursion-check.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS ] receipts/02-excursion-check.json: digest matches the manifest
[PASS ] receipts/02-excursion-check.json: chain link
[PASS ] receipts/02-excursion-check.json: output artifact 'excursions.json' matches
[PASS ] receipts/03-release.json: receipt format
[PASS ] receipts/03-release.json: bytes are canonical
[PASS ] receipts/03-release.json: required field 'format'
[PASS ] receipts/03-release.json: required field 'run_id'
[PASS ] receipts/03-release.json: required field 'stage'
[PASS ] receipts/03-release.json: required field 'prev'
[PASS ] receipts/03-release.json: required field 'time'
[PASS ] receipts/03-release.json: required field 'coverage'
[PASS ] receipts/03-release.json: required field 'emission'
[PASS ] receipts/03-release.json: required field 'anchor'
[PASS ] receipts/03-release.json: required field 'instrument'
[PASS ] receipts/03-release.json: required field 'inputs'
[PASS ] receipts/03-release.json: required field 'outputs'
[PASS ] receipts/03-release.json: required field 'assertions'
[PASS ] receipts/03-release.json: required field 'outcome'
[PASS ] receipts/03-release.json: time.started carries its zone
[PASS ] receipts/03-release.json: time.ended carries its zone
[PASS ] receipts/03-release.json: instrument is named and pinned
[PASS ] receipts/03-release.json: inputs/receipt:excursion_check declares a trust class
[PASS ] receipts/03-release.json: inputs/excursions.json declares a trust class
[PASS ] receipts/03-release.json: outputs/decision.json declares a trust class
[PASS ] receipts/03-release.json: outcome class is one of ['error', 'ok', 'refused']
[PASS ] receipts/03-release.json: coverage declares completeness
[PASS ] receipts/03-release.json: 'complete' is consistent with the stage lists
[PASS ] receipts/03-release.json: anchor state is declared, not absent
[NOT-RUN] receipts/03-release.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS ] receipts/03-release.json: digest matches the manifest
[PASS ] receipts/03-release.json: chain link
[FAIL ] receipts/03-release.json: output artifact 'decision.json' matches -- expected sha256:ef859d7a959e824c714948716216749164b563fb8e87a7901a76f962cb809e87, found sha256:aa79bfb8d85c45f06b446282dfae7285671177667a667be8d43fc55af32abdf7
[PASS ] manifest: chain head matches the last receipt
[PASS ] signatures/1.json: signature -- signed by demo key (public seed: proves the record wasn't changed since signing, not who signed it) (sha256:6e20550ae0dc6b4471d54336d09d74d14f3f623b735045eddd053c444ec3b14c)
83 pass, 1 fail, 3 not-run -> FAIL
a signature does not show: that the key wasn't stolen or misused; that the run's output is correct; when the record was signed (an anchor's job); who the person behind the key is (the trust list connects a key to a name)