Skip to content
VERASPEC
Repository
Conformance

A record either reproduces the manifest, or it disagrees with the standard

Four levels in the specification, eighty-three issue codes in the profile, and one fixture per code so the profile can be run rather than read.

83Issue codes67 error · 16 warning
95Fixturescorpus 1.1
§11

The four levels

M = mandatory, S = SHOULD, — = not required.

L0

Pixels only

CPNP-1, both identity hashes, and at least one canonical visual embedding with a full space descriptor. Nothing else is required.

L1

Raw metadata preserved

Every metadata family preserved byte-exact, with an availability state recorded for each.

L2

Reconciled and trusted

A reconciled normalized view with precedence and conflicts, trust tiers, and redaction-with-proof.

L3

Provenance and context

Acquisition and custody chain, C2PA validation, contextual embeddings with source provenance, and a record signature.

CapabilityL0L1L2L3
CPNP-1, content_hash, pixel_hashMMMM
≥ 1 canonical_visual embedding + full space descriptorMMMM
Byte-exact raw metadata preservationMMM
Availability states per familyMMM
Reconciled view, precedence, conflicts[]MM
Trust tiers; redaction-with-proofMM
Acquisition + chain; C2PA validationM
Contextual embeddings w/ source provenanceM
Record signature (JWS/COSE over JCS)S
Profile vera-profile/1.0

Seventeen stages, run in order, none of them skipped

Every stage runs. The validator does not stop at the first error, because a producer fixing one defect deserves to see the rest.

StageWhat it checksCodes
0The validator itself, not the recordVER001
1Parse and sizeVER101VER102VER103VER104VER105VER106
2Structure and formatsVER201VER202
3Conformance level gatesVER301VER302VER303VER304VER305VER306VER307VER308
4Space descriptorsVER401VER402VER403VER404VER405VER406VER407VER408VER409VER410VER411
5Referential integrityVER501
6Dimensions, dtypes and component valuesVER601VER602VER603VER604VER605VER606VER607VER608VER609
7Role and kind agreementVER701VER702VER703VER704VER705
8Perceptual digestsVER801VER802
9Availability completenessfolded into VER303
10Availability basis and raw-segment carriageVER901VER902VER903VER904
11Trust, conflict, redactionVER1001VER1002VER1003VER1004VER1005VER1006VER1007VER1008VER1009VER1010VER1011
12C2PA stateVER1101VER1102VER1103
13Provenance chronology and action tokensVER1201VER1202VER1203VER1204VER1205VER1206VER1207VER1208
14ChecksumsVER1301VER1302VER1305
15SignatureVER1401VER1402VER1403
16LineageVER1601VER1602VER1603VER1604VER1605VER1606
The issue-code registryValidator reference
The corpus

One code, one fixture, one expected verdict

Every issue code has exactly one fixture registered against it, or an explicit exemption saying why it cannot have one. A code with neither, or two fixtures claiming the same code, is a corpus defect.

14Conformant recordsvalid/
81Seeded with one defectinvalid/
291.1-draft codesvera-profile/1.1-draft
2Documented exemptionscovered by unit tests

Manifest 1.1, corpus ver-conformance/1.1-draft, generated 2026-08-25. The default schema for a run is 1.0.1.

shell
# every fixture, judged against the profile it declares
PYTHONPATH=packages/ver-validator/src python -m pytest \
tests/test_conformance_fixtures.py -q
# one record, one verdict
ver-validate --schema 1.0.1 --format json \
conformance/invalid/ver101-unparseable-json.json
# → VER101 error