conventional-commits
Original:🇺🇸 English
Translated
Use when creating git commits, writing commit messages, or following version control workflows
3installs
Sourcetigrisdata/skills
Added on
NPX Install
npx skill4agent add tigrisdata/skills conventional-commitsTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Conventional Commits
Structured commit message format for version control that provides clear, readable project history.
Overview
The Conventional Commits specification provides:
- Automated changelog generation - Tools can parse commits to generate CHANGELOG.md
- Semantic versioning - Commit types map to version bumps (feat → minor, breaking → major)
- Clear project history - Standardized format makes git log readable
- Automated releases - CI/CD can trigger releases based on commit types
Quick Reference
| Type | Use For | Version Bump |
|---|---|---|
| New feature | MINOR |
| Bug fix | PATCH |
| Documentation only | PATCH |
| Formatting, no logic change | PATCH |
| Code restructuring, no behavior change | PATCH |
| Performance improvement | PATCH |
| Adding or updating tests | PATCH |
| Build system or dependencies | PATCH |
| CI/CD configuration | PATCH |
| Maintenance, no user-facing change | PATCH |
| Revert a previous commit | PATCH |
Format
text
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]Rules:
- Type is required
- Scope is optional - use parenthesized section affected: ,
(api),auth)parser) - Description is required
- Keep description concise, imperative mood, lowercase, no trailing period
- Body and footer are optional
- Separate subject from body with blank line
- Wrap body at 72 characters
Examples
text
feat: add user authentication
Implement JWT-based authentication with login/logout endpoints.
Includes password hashing and session management.
Closes: #123text
fix(api): handle null response from server
Previous implementation crashed when server returned null.
Now returns empty result set.
Assisted-by: GLM 4.6 via Claude Codetext
feat(storage)!: change bucket listing API
BREAKING CHANGE: bucket list now returns async iterator
instead of array. Update all callers to use for-await.text
refactor(core): simplify error handling
Consolidate duplicate error handlers into single utility.
No behavior changes - internal cleanup only.text
revert: feat(auth): add OAuth support
This reverts commit 8b5a1c2. OAuth provider changed
their API and we need to redesign integration.Breaking Changes
Indicate breaking changes in two ways:
Option 1: Add after type/scope
!text
feat(api)!: remove deprecated endpointOption 2: Add footer
BREAKING CHANGE:text
feat(api): remove deprecated endpoint
BREAKING CHANGE: endpoint no longer exists. Use newEndpoint instead.AI Attribution
AI agents must disclose their assistance in the commit footer:
text
Assisted-by: [Model Name] via [Tool Name]Examples:
Assisted-by: GLM 4.6 via Claude CodeAssisted-by: Claude Opus 4.5 via claude.ai
Common Mistakes
| Mistake | Why Wrong | Correct |
|---|---|---|
| Past tense, capitalized | |
| Trailing period | |
| Missing type | |
| Missing space after colon | |
| Uppercase type | |
| Multi-line description no blank line | No separation | Add blank line after subject |
Body Guidelines
- What: Motivation for the change (vs. code comments describe HOW)
- Contrast: Explain the WHY and WHAT, not code details
- Wrap at 72 characters for readability in git log
text
feat(summarization): add support for nested bullet points
Previous implementation only flattened all content. Now preserves
hierarchy by respecting indentation levels. Users can now create
structured summaries with parent-child relationships.
Closes: #456Footer Guidelines
Use footers for:
- Breaking changes:
BREAKING CHANGE: detailed explanation - Issue references: ,
Closes: #123,Fixes: #456Refs: #789 - AI attribution:
Assisted-by: Model via Tool
Multiple footers separated by blank lines:
text
feat: add batch upload
Implements multipart upload for large files.
BREAKING CHANGE: upload() signature changed - now requires options object
Closes: #123
Assisted-by: GLM 4.6 via Claude CodeGit Commit Flags
Required flag: Always use when committing:
--signoffbash
git commit --signoff -m "feat: add user authentication"The flag adds a trailer to the commit message, indicating the committer has certified the commit follows developer certificate of origin (DCO).
--signoffSigned-off-byTesting Your Commit
Before committing, verify:
- Type is from allowed list
- Description is imperative mood (add, fix, update)
- Description is lowercase
- No trailing period on description
- Breaking changes marked with or footer
! - AI attribution included (if applicable)
- Body explains WHY not HOW
- Using flag
--signoff