Runs / P5 / p5-35-pump-outside-window-declined

p5-35-pump-outside-window-declined · P5

Declined at work_order

6 of 6 declared stages · recorded in the format stage-receipt-chain/0.3 · ran · received by this console

  • Records agree Yes
  • Ran as approved a straight-line run: there is no plan to compare
  • Signed by a known recorder Yes
  • Committed by a known time Not anchored
This answer's trail was checked on — each check that ran held.

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

The run stopped at work_order: the step declined by its own rule, and recorded why: a work order at 14:00 is outside the maintenance window 02:00 to 04:00. No declared step was left without a receipt.

The answer

This record has no step that wrote an answer, so there is no answer to show.

The trail

step 1 of 6

readings

What went in
readings.csv · 403 bytes
What came out
readings.json · 314 bytes
When
→

Completed.

Ran as vibration-sensor-reader, 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 6 · readings
Version
vibration-sensor-reader · 1.0.0
What went in
readings.csv · 403 bytes
sha256:b31a69c8c7c1…sha256:b31a69c8c7c1375c990a5ccada7f973ecc3ec763ec1e462785999068e07fab82
What came out
readings.json · 314 bytes
sha256:9789629fd791…sha256:9789629fd7912416eaa3ab6f0dda4447d15df9cc6c24e4f93fbf6ec5a30d1a9c
Fingerprint
sha256:577d198e22a8…sha256:577d198e22a89bda82ab43b67fe9691e4a15b73ff5edbaefb353bc038770dffd
Settings it ran with
{
 "data": "invented example data",
 "sensor_firmware": "3.1"
}
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","sensor_firmware":"3.1"}},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["readings","calibrate","features","anomaly_check","decision","work_order"],"emitting_stages":["readings"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"403","digest":"sha256:b31a69c8c7c1375c990a5ccada7f973ecc3ec763ec1e462785999068e07fab82","media_type":"text/csv","name":"readings.csv","trust_class":"externally-sourced"}],"instrument":{"config_digest":"sha256:e7480a040a25f096a053d9fd7f7d5c203382afb7df5001578b3af87748d10469","id":"vibration-sensor-reader","kind":"reader","manifest_digest":"sha256:9ae815e98180e82a3768279bf19db85c648daf69facde99cfbd4dbb3a18f2d0f","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"314","digest":"sha256:9789629fd7912416eaa3ab6f0dda4447d15df9cc6c24e4f93fbf6ec5a30d1a9c","media_type":"application/json","name":"readings.json","trust_class":"operator-authored"}],"prev":null,"run_id":"p5-35-pump-outside-window-declined","stage":{"index":"1","name":"readings"},"time":{"ended":"2026-10-25T12:52:10.088+00:00","started":"2026-10-25T12:52:10.084+00:00"}}
The check's own words
[PASS   ] receipts/01-readings.json: receipt format
[PASS   ] receipts/01-readings.json: bytes are canonical
[PASS   ] receipts/01-readings.json: required field 'format'
[PASS   ] receipts/01-readings.json: required field 'run_id'
[PASS   ] receipts/01-readings.json: required field 'stage'
[PASS   ] receipts/01-readings.json: required field 'prev'
[PASS   ] receipts/01-readings.json: required field 'time'
[PASS   ] receipts/01-readings.json: required field 'coverage'
[PASS   ] receipts/01-readings.json: required field 'emission'
[PASS   ] receipts/01-readings.json: required field 'anchor'
[PASS   ] receipts/01-readings.json: required field 'instrument'
[PASS   ] receipts/01-readings.json: required field 'inputs'
[PASS   ] receipts/01-readings.json: required field 'outputs'
[PASS   ] receipts/01-readings.json: required field 'assertions'
[PASS   ] receipts/01-readings.json: required field 'outcome'
[PASS   ] receipts/01-readings.json: time.started carries its zone
[PASS   ] receipts/01-readings.json: time.ended carries its zone
[PASS   ] receipts/01-readings.json: instrument is named and pinned
[PASS   ] receipts/01-readings.json: inputs/readings.csv declares a trust class
[PASS   ] receipts/01-readings.json: outputs/readings.json declares a trust class
[PASS   ] receipts/01-readings.json: assertions name their constants
[PASS   ] receipts/01-readings.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/01-readings.json: coverage declares completeness
[PASS   ] receipts/01-readings.json: anchor state is declared, not absent
[NOT-RUN] receipts/01-readings.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/01-readings.json: digest matches the manifest
[PASS   ] receipts/01-readings.json: chain link
[PASS   ] receipts/01-readings.json: output artifact 'readings.json' matches
step 2 of 6

