bug: `claude plugin validate` rejects `$schema` and `description` in marketplace.json, but Anthropic's own marketplace uses both

Resolved 💬 1 comment Opened Apr 2, 2026 by easyfan Closed Apr 23, 2026

Bug Description

claude plugin validate reports $schema and description as unrecognized keys for marketplace.json, but Anthropic's own official marketplace (claude-plugins-official) uses both fields.

Steps to Reproduce

# Validate a marketplace manifest that uses $schema and description
claude plugin validate /path/to/plugin/
# Output:
# Validating marketplace manifest: .../marketplace.json
# ✘ Found 1 error:
#   ❯ root: Unrecognized keys: "$schema", "description"
# ✘ Validation failed

The marketplace.json in question:

{
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
  "name": "my-marketplace",
  "description": "My marketplace description",
  "owner": { ... },
  "plugins": [ ... ]
}

Inconsistency with Official Marketplace

The official claude-plugins-official marketplace manifest (cached at ~/.claude/plugins/marketplaces/claude-plugins-official/.claude-plugin/marketplace.json) uses both $schema and description:

{
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
  "name": "claude-plugins-official",
  "description": "Directory of popular Claude Code extensions...",
  ...
}

Expected Behavior

$schema and description should be recognized as valid top-level fields in marketplace.json, consistent with the official marketplace format and the schema URL referenced in $schema itself.

Actual Behavior

Validator rejects both fields as unrecognized, causing claude plugin validate to fail for manifests that follow the apparent official format.

Environment

  • Claude Code version: 2.1.90
  • OS: macOS 15.3 (Darwin 25.3.0)

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