Skip to content
cccskills
FreePublished on GitHub

semantic-versioning

Use when committing or pushing changes and the repository needs a version bump. Analyzes commits using conventional commit prefixes to determine whether the next release is a major, minor, or patch increment. Also use when the user asks about versioning, release planning, or changelog generation.

The English summary is being prepared. Showing the original description.

See how to install

Files included (2)

  • SKILL.md3.1 KB
  • scripts/version-bump.py5.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Semantic Versioning

Determine the next version from commit history when preparing a release. The highest-impact release-relevant commit drives the bump.

When to Activate

  • Before or after pushing changes (suggest the version bump)
  • When the user asks "what version should this be?"
  • When preparing a release or tag
  • When reviewing a set of commits for release notes

Version Rules

Follows Semantic Versioning 2.0.0:

BumpTriggerExamples
Major (X.0.0)Breaking changefeat!:, fix!:, BREAKING CHANGE: in body/footer
Minor (x.Y.0)New featurefeat:, feature:
Patch (x.y.Z)Everything elsefix:, chore:, docs:, style:, refactor:, test:, ci:, perf:

The highest bump wins: if any commit is major, the release is major — regardless of how many patches are in the batch.

How to Check

Run the analysis script:

uv run skills/semantic-versioning/scripts/version-bump.py [repo-path]

Options:

  • --apply — update the version file after confirmation
  • --tag — also create a git tag

Version File Detection

The script auto-detects where the version lives:

FileField
pyproject.toml[project] version = "x.y.z"
package.json"version": "x.y.z"
Cargo.toml[package] version = "x.y.z"
VERSIONPlain text file

Workflow

  1. Analyze — scan commits since last tag, classify each
  2. Report — show the bump type, commit breakdown, and suggested next version
  3. Confirm — wait for user approval before making changes
  4. Apply (if --apply) — update version file and optionally tag

Never auto-apply version changes without user confirmation.

Commit Format Guide

For best results, follow conventional commits:

<type>[optional scope][!]: <description>

[optional body]

[optional footer(s)]

If commits don't follow conventional format, fall back to keyword analysis:

  • Words like "add", "new", "feature" → minor
  • Words like "fix", "bug", "patch", "correct" → patch
  • Words like "breaking", "remove", "drop", "rename API" → major

Pre-1.0 Semantics

For versions 0.y.z (pre-stable):

  • API is considered unstable
  • Minor bumps may include breaking changes
  • Use 0.y.z until the project declares stability

Common Mistakes

MistakeFix
Bumping major for every feat! in pre-1.0Pre-1.0: breaking changes go in minor
Forgetting to tag after version bumpAlways tag: git tag v<version>
Version in multiple files getting out of syncUse the script to update all detected version files
Non-conventional commit messagesFall back to keyword analysis, but encourage conventional commits

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

User asks for design, planning, or approach exploration before implementation. Covers new features, components, refactors, or architecture decisions. Creates design docs and proposes approaches with trade-offs.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Use when starting work in a repository under repositories/ that may lack CI configuration. Detects missing CI workflows (GitHub Actions, GitLab CI, CircleCI) and alerts the user to add one. Skips repos marked as research-only.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Use when the user asks to measure command execution time or optimize a feedback loop. Records explicit measurements and recommends faster alternatives such as unit tests versus integration tests. It is opt-in; it does not run on every command.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Team conventions for Python development — credentials, API clients, LLM response parsing, testing patterns, and data pipeline structure. Covers dotenv loading, retry logic, secret validation, and pipeline anti-patterns.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Measurement-driven code refactoring — profile before changing, measure after, keep only if metrics improve. Covers complexity reduction, extraction patterns, and bulk refactoring for mechanical changes across many files.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

Scan projects for credential leaks, secrets in code, insecure patterns, LLM API key exposure, PII leakage to external AI services, and .env/.gitignore misconfigurations. Especially useful for data and API integrations, regardless of implementation language.

The English summary is being prepared. Showing the original description.

Benkapner/claude-code-basecamp18Updated Oct 1, 2026

See all skills by Benkapner

Report a problem with this skill