marketplace-release
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".
What this skill does
# Marketplace Release Automation
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.
## Prerequisites
1. **GitHub CLI** authenticated: `gh auth status`
2. **Clean git state** (or acknowledge uncommitted changes)
3. **marketplace.json** at `.claude-plugin/marketplace.json`
4. Run from the **marketplace root directory**
## Usage
```bash
# 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>"
```
## Examples
```bash
# 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
```
## Version Bump Types
| 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 |
## What It Does
1. **Validates prerequisites** - Checks gh CLI, git repo, uncommitted changes
2. **Validates plugin** - Runs `claude plugin validate` to ensure plugin is correct
3. **Bumps plugin version** - In both marketplace.json and the plugin's plugin.json
4. **Updates script versions** - Automatically updates `__version__` in all scripts (marketplace-utils only)
5. **Updates READMEs** - Plugin README badges + marketplace README version table
6. **Creates commit** - With release message
7. **Creates git tag** - Plugin-specific tag: `<plugin-name>-v<version>`
8. **Pushes to remote** - Both commit and tag
9. **Creates GitHub release** - With installation instructions
## Plugin Validation
Before releasing, validate your plugin to catch errors early:
```bash
# 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:
- Individual plugin validation
- Batch validation with `--all`
- Summary report of all results
## Independent Versioning
Each plugin has its own version tracked in marketplace.json:
```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:
- **Only that plugin's version** is bumped
- Tags are plugin-specific: `ghe-v0.5.4`, `marketplace-utils-v1.0.0`
- Other plugins remain unchanged
## Configuration Files
### marketplace.json (required)
Located at `.claude-plugin/marketplace.json`:
```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"
}
]
}
```
### plugin.json (auto-detected)
Located at `plugins/<name>/.claude-plugin/plugin.json`:
```json
{
"name": "plugin-a",
"version": "1.0.0"
}
```
Both files are updated when releasing that specific plugin.
## Version Suffix Handling
The script preserves version suffixes like `-alpha`, `-beta`:
- Input version: `0.2.5-alpha`
- After `patch`: `0.2.6-alpha`
- Tag created: `ghe-v0.2.6-alpha`
## Generated Release Body
```markdown
## What's Changed
<your release notes>
## Installation
```bash
/plugin marketplace update my-marketplace
/plugin install ghe@my-marketplace
```
## Full Changelog
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
```
## Marketplace README Version Table
The release script automatically maintains a version table in the marketplace README.md:
```markdown
<!-- 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:
- **Inserted** before the Table of Contents (if no markers exist)
- **Updated** in place (if markers already exist)
- **Kept current** with each release
The main version badge in the README header is also updated to match the first plugin's version.
## Troubleshooting
### "Plugin validation failed"
The plugin has issues that must be fixed before release. Check the error message and fix the plugin.json or structure.
### "marketplace.json not found"
Run from marketplace root directory, not plugin subdirectory.
### "Unknown plugin: xyz"
Check plugin name matches exactly what's in marketplace.json. Use `--list` to see available plugins.
### "Not authenticated with GitHub CLI"
Run `gh auth login` and authenticate.
### "You have uncommitted changes"
Commit or stash changes, or proceed and include them in the release.
## Portability
This script is fully portable:
- All values read from JSON config files
- GitHub repo info detected via `gh repo view`
- No hardcoded paths, names, or user-specific values
- Can be copied to any Claude Code marketplace project
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.