<type>(<optional scope>): <short summary>
- Present tense, imperative mood
- User‑focused, concise
feat — New user‑visible functionality
- Adds a new capability or extends behavior
- Examples:
feat: add CSV exportfeat(ui): allow sorting by datefeat(api): expose metrics endpoint
fix — Bug fix
- Corrects incorrect or broken behavior
- Examples:
fix: prevent crash on empty inputfix(auth): refresh token correctly
docs — Documentation only
- README, comments, guides, examples
- Examples:
docs: add usage exampledocs(readme): update installation steps
refactor — Internal code changes (no behavior change)
- Renaming, restructuring, extracting logic
- Examples:
refactor: extract validation logicrefactor(core): rename misleading variables
test — Tests and benchmarks
- Adding, updating, or refactoring tests
- Examples:
test: add edge cases for parsertest(bench): add performance benchmarks
style — Formatting only
- Whitespace, linting, import order
- Examples:
style: run formatterstyle(css): normalize indentation
chore — Maintenance & cleanup
- No user‑visible behavior change
- Examples:
chore: remove unused fileschore(deps): update lodashchore: bump version to 0.0.9
build — Build system or tooling
build: update webpack config
ci — CI/CD configuration
ci: add GitHub Actions workflow
perf — Performance improvements
perf: reduce query execution time
revert — Revert a commit
revert: feat(auth): add password reset
Use ! after type or scope:
feat(api)!: remove legacy endpoint
- Dependency update →
chore(deps) - Delete unused code →
chore - Benchmarks →
test - Version bump →
chore