EXPLICIT (stated in the spec), DERIVED (a deterministic transformation of it), or LLM_EXTRACTED (model output). Observed traffic can add a fourth tier, OBSERVED, that sits between derived and extracted. The levels never merge.
Refinement
The warmup gate is the same
min_samples and min_hours pair drift alerts use, so nothing enters the sandbox you were not told about first. A type conflict that does not clear its gate is still recorded as a contradiction; nothing is erased.
The sanitizer is respected: a field whose value never reached disk still teaches presence, because the record carries the pointer that was redacted. It cannot teach a type.
Reading it
--format json emits the overlay and the state machine as one document. Every sandbox response carries x-pikopod-contract-version.
Pinned scenarios come from from-drift and reproduce: a pack carries contractVersion and runs at that version whatever refinement admits later.
Conformance
Drift is baseline-relative. Conformance is spec-relative: does the provider obey its own documentation?
A check whose evidence the sanitizer redacted is counted as unverifiable and never scored as a pass. Values of curated volatile fields are exempt from enum checks. Without
--strict, conformance exits 0 regardless; with it, an error-severity violation exits 1. --handoff writes the report for pikopod pr comment.
Spec update
Both signals can become a patch to the original document:pikopod spec-update.