Affected Skill
.claude-plugin/marketplace.json (the plugin manifest itself) — the stale entry is ./wear/jetpack-compose-m3. The blast radius is all 20 skills, not just the Wear one.
Description
The marketplace manifest added in #111 declares a skill path that does not exist in the repository:
"./wear/jetpack-compose-m3",
The directory on disk is wear/wear-compose-m3 (and its SKILL.md declares name: wear-compose-m3). The rename landed well before the manifest was written — the tree at d9bcae65 (2026-05-21) still had wear/jetpack-compose-m3, and by 79bee216 (2026-07-06) it was already wear/wear-compose-m3. The manifest in #111 appears to have been authored against the older skill list.
Because Claude Code treats a dangling skills[] entry as a fatal manifest error rather than skipping it, this one bad path makes the entire plugin fail to load — all 20 skills become unavailable, not just the Wear one. I verified the other 19 paths all resolve correctly; this is the only mismatch.
Expected Behavior
claude plugin install android-skills@android-skills installs the plugin and all 20 skills load.
Actual Behavior
The install reports success, but the plugin never loads:
$ claude plugin install android-skills@android-skills
✔ Successfully installed plugin: android-skills@android-skills (scope: user)
$ claude plugin list
❯ android-skills@android-skills
Version: bc6cd7246a4b
Scope: user
Status: ✘ failed to load
Error: Path not found: /home/ezra/.claude/plugins/cache/android-skills/android-skills/bc6cd7246a4b/wear/jetpack-compose-m3 (skills)
No skills are registered while the plugin is in this state.
Steps to Reproduce
claude plugin marketplace add android/skills
claude plugin install android-skills@android-skills
claude plugin list
Reproduces deterministically at bc6cd7246a4b (current main). No model or prompt is involved — this is a manifest-resolution failure at plugin load time, before any skill is invoked.
Suggested Fix
One-line correction in .claude-plugin/marketplace.json:
- "./wear/jetpack-compose-m3",
+ "./wear/wear-compose-m3",
.codex-plugin/plugin.json carries the same stale path and likely needs the same fix — I did not test the Codex loader, so I can't say whether it also treats a dangling entry as fatal.
Worth considering a CI check that asserts every skills[] entry in both manifests resolves to a directory containing a SKILL.md. It would have caught this, and it will catch the next rename — the failure mode is unusually costly here because one stale path silently disables the whole plugin.
Environment
- Claude Code on Linux (Fedora, kernel 7.1.5)
android/skills at bc6cd7246a4b
- Verified by patching the path locally: after the one-line change,
claude plugin list reports ✔ enabled and all 20 skills register, including wear-compose-m3.
Affected Skill
.claude-plugin/marketplace.json(the plugin manifest itself) — the stale entry is./wear/jetpack-compose-m3. The blast radius is all 20 skills, not just the Wear one.Description
The marketplace manifest added in #111 declares a skill path that does not exist in the repository:
"./wear/jetpack-compose-m3",The directory on disk is
wear/wear-compose-m3(and itsSKILL.mddeclaresname: wear-compose-m3). The rename landed well before the manifest was written — the tree atd9bcae65(2026-05-21) still hadwear/jetpack-compose-m3, and by79bee216(2026-07-06) it was alreadywear/wear-compose-m3. The manifest in #111 appears to have been authored against the older skill list.Because Claude Code treats a dangling
skills[]entry as a fatal manifest error rather than skipping it, this one bad path makes the entire plugin fail to load — all 20 skills become unavailable, not just the Wear one. I verified the other 19 paths all resolve correctly; this is the only mismatch.Expected Behavior
claude plugin install android-skills@android-skillsinstalls the plugin and all 20 skills load.Actual Behavior
The install reports success, but the plugin never loads:
No skills are registered while the plugin is in this state.
Steps to Reproduce
Reproduces deterministically at
bc6cd7246a4b(currentmain). No model or prompt is involved — this is a manifest-resolution failure at plugin load time, before any skill is invoked.Suggested Fix
One-line correction in
.claude-plugin/marketplace.json:.codex-plugin/plugin.jsoncarries the same stale path and likely needs the same fix — I did not test the Codex loader, so I can't say whether it also treats a dangling entry as fatal.Worth considering a CI check that asserts every
skills[]entry in both manifests resolves to a directory containing aSKILL.md. It would have caught this, and it will catch the next rename — the failure mode is unusually costly here because one stale path silently disables the whole plugin.Environment
android/skillsatbc6cd7246a4bclaude plugin listreports✔ enabledand all 20 skills register, includingwear-compose-m3.