Use when creating releases for Claude Code plugin marketplaces. Supports independent plugin versioning - each plugin can be released separately. Triggered by "release", "bump version", "create release", "publish plugin".
/plugin marketplace add Emasoft/ghe-marketplace/plugin install marketplace-utils@ghe-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
A portable release script for Claude Code plugin marketplaces with independent plugin versioning. Each plugin in a marketplace maintains its own version and can be released separately.
gh auth status.claude-plugin/marketplace.json# Release a specific plugin
python "${CLAUDE_PLUGIN_ROOT}/scripts/release.py" <bump-type> <plugin-name> "<release-notes>"
# List all plugins and their versions
python "${CLAUDE_PLUGIN_ROOT}/scripts/release.py" --list
# Or copy script to marketplace and run from root
python scripts/release.py <bump-type> <plugin-name> "<release-notes>"
# Patch release for ghe plugin
python "${CLAUDE_PLUGIN_ROOT}/scripts/release.py" patch ghe "Fix avatar loading issue"
# Minor release for marketplace-utils
python "${CLAUDE_PLUGIN_ROOT}/scripts/release.py" minor marketplace-utils "Add TOC generator"
# Major release with breaking changes
python "${CLAUDE_PLUGIN_ROOT}/scripts/release.py" major ghe "Breaking: New API structure"
# View all plugins and current versions
python "${CLAUDE_PLUGIN_ROOT}/scripts/release.py" --list
| Type | When to Use | Example |
|---|---|---|
patch | Bug fixes, minor improvements | 0.5.4 -> 0.5.5 |
minor | New features, non-breaking changes | 0.5.5 -> 0.6.0 |
major | Breaking changes, major rewrites | 0.6.0 -> 1.0.0 |
claude plugin validate to ensure plugin is correct__version__ in all scripts (marketplace-utils only)<plugin-name>-v<version>Before releasing, validate your plugin to catch errors early:
# Validate a specific plugin
python "${CLAUDE_PLUGIN_ROOT}/scripts/validate_plugin.py" ghe
# Validate all plugins
python "${CLAUDE_PLUGIN_ROOT}/scripts/validate_plugin.py" --all
# Show version
python "${CLAUDE_PLUGIN_ROOT}/scripts/validate_plugin.py" --version
The validation script wraps claude plugin validate and provides:
--allEach plugin has its own version tracked in marketplace.json:
{
"name": "my-marketplace",
"plugins": [
{
"name": "ghe",
"source": "./plugins/ghe",
"version": "0.5.4"
},
{
"name": "marketplace-utils",
"source": "./plugins/marketplace-utils",
"version": "1.0.0"
}
]
}
When you release a plugin:
ghe-v0.5.4, marketplace-utils-v1.0.0Located at .claude-plugin/marketplace.json:
{
"name": "my-marketplace",
"plugins": [
{
"name": "plugin-a",
"source": "./plugins/plugin-a",
"version": "1.0.0"
},
{
"name": "plugin-b",
"source": "./plugins/plugin-b",
"version": "2.3.1"
}
]
}
Located at plugins/<name>/.claude-plugin/plugin.json:
{
"name": "plugin-a",
"version": "1.0.0"
}
Both files are updated when releasing that specific plugin.
The script preserves version suffixes like -alpha, -beta:
0.2.5-alphapatch: 0.2.6-alphaghe-v0.2.6-alpha## What's Changed
<your release notes>
## Installation
```bash
/plugin marketplace update my-marketplace
/plugin install ghe@my-marketplace
https://github.com/owner/repo/compare/ghe-v0.5.3...ghe-v0.5.4
## Confirmation Prompt
The script prompts for confirmation before making changes:
Marketplace: my-marketplace Plugin: ghe Current version: 0.5.3 New version: 0.5.4
Proceed with release ghe-v0.5.4? [y/N]
## List Plugins Command
Use `--list` to see all plugins and their current versions:
```bash
$ python release.py --list
Marketplace: my-marketplace
Plugin Version Source
----------------------------------------------------------------------
ghe 0.5.4 ./plugins/ghe
marketplace-utils 1.0.0 ./plugins/marketplace-utils
The release script automatically maintains a version table in the marketplace README.md:
<!-- PLUGIN-VERSIONS-START -->
## Plugin Versions
| Plugin | Version | Description |
|--------|---------|-------------|
| ghe | 0.5.4 | GHE (GitHub-Elements) - Automated project manag... |
| marketplace-utils | 1.0.0 | Portable utility tools for Claude Code plugin m... |
*Last updated: 2025-01-15*
<!-- PLUGIN-VERSIONS-END -->
This section is automatically:
The main version badge in the README header is also updated to match the first plugin's version.
The plugin has issues that must be fixed before release. Check the error message and fix the plugin.json or structure.
Run from marketplace root directory, not plugin subdirectory.
Check plugin name matches exactly what's in marketplace.json. Use --list to see available plugins.
Run gh auth login and authenticate.
Commit or stash changes, or proceed and include them in the release.
This script is fully portable:
gh repo viewCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.