Verification without the vendor
Build the verifier from source on a machine you control and run it against three shipped streams. Two of them must fail.
01, standards/policy-packs/tools/build-auditor-kit.cjs
Nobody has to hand you the kit.
CI builds it on every push to main and publishes it as a release asset. You need a Go toolchain and a clean checkout. There is no account and no request form.
The sample stream is signed with a fresh ephemeral key each build, so no two downloads are byte-identical. The verifier and the negative streams are reproducible from the repository.
.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:79 still ignores auditor-kit/ — the kit is build output, published per release and never committed (C-7)
Or build it yourself from a clean checkout. One command.
node standards/policy-packs/tools/build-auditor-kit.cjs --out auditor-kit/Without a toolchain the builder stops and prints
BLOCKED: no working go toolchain found (set GO_BIN)Set GO_BIN if the builder cannot find one on its own.
02, standards/policy-packs/tools/build-auditor-kit.cjs:19-21
What a refusal proves that a pass cannot.
Refusal is the output that carries information. The two negative streams are shipped conformance vectors, and the verdict each one must draw was written into this repository before you ran anything. A verifier that accepts one has not been generous. It has failed. Each entry names its source, so you can check the verifier against the verdict the vector shipped with.
| Stream | Expected verdict | Provenance | Source |
|---|---|---|---|
| streams/sample.jsonl | PASS | hand-authored at build time by standards/policy-packs/tools/generate-sample.mjs | standards/policy-packs/tools/build-auditor-kit.cjs |
| streams/tampered.jsonl | FAIL | the shipped tampered-payload conformance vector, copied verbatim | packages/protocol/vectors/invalid/tampered-payload.expected.json |
| streams/gap.jsonl | FAIL | the shipped sequence-gap conformance vector, copied verbatim | packages/protocol/vectors/invalid/sequence-gap.expected.json |
The kit's shipped streams and the verdicts the verifier must produce.
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.
03, standards/policy-packs/tools/auditor-kit-content.cjs
Nothing here is a record of a real denial. The kit says so first.
The synthetic label sits inside the signed payload, so stripping it invalidates the signature. The notice below ships inside the kit. These are its bytes.
04, standards/policy-packs/tools/auditor-kit-content.cjs
Where a PASS stops.
A stream that verifies holds together. It says nothing about conduct. The kit draws its own boundary in four items, and what follows is the kit's bytes.
- 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.
05
You ran it. What the verdict licenses you to say.
Say this: the stream is internally consistent, complete from its genesis record onward, and signed by the keys named in the keyring you supplied. Do not say this: the records describe reality. A verdict on integrity is not a verdict on conduct.
The obligation your client is answering sits on the CPS 230 page. The record format the verifier reads sits in the protocol.
Tell us what your verifier found, or what it could not check. The address is enterprise@nomark.ai. There is nothing to sign up for and nothing is gated on you writing.