codemie-release

Automate the release process for CodeMie CLI following semantic versioning and conventional commits.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "codemie-release" with this command: npx skills add codemie-ai/codemie-code/codemie-ai-codemie-code-codemie-release

CodeMie Release

Automate the release process for CodeMie CLI following semantic versioning and conventional commits.

Pre-flight Checks

Before starting, verify:

  • Branch: Must be on main . If not, stop and ask user to switch.

  • Working directory: Check for uncommitted changes. Warn if present.

  • Current state: Determine what's already done:

Current version

grep '"version"' package.json | sed 's/."version": "(.)".*/\1/'

Latest tag

git describe --tags --abbrev=0 2>/dev/null

Check if tag exists

git tag -l "v<VERSION>"

Check if release exists

gh release view "v<VERSION>" 2>/dev/null

Analyze Commits and Determine Version

CRITICAL: Always analyze commits to determine the appropriate version bump based on conventional commit types.

  1. Get Commit Delta

Get commits since last release (excluding version bump commits)

LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null) git log --pretty=format:"%s" ${LAST_TAG:+$LAST_TAG..HEAD} | grep -v "^chore: bump version"

  1. Analyze Commit Types

Parse each commit message to identify type:

Conventional Commit Format: <type>(<scope>): <subject>

  • Types: feat , fix , docs , style , refactor , perf , test , chore , ci , revert

  • Scopes (optional): cli , agents , providers , assistants , config , proxy , workflows , ci , analytics , utils , deps , tests , skills

Breaking Changes: Check commit bodies for BREAKING CHANGE: footer

Check for breaking changes

git log --pretty=format:"%B" ${LAST_TAG:+$LAST_TAG..HEAD} | grep -q "BREAKING CHANGE:"

  1. Determine Version Bump

Version bump rules (highest precedence wins):

  • MAJOR bump (x.0.0) - If any commit contains BREAKING CHANGE: in body

  • MINOR bump (0.x.0) - If any commit has feat: or feat(scope):

  • PATCH bump (0.0.x) - If only fix: , refactor: , perf: , docs: , style: , test: , chore: , ci: , revert:

  1. Calculate Target Version

Current version from package.json

CURRENT=$(grep '"version"' package.json | sed 's/."version": "(.)".*/\1/')

Parse version parts (e.g., "0.0.35" → major=0, minor=0, patch=35)

IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT"

Apply bump based on commit analysis:

- If BREAKING CHANGE found: MAJOR=$((MAJOR+1)), MINOR=0, PATCH=0

- If feat: found: MINOR=$((MINOR+1)), PATCH=0

- Otherwise: PATCH=$((PATCH+1))

TARGET_VERSION="$MAJOR.$MINOR.$PATCH"

  1. Present Recommendation

Show the user:

  • Current version: e.g., 0.0.35

  • Commits analyzed: List of commit subjects

  • Detected bump type: MAJOR/MINOR/PATCH with explanation

  • Recommended version: e.g., 0.0.36

  • Ask user to confirm or provide alternative

Example output:

📦 Current version: 0.0.35 📊 Analyzed 3 commits since v0.0.35:

  • fix(utils): auto-update PATH during Claude installation on Windows (#120)
  • refactor(skills): relocate skills module to codemie-code agent (#117)

🔍 Detected: PATCH bump (only fixes and refactors found) 🎯 Recommended version: 0.0.36

Confirm release version 0.0.36?

Generate Release Notes

CRITICAL: Group commits by type and generate concrete, user-focused release notes.

  1. Categorize Commits

Get full commit messages since last tag

LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null) git log --pretty=format:"%s|%b" ${LAST_TAG:+$LAST_TAG..HEAD} | grep -v "^chore: bump version"

Group commits by type:

  • ✨ Features (feat)

  • 🐛 Bug Fixes (fix)

  • ⚡ Performance (perf)

  • ♻️ Refactoring (refactor)

  • 📚 Documentation (docs)

  • 🔧 Maintenance (chore, ci, test, style)

  1. Extract Concrete Details

For each commit:

  • Remove type prefix: feat(agents): add feature → add feature

  • Capitalize first letter: add feature → Add feature

  • Keep PR numbers: (#123)

  • Extract scope for context: feat(agents): → show as "[agents]"

  1. Format Breaking Changes

If breaking changes exist:

⚠️ BREAKING CHANGES

  • [scope]: Description of what broke and how to migrate

Extract from commit body after BREAKING CHANGE: line.

  1. Release Notes Template

What's Changed

✨ Features

  • [scope]: Feature description (#PR)

🐛 Bug Fixes

  • [scope]: Fix description (#PR)

⚡ Performance Improvements

  • [scope]: Performance improvement (#PR)

♻️ Refactoring

  • [scope]: Refactoring description (#PR)

📚 Documentation

  • [scope]: Documentation change (#PR)

🔧 Maintenance

  • [scope]: Maintenance task (#PR)

Full Changelog: https://github.com/codemie-ai/codemie-code/compare/${LAST_TAG}...v&#x3C;VERSION>

Example concrete release notes:

What's Changed

🐛 Bug Fixes

  • [utils]: Auto-update PATH during Claude installation on Windows (#120)

♻️ Refactoring

  • [skills]: Relocate skills module to codemie-code agent (#117)

Full Changelog: https://github.com/codemie-ai/codemie-code/compare/v0.0.35...v0.0.36

Release Steps

Execute each step, skipping if already completed:

  1. Update Version

npm version <VERSION> --no-git-tag-version

Skip if package.json already at target version.

  1. Commit Version Bump

git add package.json package-lock.json git commit -m "chore: bump version to <VERSION>

🤖 Generated with release script"

Skip if commit message chore: bump version to <VERSION> exists in HEAD.

  1. Create Tag

git tag -a "v<VERSION>" -m "Release version <VERSION>"

Skip if tag v<VERSION> already exists.

  1. Push to Origin

git push origin main git push origin "v<VERSION>"

  1. Create GitHub Release

Create release with generated notes

gh release create "v<VERSION>"
--title "Release v<VERSION>"
--notes "<GENERATED_RELEASE_NOTES>"
--latest

Skip if release v<VERSION> already exists.

Use the concrete, categorized release notes generated in the previous section.

Completion

After successful release, inform user:

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

git-worktree

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

spec-reviewer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

codemie-pr

No summary provided by upstream source.

Repository SourceNeeds Review