Versioning & Maintenance
How versioning works
Claude Code versions per plugin, not per skill. Each plugin declares a semantic version in its
plugin.json, mirrored in the marketplace entry in .claude-plugin/marketplace.json.
-
Bump a version to ship an update. A user pinned to a version only receives changes when the number changes — new commits alone do not trigger an update.
-
Coupled skills share a plugin. For example,
maven-qualitybundlescodestyle,precommit, andjacoco; they version together. Everything else is its own plugin so it can move independently.
Maintenance commands
| Command | Purpose |
|---|---|
|
Validate |
|
Print the catalog: name, version, description. |
|
Bump a plugin’s version in both |
|
Validate that a plugin’s |
|
Create and push a |
Continuous integration
.github/workflows/validate.yml runs make validate on every push and pull request, and lints all
plugin.json / marketplace.json manifests with jq. A red badge on the README means a manifest is
malformed or a plugin’s name/version disagrees with the catalog.
Releasing a new plugin
-
Add
plugins/<name>/with a.claude-plugin/plugin.jsonand askills/and/oragents/directory. -
Register it under
pluginsin.claude-plugin/marketplace.json. -
Run
make validate— it must pass. -
Add a
docs/modules/ROOT/pages/<name>.adocpage and link it innav.adoc. -
Commit, then optionally cut a release tag with
claude plugin tag.