version-bump
Bumps version numbers for all packages in a monorepo based on the CHANGELOG.md file.
Install
mkdir -p .claude/skills/version-bump && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10752" && unzip -o skill.zip -d .claude/skills/version-bump && rm skill.zipInstalls to .claude/skills/version-bump
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Bump lockstep versions for Dart and Flutter workspace packages based on the Unreleased section of the root CHANGELOG.md.Key capabilities
- →Determine the next version based on CHANGELOG.md
- →Apply major, minor, or patch version bumps
- →Update `pubspec.yaml` files with the new version
- →Rename `## [Unreleased]` section in root CHANGELOG.md
- →Insert a new empty `## [Unreleased]` section
- →Preserve formatting in `pubspec.yaml` files
How it works
The skill parses the 'Unreleased' section of the root CHANGELOG.md to determine the appropriate semantic version bump (major, minor, or patch) and applies it across all packages in a lockstep manner.
Inputs & outputs
When to use version-bump
- →Bumping package versions
- →Releasing monorepo packages
- →Managing semantic versioning
About this skill
Dart Version Bumping Skill
When to use this skill
Use this skill when:
- You are asked to bump versions in a Dart or Flutter workspace / monorepo
- All packages share a single version
- Compatibility is guaranteed only for identical versions across packages
- Versions and releases are managed centrally
- CHANGELOG.md exists at the repository root
Versioning Model
This repository uses lockstep workspace versioning:
- All packages share one identical version
- Every release publishes all packages
- Version equality guarantees compatibility across packages
- Compatibility across different versions is NOT guaranteed
Packages are distribution units, not independently versioned products.
Source of Truth
The only source of truth for version decisions is:
/CHANGELOG.md → ## [Unreleased]
- There is exactly one canonical CHANGELOG.md at the repository root
- Package-level CHANGELOG.md files are derived artifacts
- Package CHANGELOG.md files must not be edited manually
Content outside ## [Unreleased] must be ignored for version decisions.
Semantic Versioning Rules
Versions follow:
MAJOR.MINOR.PATCH
Exactly one increment must be applied.
Major Version Bump
Apply a major bump if and only if:
- A section named
### BREAKINGexists under## [Unreleased] - Or any entry explicitly describes a breaking change
Result:
MAJOR = MAJOR + 1
MINOR = 0
PATCH = 0
Minor Version Bump
Apply a minor bump if and only if:
- No
### BREAKINGsection exists - New functionality is introduced via:
### Added### Features### Changed(non-breaking)
Result:
MINOR = MINOR + 1
PATCH = 0
Patch Version Bump
Apply a patch bump if and only if:
- No breaking changes
- No new features
- Only fixes or maintenance work exist
Typical sections:
### Fixed### Refactored### Docs### Chore
Result:
PATCH = PATCH + 1
Required Actions
1. Determine the Next Version
- Read the current version from any
pubspec.yaml(all versions are identical) - Parse
/CHANGELOG.md - Extract
## [Unreleased] - Determine the bump type using the rules above
- Compute the next workspace version
2. Update pubspec.yaml Files
For every package in the workspace:
- Update the
version:field to the new version - Preserve formatting
- Do not modify dependencies
- Do not introduce per-package version differences
3. Update the Root CHANGELOG.md
-
Rename
## [Unreleased]to:[<new_version>] - <yyyy-MM-dd>
-
Use the current date in
yyyy-MM-ddformat -
Insert a new empty
## [Unreleased]section above it -
Preserve all existing content and ordering
4. Package CHANGELOG Handling (Important)
- Do NOT maintain or edit package-level
CHANGELOG.mdfiles - During publishing, the root
CHANGELOG.mdis copied into each package directory - This is a publish-time operation only
- Package CHANGELOG.md files are not authoritative
Multi-Package Repositories
- Versioning is evaluated once per workspace
- All packages receive the same version
- Independent package versioning is explicitly forbidden
- Do not attempt to infer per-package changes
Constraints
The agent must NOT:
- Evaluate packages independently
- Assign different versions to different packages
- Parse or interpret package-level CHANGELOG.md files
- Guess version numbers
- Skip versions
- Apply multiple version increments
- Bump versions if
## [Unreleased]is empty - Modify unrelated files
Completion Criteria
The task is complete when:
- The root CHANGELOG.md is updated correctly
- All
pubspec.yamlfiles contain the new identical version - A fresh empty
## [Unreleased]section exists - No package-level changelog logic was introduced
- No unrelated changes exist
When not to use it
- →When packages have independent versioning
- →When `## [Unreleased]` section in CHANGELOG.md is empty
- →When only one package needs a version bump
Limitations
- →Only one canonical CHANGELOG.md at the repository root is considered
- →All packages must share one identical version
- →Does not evaluate packages independently
How it compares
This skill automates lockstep version bumping for Dart/Flutter monorepos based on a single CHANGELOG.md, ensuring consistent versioning across all packages, unlike manual updates or per-package versioning.
Compared to similar skills
version-bump side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| version-bump (this skill) | 0 | 5mo | No flags | Intermediate |
| stac-quickstart | 1 | 6mo | Review | Beginner |
| fix-dependabot-prs | 1 | 6mo | Review | Intermediate |
| flutter-pub-update | 2 | 7mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
stac-quickstart
StacDev
Help initialize and validate a Stac-enabled Flutter project and ship a first server-driven screen. Use when users ask to set up Stac CLI, run stac init/build/deploy, verify project prerequisites, or troubleshoot first-run setup and missing configuration files.
fix-dependabot-prs
bannzai
dependabotから上がってきた複数のPRを一括で解決し、まとめPRを作成する。dependabotのPR対応を依頼された時に使用。
flutter-pub-update
bannzai
Flutterプロジェクトのpubspec.yamlパッケージを更新するスキル。一括更新または指定パッケージ更新に対応。メジャーバージョン更新時は確認を挟み、更新前にpub.dev/GitHubでchangelogを確認して変更内容を報告する。$ARGUMENTSにパッケージ名を指定するか、--allで全パッケージ更新。
shorebird-patch
ganpare
Shorebird OTA パッチの作成・配布(staging → promote → stable)
github-release-management
ruvnet
Comprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management
macos-spm-app-packaging
Dimillian
Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project. Use when you need a from-scratch macOS app layout, SwiftPM targets/resources, a custom .app bundle assembly script, or signing/notarization/appcast steps outside Xcode.