Skip to content

spec: bring description/version to displayName's authoritative-source parity (ADR-0018) - #60

Open
tadasant wants to merge 6 commits into
mainfrom
spec/entry-field-authoritative-source-parity
Open

spec: bring description/version to displayName's authoritative-source parity (ADR-0018)#60
tadasant wants to merge 6 commits into
mainfrom
spec/entry-field-authoritative-source-parity

Conversation

@tadasant

@tadasant tadasant commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

What & why

ADR-0016 made the Catalog Entry displayName OPTIONAL and gave it a precise authoritative-source rule: omit it when the referenced artifact already carries its own canonical name (A2A Agent Card name, MCP Server Card title) to avoid drift; when present it takes precedence for display; and a companion "Resolving an Artifact's Display Name" section defines the consumer resolution order.

displayName is not the only entry member that restates a value the referenced artifact already carries. description and version have the same duplication-and-drift problem against the same artifact, but the description/version field definitions were still bare one-liners with no equivalent guidance. That's incoherent — a publisher reading the field list is told to omit displayName against the Server Card's title but given no steer on description/version, which map onto the Server Card's own description and version. This PR closes that gap at the field-definition level.

Field overlap this PR is built on:

Entry field A2A Agent Card MCP Server Card / SEP-2127 MCP Registry server.json
displayName name (required) title (optional) title
description description (required) description (optional) description
version version (required) version (required) version (required)

Changes

  • New adr/0018-entry-field-authoritative-source-parity.md (Status: Proposed) — extends ADR-0016's rule to description and version, with an explicit in/out Scope section (out: tags, updatedAt, publisher/trustManifest, metadata, identifier/type/url/data, each with reasoning).
  • specification/ai-catalog.md:
    • description field definition — parallel authoritative-source guidance + pointer to a new resolution section.
    • version field definition — authoritative-source guidance adapted for its structural role: it's part of the identifier+version uniqueness key and consumers sort on it, so it stays REQUIRED for multi-version listings and a present value is sort-authoritative (SHOULD equal the artifact's version; a contradiction is a publishing error, not a free-form override) rather than a cosmetic override.
    • New "Resolving an Artifact's Description" section next to "Resolving an Artifact's Display Name".
    • Claude Plugins mapping-appendix description row aligned with the existing plugin-name/displayName row.

No schema change — description and version are already OPTIONAL in the CDDL. This is guidance only and is not a breaking change (existing catalogs that populate these fields remain conformant).

Scope

Deliberately tight: one ADR + two field-definition edits + one resolution section + one mapping-row alignment. No refactoring of unrelated spec parts.

… parity

Adds ADR-0017 and the matching spec edits so the entry-level fields that
duplicate a referenced artifact's own canonical value (description, version)
follow the same SHOULD-omit-when-authoritative / present-takes-precedence /
avoid-drift rule already established for displayName in ADR-0016.

- description: parallel authoritative-source guidance + new
  "Resolving an Artifact's Description" consumer resolution order
- version: authoritative-source guidance adapted for its structural role
  (uniqueness key + sorting; required for multi-version listings)
- MCP + Claude Plugins mapping-appendix rows aligned with the title row
github-actions Bot added a commit that referenced this pull request Jul 2, 2026
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Preview: https://ai-catalog.io/pr/60/

This comment is updated automatically while the pull request preview is available.

…sion wording

Review feedback:
- MCP Server Card `description` is OPTIONAL in SEP-2127 (only name+version
  required), not REQUIRED as originally stated.
- Frame the multi-version `version` requirement as emergent from the
  identifier+version uniqueness key rather than as already-stated normative
  text in the Multi-Version Entries section.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
github-actions Bot added a commit that referenced this pull request Jul 2, 2026
Resolves the specification/ai-catalog.md conflict with the base branch's
Server-Card-centric MCP mapping rewrite (PR #53) and mkdocs reconciliation
(PR #62). Base main already added the authoritative-source guidance to the
MCP mapping-appendix description/version rows, so those now-redundant edits
are dropped. This branch's genuinely-additive contribution is preserved and
re-applied onto the base structure:

- authoritative-source guidance on the description and version *field
  definitions* (base still had bare one-liners there)
- a new "Resolving an Artifact's Description" consumer-resolution section
- the Claude Plugins appendix description row aligned to match

Spec-internal anchor links use the build-tool slugify form
(#resolving-an-artifact-s-description) to match base's convention; ADR
cross-links keep the GitHub form, consistent with ADR-0016.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
github-actions Bot added a commit that referenced this pull request Jul 9, 2026
@tadasant tadasant changed the title spec: bring description/version to displayName's authoritative-source parity (ADR-0017) spec: bring description/version to displayName's authoritative-source parity (ADR-0018) Jul 23, 2026
github-actions Bot added a commit that referenced this pull request Jul 23, 2026
@tadasant
tadasant marked this pull request as ready for review July 23, 2026 03:27
@tadasant
tadasant requested a review from a team as a code owner July 23, 2026 03:27
…0016

Review follow-ups on ADR-0018:

- Align the Claude Plugins example with the new mapping-table row: the
  three marketplace catalog entries drop the now-redundant `description`
  (they already omit `displayName`), so the worked example no longer
  contradicts the "entry `description` is omitted" mapping. The
  nested-catalog entry keeps its `description`, since a catalog artifact
  carries no canonical description of its own.
- Add a "Resolving an Artifact's Version" section mirroring the
  display-name and description resolution sections, and point the
  `version` field definition at it. Covers the omitted-single-version
  case (resolve from the artifact), the entry-vs-artifact mismatch rule
  (entry value authoritative for sorting/selection), and the `updatedAt`
  fallback for unversioned entries.
- Mark ADR-0016 (displayName optional) Accepted — ratified at the
  2026-06-18 AI Catalog working-group call.

ADR-0018 Consequences updated to reflect the new version resolution
section and the plugin-example alignment. All 16 intra-doc anchors
resolve.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
github-actions Bot added a commit that referenced this pull request Jul 23, 2026
@darrelmiller

Copy link
Copy Markdown
Contributor

Took me a couple of times to read this but now I grok it, I like this change a lot. Thank you.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants