Publish ARD v0.91 - #81
Merged
Merged
Conversation
Promotes spec/ard-v0.91-draft.md to spec/ard.md, the file the docs site renders. v0.9 is preserved verbatim at spec/ard-v0.9.md so its text stays reachable. Editorial scaffolding removed as the draft's own banner instructed: the review box, 4 breadcrumb blockquotes, 21 inline footnote markers, 25 footnote definitions, and the closing disposition table. 664 -> 574 lines, all deletion; no prose was altered in the strip. Header set to v0.91, status Proposal, dated today. Section 5.1 changes policy: ARD defines one well-known path. A consumer MUST fetch /.well-known/ard.json and honour rel="ard"; consulting the predecessor ai-catalog.json path and rel="ai-catalog" is now MAY, not the MUST introduced in bae99d1. Publishers publish ard.json only. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The v0.91 PR deliberately left the tooling behind the spec. This catches it up. conformance-test now validates against ard-entry.schema.json rather than ai-catalog.schema.json: the document against ardManifest, then every entry against ardEntry. Previously it validated the whole manifest against the catalog schema and never checked entries individually. New `publisher <domain>` mode performs the resolution 5.1 requires of a consumer: fetch /.well-known/ard.json, fall back to the predecessor path with a warning that consulting it is optional so the publisher may go undiscovered, and fail only if neither resolves. The tool previously had no well-known handling at all, so nothing exercised the path the spec names. Discovery constraints brought in line with D.2: - representativeQueries absent is now a warning. It was silently skipped; D.2 requires flagging it, and it is what separates an ARD entry from a bare catalog entry. - specVersion is no longer required. ARD requires only `entries` at the top level; other root members are transport-defined and reported, not failed. - `collections` at root downgraded from error to warning, since ARD ignores unrecognized top-level members. - Search results are validated as ardEntryProjection (5.3.2): only `identifier` is required. The old check demanded displayName, type and url/data on every result and would have failed a conformant registry. ard.cddl reconciled with the entry model: catalog-entry becomes ard-entry, host-info is gone with the Host Info Object, the manifest requires only entries, ard-entry-projection is added and used by search and list responses, trust-manifest gains trustSchema and stops being closed, attestation.mediaType becomes optional, and maps carry extension wildcards so namespaced terms stay valid. The JSON Schema remains authoritative where the two disagree. examples/basic/ai-catalog.json renamed to ard.json, with the CI reference and README updated. All four example manifests and the end-to-end demo pass; verified against Ora's live manifest, which resolves via the predecessor path with the expected warning and whose 5 entries validate as ardEntry. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ardEntryProjection introduced a second entry-shaped noun in a specification whose point is that ARD is defined over exactly one thing. It bought a $ref target used twice; it cost a reader having to ask which of two entry objects they are meant to publish. The rule it carried is kept, the noun is not. Section 5.3.2 now states the rule directly: in a response an entry MUST carry identifier, and every other term is at the registry's discretion. The OpenAPI inlines that over EntryFields at both sites, and the CDDL does the same via result-entry-fields. Nothing about what a conformant registry may return has changed. $defs are PascalCase: EntryFields, ArdEntry, ArdManifest, TrustManifest, matching the OpenAPI's own schema naming. Title is ArdEntry. Verified: OpenAPI parses with the inlined shapes, every CDDL rule reference resolves, the tester validates against ArdManifest/ArdEntry, all example manifests and the end-to-end demo pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Status was still "v0.9 (Draft)". The intro also said ARD "builds on the ai-catalog standard" — the claim v0.91 §4 retires, and the same one that cost the docs site its AI Catalog page. Layout now lists the preserved spec/ard-v0.9.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promotes the v0.91 draft to the published specification.
spec/ard.mdis now v0.91; v0.9 is preserved atspec/ard-v0.9.md./.well-known/ard.json; consulting the predecessor path is MAY.ard.cddlbrought in line with the entry model.ardEntryProjectionremoved;$defsare PascalCase (ArdEntry,ArdManifest,EntryFields,TrustManifest).Companion: ards-project/ard-docs#19. The two should land together — the site renders
spec/ard.mdfrom this repo at build time.🤖 Generated with Claude Code