Runs / P4 / p4-31-reply-60-days-declined

p4-31-reply-60-days-declined · P4

Declined at policy_check

3 of 4 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
p4-31-reply-60-days-declined
ran
→
What it was for
question → draft → policy_check → send
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 policy_check: the step declined by its own rule, and recorded why: a refund window of 60 days is longer than the policy allows (30 days). Declared steps left without a receipt: send.

What the evidence establishes

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

Records agreeYes · 83 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 missingNot reached · Stopped at policy_check. Declared steps not reached: send.
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

recorded as a straight line (no graph recorded)

Show as table
NodeStageRecorded position
questionquestion1
draftdraft2
policy_checkpolicy_check3
FromTo
draftpolicy_check
questiondraft

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
question
step 1 of 3
→

Checked — it holds.

Completed.
draft
step 2 of 3
→

Checked — it holds.

Completed.
policy_check
step 3 of 3
→

Checked — it holds.

declined — a refund window of 60 days is longer than the policy allows (30 days)
Receipt · step 1 of 3 · question
step 1 of 3

question

What went in
question · 87 bytes
ticket · 159 bytes
What came out
question.json · 86 bytes
When
→

Completed.

Ran as ticket-intake, version 1.0.0.

Receipt · step 1 of 3 · question
Version
ticket-intake · 1.0.0
What went in
question · 87 bytes
sha256:8c3df5048fd1…sha256:8c3df5048fd188a0063dac72b0e16c9fda8734ecea7fff2f7625361cd521de4d
ticket · 159 bytes
sha256:87015ed0122f…sha256:87015ed0122f6278c29ae696b849faacf4f66fe45fd9eae151b05cef5ce3ce22
What came out
question.json · 86 bytes
sha256:4a5490ea1248…sha256:4a5490ea1248c2b62c88ddad88a32655312a3571bcefff03180711a8e86e4d78
Fingerprint
sha256:f9d9283946cc…sha256:f9d9283946ccea8140f71c274a16061f84badb246b42bd4a3fdad81a341d0662
Settings it ran with
{
 "onetrace.kept_inputs": "ticket"
}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{"constants":{"onetrace.kept_inputs":"ticket"}},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["question","draft","policy_check","send"],"emitting_stages":["question"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"87","digest":"sha256:8c3df5048fd188a0063dac72b0e16c9fda8734ecea7fff2f7625361cd521de4d","media_type":"application/json","name":"question","trust_class":"operator-authored"},{"bytes":"159","digest":"sha256:87015ed0122f6278c29ae696b849faacf4f66fe45fd9eae151b05cef5ce3ce22","media_type":"application/json","name":"ticket","trust_class":"externally-sourced"}],"instrument":{"config_digest":"sha256:388eef47ed64d7880d08c4fec9370078db79093951d9fbe98cbf5f128138b5b0","id":"ticket-intake","kind":"reader","manifest_digest":"sha256:9171dab9f5f0714257e71310cf08777e66d71816f9061e2914c84fb0bf5c6352","rederivable":"true","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"86","digest":"sha256:4a5490ea1248c2b62c88ddad88a32655312a3571bcefff03180711a8e86e4d78","media_type":"application/json","name":"question.json","trust_class":"operator-authored"}],"prev":null,"run_id":"p4-31-reply-60-days-declined","stage":{"index":"1","name":"question"},"time":{"ended":"2026-10-25T12:52:09.789+00:00","started":"2026-10-25T12:52:09.780+00:00"}}
The check's own words
[PASS   ] receipts/01-question.json: receipt format
[PASS   ] receipts/01-question.json: bytes are canonical
[PASS   ] receipts/01-question.json: required field 'format'
[PASS   ] receipts/01-question.json: required field 'run_id'
[PASS   ] receipts/01-question.json: required field 'stage'
[PASS   ] receipts/01-question.json: required field 'prev'
[PASS   ] receipts/01-question.json: required field 'time'
[PASS   ] receipts/01-question.json: required field 'coverage'
[PASS   ] receipts/01-question.json: required field 'emission'
[PASS   ] receipts/01-question.json: required field 'anchor'
[PASS   ] receipts/01-question.json: required field 'instrument'
[PASS   ] receipts/01-question.json: required field 'inputs'
[PASS   ] receipts/01-question.json: required field 'outputs'
[PASS   ] receipts/01-question.json: required field 'assertions'
[PASS   ] receipts/01-question.json: required field 'outcome'
[PASS   ] receipts/01-question.json: time.started carries its zone
[PASS   ] receipts/01-question.json: time.ended carries its zone
[PASS   ] receipts/01-question.json: instrument is named and pinned
[PASS   ] receipts/01-question.json: inputs/question declares a trust class
[PASS   ] receipts/01-question.json: inputs/ticket declares a trust class
[PASS   ] receipts/01-question.json: outputs/question.json declares a trust class
[PASS   ] receipts/01-question.json: assertions name their constants
[PASS   ] receipts/01-question.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/01-question.json: coverage declares completeness
[PASS   ] receipts/01-question.json: anchor state is declared, not absent
[NOT-RUN] receipts/01-question.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/01-question.json: digest matches the manifest
[PASS   ] receipts/01-question.json: chain link
[PASS   ] receipts/01-question.json: output artifact 'question.json' matches
Receipt · step 2 of 3 · draft
step 2 of 3

draft

What went in
receipt:question · 1460 bytes
question.json · 86 bytes
What came out
draft.json · 190 bytes
When
→

Completed.

The model step is recorded, not replayable.

Ran as reply-stub, version 1.0.0.

Receipt · step 2 of 3 · draft
Version
reply-stub · 1.0.0
What went in
receipt:question · 1460 bytes
sha256:f9d9283946cc…sha256:f9d9283946ccea8140f71c274a16061f84badb246b42bd4a3fdad81a341d0662
question.json · 86 bytes
sha256:4a5490ea1248…sha256:4a5490ea1248c2b62c88ddad88a32655312a3571bcefff03180711a8e86e4d78
What came out
draft.json · 190 bytes
sha256:28ee91f1478b…sha256:28ee91f1478b0243c2989623f4d63fe0575538923c7bfc2832fb350556baa202
Fingerprint
sha256:d52124cd0c99…sha256:d52124cd0c99d1ce0eb3b11b445f57f2cab39b99f83faac12d366c81aef9ceb5
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":["question","draft","policy_check","send"],"emitting_stages":["question","draft"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1460","digest":"sha256:f9d9283946ccea8140f71c274a16061f84badb246b42bd4a3fdad81a341d0662","media_type":"application/json","name":"receipt:question","trust_class":"operator-authored"},{"bytes":"86","digest":"sha256:4a5490ea1248c2b62c88ddad88a32655312a3571bcefff03180711a8e86e4d78","media_type":"application/json","name":"question.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:a6ca0a7bdd490d3e2fe2b9d3dcb0cbe4b0b5f8ba71633003e1623c0ec595720c","id":"reply-stub","kind":"model-stub","manifest_digest":"sha256:9171dab9f5f0714257e71310cf08777e66d71816f9061e2914c84fb0bf5c6352","rederivable":"false","rederivable_note":"a stub standing in for a sampled model call: its wording is picked by a seed that changes per run, so its output is recorded, not replayed","version":"1.0.0"},"outcome":{"class":"ok"},"outputs":[{"bytes":"190","digest":"sha256:28ee91f1478b0243c2989623f4d63fe0575538923c7bfc2832fb350556baa202","media_type":"application/json","name":"draft.json","trust_class":"operator-authored"}],"prev":"sha256:f9d9283946ccea8140f71c274a16061f84badb246b42bd4a3fdad81a341d0662","run_id":"p4-31-reply-60-days-declined","stage":{"index":"2","name":"draft"},"time":{"ended":"2026-10-25T12:52:09.795+00:00","started":"2026-10-25T12:52:09.793+00:00"}}
The check's own words
[PASS   ] receipts/02-draft.json: receipt format
[PASS   ] receipts/02-draft.json: bytes are canonical
[PASS   ] receipts/02-draft.json: required field 'format'
[PASS   ] receipts/02-draft.json: required field 'run_id'
[PASS   ] receipts/02-draft.json: required field 'stage'
[PASS   ] receipts/02-draft.json: required field 'prev'
[PASS   ] receipts/02-draft.json: required field 'time'
[PASS   ] receipts/02-draft.json: required field 'coverage'
[PASS   ] receipts/02-draft.json: required field 'emission'
[PASS   ] receipts/02-draft.json: required field 'anchor'
[PASS   ] receipts/02-draft.json: required field 'instrument'
[PASS   ] receipts/02-draft.json: required field 'inputs'
[PASS   ] receipts/02-draft.json: required field 'outputs'
[PASS   ] receipts/02-draft.json: required field 'assertions'
[PASS   ] receipts/02-draft.json: required field 'outcome'
[PASS   ] receipts/02-draft.json: time.started carries its zone
[PASS   ] receipts/02-draft.json: time.ended carries its zone
[PASS   ] receipts/02-draft.json: instrument is named and pinned
[PASS   ] receipts/02-draft.json: inputs/receipt:question declares a trust class
[PASS   ] receipts/02-draft.json: inputs/question.json declares a trust class
[PASS   ] receipts/02-draft.json: outputs/draft.json declares a trust class
[PASS   ] receipts/02-draft.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/02-draft.json: coverage declares completeness
[PASS   ] receipts/02-draft.json: anchor state is declared, not absent
[NOT-RUN] receipts/02-draft.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/02-draft.json: digest matches the manifest
[PASS   ] receipts/02-draft.json: chain link
[PASS   ] receipts/02-draft.json: output artifact 'draft.json' matches
Receipt · step 3 of 3 · policy_check
step 3 of 3

