Skip to content

Schema errors in marketplace.json and plugin.json prevent installation in Claude Code 2.1 #2

Description

@imtylervo

Hi, thanks for publishing this collection — the skills/commands are useful. Ran into two schema validation errors when trying to install via Claude Code 2.1.117. Sharing the exact errors + fixes so anyone else hitting this has a reference.

Bug 1 — .claude-plugin/marketplace.json fails schema validation

Reproduce

claude plugin marketplace add Owl-Listener/ai-design-skills

Error

✘ Failed to add marketplace: Failed to parse marketplace file at .../marketplace.json: Invalid schema:
  name: Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace"),
  owner: Invalid input: expected object, received undefined,
  plugins.0: Invalid input: expected object, received string,
  plugins.1: Invalid input: expected object, received string,
  plugins.2: Invalid input: expected object, received string,
  plugins.3: Invalid input: expected object, received string,
  plugins.4: Invalid input: expected object, received string,
  plugins.5: Invalid input: expected object, received string

Root cause

Current marketplace.json:

{
  "name": "AI Design Skills Collection",
  "description": "...",
  "plugins": ["model-interaction-design", "ai-alignment-reasoning", ...]
}

The current Claude Code marketplace schema requires:

  • name in kebab-case (no spaces)
  • owner object (required)
  • plugins array of objects, each with {name, source, description?} — bare strings are rejected

Suggested fix

{
  "name": "ai-design-skills",
  "description": "Agentic skills, commands, and plugins for designing AI products — from interaction patterns to alignment, evaluation, agent orchestration, and prompt architecture.",
  "owner": {
    "name": "Owl-Listener",
    "url": "https://github.com/Owl-Listener"
  },
  "plugins": [
    { "name": "model-interaction-design", "source": "./model-interaction-design", "description": "Patterns and skills for designing model interactions." },
    { "name": "ai-alignment-reasoning", "source": "./ai-alignment-reasoning", "description": "Skills focused on alignment and reasoning evaluation." },
    { "name": "system-behavior-shaping", "source": "./system-behavior-shaping", "description": "Techniques to shape system-level behavior via prompts/skills." },
    { "name": "evaluation", "source": "./evaluation", "description": "Evaluation skills and commands for AI products." },
    { "name": "design-agent-orchestration", "source": "./design-agent-orchestration", "description": "Patterns for multi-agent orchestration design." },
    { "name": "prompt-architecture", "source": "./prompt-architecture", "description": "Skills and commands for structuring production prompts." }
  ]
}

Bug 2 — Each <plugin>/.claude-plugin/plugin.json fails on install

Reproduce

After patching marketplace.json locally and re-adding:

claude plugin install model-interaction-design@ai-design-skills

Error

Validation errors: commands: Invalid input, skills: Invalid input

(Same error for all 6 plugins.)

Root cause

Each plugin.json currently contains:

{
  "name": "model-interaction-design",
  "description": "...",
  "skills": "../skills",
  "commands": "../commands"
}

Two problems:

  1. The skills / commands keys aren't accepted by the current schema (expected types mismatch).
  2. Even if they were, the paths ../skills and ../commands point outside the plugin directory — but each plugin dir already contains skills/ and commands/ as siblings of .claude-plugin/, so the paths are also wrong.

Suggested fix

Claude Code auto-discovers skills/ and commands/ subdirectories of the plugin root — the fields aren't needed at all. Compare to the official plugins (e.g. anthropics/claude-plugins-officialhookify/plugin.json) which only declare name, description, version, author.

Simply remove both keys:

{
  "name": "model-interaction-design",
  "description": "Design how humans and AI models communicate — conversation patterns, turn-taking, mixed-initiative flows, and generative UI."
}

Apply to all 6 plugin.json files.


Verification

After applying both fixes locally, all 6 plugins install cleanly:

Installing plugin "model-interaction-design@ai-design-skills"...✔ Successfully installed
Installing plugin "ai-alignment-reasoning@ai-design-skills"...✔ Successfully installed
Installing plugin "system-behavior-shaping@ai-design-skills"...✔ Successfully installed
Installing plugin "evaluation@ai-design-skills"...✔ Successfully installed
Installing plugin "design-agent-orchestration@ai-design-skills"...✔ Successfully installed
Installing plugin "prompt-architecture@ai-design-skills"...✔ Successfully installed

Happy to send a PR if that helps — just wanted to flag the issue first in case the schema mismatch is intentional for another tool.

Environment: Claude Code 2.1.117 on Ubuntu 24.04.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions