claude-code - 💡(How to fix) Fix [DOCS] Plugin schema docs omit validator-accepted `$schema` and top-level marketplace metadata [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#53072Fetched 2026-04-25 06:13:06
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Author
Participants
Timeline (top)
labeled ×3

Root Cause

Because the validation docs still frame metadata.description as the expected marketplace description location, authors using the newly accepted top-level description may think their file is non-canonical even though the validator now accepts it.

Code Example

> {
>   "name": "plugin-name",
>   "version": "1.2.0",
>   "description": "Brief plugin description",
>   "author": {
>

---

{
"$schema": "https://...",
"name": "company-tools",
"description": "Internal developer tools",
"version": "1.0.0",
"owner": {
"name": "DevTools Team"
},
"plugins": []
}
RAW_BUFFERClick to expand / collapse

Documentation Type

Incorrect/outdated documentation

Documentation Location

https://code.claude.com/docs/en/plugin-marketplaces

Section/Topic

Marketplace schema, Marketplace validation errors, and the plugin manifest schema in the plugins reference

Current Documentation

The marketplace schema currently lists only these required top-level fields:

| name | string | Marketplace identifier (kebab-case, no spaces). This is public-facing: users see it when installing plugins (for example, /plugin install my-tool@your-marketplace). | | owner | object | Marketplace maintainer information (see fields below) | | plugins | array | List of available plugins |

The same page documents marketplace description and version only under metadata:

| metadata.description | string | Brief marketplace description | | metadata.version | string | Marketplace version | | metadata.pluginRoot | string | Base directory prepended to relative plugin source paths (for example, "./plugins" lets you write "source": "formatter" instead of "source": "./plugins/formatter") |

The validation warnings also point users to metadata.description:

No marketplace description provided: add metadata.description to help users understand your marketplace

The plugin manifest reference currently shows a complete plugin.json schema beginning with:

{
  "name": "plugin-name",
  "version": "1.2.0",
  "description": "Brief plugin description",
  "author": {

Its metadata fields table lists version, description, author, homepage, repository, license, and keywords, but no $schema field.

What's Wrong or Missing?

Changelog v2.1.120 says:

claude plugin validate now accepts $schema, version, and description at the top level of marketplace.json and $schema in plugin.json

The current docs are now outdated in two related schema locations:

A. marketplace.json top-level accepted fields are missing

The marketplace schema tells authors to use metadata.description and metadata.version, and the validation warning specifically says to add metadata.description. It does not document that description, version, or $schema are accepted at the top level of marketplace.json.

B. plugin.json $schema support is missing

The plugin manifest schema and metadata table do not mention $schema, so plugin authors have no documented way to know that adding a JSON Schema URL to .claude-plugin/plugin.json is accepted by claude plugin validate.

C. Validation guidance can steer users away from valid files

Because the validation docs still frame metadata.description as the expected marketplace description location, authors using the newly accepted top-level description may think their file is non-canonical even though the validator now accepts it.

Suggested Improvement

Update the marketplace schema to list the newly accepted top-level fields:

  • $schema: optional JSON Schema URL for editor autocomplete and validation
  • description: optional brief marketplace description
  • version: optional marketplace version string

Clarify how top-level description/version relate to the existing metadata.description and metadata.version fields, including which form is preferred and whether both are supported for backward compatibility.

Update the marketplace examples and validation warning to use the preferred form, for example:

{
"$schema": "https://...",
"name": "company-tools",
"description": "Internal developer tools",
"version": "1.0.0",
"owner": {
"name": "DevTools Team"
},
"plugins": []
}

Also update the plugin manifest schema in plugins-reference to include optional $schema at the top level of .claude-plugin/plugin.json, and add it to the metadata fields table with the same editor-autocomplete framing used by other Claude Code JSON files.

Impact

Medium - Makes feature difficult to understand

Additional Context

Affected Pages:

PageContext
https://code.claude.com/docs/en/plugin-marketplacesMarketplace schema lists metadata.description and metadata.version, but not top-level $schema, description, or version; validation warning still says to add metadata.description
https://code.claude.com/docs/en/plugins-referencePlugin manifest schema and metadata fields omit top-level $schema in .claude-plugin/plugin.json
https://code.claude.com/docs/en/pluginsIntroductory plugin manifest example omits $schema; could link to the full manifest schema once updated

Total scope: 3 pages affected

Source: Changelog v2.1.120

Exact changelog entry: claude plugin validate now accepts $schema, version, and description at the top level of marketplace.json and $schema in plugin.json

extent analysis

TL;DR

Update the marketplace schema and plugin manifest documentation to reflect the newly accepted top-level fields, including $schema, description, and version, to ensure consistency with the claude plugin validate functionality.

Guidance

  • Update the marketplace schema to list the newly accepted top-level fields: $schema, description, and version.
  • Clarify the relationship between top-level description/version and metadata.description/metadata.version fields, including preferred forms and backward compatibility.
  • Update the plugin manifest schema to include the optional $schema field at the top level of .claude-plugin/plugin.json.
  • Revise validation warnings and examples to use the preferred form of description and version fields.

Example

{
  "$schema": "https://...",
  "name": "company-tools",
  "description": "Internal developer tools",
  "version": "1.0.0",
  "owner": {
    "name": "DevTools Team"
  },
  "plugins": []
}

Notes

The updates should be applied to the affected pages, including the marketplace schema, plugin manifest schema, and introductory plugin manifest example.

Recommendation

Apply the suggested improvements to update the documentation and ensure consistency with the claude plugin validate functionality, as the current documentation is outdated and may cause confusion for users.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING