measure
frame.json· 150 bytes
level.json· 23 bytes
Completed.
Ran as fill-level-camera
, version 1.0.0
.
Checked — it holds.
Held under the checks that ran; not anchored, so it can't be shown to be the record that was made.
Receipt · step 1 of 3 · measure
fill-level-camera·
1.0.0
frame.json· 150 bytes
sha256:e939844ba95e…
sha256:e939844ba95e5365ceea1d57a4549ffa4b432ea3ceb0e7b4b531874d4d9b050flevel.json· 23 bytes
sha256:040988526487…
sha256:0409885264871ff0430157dd0ff36d7ee6538ccd6871dd4bfa5aed628d535347sha256:696139f200cd…
sha256:696139f200cde01569da7998cb4502d53f6f94c28f634f16ba7e9943921ae6e9{
"data": "invented example data"
}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"}},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["measure","classify","reject_command"],"emitting_stages":["measure"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"150","digest":"sha256:e939844ba95e5365ceea1d57a4549ffa4b432ea3ceb0e7b4b531874d4d9b050f","media_type":"application/json","name":"frame.json","trust_class":"externally-sourced"}],"instrument":{"config_digest":"sha256:9a42b08e2137a675abb97734dcf58109d5b1907cc81dd660b7145e4db476a207","id":"fill-level-camera","kind":"measurement","manifest_digest":"sha256:1699f98ac5cde3962ce813773ab07f795fe38fef851d097a4ace9534c6016016","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"23","digest":"sha256:0409885264871ff0430157dd0ff36d7ee6538ccd6871dd4bfa5aed628d535347","media_type":"application/json","name":"level.json","trust_class":"operator-authored"}],"prev":null,"run_id":"p6-37-fill-exposure-changed","stage":{"index":"1","name":"measure"},"time":{"ended":"2026-10-25T12:52:10.252+00:00","started":"2026-10-25T12:52:10.248+00:00"}}The check's own words
[PASS ] receipts/01-measure.json: receipt format [PASS ] receipts/01-measure.json: bytes are canonical [PASS ] receipts/01-measure.json: required field 'format' [PASS ] receipts/01-measure.json: required field 'run_id' [PASS ] receipts/01-measure.json: required field 'stage' [PASS ] receipts/01-measure.json: required field 'prev' [PASS ] receipts/01-measure.json: required field 'time' [PASS ] receipts/01-measure.json: required field 'coverage' [PASS ] receipts/01-measure.json: required field 'emission' [PASS ] receipts/01-measure.json: required field 'anchor' [PASS ] receipts/01-measure.json: required field 'instrument' [PASS ] receipts/01-measure.json: required field 'inputs' [PASS ] receipts/01-measure.json: required field 'outputs' [PASS ] receipts/01-measure.json: required field 'assertions' [PASS ] receipts/01-measure.json: required field 'outcome' [PASS ] receipts/01-measure.json: time.started carries its zone [PASS ] receipts/01-measure.json: time.ended carries its zone [PASS ] receipts/01-measure.json: instrument is named and pinned [PASS ] receipts/01-measure.json: inputs/frame.json declares a trust class [PASS ] receipts/01-measure.json: outputs/level.json declares a trust class [PASS ] receipts/01-measure.json: assertions name their constants [PASS ] receipts/01-measure.json: outcome class is one of ['error', 'ok', 'refused'] [PASS ] receipts/01-measure.json: coverage declares completeness [PASS ] receipts/01-measure.json: anchor state is declared, not absent [NOT-RUN] receipts/01-measure.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality [PASS ] receipts/01-measure.json: digest matches the manifest [PASS ] receipts/01-measure.json: chain link [PASS ] receipts/01-measure.json: output artifact 'level.json' matches