Technical documentation.

Every page in this tree does one job and embeds one proof artifact — a transcript cut from a real run of the published package or of a live door on this origin, a digest you can recompute, an exit code you can reproduce. Never an adjective.

Three ways in. Pick yours:

  • curlPOST /translate, /validate and /hash answer on this origin with no key and no account: curl the live doors.
  • npxnpx epcis.dev runs the same engine on your bench, with the proof fixtures shipped inside the package: 60 seconds with npx.
  • MCP — one paste wires a client; the same tools answer at POST /mcp on this origin: MCP for agents.

The sixty-second proof

Executed 2026-07-31 against the published npm package epcis.dev@0.1.0:

$ npm i epcis.dev
$ CORPUS=node_modules/epcis.dev/golden-corpus

$ npx epcis.dev validate $CORPUS/valid-standard/object-event-shipping.json
valid	schema=epcis-json-schema.json	version=2.0.1

$ npx epcis.dev hash $CORPUS/valid-standard/object-event-shipping.json
hash	0	ni:///sha-256;e5624abcce4b2fc226743e8891f69c12a07ad508953749d9b9ede6771424f91e?ver=CBV2.0

$ npx epcis.dev translate $CORPUS/xml-translation/object-event-1.2.xml
delivered	source=1.2	events=1	fidelity=round-trip-clean

Three verbs, three verdicts: a validation against the pinned official GS1 EPCIS 2.0.1 schema, the CBV 2.0 §8.9 event hash as an ni:///sha-256 URI, and a 1.2→2.0 translation delivered round-trip-clean. The same engine answers the same three verbs on this origin — POST /translate, /validate, /hash — with no key.

Transcripts in these docs are executed, never typed: the site build re-runs the cheap ones against the engine on every build, so a changed engine output fails the build instead of shipping a stale transcript.

The map

Quickstarts

The event model

Reference

Conformance & testing

Seams

Errors & refusals

The machine faces

Versioning

Beside this tree

The offer pages — /translate/, /conformance/, /mcp/, /run-it-yourself/ — state each door's case; these docs carry the contracts. The machine faces render from the same sources as the pages: /llms.txt, /openapi.json, /.well-known/agents.json. The dated launch ledger is /what-ships-today/. The package's in-tarball manual is node_modules/epcis.dev/AGENTS.md — grep it where you already are.

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.