policy_check

What went in
receipt:draft · 1664 bytes
draft.json · 190 bytes
What came out
nothing
When
→

It declined to answer, and says why: a refund window of 60 days is longer than the policy allows (30 days).

Ran as refund-policy, version 1.0.0.

Receipt · step 3 of 3 · policy_check
Version
refund-policy · 1.0.0
What went in
receipt:draft · 1664 bytes
sha256:d52124cd0c99…sha256:d52124cd0c99d1ce0eb3b11b445f57f2cab39b99f83faac12d366c81aef9ceb5
draft.json · 190 bytes
sha256:28ee91f1478b…sha256:28ee91f1478b0243c2989623f4d63fe0575538923c7bfc2832fb350556baa202
What came out
nothing
Fingerprint
sha256:3ef5c66ce7d4…sha256:3ef5c66ce7d45a10c450824eebcbc82b018012c20fab30fd0583111788481308
Settings it ran with
{
 "refund_days": "60"
}
The receipt, exactly as recorded
{"anchor":{"reason":"a demo record; anchoring is not part of this demo","state":"unanchored"},"assertions":{"constants":{"refund_days":"60"}},"coverage":{"boundaries":[],"completeness":"incomplete","declared_stages":["question","draft","policy_check","send"],"emitting_stages":["question","draft","policy_check"]},"digest_source":"emitter","emission":{"gaps":[],"policy":"fail-closed"},"format":"stage-receipt/0.3","inputs":[{"bytes":"1664","digest":"sha256:d52124cd0c99d1ce0eb3b11b445f57f2cab39b99f83faac12d366c81aef9ceb5","media_type":"application/json","name":"receipt:draft","trust_class":"operator-authored"},{"bytes":"190","digest":"sha256:28ee91f1478b0243c2989623f4d63fe0575538923c7bfc2832fb350556baa202","media_type":"application/json","name":"draft.json","trust_class":"operator-authored"}],"instrument":{"config_digest":"sha256:15365411adadf0ba324da9c280f369991f88ba8140d4f79688027aa3ea180e6e","id":"refund-policy","kind":"checker","manifest_digest":"sha256:9171dab9f5f0714257e71310cf08777e66d71816f9061e2914c84fb0bf5c6352","rederivable":"true","version":"1.0.0"},"outcome":{"class":"refused","reason":"a refund window of 60 days is longer than the policy allows (30 days)"},"outputs":[],"prev":"sha256:d52124cd0c99d1ce0eb3b11b445f57f2cab39b99f83faac12d366c81aef9ceb5","run_id":"p4-31-reply-60-days-declined","stage":{"index":"3","name":"policy_check"},"time":{"ended":"2026-10-25T12:52:09.817+00:00","started":"2026-10-25T12:52:09.817+00:00"}}
The check's own words
[PASS   ] receipts/03-policy-check.json: receipt format
[PASS   ] receipts/03-policy-check.json: bytes are canonical
[PASS   ] receipts/03-policy-check.json: required field 'format'
[PASS   ] receipts/03-policy-check.json: required field 'run_id'
[PASS   ] receipts/03-policy-check.json: required field 'stage'
[PASS   ] receipts/03-policy-check.json: required field 'prev'
[PASS   ] receipts/03-policy-check.json: required field 'time'
[PASS   ] receipts/03-policy-check.json: required field 'coverage'
[PASS   ] receipts/03-policy-check.json: required field 'emission'
[PASS   ] receipts/03-policy-check.json: required field 'anchor'
[PASS   ] receipts/03-policy-check.json: required field 'instrument'
[PASS   ] receipts/03-policy-check.json: required field 'inputs'
[PASS   ] receipts/03-policy-check.json: required field 'outputs'
[PASS   ] receipts/03-policy-check.json: required field 'assertions'
[PASS   ] receipts/03-policy-check.json: required field 'outcome'
[PASS   ] receipts/03-policy-check.json: time.started carries its zone
[PASS   ] receipts/03-policy-check.json: time.ended carries its zone
[PASS   ] receipts/03-policy-check.json: instrument is named and pinned
[PASS   ] receipts/03-policy-check.json: inputs/receipt:draft declares a trust class
[PASS   ] receipts/03-policy-check.json: inputs/draft.json declares a trust class
[PASS   ] receipts/03-policy-check.json: assertions name their constants
[PASS   ] receipts/03-policy-check.json: outcome class is one of ['error', 'ok', 'refused']
[PASS   ] receipts/03-policy-check.json: coverage declares completeness
[PASS   ] receipts/03-policy-check.json: anchor state is declared, not absent
[NOT-RUN] receipts/03-policy-check.json: originality -- record is declared unanchored; this verifier can establish consistency, not originality
[PASS   ] receipts/03-policy-check.json: digest matches the manifest
[PASS   ] receipts/03-policy-check.json: chain link

Where it changed

No comparison with another run was made, so this page does not say where anything changed.

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