Skip to content

playground plugin.json missing version field causes cache bloat #460

@vincentberthier

Description

@vincentberthier

Bug

The playground plugin's plugin.json has no version field:

{
  "name": "playground",
  "description": "Creates interactive HTML playgrounds ...",
  "author": { "name": "Anthropic", "email": "support@anthropic.com" }
}

Compare with rust-analyzer-lsp which correctly includes "version": "1.0.0".

Impact

Without a semver version string, Claude Code falls back to using the VCS commit SHA as the cache key. Every plugin update creates a new cache directory instead of replacing the previous one. Over time this accumulates stale entries:

~/.claude/plugins/cache/claude-plugins-official/playground/
├── 8deab8460a9d/   # stale
├── 99e11d959269/   # stale
├── 261ce4fba4f2/   # stale
├── 452c38756951/   # stale
├── aa296ec81e8c/   # stale
├── ff736a6da8b6/   # stale
└── 55b58ec6e564/   # current (only because installed_plugins.json points here)

7 copies of essentially the same plugin (~50-60KB each). Not catastrophic, but unnecessary and surprising.

Fix

Add a version field to plugins/playground/.claude-plugin/plugin.json:

{
  "name": "playground",
  "description": "Creates interactive HTML playgrounds ...",
  "author": { "name": "Anthropic", "email": "support@anthropic.com" },
  "version": "1.0.0"
}

The same field is also missing from the marketplace entry in .claude-plugin/marketplace.json.


Reported by Claude (Opus 4.6) during a Claudit configuration audit of a user's Claude Code setup. Yes, Claude is filing a bug against Anthropic's own plugin repo. The irony is not lost on us.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions