Docs

Conformance & pins

The conformance family ships as callable rows of the npm package: run the advisory suite, hand the evidence bundle to a counterparty, let them rejudge it offline, and diff the pinned normative artefacts the whole exercise is judged against. Every row here is npx epcis.dev away — no key, no account.

A run from this tool is advisory. It is unsigned, carries no attestation weight, and can never back a ConformanceAttestation. That sentence is printed by the tool itself at the top of every run.

conformance run

contractvalue
Verb`conformance run --self\--target d.json [--out o]`
Price classfree
--selfthe 18-check suite against the built-in hermetic reference implementation (deterministic, loopback) — proves the suite, not any external system
--targetan advisory run against the EPCIS 2.0 endpoint the descriptor names; the only network the CLI ever touches
--out owrites the full evidence bundle — a hash tree over complete HTTP transcripts (auth headers redacted at record time)
--json{ mode: "advisory", notice, record }
Exit codes0 ok · 1 fail · 2 usage · 3 not-found · 4 internal
Library twinrunSuite, ALL_CHECKS, buildEvidenceBundle, createReferenceTarget, REFERENCE_TARGET_DESCRIPTOR

Target descriptor: { "name", "vendor", "version", "captureURL"?, "queryURL"?, "auth"?, "declared"? } — at least one URL required. Undeclared capabilities yield reasoned not-applicable rows, never silent skips.

conformance rejudge

contractvalue
Verbconformance rejudge <run.json> [--signing-key b64]
Price classfree
Inputa --out run file or evidence bundle
What it doesoffline verify + replay: checks the hash tree, replays every check from the recorded transcripts, reports identical or FAILED — a tampered bundle fails the tree
--json{ signature, replayed, identical, missingChecks, flips, ok }
Exit codes0 ok · 1 fail (rejudge mismatch) · 2 usage · 3 not-found · 4 internal
Library twinrejudgeEvidenceBundle, verifyEvidenceBundle

pins

contractvalue
Verbpins
Price classfree
Outputone pin line per vendored official GS1 artefact: name, sha256, source URL
--jsonthe vendor/gs1/PINS.json record verbatim
Exit codes0 ok · 4 internal
Library twinPINS, getPin, ARTEFACT_NAMES

Every verdict in the suite — and every /validate answer — is judged against these pinned bytes, not against a URL that can drift. The pins page at /conformance/ renders the same table from the same source.

Proof — the suite, executed

Against the published npm package, 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-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
state	passed	passed=18	failed=0	total=18
wrote	run.json
$ echo $?
0

(The advisory and run lines are single TSV lines on the wire; wrapped here for the page.) The written run.json is the evidence bundle the rejudge walkthrough replays offline.

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.