Skip to main content

The Pack Manifest

Every evidence pack contains evidence_pack.manifest.json. It is the machine-readable index every other artefact in the pack hangs from. The manifest is what gets signed; the signature is what anchors the hash chain. The canonical schema lives at roboticks-sdk/schemas/evidence_pack.manifest.json and is JSON Schema Draft 2020-12.

Top-level shape

The manifest is either release-scoped or commit_set-scoped — exactly one of the two is populated. See Release scoping.

Field-by-field

Top-level fields

release (one of release or commit_set)

commit_set (alternative to release)

requirements

tests

mcaps

Array of MCAP references — never inlined, always referenced.
storage_class is either STANDARD (hot, freshly readable) or DEEP_ARCHIVE (in Glacier, retrieval required). See Archive.

coverage

sbom

static_analysis

Array — one entry per scanner.

standards

For each pinned standard:

chain and signature

These power the tamper-evident hash chain:
The self_manifest_sha256 is computed over the manifest with signature.value stripped, then the signature is computed over self_manifest_sha256. parent_manifest_sha256 is the previous pack’s self_manifest_sha256.

Versioning

The manifest schema is semver. Backwards-compatible additions (new optional fields, new enum values) bump the minor or patch version. Breaking changes (renamed fields, removed fields, changed types) bump the major version and trigger a Roboticks release with explicit migration notes. The builder always emits the latest schema. Older packs are not retroactively rewritten — their schema_version is the version in force at their generation time. CLI tools (rbtk evidence verify-chain, rbtk evidence inspect) handle every shipped major version.

Validating a manifest

The command pretty-prints the manifest, runs schema validation, and reports any mismatches between the manifest’s claimed file paths and the actual ZIP contents. Use this when triaging a suspect pack.

Next steps

Verify the hash chain

Cryptographic verification end-to-end.

Archive lifecycle

What storage_class: DEEP_ARCHIVE means in practice.