Receipt fields

The receipt ships on every call. Fields are grouped by customer importance; a field populates only when the stage behind it ran, and a group with no set members does not serialize. Absence is honest telemetry: no placeholders, no "not yet available" strings.

headline

FieldPopulated whenProvesDoes not prove
headline.squeeze_modealwayswhich mode executedthat a lower rung was not silently used (there is no silent fallback)
headline.ratioalwaysthe realized compression: output chars / input charsthat the output is faithful - check quality

integrity

FieldPopulated whenProvesDoes not prove
integrity.raw_sha256alwaysthe exact input bytes hashedanything about the output
integrity.output_sha256alwaysthe exact output bytes hashedanything about the input
integrity.output_is_subsequenceall three shipped modesthe output is obtainable from the input by deleting bytes only (false when a transform inserted bytes, e.g. the JSON reform)that the surviving bytes are the right bytes - subset-ness is not fidelity

The subsequence check is client-verifiable: run the same two-pointer check on the input and output you hold.

counts

FieldPopulated whenProvesDoes not prove
counts.kept_span_counttoken pruning ranhow many distinct survivor runs the pruner keptwhere the spans are (coordinates are not disclosed)
counts.l2_skippedtoken pruning was skippedwhy: the JSON reform was the compression, so target_ratio was unreachableanything when absent
counts.pins_protectedtoken pruning ranper-class count of protected surfaces (NUMERIC, NEGATION, NAMED_ENTITY, REGISTER, TEMPORAL, LITERAL, IDENTIFIER) kept wholethat every fact you care about was pinned
counts.windows_totalthe NLI stage ranthe full-coverage window count of the entailment checkthe outcome per window
counts.exact_matchesthe NLI stage ranhow many windows were verbatim recoverable, no model call neededthe rest of the windows
counts.windows_below_thresholdthe NLI stage ranthe blast radius: evaluated windows scoring below the acceptance thresholdthat a window above threshold is semantically sufficient for your task

quality

FieldPopulated whenProvesDoes not prove
quality.fidelity_scorethe NLI stage ranevidence-retention posterior, weighted mean over windowsthe worst case - read min_window_posterior for gating
quality.min_window_posteriorthe NLI stage ranthe worst evaluated window: the gate fieldcoverage - check the coverage fields
quality.relaxed_ratiothe auto-relax loop triggeredthe first-attempt (strictest) ratio the fidelity gate rejectedanything when absent
quality.relax_stepsthe auto-relax loop triggeredhow many retries beyond the first attemptanything when absent
quality.coverage_fractionthe NLI stage ranthe fraction of the window check actually evaluated (below 1.0 means sampled)that unsampled windows were fine

debug

FieldPopulated whenProvesDoes not prove
debug.model_registryany model ranwhich models executed (names and versions)their internal quality

Signature envelope

key_id and receipt_signature (Ed25519 hex) ship last, when a signing key is configured. The signature covers the canonical (recursively key-sorted) JSON of the receipt excluding the two envelope fields. Verify it end to end.