Consistently manage package versions across the monorepo using pnpm and changie. Use when bumping versions, preparing releases, or syncing versions.
This skill provides a standardized workflow for consistently bumping package versions across the entire monorepo. It ensures that both package.json files and the project changelog are kept in sync.
git commit, git push, or similar destructive git operations as part of this skill. Only stage changes if necessary for verification, but never commit them. Leave these actions to the user.Use pnpm to update versions in files. For monorepos, you must update both the root and all workspace packages.
package.jsonTo update the root version:
pnpm version <version> --no-git-tag-version
To update all workspace packages recursively:
pnpm -r version <version> --no-git-tag-version
Note: The --no-git-tag-version flag prevents pnpm from creating a git commit and tag automatically, allowing you to review changes first.
After bumping the package versions, you must also update the changelog to reflect the new version.
Batch unreleased changes into the new version:
changie batch <version>
Merge the new version notes into CHANGELOG.md:
changie merge
Maintain the version string in CLI and MCP entrypoints by updating the .version() call to match the new version.
Identify files with version strings:
Search for .version( in the codebase to find relevant entrypoints. Common locations include:
packages/mcp/src/bin.tspackages/cli/src/index.tsUpdate the version string:
Replace the hardcoded version string with the new <version>.
<version> string for both pnpm and changie commands.pnpm install after bumping versions to update the pnpm-lock.yaml.package.json files and CHANGELOG.md before committing.