| name | commitizen |
| description | Use this skill for tasks involving Conventional Commits, commit message validation, Commitizen configuration, semantic version bumps, changelog generation, or CI/release automation with the Commitizen CLI. |
| license | MIT |
| metadata | {"project":"commitizen-tools/commitizen","docs":"https://commitizen-tools.github.io/commitizen/","install":"pipx install commitizen"} |
Commitizen
Commitizen is a CLI for enforcing Conventional Commits, automating version bumps, and generating changelogs.
Use this skill when
- A task involves commit message authoring or validation.
- A repository needs Commitizen initialization or configuration updates.
- Work depends on version schemes, version providers, version files, tags, or changelog behavior.
- CI/CD automation needs commit validation, automated version bumps, or release notes.
Core workflow
- Find the active configuration file in this order:
.cz.toml, cz.toml, .cz.json, cz.json, .cz.yaml, cz.yaml, then pyproject.toml under [tool.commitizen].
- Read the effective settings before acting, especially
name, version, version_provider, version_scheme, version_files, tag_format, update_changelog_on_bump, annotated_tag, bump_message, pre_bump_hooks, and post_bump_hooks.
- Match the command to the task:
cz commit for interactive commit authoring
cz check for validating commit messages or git ranges
cz init for bootstrapping configuration
cz bump for calculating or applying release versions
cz changelog for generating or updating CHANGELOG.md
cz ls for listing available commit rules
cz version for showing the current version
- Prefer read-only inspection first. Safe discovery commands include
cz version, cz ls, cz check, cz bump --get-next, and cz bump --dry-run.
- Treat
cz bump as stateful: it can update version files, create a bump commit, and create a git tag. Verify the version provider, version scheme, tag format, and changelog settings before running it for real.
- When automating in CI, check whether the workflow should ignore specific exit codes with
--no-raise and whether bump_message should include skip-CI text.
- After making changes, validate the resulting configuration, commands, and automation against the repository's actual version scheme and provider.
Important domain details
- Commitizen supports both global installation (recommended for the
cz CLI) and project-local installation; see the installation section in docs/README.md for the full matrix of supported tools.
- The default version scheme is PEP 440;
semver and semver2 are also supported.
- Common version providers include
commitizen, pep621, poetry, cargo, npm, composer, uv, and scm.
cz changelog generates Markdown changelogs.
cz commit supports --dry-run and --write-message-to-file.
cz check can validate a literal message, a commit-msg file, or a git revision range.
Examples
- Validate one message:
cz check --message "feat(cli): add release command"
- Validate branch history:
cz check --rev-range master..HEAD
- Preview the next version:
cz bump --get-next
- Preview bump details:
cz bump --dry-run
- Preview changelog output:
cz changelog --dry-run
- Initialize configuration:
cz init