Evidence
Conformance reports
Each scenario comparison produces a content-addressed report: every input, version, observation root, and the per-axis table travel with the verdict.
The report is the primary machine artifact. It binds the scenario IR root, the family manifest root, the stimulus-schedule root, runner and adapter identities and versions on both sides, both observation roots, the comparison root, admissibility, the required-axis sets, and the verdict.
Content addressing uses blake3 over canonical JSON — keys sorted, deterministic serialization. Cross-references between report, counterexample pack, and evidence are content addresses, so an evidence bundle archives, transfers, and verifies offline.
Report schema
Schema v3; the header embeds the claim scope, so a detached report remains self-describing.
{
"schema_version": 3,
"scenario_id": "aff3.publication.boundary",
"scenario_doc_root": "cid:blake3:...",
"family_id": "dkls23-aff3",
"family_manifest_root": "cid:blake3:...",
"stimulus_schedule_root": "cid:blake3:...",
"observation_roots": { "native": "cid:blake3:...", "formal": "cid:blake3:..." },
"comparison_root": "cid:blake3:...",
"admissibility": "admissible",
"verdict": "conformant",
"axes": [
{ "axis": "publication-frontier", "status": "matched",
"maturity": "checked", "gate": "block_release",
"native": "publication.Published", "formal": "publication.Published",
"native_raw": "Published", "formal_raw": "Published" }
]
}Per-axis rows
Each row carries the comparison status, the axis maturity, the gate policy, and both raw and normalized tokens. The dual token form keeps every normalization decision auditable in place.