Verify
Verification without the vendor
The auditor kit lets your auditor verify a NOMARK evidence stream offline, with NOMARK absent. Refusal is the output that carries information. A negative stream that verifies is a failed run.
Three streams, three expected verdicts
The kit ships three streams, each with the verdict it must produce. The two negatives are the shipped conformance vectors. Each entry names its source, so you can check the verifier against the verdict the vector shipped with.
streams/sample.jsonlPASS
hand-authored at build time by standards/policy-packs/tools/generate-sample.mjs
standards/policy-packs/tools/build-auditor-kit.cjs
streams/tampered.jsonlFAIL
the shipped tampered-payload conformance vector, copied verbatim
packages/protocol/vectors/invalid/tampered-payload.expected.json
Shipped verdict FAIL
streams/gap.jsonlFAIL
the shipped sequence-gap conformance vector, copied verbatim
packages/protocol/vectors/invalid/sequence-gap.expected.json
Shipped verdict FAIL
The kit is build output, not source. packages/protocol is read-only here: the negative corpus is copied byte-for-byte from the shipped F-074 conformance vectors, so no new protocol surface is introduced.
Synthetic records
This notice ships inside the kit, byte for byte.
What this does not prove
A verifying stream is a check of record integrity. It does not establish conduct. The kit states its own boundary in four items, transcluded here verbatim.
- It does NOT prove **that the records describe reality.** Integrity of a record is not truth of its contents. A well-formed, correctly signed stream can describe things that did not happen.
- It does NOT prove **that nothing was withheld before the stream began.** The verifier sees the stream from its genesis record onward; it cannot see a decision to start recording late, or to never record at all.
- It does NOT prove **that the emitting system is honest.** Signing keys are held by the emitter. An emitter that chooses what to emit can produce a stream that verifies perfectly and is still selective.
- It does NOT prove **anything about records it was not handed.** Every guarantee above is scoped to the files named on the command line — absence is only detected where an anchor inventories a stream you did not supply.
How to get the kit
CI rebuilds the kit on every push to main and publishes it as a release asset. The sample stream is signed with a fresh ephemeral key each build, so no two downloads are byte-identical — the verifier binary and the negative streams are reproducible from the repository.
There is no request form. The kit is build output, not a committed artifact — build it yourself from a clean checkout of the repository, with one command.
node standards/policy-packs/tools/build-auditor-kit.cjs --out auditor-kit/The builder needs a Go toolchain. Without one it stops and prints
BLOCKED: no working go toolchain found (set GO_BIN)Set GO_BIN if the builder cannot find a toolchain on its own.
.github/workflows/auditor-kit-release.yml:36,64 builds the kit in CI and uploads auditor-kit.tar.gz to the rolling auditor-kit release on every push to main; .gitignore:72 still ignores auditor-kit/ — the kit is build output, published per release and never committed (C-7)