Runs / P9 / p9-47-torque-tool-firmware-changed

p9-47-torque-tool-firmware-changed · P9

No difference found vs p9-46-torque-baseline

3 of 3 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

Records agree: this console's check held, with the run's output files required. Every check behind this is on Proof

The case

Run
p9-47-torque-tool-firmware-changed
ran
→
What it was for
read_tool_log → torque_check → station_decision
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

What the evidence establishes

Each rung is a separate question, with its own evidence.

Records agreeYes · 84 checks made — all hold.
Signed by a known recorderYes · demo key (public seed: proves the record wasn't changed since signing, not who signed it) ·
sha256:6e20550ae0dc…sha256:6e20550ae0dc6b4471d54336d09d74d14f3f623b735045eddd053c444ec3b14c
Nothing declared is missingYes · Each declared step left a receipt, as the receipts themselves state.
Ran as approveda straight-line run: there is no plan to compare
Re-runnable stages reproducedNot checked · No re-check from the record was run, so this page does not say whether anything comes out the same.
Action authorized, effect confirmedNo records · This console does not record authorization.
Committed by a known timeNot anchored · no anchor beside the chain

None of these says the run's output or action was correct.

The execution graph

These verdicts come from the latest comparison of this run against the baseline p9-46-torque-baseline, stored . Open that comparison

recorded as a straight line (no graph recorded)

Show as table
NodeStageRecorded position
read_tool_logread_tool_log1
torque_checktorque_check2
station_decisionstation_decision3
FromTo
read_tool_logtorque_check
torque_checkstation_decision

A link shows which recorded output a stage read. It does not by itself prove that one stage caused the next.

Recorded order

What happened, in the order the receipts give

Held under the checks that ran; not anchored, so none of these steps can be shown to be the record that was made.

StepWhenWhat was checked and what was notOutcome
read_tool_log
step 1 of 3
→

Checked — it holds.

Completed.
torque_check
step 2 of 3
→

Checked — it holds.

Completed.
station_decision
step 3 of 3
→

Checked — it holds.

Completed.
Receipt · step 1 of 3 · read_tool_log
step 1 of 3

read_tool_log

What went in
tool_log.csv · 61 bytes
What came out
torques.json · 55 bytes
When
→

Completed.

Ran as tightening-tool-log, version 1.0.0.

Receipt · step 1 of 3 · read_tool_log
Version
tightening-tool-log · 1.0.0
What went in
tool_log.csv · 61 bytes
sha256:8313fc7e9e28…sha256:8313fc7e9e282650eb19512df0a25195e4d8b7f7db59e4cc9e6f1d130e186222
What came out
torques.json · 55 bytes
sha256:d8b870178f9c…sha256:d8b870178f9c2d8bd83948ec20abf944879de397747a3b91ef3858d7f5f7bebd
Fingerprint
sha256:9f0210f8e8d0…sha256:9f0210f8e8d017a94fe14d0b0e9144dde6f72019b478fcdd522d982015f5e142
Settings it ran with
{
 "data": "invented example data",
 "tool_firmware": "4.3"
}
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","tool_firmware":"4.3"}},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["read_tool_log","torque_check","station_decision"],"emitting_stages":["read_tool_log"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"61","digest":"sha256:8313fc7e9e282650eb19512df0a25195e4d8b7f7db59e4cc9e6f1d130e186222","media_type":"text/csv","name":"tool_log.csv","trust_class":"externally-sourced"}],"instrument":{"config_digest":"sha256:e52725fc30368946bba73409c4d1d39f204841542ee3d464d5047fda3a826156","id":"tightening-tool-log","kind":"reader","manifest_digest":"sha256:a93c6c03a55d10a82c5f25ffbc7dc651a36aed7d5f914fcf436d0a1d7930895d","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"55","digest":"sha256:d8b870178f9c2d8bd83948ec20abf944879de397747a3b91ef3858d7f5f7bebd","media_type":"application/json","name":"torques.json","trust_class":"operator-authored"}],"prev":null,"run_id":"p9-47-torque-tool-firmware-changed","stage":{"index":"1","name":"read_tool_log"},"time":{"ended":"2026-10-25T12:52:11.510+00:00","started":"2026-10-25T12:52:11.506+00:00"}}
The check's own words
[PASS   ] receipts/01-read-tool-log.json: receipt format
[PASS   ] receipts/01-read-tool-log.json: bytes are canonical
[PASS   ] receipts/01-read-tool-log.json: required field 'format'
[PASS   ] receipts/01-read-tool-log.json: required field 'run_id'
[PASS   ] receipts/01-read-tool-log.json: required field 'stage'
[PASS   ] receipts/01-read-tool-log.json: required field 'prev'
[PASS   ] receipts/01-read-tool-log.json: required field 'time'
[PASS   ] receipts/01-read-tool-log.json: required field 'coverage'
[PASS   ] receipts/01-read-tool-log.json: required field 'emission'
[PASS   ] receipts/01-read-tool-log.json: required field 'anchor'
[PASS   ] receipts/01-read-tool-log.json: required field 'instrument'
[PASS   ] receipts/01-read-tool-log.json: required field 'inputs'
[PASS   ] receipts/01-read-tool-log.json: required field 'outputs'
[PASS   ] receipts/01-read-tool-log.json: required field 'assertions'
[PASS   ] receipts/01-read-tool-log.json: required field 'outcome'
[PASS   ] receipts/01-read-tool-log.json: time.started carries its zone
[PASS   ] receipts/01-read-tool-log.json: time.ended carries its zone
[PASS   ] receipts/01-read-tool-log.json: instrument is named and pinned
[PASS   ] receipts/01-read-tool-log.json: inputs/tool_log.csv declares a trust class
[PASS   ] receipts/01-read-tool-log.json: outputs/torques.json declares a trust class
[PASS   ] receipts/01-read-tool-log.json: assertions name their constants
[PASS   ] receipts/01-read-tool-log.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/01-read-tool-log.json: coverage declares completeness
[PASS   ] receipts/01-read-tool-log.json: anchor state is declared, not absent
[NOT-RUN] receipts/01-read-tool-log.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/01-read-tool-log.json: digest matches the manifest
[PASS   ] receipts/01-read-tool-log.json: chain link
[PASS   ] receipts/01-read-tool-log.json: output artifact 'torques.json' matches
Receipt · step 2 of 3 · torque_check
step 2 of 3

