Compatibility: Pactmark 0.1.x.

An artifact is bytes with an address

An Artifact is content-addressed output. Its identity is the digest of its exact bytes — not a filename, not a row id, not a version label someone remembered to bump. That single decision removes an entire class of audit problem. “Which version of the report did the verifier check?” has one answer, and it is the same answer in six months.
The artifact record carries provenance and location alongside the digest, and every read is tenant-scoped through the authority you pass in.

Verification binds three identities at once

Figure 1. A VerificationResult is meaningless without all three bindings. Change the bytes, the verifier or the rubric, and the previous result stops applying — by construction, not by policy.

Deterministic verifiers run without a model key

Schema, checksum, policy and custom checks need no provider account. They are the backbone of a testable pipeline: you can run the whole verification path in CI with no network and no credentials.
The agent declares which verifiers must pass. RunProjection tracks requiredVerifierIds, passedVerifierIds and verificationExceptionIds separately, so “passed everything required” and “passed everything attempted” are different, visible facts.

Model-assisted evals are allowed, and labelled

A verifier may use a model. When it does:
  • it goes through the same admitted model and credential boundaries as the run itself;
  • its method is recorded as model, distinct from deterministic and human;
  • it must record its own limitations.
A passing model-assisted eval is a probabilistic judgement that has been recorded honestly. It does not become a fact because it was written down. The method field exists so that a downstream reader can weight it appropriately.

Verification exceptions are narrow on purpose

Sometimes a finding is known, accepted and time-boxed. VerificationExceptionRecorded supports that — with required fields that make it expensive to abuse:
An exception may only address a finding that was explicitly marked exception-eligible, and it cannot waive a security control. There is no field for that because there is no such operation.

What passing verification actually permits

Passing verification allows the configured run transition — typically verifying → completed. That is all it does. It does not:
  • make the artifact factually true;
  • establish that the source data was correct;
  • constitute a security assessment of the environment;
  • transfer any regulatory or contractual conclusion;
  • extend to any other artifact, verifier, rubric or environment.
KAF_VERIFICATION_REQUIRED is raised when a run tries to complete without its required verification having passed. There is no override flag.

Evidence

How verification results become part of a bounded, redacted claim.

Document pipeline use case

Content addressing, citation-shape checks and deterministic export, end to end.