Docs

60 seconds with npx

One job: a green exit code on your bench before you read anything else. The package ships its own proof fixtures — the golden corpus — so nothing here depends on your data, your network, or an account.

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

Every line below is a real run, executed 2026-07-31 against the published epcis.dev@0.1.0:

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

$ npx epcis.dev validate $CORPUS/invalid/object-event-missing-action.json
schema-error	/epcisBody/eventList/0	must have required property 'action'
schema-error	/epcisBody/eventList/0	must match "then" schema
schema-error	/	must match "then" schema
invalid	errors=3
$ echo $?
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 --out out.json
delivered	source=1.2	events=1	fidelity=round-trip-clean
wrote	out.json

$ npx epcis.dev conformance run --self | tail -1
state	passed	passed=18	failed=0	total=18

$ npx epcis.dev version
epcis.dev 0.1.0	epcis=2.0.1	cbv=2.0.1	suite=0.4.0

Note the second run: an invalid document exits 1 with per-path schema errors — the fail-closed path working is a verdict, not a crash.

The contract the transcript rides on

exitmeaning
0ok
1fail — a negative domain verdict (invalid document, failed translation, rejected capture, failed suite run), not a crash
2usage
3not-found (unreadable input)
4internal
  • Every verb takes --json: deterministic machine JSON, same data and same exit code as the token-cheap text lines above.
  • stdout is payload-only. Errors are typed on stderr — {"error":{"code","message","hint"?}} under --json — and the code strings are stable across releases: match on code, never on prose.
  • The verb set is closed: validate, hash, translate, capture, mcp, conformance run, conformance rejudge, pins, version. An unknown verb is a typed USAGE refusal with a hint, exit 2.

The package carries its own operating manual at node_modules/epcis.dev/AGENTS.md — the same contract, greppable where you already are. The site build checks that manual and this page's verb and exit tables against one typed catalog; a drift on either face fails the build.

Where next