torque_check

What went in
receipt:read_tool_log · 1326 bytes
torques.json · 55 bytes
What came out
check.json · 43 bytes
When
→

Completed.

Ran as torque-window-check, version 1.0.0.

Receipt · step 2 of 3 · torque_check
Version
torque-window-check · 1.0.0
What went in
receipt:read_tool_log · 1326 bytes
sha256:9f0210f8e8d0…sha256:9f0210f8e8d017a94fe14d0b0e9144dde6f72019b478fcdd522d982015f5e142
torques.json · 55 bytes
sha256:d8b870178f9c…sha256:d8b870178f9c2d8bd83948ec20abf944879de397747a3b91ef3858d7f5f7bebd
What came out
check.json · 43 bytes
sha256:517dfe129ffd…sha256:517dfe129ffdcf05e5124adf152e13abe1bfca33efe10c66878a3e89e1ded519
Fingerprint
sha256:35f5549a1127…sha256:35f5549a11272589d00a9c6ea4ae8d0543cada2afb4d0cd0470e3ebf571f5a1f
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":["read_tool_log","torque_check","station_decision"],"emitting_stages":["read_tool_log","torque_check"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1326","digest":"sha256:9f0210f8e8d017a94fe14d0b0e9144dde6f72019b478fcdd522d982015f5e142","media_type":"application/json","name":"receipt:read_tool_log","trust_class":"operator-authored"},{"bytes":"55","digest":"sha256:d8b870178f9c2d8bd83948ec20abf944879de397747a3b91ef3858d7f5f7bebd","media_type":"application/json","name":"torques.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:49edc4349b5dcd3f385d86710462ef0f414ae9db232f31c33a54b317e09d9d67","id":"torque-window-check","kind":"checker","manifest_digest":"sha256:a93c6c03a55d10a82c5f25ffbc7dc651a36aed7d5f914fcf436d0a1d7930895d","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"43","digest":"sha256:517dfe129ffdcf05e5124adf152e13abe1bfca33efe10c66878a3e89e1ded519","media_type":"application/json","name":"check.json","trust_class":"operator-authored"}],"prev":"sha256:9f0210f8e8d017a94fe14d0b0e9144dde6f72019b478fcdd522d982015f5e142","run_id":"p9-47-torque-tool-firmware-changed","stage":{"index":"2","name":"torque_check"},"time":{"ended":"2026-10-25T12:52:11.520+00:00","started":"2026-10-25T12:52:11.517+00:00"}}
The check's own words
[PASS   ] receipts/02-torque-check.json: receipt format
[PASS   ] receipts/02-torque-check.json: bytes are canonical
[PASS   ] receipts/02-torque-check.json: required field 'format'
[PASS   ] receipts/02-torque-check.json: required field 'run_id'
[PASS   ] receipts/02-torque-check.json: required field 'stage'
[PASS   ] receipts/02-torque-check.json: required field 'prev'
[PASS   ] receipts/02-torque-check.json: required field 'time'
[PASS   ] receipts/02-torque-check.json: required field 'coverage'
[PASS   ] receipts/02-torque-check.json: required field 'emission'
[PASS   ] receipts/02-torque-check.json: required field 'anchor'
[PASS   ] receipts/02-torque-check.json: required field 'instrument'
[PASS   ] receipts/02-torque-check.json: required field 'inputs'
[PASS   ] receipts/02-torque-check.json: required field 'outputs'
[PASS   ] receipts/02-torque-check.json: required field 'assertions'
[PASS   ] receipts/02-torque-check.json: required field 'outcome'
[PASS   ] receipts/02-torque-check.json: time.started carries its zone
[PASS   ] receipts/02-torque-check.json: time.ended carries its zone
[PASS   ] receipts/02-torque-check.json: instrument is named and pinned
[PASS   ] receipts/02-torque-check.json: inputs/receipt:read_tool_log declares a trust class
[PASS   ] receipts/02-torque-check.json: inputs/torques.json declares a trust class
[PASS   ] receipts/02-torque-check.json: outputs/check.json declares a trust class
[PASS   ] receipts/02-torque-check.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/02-torque-check.json: coverage declares completeness
[PASS   ] receipts/02-torque-check.json: anchor state is declared, not absent
[NOT-RUN] receipts/02-torque-check.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/02-torque-check.json: digest matches the manifest
[PASS   ] receipts/02-torque-check.json: chain link
[PASS   ] receipts/02-torque-check.json: output artifact 'check.json' matches
Receipt · step 3 of 3 · station_decision
step 3 of 3

station_decision

What went in
receipt:torque_check · 1546 bytes
check.json · 43 bytes
What came out
decision.json · 39 bytes
When
→

Completed.

Ran as station-rule, version 1.0.0.

Receipt · step 3 of 3 · station_decision
Version
station-rule · 1.0.0
What went in
receipt:torque_check · 1546 bytes
sha256:35f5549a1127…sha256:35f5549a11272589d00a9c6ea4ae8d0543cada2afb4d0cd0470e3ebf571f5a1f
check.json · 43 bytes
sha256:517dfe129ffd…sha256:517dfe129ffdcf05e5124adf152e13abe1bfca33efe10c66878a3e89e1ded519
What came out
decision.json · 39 bytes
sha256:580eeadf9fb0…sha256:580eeadf9fb049021c4c02e0ce924bc66826374317794d319100db13069e9092
Fingerprint
sha256:6e51903310a5…sha256:6e51903310a5bc5aa3c90f2af80787e8fe60cc14d742970727688ffa1bf50292
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":["read_tool_log","torque_check","station_decision"],"emitting_stages":["read_tool_log","torque_check","station_decision"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1546","digest":"sha256:35f5549a11272589d00a9c6ea4ae8d0543cada2afb4d0cd0470e3ebf571f5a1f","media_type":"application/json","name":"receipt:torque_check","trust_class":"operator-authored"},{"bytes":"43","digest":"sha256:517dfe129ffdcf05e5124adf152e13abe1bfca33efe10c66878a3e89e1ded519","media_type":"application/json","name":"check.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:e1d166443dbb86ded7553954dd2cb53a43988adc15f9eede3bd00b7fd50e3702","id":"station-rule","kind":"rule","manifest_digest":"sha256:a93c6c03a55d10a82c5f25ffbc7dc651a36aed7d5f914fcf436d0a1d7930895d","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"39","digest":"sha256:580eeadf9fb049021c4c02e0ce924bc66826374317794d319100db13069e9092","media_type":"application/json","name":"decision.json","trust_class":"operator-authored"}],"prev":"sha256:35f5549a11272589d00a9c6ea4ae8d0543cada2afb4d0cd0470e3ebf571f5a1f","run_id":"p9-47-torque-tool-firmware-changed","stage":{"index":"3","name":"station_decision"},"time":{"ended":"2026-10-25T12:52:11.529+00:00","started":"2026-10-25T12:52:11.526+00:00"}}
The check's own words
[PASS   ] receipts/03-station-decision.json: receipt format
[PASS   ] receipts/03-station-decision.json: bytes are canonical
[PASS   ] receipts/03-station-decision.json: required field 'format'
[PASS   ] receipts/03-station-decision.json: required field 'run_id'
[PASS   ] receipts/03-station-decision.json: required field 'stage'
[PASS   ] receipts/03-station-decision.json: required field 'prev'
[PASS   ] receipts/03-station-decision.json: required field 'time'
[PASS   ] receipts/03-station-decision.json: required field 'coverage'
[PASS   ] receipts/03-station-decision.json: required field 'emission'
[PASS   ] receipts/03-station-decision.json: required field 'anchor'
[PASS   ] receipts/03-station-decision.json: required field 'instrument'
[PASS   ] receipts/03-station-decision.json: required field 'inputs'
[PASS   ] receipts/03-station-decision.json: required field 'outputs'
[PASS   ] receipts/03-station-decision.json: required field 'assertions'
[PASS   ] receipts/03-station-decision.json: required field 'outcome'
[PASS   ] receipts/03-station-decision.json: time.started carries its zone
[PASS   ] receipts/03-station-decision.json: time.ended carries its zone
[PASS   ] receipts/03-station-decision.json: instrument is named and pinned
[PASS   ] receipts/03-station-decision.json: inputs/receipt:torque_check declares a trust class
[PASS   ] receipts/03-station-decision.json: inputs/check.json declares a trust class
[PASS   ] receipts/03-station-decision.json: outputs/decision.json declares a trust class
[PASS   ] receipts/03-station-decision.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/03-station-decision.json: coverage declares completeness
[PASS   ] receipts/03-station-decision.json: 'complete' is consistent with the stage lists
[PASS   ] receipts/03-station-decision.json: anchor state is declared, not absent
[NOT-RUN] receipts/03-station-decision.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/03-station-decision.json: digest matches the manifest
[PASS   ] receipts/03-station-decision.json: chain link
[PASS   ] receipts/03-station-decision.json: output artifact 'decision.json' matches

Where it changed

The two runs are the same at every step.

What could be re-checked

No re-check from the record was run, so this page does not say whether anything comes out the same.

This record shows what was verified and evaluated at the time — not what was ultimately true.

Where this answer came from