calibrate

What went in
receipt:readings · 1349 bytes
readings.json · 314 bytes
What came out
calibrated.json · 314 bytes
When
→

Completed.

Ran as sensor-calibration, 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 2 of 6 · calibrate
Version
sensor-calibration · 1.0.0
What went in
receipt:readings · 1349 bytes
sha256:577d198e22a8…sha256:577d198e22a89bda82ab43b67fe9691e4a15b73ff5edbaefb353bc038770dffd
readings.json · 314 bytes
sha256:9789629fd791…sha256:9789629fd7912416eaa3ab6f0dda4447d15df9cc6c24e4f93fbf6ec5a30d1a9c
What came out
calibrated.json · 314 bytes
sha256:9789629fd791…sha256:9789629fd7912416eaa3ab6f0dda4447d15df9cc6c24e4f93fbf6ec5a30d1a9c
Fingerprint
sha256:04c28b11d44e…sha256:04c28b11d44e36bab49a22428fb01423b2cadf92fe72282033e008bf2a01612c
Settings it ran with
{}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["readings","calibrate","features","anomaly_check","decision","work_order"],"emitting_stages":["readings","calibrate"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1349","digest":"sha256:577d198e22a89bda82ab43b67fe9691e4a15b73ff5edbaefb353bc038770dffd","media_type":"application/json","name":"receipt:readings","trust_class":"operator-authored"},{"bytes":"314","digest":"sha256:9789629fd7912416eaa3ab6f0dda4447d15df9cc6c24e4f93fbf6ec5a30d1a9c","media_type":"application/json","name":"readings.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:2ab67ce494b5a7f019cd1d1673f16547a7402d351fb101b36b5a27b2a6310d2d","id":"sensor-calibration","kind":"transform","manifest_digest":"sha256:9ae815e98180e82a3768279bf19db85c648daf69facde99cfbd4dbb3a18f2d0f","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"314","digest":"sha256:9789629fd7912416eaa3ab6f0dda4447d15df9cc6c24e4f93fbf6ec5a30d1a9c","media_type":"application/json","name":"calibrated.json","trust_class":"operator-authored"}],"prev":"sha256:577d198e22a89bda82ab43b67fe9691e4a15b73ff5edbaefb353bc038770dffd","run_id":"p5-35-pump-outside-window-declined","stage":{"index":"2","name":"calibrate"},"time":{"ended":"2026-10-25T12:52:10.095+00:00","started":"2026-10-25T12:52:10.092+00:00"}}
The check's own words
[PASS   ] receipts/02-calibrate.json: receipt format
[PASS   ] receipts/02-calibrate.json: bytes are canonical
[PASS   ] receipts/02-calibrate.json: required field 'format'
[PASS   ] receipts/02-calibrate.json: required field 'run_id'
[PASS   ] receipts/02-calibrate.json: required field 'stage'
[PASS   ] receipts/02-calibrate.json: required field 'prev'
[PASS   ] receipts/02-calibrate.json: required field 'time'
[PASS   ] receipts/02-calibrate.json: required field 'coverage'
[PASS   ] receipts/02-calibrate.json: required field 'emission'
[PASS   ] receipts/02-calibrate.json: required field 'anchor'
[PASS   ] receipts/02-calibrate.json: required field 'instrument'
[PASS   ] receipts/02-calibrate.json: required field 'inputs'
[PASS   ] receipts/02-calibrate.json: required field 'outputs'
[PASS   ] receipts/02-calibrate.json: required field 'assertions'
[PASS   ] receipts/02-calibrate.json: required field 'outcome'
[PASS   ] receipts/02-calibrate.json: time.started carries its zone
[PASS   ] receipts/02-calibrate.json: time.ended carries its zone
[PASS   ] receipts/02-calibrate.json: instrument is named and pinned
[PASS   ] receipts/02-calibrate.json: inputs/receipt:readings declares a trust class
[PASS   ] receipts/02-calibrate.json: inputs/readings.json declares a trust class
[PASS   ] receipts/02-calibrate.json: outputs/calibrated.json declares a trust class
[PASS   ] receipts/02-calibrate.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/02-calibrate.json: coverage declares completeness
[PASS   ] receipts/02-calibrate.json: anchor state is declared, not absent
[NOT-RUN] receipts/02-calibrate.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/02-calibrate.json: digest matches the manifest
[PASS   ] receipts/02-calibrate.json: chain link
[PASS   ] receipts/02-calibrate.json: output artifact 'calibrated.json' matches
step 3 of 6

