Skip to content

feat(plugin): adopt modern Claude Code plugin layout#11

Open
chad-loder wants to merge 3 commits into
LukasNiessen:mainfrom
chad-loder:feat/modern-claude-plugin-layout
Open

feat(plugin): adopt modern Claude Code plugin layout#11
chad-loder wants to merge 3 commits into
LukasNiessen:mainfrom
chad-loder:feat/modern-claude-plugin-layout

Conversation

@chad-loder

Copy link
Copy Markdown

Summary

Adopt the canonical Claude Code plugin layout so /plugin install terrashark binds a slash command. Currently /reload-plugins reports 0 skills after install because the plugin lacks .claude-plugin/plugin.json and skills/<name>/SKILL.md.

Changes

  • Move SKILL.md + references/skills/terrashark/
  • Add .claude-plugin/plugin.json
  • Bump version to 2.4.0-alpha.0+modern-plugin-layout in marketplace.json

Testing

  • claude --plugin-dir <fork> registers the skill as terrashark:terrashark (verified via introspection)
  • Activated with a countfor_each prompt; correctly identified references/identity-churn.md and references/migration-playbooks.md as relevant
  • Standalone-clone install (~/.claude/skills/terrashark/) is unaffected — only the broken plugin-install path is fixed

Authoritative references

Note

Slash command changes from /terrashark (broken / non-namespaced) to /terrashark:terrashark (namespaced per the docs). Version bump uses semver build-metadata to identify the feature; happy to adjust per maintainer preference.

Move SKILL.md and references/ under skills/terrashark/, and add
.claude-plugin/plugin.json. This matches the canonical Claude Code
plugin layout documented at code.claude.com/docs/en/plugins:

  terrashark/
  ├── .claude-plugin/
  │   ├── marketplace.json
  │   └── plugin.json          (new)
  └── skills/
      └── terrashark/
          ├── SKILL.md          (moved from root)
          └── references/       (moved from root)

Without plugin.json + skills/<name>/, /plugin install terrashark binds
no slash command (the marketplace cache reports "0 skills" on reload).
With this change, the plugin install registers /terrashark:terrashark
(the namespaced form documented for plugin-bundled skills).

Version bumped to 2.4.0-alpha.0+modern-plugin-layout to mark this as
pre-release work; the build-metadata identifier names the feature.

Manual standalone installs (clone to ~/.claude/skills/terrashark/) are
unaffected. Per the docs, standalone skills bind /<skill> while
plugin-bundled skills bind /<plugin>:<skill>; the former is unchanged
and the latter starts working with this commit.
…ugin-layout

# Conflicts:
#	docs/README.md
#	docs/getting-started/installation.md
@lukasniessen-bain

Copy link
Copy Markdown
Collaborator

Thanks for moving this toward the modern plugin layout. I think the marketplace direction is right, but I would block merge until the install compatibility issues are fixed.

  • The root SKILL.md is moved under skills/terrashark/, and CI now only validates the nested path. Existing users who cloned the repo directly into ~/.claude/skills/terrashark will lose the root SKILL.md after pulling this update, so standalone clone installs are not actually unaffected. Please either keep a root compatibility entry point or document/version this as a breaking migration.
  • The docs list skills CLI/manual standalone installs but then verify with /terrashark:terrashark. That namespaced command is for plugin installs; standalone installs should still use /terrashark. Please split the invocation examples by install method.

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.

2 participants