plugin-versioning

Bumps SemVer versions in plugin.json manifests based on Conventional Commit messages.

Updated Apr 12, 2026
One-click install
npx skills add https://github.com/azborgonovo/ai-skills --skill plugin-versioning-azborgonovo
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: plugin-versioning
Source: https://github.com/azborgonovo/ai-skills/tree/main/.claude/skills/plugin-versioning
Command: npx skills add https://github.com/azborgonovo/ai-skills --skill plugin-versioning-azborgonovo

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? When a plugin's skill files change, its version in .claude-plugin/plugin.json must increase or installed users never receive the update. This Skill automates detecting which plugins changed and bumping their versions at the correct SemVer level before every commit. ## Core Features & Use Cases - Automatic change detection: Compares the working tree against HEAD via git status to find plugins with modified skill files, ignoring drafts and non-skill files like CHANGELOG.md. - Commit-message-driven bump levels: Derives major, minor, or patch from the Conventional Commit type (breaking changes, feat, or everything else), with manual --major/--minor/--patch overrides. - Idempotent and multi-plugin aware: Running the script twice before committing never double-bumps, and --plugin flags let one commit apply different levels to different plugins. - Use Case: Before committing "feat(bdd): add scenario linter", run the bundled script so the bdd plugin's version bumps one minor level and the change ships in the same commit. ## Quick Start Before committing changes under a skills/<plugin>/ directory, ask the assistant to run the plugin-versioning script with your Conventional Commit message so each affected plugin.json version is bumped and staged with the commit.

Frequently Asked Questions about plugin-versioning

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I bump a plugin version before committing skill changes?▼

Run the bundled upgrade-plugin-versions.py script with the Conventional Commit message you are about to commit, for example --message "feat(bdd): add scenario linter". It detects which plugins changed via git status and updates each plugin.json version, which you then include in the same commit.

How does the script map Conventional Commits to SemVer levels?▼

A breaking change marker (type!: or BREAKING CHANGE in the body) maps to major, a feat type maps to minor, and everything else such as fix, docs, refactor, or chore maps to patch. You can override the level with --major, --minor, or --patch flags.

What happens when one commit touches multiple plugins?▼

The single commit message's level applies to every changed plugin by default. When plugins need different levels, either split the work into one commit per plugin or run the script once per plugin using --plugin NAME with its own level flag.

Does running the version bump script twice double-bump the version?▼

No, the script is idempotent. A plugin whose working-tree version already differs from HEAD is treated as already bumped this round and is left unchanged, so repeated runs before the commit lands are safe.

How should I version a branch with several commits?▼

Bump once for the whole branch at the highest-order Conventional Commit type across all its commits, since intermediate versions were never released. If you already bumped per commit, reset the version to its pre-branch value and bump once at that level.

Are draft skills versioned by this workflow?▼

No, drafts under skills/drafts/ are not plugins, have no plugin.json, and are never versioned. Only plugins with a .claude-plugin/plugin.json manifest under skills/<plugin>/ participate in version bumps.