| name | atomic-commits |
| description | use when asked to git commit changes. |
Commit Message Style
<type>(optional-scope): short imperative summary
<plain-prose explanation of the problem this commit solves, based on
what the changes actually do, NOT how they do it>
Rules:
- Open with the problem, not the implementation. The body's first sentence(s) describe what was wrong or missing and why it mattered, in plain language, before any mention of the fix. This is the part that matters most, the code already shows the implementation.
- Summary line: imperative mood, no trailing period, no emojis.
- Body: always present unless the change is genuinely too trivial to need explaining.
BREAKING CHANGE: footer only if truly breaking.
Types: feat fix refactor docs test chore perf build ci
example 1:
fix(auth): reject expired refresh tokens instead of silently renewing them
Users with expired refresh tokens were getting new access tokens
without re-authenticating, since the expiry check only looked at
access token TTL and ignored the refresh token's own expiry.
example 2:
feat(export): let users export their data as CSV
There was no way for users to get their data out of the app besides
asking support to run a manual DB query, which didn't scale.