Skip to content

[Bug] marketplace.json declares nonexistent ./wear/jetpack-compose-m3, so the whole plugin fails to load #112

Description

@ezrareeves

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.

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