Conventional Commits is a spec for commit messages:
type(scope): subject
optional body
optional footer(s)
Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert.
Examples:
feat(auth): add OAuth provider
fix(api): handle null in pagination
perf(db): index user.email
chore(deps): bump tailwind to 4.3
Footers: BREAKING CHANGE: <description> marks a major-version bump for SemVer. Refs: #123 links a ticket. Co-authored-by: Name <email> shares credit.
Why bother? Tools like release-please and semantic-release parse these to auto-bump versions and generate changelogs. A small discipline that compounds enormously.