features

What went in
receipt:calibrate · 1563 bytes
calibrated.json · 314 bytes
What came out
features.json · 32 bytes
When
→

Completed.

Ran as vibration-features, 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 3 of 6 · features
Version
vibration-features · 1.0.0
What went in
receipt:calibrate · 1563 bytes
sha256:04c28b11d44e…sha256:04c28b11d44e36bab49a22428fb01423b2cadf92fe72282033e008bf2a01612c
calibrated.json · 314 bytes
sha256:9789629fd791…sha256:9789629fd7912416eaa3ab6f0dda4447d15df9cc6c24e4f93fbf6ec5a30d1a9c
What came out
features.json · 32 bytes
sha256:0070711bff29…sha256:0070711bff299d365c310c38768ae604aa08355f7520bd8d0d316a48d250f3a3
Fingerprint
sha256:4b8a09e00c01…sha256:4b8a09e00c01728399be7d17086ee3f2cdfc6ca5651cf291c82f93a9492900aa
Settings it ran with
{}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["readings","calibrate","features","anomaly_check","decision","work_order"],"emitting_stages":["readings","calibrate","features"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1563","digest":"sha256:04c28b11d44e36bab49a22428fb01423b2cadf92fe72282033e008bf2a01612c","media_type":"application/json","name":"receipt:calibrate","trust_class":"operator-authored"},{"bytes":"314","digest":"sha256:9789629fd7912416eaa3ab6f0dda4447d15df9cc6c24e4f93fbf6ec5a30d1a9c","media_type":"application/json","name":"calibrated.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:6732cb4e5b882f532d057f964abd4bb318cd286b6217b38542ec6dba20433daf","id":"vibration-features","kind":"transform","manifest_digest":"sha256:9ae815e98180e82a3768279bf19db85c648daf69facde99cfbd4dbb3a18f2d0f","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"32","digest":"sha256:0070711bff299d365c310c38768ae604aa08355f7520bd8d0d316a48d250f3a3","media_type":"application/json","name":"features.json","trust_class":"operator-authored"}],"prev":"sha256:04c28b11d44e36bab49a22428fb01423b2cadf92fe72282033e008bf2a01612c","run_id":"p5-35-pump-outside-window-declined","stage":{"index":"3","name":"features"},"time":{"ended":"2026-10-25T12:52:10.139+00:00","started":"2026-10-25T12:52:10.102+00:00"}}
The check's own words
[PASS   ] receipts/03-features.json: receipt format
[PASS   ] receipts/03-features.json: bytes are canonical
[PASS   ] receipts/03-features.json: required field 'format'
[PASS   ] receipts/03-features.json: required field 'run_id'
[PASS   ] receipts/03-features.json: required field 'stage'
[PASS   ] receipts/03-features.json: required field 'prev'
[PASS   ] receipts/03-features.json: required field 'time'
[PASS   ] receipts/03-features.json: required field 'coverage'
[PASS   ] receipts/03-features.json: required field 'emission'
[PASS   ] receipts/03-features.json: required field 'anchor'
[PASS   ] receipts/03-features.json: required field 'instrument'
[PASS   ] receipts/03-features.json: required field 'inputs'
[PASS   ] receipts/03-features.json: required field 'outputs'
[PASS   ] receipts/03-features.json: required field 'assertions'
[PASS   ] receipts/03-features.json: required field 'outcome'
[PASS   ] receipts/03-features.json: time.started carries its zone
[PASS   ] receipts/03-features.json: time.ended carries its zone
[PASS   ] receipts/03-features.json: instrument is named and pinned
[PASS   ] receipts/03-features.json: inputs/receipt:calibrate declares a trust class
[PASS   ] receipts/03-features.json: inputs/calibrated.json declares a trust class
[PASS   ] receipts/03-features.json: outputs/features.json declares a trust class
[PASS   ] receipts/03-features.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/03-features.json: coverage declares completeness
[PASS   ] receipts/03-features.json: anchor state is declared, not absent
[NOT-RUN] receipts/03-features.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/03-features.json: digest matches the manifest
[PASS   ] receipts/03-features.json: chain link
[PASS   ] receipts/03-features.json: output artifact 'features.json' matches
step 4 of 6

anomaly_check

What went in
receipt:features · 1573 bytes
features.json · 32 bytes
What came out
anomaly.json · 48 bytes
When
→

