VE

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.zip

Installs 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.
120 charsno explicit “when” trigger
Intermediate

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

You give it
Root CHANGELOG.md and `pubspec.yaml` files in a Dart/Flutter workspace
You get back
Updated root CHANGELOG.md and `pubspec.yaml` files with new lockstep version

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 ### BREAKING exists 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 ### BREAKING section 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

  1. Read the current version from any pubspec.yaml (all versions are identical)
  2. Parse /CHANGELOG.md
  3. Extract ## [Unreleased]
  4. Determine the bump type using the rules above
  5. 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-dd format

  • 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.md files
  • During publishing, the root CHANGELOG.md is 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.yaml files 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.

SkillInstallsUpdatedSafetyDifficulty
version-bump (this skill)05moNo flagsIntermediate
stac-quickstart16moReviewBeginner
fix-dependabot-prs16moReviewIntermediate
flutter-pub-update27moReviewBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry