Skip to content

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.

## 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.

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.

  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.

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.

Download the auditor kit

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)

Facts derived 2026-09-01T22:47:09.312Z from commit 3f6b513007974db95549b439bcff08fa9f755db7