# Registry contract verification

**Result: 64/64 checks passed; 0 failed.**

Checked 3 Draft 2020-12 schemas, positive metadata fixtures, missing required fields, conditional executable requirements, path/version/role-enum restrictions and selected cross-field cases. These checks do not exercise a registry, TUF signatures, dependency resolution, payload integrity or hardware. Example digests, source/provider IDs and URLs are synthetic and not installable artefacts.


# Checks

- PASS: dependency cannot float
- PASS: duplicate dependency rejected
- PASS: duplicate payload paths rejected
- PASS: fixture selected metadata semantics
- PASS: implementation requires build_provenance
- PASS: implementation requires dependency_lock
- PASS: implementation requires implementation
- PASS: implementation requires runtime
- PASS: implementation requires sbom
- PASS: licence file resolves
- PASS: listed firmware cannot be empty
- PASS: package-lock meta-schema
- PASS: package-lock positive fixture
- PASS: package-lock requires approval
- PASS: package-lock requires created_at
- PASS: package-lock requires lock_version
- PASS: package-lock requires packages
- PASS: package-lock requires roots
- PASS: profile cannot contain device implementation
- PASS: reject path ../escape
- PASS: reject path /absolute
- PASS: reject path a/../../escape
- PASS: reject path a
- PASS: reject payload role skillx
- PASS: release-manifest meta-schema
- PASS: release-manifest positive fixture
- PASS: release-manifest requires changelog_path
- PASS: release-manifest requires compatibility
- PASS: release-manifest requires dependencies
- PASS: release-manifest requires device_targets
- PASS: release-manifest requires display_name
- PASS: release-manifest requires evidence
- PASS: release-manifest requires issues_url
- PASS: release-manifest requires kind
- PASS: release-manifest requires licence
- PASS: release-manifest requires limitations
- PASS: release-manifest requires maintainers
- PASS: release-manifest requires manifest_version
- PASS: release-manifest requires migration_notes_path
- PASS: release-manifest requires package_id
- PASS: release-manifest requires payload
- PASS: release-manifest requires permissions
- PASS: release-manifest requires provides
- PASS: release-manifest requires publisher_id
- PASS: release-manifest requires registry_id
- PASS: release-manifest requires released_at
- PASS: release-manifest requires source
- PASS: release-manifest requires summary
- PASS: release-manifest requires support_url
- PASS: release-manifest requires tags
- PASS: release-manifest requires version
- PASS: release-status meta-schema
- PASS: release-status positive fixture
- PASS: release-status requires advisories
- PASS: release-status requires expires_at
- PASS: release-status requires lifecycle
- PASS: release-status requires reason
- PASS: release-status requires release
- PASS: release-status requires reviews
- PASS: release-status requires sequence
- PASS: release-status requires status_version
- PASS: release-status requires support_contact
- PASS: release-status requires support_state
- PASS: release-status requires updated_at