Completed.

Ran as rms-threshold, 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 4 of 6 · anomaly_check
Version
rms-threshold · 1.0.0
What went in
receipt:features · 1573 bytes
sha256:4b8a09e00c01…sha256:4b8a09e00c01728399be7d17086ee3f2cdfc6ca5651cf291c82f93a9492900aa
features.json · 32 bytes
sha256:0070711bff29…sha256:0070711bff299d365c310c38768ae604aa08355f7520bd8d0d316a48d250f3a3
What came out
anomaly.json · 48 bytes
sha256:0323cedc75fb…sha256:0323cedc75fb289b599a7e7a5a1dcf200b61407385d3e4b07c39c1f29f4d42c1
Fingerprint
sha256:b8e104937f33…sha256:b8e104937f33349241dfc1146ed0e8fa17400a0ba784d2f52891a3d565ae849a
Settings it ran with
{}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["readings","calibrate","features","anomaly_check","decision","work_order"],"emitting_stages":["readings","calibrate","features","anomaly_check"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1573","digest":"sha256:4b8a09e00c01728399be7d17086ee3f2cdfc6ca5651cf291c82f93a9492900aa","media_type":"application/json","name":"receipt:features","trust_class":"operator-authored"},{"bytes":"32","digest":"sha256:0070711bff299d365c310c38768ae604aa08355f7520bd8d0d316a48d250f3a3","media_type":"application/json","name":"features.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:6e8b380e81f16a07d404afe301b6a6a1229c2a7f57423456bad889eba5e43eb4","id":"rms-threshold","kind":"checker","manifest_digest":"sha256:9ae815e98180e82a3768279bf19db85c648daf69facde99cfbd4dbb3a18f2d0f","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"48","digest":"sha256:0323cedc75fb289b599a7e7a5a1dcf200b61407385d3e4b07c39c1f29f4d42c1","media_type":"application/json","name":"anomaly.json","trust_class":"operator-authored"}],"prev":"sha256:4b8a09e00c01728399be7d17086ee3f2cdfc6ca5651cf291c82f93a9492900aa","run_id":"p5-35-pump-outside-window-declined","stage":{"index":"4","name":"anomaly_check"},"time":{"ended":"2026-10-25T12:52:10.147+00:00","started":"2026-10-25T12:52:10.143+00:00"}}
The check's own words
[PASS   ] receipts/04-anomaly-check.json: receipt format
[PASS   ] receipts/04-anomaly-check.json: bytes are canonical
[PASS   ] receipts/04-anomaly-check.json: required field 'format'
[PASS   ] receipts/04-anomaly-check.json: required field 'run_id'
[PASS   ] receipts/04-anomaly-check.json: required field 'stage'
[PASS   ] receipts/04-anomaly-check.json: required field 'prev'
[PASS   ] receipts/04-anomaly-check.json: required field 'time'
[PASS   ] receipts/04-anomaly-check.json: required field 'coverage'
[PASS   ] receipts/04-anomaly-check.json: required field 'emission'
[PASS   ] receipts/04-anomaly-check.json: required field 'anchor'
[PASS   ] receipts/04-anomaly-check.json: required field 'instrument'
[PASS   ] receipts/04-anomaly-check.json: required field 'inputs'
[PASS   ] receipts/04-anomaly-check.json: required field 'outputs'
[PASS   ] receipts/04-anomaly-check.json: required field 'assertions'
[PASS   ] receipts/04-anomaly-check.json: required field 'outcome'
[PASS   ] receipts/04-anomaly-check.json: time.started carries its zone
[PASS   ] receipts/04-anomaly-check.json: time.ended carries its zone
[PASS   ] receipts/04-anomaly-check.json: instrument is named and pinned
[PASS   ] receipts/04-anomaly-check.json: inputs/receipt:features declares a trust class
[PASS   ] receipts/04-anomaly-check.json: inputs/features.json declares a trust class
[PASS   ] receipts/04-anomaly-check.json: outputs/anomaly.json declares a trust class
[PASS   ] receipts/04-anomaly-check.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/04-anomaly-check.json: coverage declares completeness
[PASS   ] receipts/04-anomaly-check.json: anchor state is declared, not absent
[NOT-RUN] receipts/04-anomaly-check.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/04-anomaly-check.json: digest matches the manifest
[PASS   ] receipts/04-anomaly-check.json: chain link
[PASS   ] receipts/04-anomaly-check.json: output artifact 'anomaly.json' matches
step 5 of 6

