Skip to content

Trust Manifest MUST rules cannot be satisfied by open identifier formats or the spec's own appendix examples #70

Description

@liady

Two normative MUSTs in the Trust Manifest section cannot be satisfied by the spec's own appendix examples, because both rules assume structure that the open formats do not guarantee.

1. Identity binding is undefined for non-URN identifiers

"Trust Manifest > Identity" says:

the identity field's authority or trust domain MUST align with the publisher domain segment of the entry's URN identifier field. ... Consumers MUST reject a Trust Manifest whose identity domain does not align with the publisher domain of the entry's identifier.

But identifier is explicitly an open text format (any URI or URN; the urn:air form is only recommended, and custom formats are expected for closed or local systems). The "Mapping to Claude Code Plugins Marketplace" appendix itself uses urn:claude-plugin:adspirer:ads-agent style identifiers, which have no domain segment at all - so a conformant consumer following the MUST would have to reject the Trust Manifests in the spec's own examples.

The binding rule needs a scoping clause: e.g. it applies when the identifier uses the urn:air form (or another domain-anchored scheme), and consumers fall back to other verification (publisher attestations, signatures) otherwise.

2. Digest rejection rule vs the appendix's sha1 examples

"Verification Procedures > Digest Format" says: "Consumers MUST reject digest values using algorithms shorter than SHA-256."

The same Claude Plugins appendix maps the marketplace's source.sha (a git commit SHA) to trustManifest.provenance[].sourceDigest as "sha1:...". Two problems:

  • The examples violate the MUST: consumers are required to reject exactly the digests the appendix shows.
  • A git commit SHA is a revision identifier, not a content digest of anything a consumer can fetch and hash, so mapping it to sourceDigest is arguably a category error regardless of algorithm (related to the artifact-integrity issue).

Suggested resolution: either carve out revision identifiers from the digest rule (e.g. a separate sourceRevision field), or change the appendix mapping so sha lands in metadata rather than sourceDigest.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions