| name | commit |
| description | Create commit messages following Conventional Commit conventions. Use when committing code changes, writing commit messages, or formatting git history. Follows conventional commits with-specific issue references. |
Commit Messages
Follow these conventions when creating commits for projects.
When to Use This Skill
Use this skill when:
- Committing code changes
- Writing commit messages
- Formatting git history
- Following commit Conventional Commit conventions
- Referencing issues in commits
Prerequisites
Before committing, ensure you're working on a feature branch, not the main branch.
git branch --show-current
If you're on main or master, create a new branch first:
git checkout -b <type>/<short-description>
Branch naming should follow the pattern: <type>/<short-description> where type matches the commit type (e.g., feat/add-user-auth, fix/null-pointer-error, ref/extract-validation).
Format
<type>(<scope>): <subject>
<body>
<footer>
The header is required. Scope is optional. All lines must stay under 100 characters.
📋 Types of Commit
-
feat: A new feature for the user or system
Example: feat(auth): add Google login feature
-
fix: A bug fix for the user or system
Example: fix(button): resolve issue with button hover state
-
chore: Routine tasks like maintenance or updating dependencies
Example: chore(deps): update react to version 17.0.2
-
docs: Documentation updates
Example: docs(readme): update installation instructions
-
style: Changes related to code style (e.g., formatting, missing semi-colons)
Example: style(button): fix button alignment in CSS
-
refactor: Code change that neither fixes a bug nor adds a feature
Example: refactor(auth): simplify login form validation logic
-
test: Adding or updating tests
Example: test(auth): add unit tests for login function
-
build: Changes that affect the build system or external dependencies
Example: build(webpack): add webpack config for production build
-
ci: Continuous integration-related changes
Example: ci(gitlab): update CI config for deployment pipeline
-
perf: Code changes that improve performance
Example: perf(api): optimize database queries for faster responses
-
env: Changes related to environment setup or configuration
Example: env(docker): update Dockerfile for staging environment
-
sec: Security fixes or improvements
Example: sec(auth): add encryption for user passwords
-
config: Changes to configuration files
Example: config: update .eslint rules for stricter code checks
-
api: Updates to API contracts or integrations
Example: api(user): add new endpoint for user profile updates
Additional Commit Types
revert: Reverts a previous commit
Example: revert(auth): rollback Google login feature
merge: Indicates a merge commit
Example: merge: branch 'feature/auth' into 'main'
deps: Dependency-specific updates
Example: deps: bump axios from 0.21.1 to 0.24.0
design: UI or UX improvements
Example: design(button): update hover effect
Subject Line Rules
- Use imperative, present tense: "Add feature" not "Added feature"
- Capitalize the first letter
- No period at the end
- Maximum 70 characters
Body Guidelines
- Explain what and why, not how
- Use imperative mood and present tense
- Include motivation for the change
- Contrast with previous behavior when relevant
Footer: Issue References
Reference issues in the footer using these patterns:
Fixes GH-1234
Fixes
Fixes-1234
Refs LINEAR-ABC-123
Fixes closes the issue when merged
Refs links without closing
Examples
Simple fix
fix(api): Handle null response in user endpoint
The user API could return null for deleted accounts, causing a crash
in the dashboard. Add null check before accessing user properties.
Fixes-5678
Co-Authored-By: Claude <noreply@anthropic.com>
Feature with scope
feat(alerts): Add Slack thread replies for alert updates
When an alert is updated or resolved, post a reply to the original
Slack thread instead of creating a new message. This keeps related
notifications grouped together.
Refs GH-1234
Refactor
ref: Extract common validation logic to shared module
Move duplicate validation code from three endpoints into a shared
validator class. No behavior change.
Breaking change
feat(api)!: Remove deprecated v1 endpoints
Remove all v1 API endpoints that were deprecated in version 23.1.
Clients should migrate to v2 endpoints.
BREAKING CHANGE: v1 endpoints no longer available
Fixes-9999
Revert Format
revert: feat(api): Add new endpoint
This reverts commit abc123def456.
Reason: Caused performance regression in production.
Principles
- Each commit should be a single, stable change
- Commits should be independently reviewable
- The repository should be in a working state after each commit
References
Conventional-commits
For a deeper understanding of Conventional Commits, check out the official documentation: Conventional Commits.