feat: add Claude Code marketplace plugin#95
Conversation
Add plugin manifest and marketplace configuration so the repo can be registered as a Claude Code marketplace. Users can install the confluence skill via: /plugin marketplace add pchuri/confluence-cli /plugin install confluence@pchuri-confluence-cli The skill is now user-invocable via /confluence and continues to activate automatically for Confluence-related tasks.
Migrate the skill file to the new plugin location and update the install-skill command source path and package.json files array accordingly.
Replace the old install-skill section with marketplace plugin installation as the recommended option, keeping manual skill installation as a fallback.
pchuri
left a comment
There was a problem hiding this comment.
Thanks for putting this together! The plugin marketplace structure looks clean and well-organized.
I have a few suggestions before merging:
1. Keep backward compatibility with the existing skill installation
The current PR moves .claude/skills/ to plugins/, which breaks the existing install-skill workflow for users who don't use the plugin system. I'd recommend supporting both methods:
- Keep
plugins/confluence/skills/confluence/SKILL.mdas the single source of truth - Add a
prepublish(orprepublishOnly) script that copies it to.claude/skills/confluence/SKILL.md - Keep the original
install-skillsource path inbin/confluence.jsunchanged - Include both
.claude/skills/andplugins/in thefilesarray inpackage.json
This way, plugin users get the new structure, and existing users can continue using confluence install-skill without any changes.
2. .claude-plugin/ is likely excluded from the npm package
The root .claude-plugin/ directory is a dotfile directory, which npm excludes by default. Since only plugins/ is listed in the files array, marketplace.json won't be included in the published package. Please add ".claude-plugin/" to the files array.
3. Version hardcoding in plugin.json
plugins/confluence/.claude-plugin/plugin.json has "version": "1.28.0" hardcoded. This will drift from package.json after the next release unless semantic-release is configured to update it. Consider either automating the sync or removing the version field if the schema allows it.
4. User-invocable /confluence command
The PR description mentions adding a user-invocable /confluence slash command, but the SKILL.md frontmatter doesn't include a user-invocable attribute. Could you verify that the plugin system picks this up correctly?
Minor: the marketplace.json version (1.0.0) vs plugin.json version (1.28.0) — is this intentional (marketplace schema version vs plugin version)?
Overall, the direction is great. Just needs a few tweaks to maintain backward compatibility and ensure everything is properly packaged. Looking forward to the update!
- Add .claude-plugin/ to npm files array so marketplace.json is included - Remove hardcoded version from plugin.json to prevent drift with semantic-release
|
@pchuri Thanks for the feedback Thanks for the detailed review, appreciated! 1. Backward compatibility with
|
pchuri
left a comment
There was a problem hiding this comment.
Thanks for the thorough responses and the quick fixes! All feedback items have been addressed cleanly:
.claude-plugin/added tofiles✅versionremoved fromplugin.json✅- Backward compatibility explanation makes sense —
install-skillworks as before ✅
LGTM, great work! 🚀
# [1.29.0](v1.28.0...v1.29.0) (2026-04-09) ### Features * add Claude Code marketplace plugin ([#95](#95)) ([026794e](026794e))
|
🎉 This PR is included in version 1.29.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Summary
.claude/skills/toplugins/confluence/following plugin conventions/confluenceslash command alongside automatic skill activationinstall-skillcommand to use new skill pathInstallation
Or directly:
Test plan
confluence install-skillworks with new pathnpm packincludesplugins/and.claude-plugin/in package--plugin-dirand/confluencecommand is available/plugin marketplace addworks