decision

What went in
receipt:anomaly_check · 1582 bytes
anomaly.json · 48 bytes
What came out
decision.json · 92 bytes
When
→

Completed.

Ran as maintenance-decision, 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 5 of 6 · decision
Version
maintenance-decision · 1.0.0
What went in
receipt:anomaly_check · 1582 bytes
sha256:b8e104937f33…sha256:b8e104937f33349241dfc1146ed0e8fa17400a0ba784d2f52891a3d565ae849a
anomaly.json · 48 bytes
sha256:0323cedc75fb…sha256:0323cedc75fb289b599a7e7a5a1dcf200b61407385d3e4b07c39c1f29f4d42c1
What came out
decision.json · 92 bytes
sha256:1bd8c761fd7a…sha256:1bd8c761fd7aeeaa5b0f7859d576798df74932bb3f04262e85d056cc505d482d
Fingerprint
sha256:8f4e69e67da0…sha256:8f4e69e67da0a183f9a9a87336fa0952d5d5b16d462205f945c675019e578e3e
Settings it ran with
{}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["readings","calibrate","features","anomaly_check","decision","work_order"],"emitting_stages":["readings","calibrate","features","anomaly_check","decision"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1582","digest":"sha256:b8e104937f33349241dfc1146ed0e8fa17400a0ba784d2f52891a3d565ae849a","media_type":"application/json","name":"receipt:anomaly_check","trust_class":"operator-authored"},{"bytes":"48","digest":"sha256:0323cedc75fb289b599a7e7a5a1dcf200b61407385d3e4b07c39c1f29f4d42c1","media_type":"application/json","name":"anomaly.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:acef87cfcdad05f33a9dc2dbf97f86a1c5fa1106339c0708f98a89d9187a0dcd","id":"maintenance-decision","kind":"rule","manifest_digest":"sha256:9ae815e98180e82a3768279bf19db85c648daf69facde99cfbd4dbb3a18f2d0f","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"92","digest":"sha256:1bd8c761fd7aeeaa5b0f7859d576798df74932bb3f04262e85d056cc505d482d","media_type":"application/json","name":"decision.json","trust_class":"operator-authored"}],"prev":"sha256:b8e104937f33349241dfc1146ed0e8fa17400a0ba784d2f52891a3d565ae849a","run_id":"p5-35-pump-outside-window-declined","stage":{"index":"5","name":"decision"},"time":{"ended":"2026-10-25T12:52:10.156+00:00","started":"2026-10-25T12:52:10.152+00:00"}}
The check's own words
[PASS   ] receipts/05-decision.json: receipt format
[PASS   ] receipts/05-decision.json: bytes are canonical
[PASS   ] receipts/05-decision.json: required field 'format'
[PASS   ] receipts/05-decision.json: required field 'run_id'
[PASS   ] receipts/05-decision.json: required field 'stage'
[PASS   ] receipts/05-decision.json: required field 'prev'
[PASS   ] receipts/05-decision.json: required field 'time'
[PASS   ] receipts/05-decision.json: required field 'coverage'
[PASS   ] receipts/05-decision.json: required field 'emission'
[PASS   ] receipts/05-decision.json: required field 'anchor'
[PASS   ] receipts/05-decision.json: required field 'instrument'
[PASS   ] receipts/05-decision.json: required field 'inputs'
[PASS   ] receipts/05-decision.json: required field 'outputs'
[PASS   ] receipts/05-decision.json: required field 'assertions'
[PASS   ] receipts/05-decision.json: required field 'outcome'
[PASS   ] receipts/05-decision.json: time.started carries its zone
[PASS   ] receipts/05-decision.json: time.ended carries its zone
[PASS   ] receipts/05-decision.json: instrument is named and pinned
[PASS   ] receipts/05-decision.json: inputs/receipt:anomaly_check declares a trust class
[PASS   ] receipts/05-decision.json: inputs/anomaly.json declares a trust class
[PASS   ] receipts/05-decision.json: outputs/decision.json declares a trust class
[PASS   ] receipts/05-decision.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/05-decision.json: coverage declares completeness
[PASS   ] receipts/05-decision.json: anchor state is declared, not absent
[NOT-RUN] receipts/05-decision.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/05-decision.json: digest matches the manifest
[PASS   ] receipts/05-decision.json: chain link
[PASS   ] receipts/05-decision.json: output artifact 'decision.json' matches
step 6 of 6

work_order

What went in
receipt:decision · 1597 bytes
decision.json · 92 bytes
What came out
nothing
When
→

