The rule list
The rule list is the base profile's, entire, with exactly one severity changed. Nothing is added, nothing is removed, and no rule's meaning, code number or title changes — ADR-0003 makes codes and titles stable, and a profile that redefined one would be a fork wearing a profile's name.
The delta, in full
| Code | Title | Base vera-profile/1.1-draft | vera-profile-high-trust/1.1-draft |
|---|---|---|---|
VER1606 | lineage-parent-content-hash-absent | warning | error |
That table is the whole difference. Any future promotion is a new revision of this profile with its own identifier, never an edit to this one in place.
Every rule, by stage
(W) marks warning severity under this profile; everything else is an error. The single promoted code is marked (→E).
| Stage | Concern | Codes |
|---|---|---|
| 0 | The validator itself, not the record | VER001 validator-internal-error |
| 1 | Parse (RFC 8259, UTF-8) and size | VER101 unparseable-json · VER102 not-a-json-object · VER103 record-exceeds-hard-cap · VER105 record-size-exceeded · VER106 size-should-cap-exceeded (W) |
| 2 | Structure, then format/contentEncoding/pattern-anchoring assertion | VER201 schema-invalid · VER202 format-invalid |
| 3 | Conformance level gates | VER301 level-absent (W) · VER302 raw-preservation-missing · VER303 availability-incomplete · VER304 normalized-view-missing · VER305 trust-entry-missing · VER306 provenance-missing · VER307 c2pa-status-missing · VER308 signature-absent (W) |
| 4 | Space descriptors, model bundles and artifacts | VER401 duplicate-space-id · VER402 space-registry-conflict · VER403 embedding-space-id-malformed · VER404 space-reference-missing (W) · VER405 visual-preprocessing-underspecified (W) · VER406 hamming-tolerance-exceeds-dim · VER407 bundle-manifest-digest-mismatch · VER408 bundle-paths-unsorted-or-duplicate · VER409 bundle-path-illegal · VER410 artifact-digest-mismatch · VER411 descriptor-digest-mismatch |
| 5 | Referential integrity | VER501 embedding-references-undeclared-space |
| 6 | Dimensions, dtypes, carriage and component values | VER601 dim-mismatch-vs-descriptor · VER602 dtype-mismatch-vs-descriptor · VER603 inline-vector-length-mismatch · VER604 b64-vector-byte-length-mismatch · VER605 ref-byte-length-mismatch · VER606 dim-dtype-unstated (W) · VER607 non-finite-vector-component · VER608 vector-carriage-not-exactly-one · VER609 binary-vector-inline |
| 7 | Role / kind agreement | VER701 canonical-visual-in-nonvisual-space · VER702 contextual-in-nontext-space · VER703 fused-in-nonfused-space · VER704 fused-recipe-invalid · VER705 no-canonical-visual-embedding |
| 8 | Perceptual digests | VER801 pdq-length · VER802 phash-length |
| 9 | Availability completeness | folded into VER303; stage retained for traceability |
| 10 | Availability basis and raw segments | VER901 stripped-suspected-without-basis · VER902 raw-index-not-unique-or-contiguous · VER903 raw-index-missing-multisegment · VER904 raw-ref-digest-mismatch |
| 11 | Trust, conflict, redaction | VER1001 redaction-availability-inconsistent · VER1002 redaction-missing-salted-hash (W) · VER1003 conflict-sources-not-distinct · VER1004 conflict-field-untracked (W) · VER1005 redacted-family-raw-present · VER1006 producer-performed-without-commitment · VER1007 upstream-withheld-with-commitment · VER1008 commitment-mismatch-ledger-vs-view · VER1009 redaction-pointer-unresolvable · VER1010 upstream-withheld-family-raw-present · VER1011 redacted-source-embedding-carried |
| 12 | C2PA state | VER1101 c2pa-raw-present-status-missing · VER1102 c2pa-valid-without-manifest-hash (W) · VER1103 c2pa-state-inconsistent |
| 13 | Provenance chronology and action tokens | VER1201 chain-not-chronological · VER1202 chain-precedes-acquisition · VER1203 record-precedes-chain (W) · VER1204 action-order-implausible (W) · VER1205 bare-action-token-unregistered · VER1206 registry-membership-unverified (W) · VER1207 sign-event-without-signature · VER1208 registry-snapshot-mismatch (W) |
| 14 | Checksums | VER1301 b64-vector-undecodable · VER1302 raw-segment-sha256-mismatch · VER1305 source-ref-content-hash-mismatch |
| 15 | Signature | VER1401 signature-object-invalid · VER1402 signature-verification-failed · VER1403 signature-unverified (W) |
| 16 | Lineage | VER1601 lineage-duplicate-parent · VER1602 lineage-exported-pixel-hash-mismatch · VER1603 lineage-self-parent · VER1604 lineage-cycle · VER1605 lineage-recipe-uri-without-digest · VER1606 lineage-parent-content-hash-absent (→E) |
VER104 is absent by design, not by omission. The base 1.1-draft profile suppresses record-size-policy for schema_version == "1.1-draft" runs: draft §7's three-quantity model is owned there by VER105 and VER106, and firing both rule sets over one record would report the same measurement twice under two severities. VER104 is not retired: it keeps its number, its title and its 1.0.x behaviour unchanged, and is simply not one of this profile's rules, because this profile validates 1.1-draft Records.
Counts. The registry holds 83 codes as of this draft. VER104 is not evaluated under 1.1-draft, leaving 82 evaluated rules: 67 errors and 15 warnings in the base profile, and 68 errors and 14 warnings here. The packages/ver-validator/README.md registry table is the normative enumeration; where this document and that table disagree, that table is right and this one has drifted.
