Unknown fields in plugin.json break skill and command registration

Status Fixed / completed
Maintainer reply ✓ Yes — ashwin-ant
Activity 4 comments · opened Jan 23, 2026 · closed Apr 18, 2026
💡 Likely answer: A maintainer (ashwin-ant, collaborator) responded on this thread — see the highlighted reply below.

Summary

When plugin.json contains unknown root-level fields, Claude Code fails to register the plugin's skills and commands. However, the underlying scripts still execute when invoked directly. This indicates the issue is in component registration, not plugin loading.

See #20409 for a related feature request focused on discoverability and error disclosure for this class of issue.

Reproduction Steps

  1. Add an unknown field to a plugin's plugin.json:
{
  "name": "context-explorer",
  "version": "0.1.0",
  "test-unknown-field": "any value"
}
  1. Clear cache and restart Claude Code
  1. Test components:
Skill(skill: "context-exploration")     → "Unknown skill"
/context-explorer:cx                     → "Unknown skill: context-explorer:cx"
python ~/.claude/plugins/cache/.../cx.py → Works fine

Observed Behavior

| Component | Status | Notes |
|-----------|--------|-------|
| Skills | ❌ Fail | "Unknown skill" error |
| Commands (slash) | ❌ Fail | "Unknown skill: plugin:command" |
| Scripts (direct) | ✅ Work | Python/bash scripts execute normally |
| Plugin in claude plugin list | ✅ Shows | Plugin appears to be loaded |

Expected Behavior

Either:

  1. Reject plugin at load time with clear error message, or
  2. Warn but register components anyway (lenient parsing)

Current silent partial failure is the worst outcome - plugin appears loaded but components don't work.

Root Cause Hypothesis

The plugin loader likely:

  1. Parses plugin.json
  2. Encounters unknown field
  3. Skips component registration (skills, commands)
  4. Still adds plugin to list (partial success)

Environment

  • Claude Code version: (current)
  • OS: Linux

View original on GitHub ↗

4 Comments

github-actions[bot] · 8 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/20409
  2. https://github.com/anthropics/claude-code/issues/16143
  3. https://github.com/anthropics/claude-code/issues/17524

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

jeremiah-snee-openx · 7 months ago

This is still an issue

ashwin-ant collaborator · 6 months ago

This was fixed in v2.1.76 — Unknown fields in plugin.json are now ignored instead of failing validation and breaking skill/command registration. If you're still seeing this in the latest version, please comment with your version and repro and we'll reopen.

github-actions[bot] · 5 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.