Schemas: the published contracts

Every artifact codafort emits follows a public, versioned contract whose $id resolves to this page. Whoever receives a report or a counter-signed declaration validates the file against the contract, without relying on whoever produced it.

Versioning

New fields are optional and only appear when used. A breaking change gets a new tag (/2). Signed artifacts are never re-signed: tokens already issued stay verifiable, including those in the old codafort-attestation/1 format.

What these artifacts do not prove

A counter-signed declaration proves the integrity and authorship of the result, not the absence of vulnerabilities. artifacts[] is declared by the emitter and does not prove the link between build and source (that's build provenance, SLSA L2+). The report states what was not measured (unreached, axes_skipped), and not measured never means safe. Verification (/verify, offline) is free for any party, forever.