Skip to content

The auditor kit

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.

Download the auditor kit

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.

StreamExpected verdictProvenanceSource
streams/sample.jsonlPASShand-authored at build time by standards/policy-packs/tools/generate-sample.mjsstandards/policy-packs/tools/build-auditor-kit.cjs
streams/tampered.jsonlFAILthe shipped tampered-payload conformance vector, copied verbatimpackages/protocol/vectors/invalid/tampered-payload.expected.json
streams/gap.jsonlFAILthe shipped sequence-gap conformance vector, copied verbatimpackages/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.

## Synthetic records — read before you interpret the demo The `action_blocked` record in `streams/sample.jsonl` is a **format demonstration, not a live capture**. `action_blocked` is a shipped record type with no live emission source in this release: denial-as-record emission is **F-075**, which is not built. The record was hand-authored by `standards/policy-packs/tools/generate-sample.mjs`, and its **signed** payload carries `"synthetic": true`, the generator path, and the note > FORMAT DEMONSTRATION — not a live capture. Live blocked-action emission is F-075. Because those fields are inside the signed material, the label cannot be removed without invalidating the signature. The same applies to the `action_blocked` records inside the two negative streams: they are conformance-vector fixtures, not captures of anything that happened. Nothing in this kit is a record of a real denial. Presenting any of it as one would be a misrepresentation.

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Provenance

Derived at 2026-10-13T21:23:07.203Z

From commit be2f6c5568b6d2dfc9f370a3b85c0a7ab3277613