Evidence Packs
Portable, machine-readable audit records of verification runs and agent transactions. Complete specification for the v0 pack format.
TL;DR: Use
colter verify STORE_URL --out ./packfor a full audit pack orcolter pack STORE_URL --out ./packfor readiness-only output. Evidence Packs are structured JSON built for CI systems, agents, replay, and diffs.
This format is optimized for AI agent consumption. Parse
manifest.jsonand key off theversion,readiness,conformance, andtracesfields.
Create A Pack
colter verify https://example-store.com --out ./my-pack
colter pack https://example-store.com --out ./my-pack
Pack Contents
| File | Purpose |
|---|---|
manifest.json | Canonical structured record |
summary.md | Human-readable summary |
redactions.json | Redaction log with reasons and hashes |
Core Schema
{
"version": "v0",
"generated_at": "2026-02-07T14:30:00Z",
"target": "https://example-store.com",
"protocols": [],
"readiness": {},
"conformance": [],
"traces": [],
"assertions": [],
"correlation": {
"session_id": "uuid"
}
}
Key Fields
| Field | Description |
|---|---|
version | Pack schema version |
target | Store URL under test |
protocols | Detected UCP, ACP, and MCP state |
readiness | Verdict and readiness summary |
conformance | Pass, fail, or skip results |
traces | Request and response capture |
assertions | Fine-grained checks tied to traces |
correlation.session_id | Stable ID linking the run |
Verdict Semantics
readiness.verdict uses exactly three values:
AGENT-READYPARTIALLY AGENT-READYNOT AGENT-READY
Redaction
Sensitive headers and token-like fields are replaced with "[redacted]" before the pack is written. redactions.json records the rule name, location, and a hash of the original value.
Commonly redacted keys include:
AuthorizationCookieSet-CookieX-API-Keytokenaccess_tokenclient_secret
Common Operations
Replay a pack:
colter replay ./my-pack
Diff two packs:
colter diff ./pack-before ./pack-after --json
Export a pack:
colter export ./my-pack --format pdf -o report.pdf
Read a pack in Python:
import json
from pathlib import Path
manifest = json.loads(Path("./my-pack/manifest.json").read_text())
print(manifest["readiness"]["verdict"])
Versioning
Always check manifest.json.version before parsing. Additive fields may appear in v0; breaking changes require a new schema version.