Skip to content

Fix/issue 11 skills not loading#12

Merged
mxriverlynn merged 2 commits into
mainfrom
fix/issue-11-skills-not-loading
May 26, 2026
Merged

Fix/issue 11 skills not loading#12
mxriverlynn merged 2 commits into
mainfrom
fix/issue-11-skills-not-loading

Conversation

@mxriverlynn
Copy link
Copy Markdown
Collaborator

@mxriverlynn mxriverlynn commented May 26, 2026

Summary

This PR removes the redundant skills field from the plugin manifest, so that Claude Code's default skill auto-discovery loads all 20 skills instead of registering zero.

  • Fixes issue Plugin skills fail to load: plugin.json nested inside plugin/ subdirectory instead of repo root #11: Han installed cleanly but registered 0 skills while agents loaded fine. Root cause was the manifest's "skills": "./skills" entry colliding with newer Claude Code loader behavior.
  • Scope is a one-line manifest change plus a patch version bump (2.6.0 to 2.6.1). No skill, agent, or doc content changed.
  • Reviewer attention: confirm the removal matches the documented auto-discovery contract — the skills/ directory is auto-discovered the same way agents/ already is, which is why agents worked in 2.6.0 and skills did not.
  • Note on the reported diagnosis: the issue suggested moving the manifest to the repo root. That is not needed. The marketplace-plus-plugin-subdirectory layout (with "source": "./plugin" in .claude-plugin/marketplace.json) is officially supported; only the redundant field had to go.

Behavior changes

Before: plugin/.claude-plugin/plugin.json declared "skills": "./skills". Per the Claude Code plugin reference (code.claude.com/docs/en/plugins-reference), the skills field is meant to declare additional skill directories beyond the default skills/. Newer loader versions apply a special-case rule (reference line 555) where a skills path without a trailing slash is treated as a directory containing SKILL.md directly. The loader therefore looked for plugin/skills/SKILL.md, found nothing, and registered 0 skills. Agents were unaffected because the manifest never declared an agents field, so the default agents/ auto-discovery ran normally.

After: with the skills field removed, default auto-discovery walks plugin/skills/ the same way it walks plugin/agents/, finds all 20 SKILL.md files in their subdirectories, and registers them.

What to look at first

  • The premise that removing the field is the correct fix. The argument: the field's documented purpose is additional directories, pointing it at the default location is redundant in older loader versions and actively broken in newer ones, and the parallel agents/ directory already works correctly via auto-discovery with no manifest entry.
  • Whether the reporter's alternative fix (moving the manifest to the repo root) should be considered instead. The marketplace manifest at .claude-plugin/marketplace.json declares "source": "./plugin", which is the documented pattern for plugins that live in a subdirectory. No structural move is required.
  • The version bump choice: 2.6.0 to 2.6.1 as a patch. No new behavior shipped; this restores intended behavior, so semver patch fits.

How this was tested

  • ✅ Verified both JSON files still parse as valid JSON after the edit.
  • ✅ Confirmed the field removal matches the auto-discovery pattern documented at code.claude.com/docs/en/plugins-reference.
  • ✅ Cross-checked against the working precedent in the same manifest: agents/ has no corresponding "agents" field and loads correctly in 2.6.0, so removing the skills field puts skill loading on the same footing.
  • ⚠️ Full end-to-end validation requires Claude Code installing the plugin from a marketplace, which cannot be reproduced in a local working tree. Reviewers installing from this branch should confirm skill count is non-zero after install.

Files of interest

  • plugin/.claude-plugin/plugin.json — the actual fix; the skills field is removed and version bumped to 2.6.1.
  • .claude-plugin/marketplace.json — version bump to 2.6.1 to keep the marketplace entry in sync with the plugin manifest.

The "skills": "./skills" field pointed at the default skills/ directory,
which Claude Code already auto-discovers. Pointing the skills manifest
field at the default location is at minimum redundant and in newer
Claude Code versions collides with the special-case rule that treats a
path without a trailing slash as a directory containing SKILL.md
directly — resulting in 0 skills registered.

Removing the field lets default auto-discovery handle skills/ the same
way it already handles agents/, which is why agents loaded fine while
skills did not.

Fixes #11
@mxriverlynn mxriverlynn merged commit 083fe4e into main May 26, 2026
@mxriverlynn mxriverlynn deleted the fix/issue-11-skills-not-loading branch May 26, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant