Commit Categorization Rules
This document defines how to categorize commits based on Conventional Commits format.
Primary Categories
Features (feat:)
CHANGELOG: New Features Slack: Yes - always include Examples:
feat(dashboard): add export report systemfeat(search): add fuzzy matchingfeat(api): add batch operations endpoint
Bug Fixes (fix:)
CHANGELOG: Bug Fixes Slack: Yes - if user-facing; No - if internal Examples:
fix(auth): correct token refresh flow-> Include in Slackfix(test): correct mock setup-> Do NOT include in Slack
Performance (perf:)
CHANGELOG: Technical Improvements > Performance Slack: Yes - simplified ("Performance improvement") Examples:
perf(api): optimize N+1 queries with batchingperf(build): reduce bundle size by 30%
Security (security: or fix(security):)
CHANGELOG: Security Slack: Yes - always, with appropriate detail level Examples:
security: fix CVE-2025-55182 dependency RCEfix(security): prevent XSS in user input
Secondary Categories (CHANGELOG only)
Refactoring (refactor:)
CHANGELOG: Technical Improvements > Architecture Slack: No Examples:
refactor(hooks): migrate to new patternrefactor(permissions): extract to service layer
Documentation (docs:)
CHANGELOG: Documentation (if significant) Slack: No Examples:
docs: update CLAUDE.md with new patternsdocs(api): add endpoint documentation
Tests (test:)
CHANGELOG: Tests (count only) Slack: No Examples:
test(api): add endpoint integration teststest(e2e): add workflow tests
Chores (chore:)
CHANGELOG: No (unless significant) Slack: No Examples:
chore: update dependencieschore(ci): fix workflow permissions
Style (style:)
CHANGELOG: No Slack: No Examples:
style: apply prettier formattingstyle(eslint): fix linting errors
Scope Patterns
Common scopes:
| Scope | Area |
|---|---|
auth | Authentication |
billing | Billing and payments |
api | API endpoints |
ui | UI components |
dashboard | Dashboard features |
notifications | Notification system |
search | Search functionality |
user | User management |
db | Database and migrations |
permissions | Permission system |
admin | Admin panel |
Breaking Changes
Indicated by ! after type/scope or BREAKING CHANGE: in footer:
feat(api)!: change status enumfix(auth)!: require new token format
CHANGELOG: Breaking Changes section Slack: Yes - with migration instructions
PR Number Extraction
Extract PR numbers from:
- Commit message:
(#123) - Merge commit:
Merge pull request #123 - GitHub API: cross-reference with commit SHA
Error Tracker Issue Linking
Match patterns:
[error-tracker]: PROJECT-XXfixes PROJECT-XXcloses #XX(GitHub issue)
Statistics Calculation
Count for release stats:
- PRs: Unique PR numbers
- Features:
feat:commits - Bugs:
fix:commits (excluding test/internal) - Improvements:
perf:+refactor:+ UI improvements - Security:
security:commits - Breaking: Commits with
!orBREAKING CHANGE