Spec
Evidence Pack v0
The evidence pack is Surety's central artifact. Every governed task or PR produces one. It is a schema-versioned, content-hashed, optionally Sigstore-signed JSON document that composes existing standards rather than inventing a new one.
Top-level fields
schema_version—surety-evidence-pack-v0evidence_pack_id— ULIDgenerated_at— RFC 3339 UTC timestamprepository— provider, owner, name, base/head SHA, PRtask— id, source, objective, risk tier, mode, acceptance criteriaprovenance— author type, declared agent, observed signals, confidence scoreruntime— runtime type, image, workspace, network/secret policy, allowed/forbidden pathsexecutor— type, version, model provider/name/version, cost, durationplan— task plan and budget capschanges— file change manifest, additions/deletions, sensitive pathscommands— command log with start, exit, durationtests— typecheck, unit, integration resultsscanners— secrets, dependency vulns, SAST, SBOM, with maturity labelspolicy— policy hash, mode, verdict, gate results, missing evidenceapprovals— identity, role, decision, timestamp, signaturewaivers— control id, reason, expiry, signature, scopeartifacts— content-addressed artifact indexoutcomes— PR, merge commit, deployment, CI, incident, rollback linkssignatures— Sigstore bundle and payload hashes
Standards mapping
- in-toto / SLSA — provenance, build/run attestation patterns
- SARIF — scanner findings, native attached as artifacts
- CycloneDX — SBOM section
- Sigstore — signing patterns for the pack and per-artifact signatures
Validation
surety evidence validate path/to/evidence-pack.json
The validator runs offline, requires no network, and reports missing required fields with remediation hints.
Rendering
surety evidence render path/to/evidence-pack.json --format md > evidence.md
Renders to Markdown, HTML, or a concise PR comment template. Output is deterministic for the same input.
The evidence pack is portable and self-contained. Your teams and reviewers can take it, validate it, and archive it without depending on Surety being online. This is the artifact your audit accepts.