[BUG] `claude plugin validate` rejects `description` field in marketplace.json but warns when it's missing

Resolved 💬 2 comments Opened Mar 25, 2026 by petems Closed Apr 22, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

`claude plugin validate .` has an inconsistency in how it handles the `description` field in `marketplace.json`:

If you **include** `description` at the top level, the validator rejects it:

✘ Found 1 error:
❯ root: Unrecognized key: "description"


If you **omit** `description`, the validator passes but warns it's missing:

⚠ Found 1 warning:
❯ metadata.description: No marketplace description provided. Adding a description helps users understand what this marketplace offers


There's no way to satisfy both — including it causes a hard error, omitting it causes a warning.

Anthropic's own official marketplace repo (`anthropics/claude-plugins-official`) includes both `$schema` and `description` as top-level fields, which also fail validation.

What Should Happen?

Either the Zod schema should accept description (and optionally $schema) as valid top-level fields, or the warning about missing description should be removed if the schema intentionally excludes it.

Error Messages/Logs

# With description field:
✘ Found 1 error:
  ❯ root: Unrecognized key: "description"
✘ Validation failed

# Without description field:
⚠ Found 1 warning:
  ❯ metadata.description: No marketplace description provided. Adding a description helps users understand what this marketplace offers
✔ Validation passed with warnings

Steps to Reproduce

  1. Create a minimal marketplace directory:

``bash
mkdir -p /tmp/test-marketplace/.claude-plugin
``

  1. Create marketplace.json WITH description:

``json
{
"name": "test-marketplace",
"description": "A test marketplace",
"owner": { "name": "Test" },
"plugins": []
}
``

  1. Run claude plugin validate /tmp/test-marketplace
  2. Observe: ✘ root: Unrecognized key: "description"
  3. Remove the description field and re-run
  4. Observe: ⚠ metadata.description: No marketplace description provided

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.81 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

Related issues:

  • #36651 — Marketplace schema validation rejects git-subdir source type (also a Zod schema gap)
  • #37390 — Invalid source URLs in official marketplace
  • #33828 — git-subdir source type not supported in schema validator

The official anthropics/claude-plugins-official marketplace.json also includes $schema which triggers the same "Unrecognized key" error.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