It declined to answer, and says why: a work order at 14:00 is outside the maintenance window 02:00 to 04:00.

Ran as maintenance-window-policy, 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 6 of 6 · work_order
Version
maintenance-window-policy · 1.0.0
What went in
receipt:decision · 1597 bytes
sha256:8f4e69e67da0…sha256:8f4e69e67da0a183f9a9a87336fa0952d5d5b16d462205f945c675019e578e3e
decision.json · 92 bytes
sha256:1bd8c761fd7a…sha256:1bd8c761fd7aeeaa5b0f7859d576798df74932bb3f04262e85d056cc505d482d
What came out
nothing
Fingerprint
sha256:a950748d870b…sha256:a950748d870bf8991938ac2ba25e99bcb5df961f6b7f3585be33ee114dadfc7b
Settings it ran with
{}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{},"coverage":{"boundaries":[],"completeness":"complete","declared_stages":["readings","calibrate","features","anomaly_check","decision","work_order"],"emitting_stages":["readings","calibrate","features","anomaly_check","decision","work_order"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1597","digest":"sha256:8f4e69e67da0a183f9a9a87336fa0952d5d5b16d462205f945c675019e578e3e","media_type":"application/json","name":"receipt:decision","trust_class":"operator-authored"},{"bytes":"92","digest":"sha256:1bd8c761fd7aeeaa5b0f7859d576798df74932bb3f04262e85d056cc505d482d","media_type":"application/json","name":"decision.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:6958aced470692ea9ffd9a2e525cdd0796ffd81276e4c207ed8e5efe528776b9","id":"maintenance-window-policy","kind":"policy","manifest_digest":"sha256:9ae815e98180e82a3768279bf19db85c648daf69facde99cfbd4dbb3a18f2d0f","rederivable":"true","version":"1.0.0"},"outcome":{"class":"refused","reason":"a work order at 14:00 is outside the maintenance window 02:00 to 04:00"},"outputs":[],"prev":"sha256:8f4e69e67da0a183f9a9a87336fa0952d5d5b16d462205f945c675019e578e3e","run_id":"p5-35-pump-outside-window-declined","stage":{"index":"6","name":"work_order"},"time":{"ended":"2026-10-25T12:52:10.161+00:00","started":"2026-10-25T12:52:10.161+00:00"}}
The check's own words
[PASS   ] receipts/06-work-order.json: receipt format
[PASS   ] receipts/06-work-order.json: bytes are canonical
[PASS   ] receipts/06-work-order.json: required field 'format'
[PASS   ] receipts/06-work-order.json: required field 'run_id'
[PASS   ] receipts/06-work-order.json: required field 'stage'
[PASS   ] receipts/06-work-order.json: required field 'prev'
[PASS   ] receipts/06-work-order.json: required field 'time'
[PASS   ] receipts/06-work-order.json: required field 'coverage'
[PASS   ] receipts/06-work-order.json: required field 'emission'
[PASS   ] receipts/06-work-order.json: required field 'anchor'
[PASS   ] receipts/06-work-order.json: required field 'instrument'
[PASS   ] receipts/06-work-order.json: required field 'inputs'
[PASS   ] receipts/06-work-order.json: required field 'outputs'
[PASS   ] receipts/06-work-order.json: required field 'assertions'
[PASS   ] receipts/06-work-order.json: required field 'outcome'
[PASS   ] receipts/06-work-order.json: time.started carries its zone
[PASS   ] receipts/06-work-order.json: time.ended carries its zone
[PASS   ] receipts/06-work-order.json: instrument is named and pinned
[PASS   ] receipts/06-work-order.json: inputs/receipt:decision declares a trust class
[PASS   ] receipts/06-work-order.json: inputs/decision.json declares a trust class
[PASS   ] receipts/06-work-order.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/06-work-order.json: coverage declares completeness
[PASS   ] receipts/06-work-order.json: 'complete' is consistent with the stage lists
[PASS   ] receipts/06-work-order.json: anchor state is declared, not absent
[NOT-RUN] receipts/06-work-order.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/06-work-order.json: digest matches the manifest
[PASS   ] receipts/06-work-order.json: chain link

What could not be checked

  • Each declared step left a receipt, as the receipts themselves state.

  • This record held under the checks that ran. It has not been anchored, so it cannot be shown to be the record that was made — here is what anchoring would add.

    Anchored, it would read: this record existed by a stated date and hasn't changed since — checkable against an independent anchor.

The run, step by step