| applyTo |
|---|
all commits |
- Follows Conventional Commits specification strictly
- Consistency over flexibility for clean git history
- Use format:
<type>(<scope>): <subject> - Subject maximum 50 characters
- Use present tense imperative mood ("add" not "added")
- Start subject with lowercase letter (except proper nouns)
- No period at end of subject line
feat: new feature for usersfix: bug fix for usersdocs: documentation changestest: adding or correcting testsrefactor: code changes without bugs/featureschore: maintenance, dependencies, build tasksperf: performance improvementsci: CI configuration changesstyle: formatting, whitespace (no logic changes)
- Use component being modified (
core,api,docs) - Omit scope for project-wide changes
- Use consistent naming across repositories
- Keep scope names short and clear
- Separate from subject with blank line
- Wrap at 72 characters per line
- Explain WHAT and WHY, not HOW
- Use bullet points for multiple changes
- Reference issues when relevant
- Add
!after type/scope:feat(api)!: change endpoint - Include
BREAKING CHANGE:footer with explanation - Always use both
!and footer for clarity
feat(core): add input validation
fix(api): handle empty responses gracefully
docs: update installation guide
chore(deps): update dependency to v2.1.0
feat(auth)!: remove deprecated login method
BREAKING CHANGE: Legacy login removed. Use OAuth instead.
- Subject describes the change clearly
- Would make sense to reviewer in 6 months
- Follows all formatting rules exactly
- Breaking changes properly marked and explained