Plugin manifest at .plugin/plugin.json is not read — skills are namespaced by commit SHA

Author: vienala-creatorCreated Jul 31, 2026Updated Jul 31, 2026

Problem

After installing the context-engineering plugin from this marketplace, all 17 skills are namespaced by the commit SHA instead of the plugin name:

c578e85e40fe:context-fundamentals
c578e85e40fe:long-horizon-prompting
c578e85e40fe:multi-agent-patterns
...

Expected: context-engineering:context-fundamentals.

Root cause

Claude Code reads a plugin's manifest from .claude-plugin/plugin.json. This repo has:

  • .claude-plugin/ — contains only marketplace.json
  • .plugin/plugin.json — the actual plugin manifest, in a directory Claude Code does not read

With no readable plugin manifest there is no name/version to key the install on, so the installer falls back to the commit SHA.

Verified against current main (c578e85e40fe):

bash
$ gh api repos/muratcankoylan/Agent-Skills-for-Context-Engineering/contents/.claude-plugin --jq '.[].name'
marketplace.json

$ gh api repos/muratcankoylan/Agent-Skills-for-Context-Engineering/contents/.plugin --jq '.[].name'
plugin.json

claude plugin validate shows the fallback directly — it validates the marketplace manifest because it finds no plugin manifest:

bash
$ claude plugin validate ~/.claude/plugins/cache/context-engineering-marketplace/context-engineering/c578e85e40fe
Validating marketplace manifest: .../.claude-plugin/marketplace.json
✔ Validation passed

For contrast, a repo that ships .claude-plugin/plugin.json (trailofbits/skills):

bash
$ claude plugin validate ~/.claude/plugins/cache/trailofbits/static-analysis/1.2.2
Validating plugin manifest: .../.claude-plugin/plugin.json
✔ Validation passed

That one installs as static-analysis:semgrep, static-analysis:codeql — correctly namespaced.

Impact

1. The plugin cannot be addressed by name.

bash
$ claude plugin details context-engineering
Plugin "context-engineering" not found.

$ claude plugin details context-engineering@context-engineering-marketplace
Plugin "context-engineering@context-engineering-marketplace" not found.

2. The namespace changes on every release. Each new commit produces a new SHA, so c578e85e40fe:context-fundamentals becomes a different name after the next merge to main. Anything that references a skill by its namespaced name — docs, saved prompts, user notes — breaks on update.

Suggested fix

Move the manifest to the location Claude Code reads:

bash
git mv .plugin/plugin.json .claude-plugin/plugin.json

The file's contents already look correct ("name": "context-engineering", "version": "2.5.0"), so no other change appears necessary.

For reference: #18 identified this same requirement back in December — "A single plugin with its own .claude-plugin/plugin.json structure" — but the fix that landed added the skills: array to marketplace.json and left the plugin manifest at .plugin/.

Environment

Claude Code 2.1.159
OS Windows 11
Marketplace commit c578e85e40fe
Install scope user

Source: muratcankoylan/Agent-Skills-for-Context-Engineering