Run and rejudge
A conformance run here is designed to be checked, not believed. The run writes an evidence bundle — a hash tree over the complete HTTP transcripts of every check — and anyone holding the bundle can replay the judging offline and get the same verdicts, or catch a tampered file. Trust travels as bytes, not as a PDF.
A run from this tool is advisory. It is unsigned, carries no attestation weight, and can never back a ConformanceAttestation. Attestation requires an Ed25519-signed run executed by a signing conformance service; this tool never signs. Never present an advisory run as certification or as anyone's endorsement.
The loop
- Run. conformance run --self judges the built-in hermetic reference implementation — deterministic, loopback; it proves the suite itself. conformance run --target d.json judges the EPCIS 2.0 endpoint your descriptor names — your dev build, a vendor's sandbox.
- Keep the bundle. --out run.json writes the evidence bundle. Auth headers are redacted at record time, so a run file is data you may share. Never edit one — the hash tree is the tamper seal.
- Counterparty rejudges. conformance rejudge run.json needs no network and no access to the original target: it verifies the hash tree, replays all 18 checks from the recorded transcripts, and prints rejudge identical — or fails with the flips named.
Proof — the full loop, executed
Against the published epcis.dev@0.1.0:
$ npx epcis.dev conformance run --self --out run.json
advisory ADVISORY — this run was produced locally and is unsigned.
It carries no attestation weight and can never back a
ConformanceAttestation. Attestation requires an Ed25519-signed
run executed by a signing conformance service; this tool never
signs.
run advisory-bc1c86ed-2d6f-415e-bae0-f642ed96f990 suite=0.4.0
target=epcis.dev reference implementation
pass TCR-43.1
…
pass TCR-54
pass M121
pass M122
state passed passed=18 failed=0 total=18
wrote run.json
$ npx epcis.dev conformance rejudge run.json
signature none advisory run — carries no attestation weight
pass TCR-43.1
pass TCR-43.2
pass TCR-43.3
pass TCR-43.4
pass TCR-53.1
pass TCR-53.2
pass TCR-53.3
pass TCR-53.4
pass TCR-53.5
pass TCR-53.6
pass TCR-53.7
pass TCR-53.8
pass TCR-53.9
pass TCR-53.10
pass TCR-53.11
pass TCR-54
pass M121
pass M122
rejudge identical
$ echo $?
0
(The advisory and run lines are single TSV lines on the wire; wrapped here for the page. The run transcript's 18 pass lines are elided once — the rejudge block shows all 18 replayed.) A rejudge mismatch — a flipped verdict, a missing check, a broken hash tree — exits 1 with the differences named, which is exactly the property that lets you accept a vendor's run file at face value: if it rejudges identical, the transcripts really produced those verdicts.
Machine mode mirrors the same facts: --json returns { signature, replayed, identical, missingChecks, flips, ok } — branch on identical, never on prose. The check taxonomy and pinned artefacts behind every verdict are on Reference — Conformance & pins.
We answer in writing. We take at most five conversations a month, only when you ask for one, and only after you already have the written read.