Plugin manifest at .plugin/plugin.json is not read — skills are namespaced by commit SHA
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 onlymarketplace.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):
$ 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.jsonclaude plugin validate shows the fallback directly — it validates the marketplace manifest because it finds no plugin manifest:
$ claude plugin validate ~/.claude/plugins/cache/context-engineering-marketplace/context-engineering/c578e85e40fe
Validating marketplace manifest: .../.claude-plugin/marketplace.json
✔ Validation passedFor contrast, a repo that ships .claude-plugin/plugin.json (trailofbits/skills):
$ claude plugin validate ~/.claude/plugins/cache/trailofbits/static-analysis/1.2.2
Validating plugin manifest: .../.claude-plugin/plugin.json
✔ Validation passedThat one installs as static-analysis:semgrep, static-analysis:codeql — correctly namespaced.
Impact
1. The plugin cannot be addressed by name.
$ 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:
git mv .plugin/plugin.json .claude-plugin/plugin.jsonThe 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