fix: make the Trust Manifest MUST rules satisfiable by the spec's own examples - #81
fix: make the Trust Manifest MUST rules satisfiable by the spec's own examples#81liady wants to merge 1 commit into
Conversation
2bae7bb to
0a4a13f
Compare
|
Reviewed this against the current head while bringing our verifier back into line with it. Two notes from the implementation side. The ADR-0017 (#77, merged 30 July) moved custom data into the Given that #70's whole point is that the appendix examples must be satisfiable by the normative text, the relocation probably wants to be: "extensions": {
"https://ai-catalog.org/extensions/metadata": {
"homepage": "https://www.adspirer.com",
"sourceSha": "aa70dbdbbbb843e94a794c10c2b13f5dd66b5e40"
}
}which also gives the existing The identity scoping clause still needs a stated extraction rule. Agreed with @rrrodzilla that the scoped MUST leaves a consumer without a defined test. Two things become undefined once "carries a publisher domain segment" is the trigger: how to extract that segment from This is what we settled on in our verifier, offered as a starting point rather than a proposal:
The port is the detail that caught us. A port-bearing |
0a4a13f to
5eac838
Compare
5eac838 to
9bdd5d5
Compare
Fixes #70.
Two normative MUSTs could not be satisfied by the Claude Plugins appendix examples:
The identity binding rule assumed every
identifierhas a publisher domain segment, butidentifieris an open format and the appendix usesurn:claude-plugin:...identifiers with no domain at all. A consumer following the rule as written would have to reject the Trust Manifests in the spec's own examples. The rule is now scoped to identifiers that carry a publisher domain segment (such as theurn:airform), with a fallback to other verification (attestations, signatures) for formats that don't.Digest Format requires consumers to reject digests weaker than SHA-256, yet the appendix mapped the marketplace's git commit
shatosourceDigestassha1:.... A commit SHA is a revision identifier, not a content digest of anything a consumer can fetch and hash, so the mapping now lands it in entrymetadata.sourceShainstead, and the examples no longer carrysourceDigestvalues that consumers are required to reject.A dedicated
sourceRevisionfield on the Provenance Link (as floated in the issue) would be a schema addition and would need its own ADR, so it is intentionally out of scope here.