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
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.

The answer

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

The question, as recorded

The question's text is not part of this record package. It is identified by its fingerprint.

sha256:8c3df5048fd1…sha256:8c3df5048fd188a0063dac72b0e16c9fda8734ecea7fff2f7625361cd521de4d

The trail

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.

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 · 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
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.

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 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
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.

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

What could not be checked

  • Part of this run wasn't recorded. What is shown is what was recorded, and nothing more is claimed.

  • 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