Smart Atomic Commits
Analyze workspace changes, split into logical atomic units, and commit with emoji conventional format.
Process
- Inspect: Run
git statusandgit diff HEADto understand changes - Auto-stage: If nothing is staged,
git addall modified and new files - Analyze: Identify if multiple distinct logical changes should be split based on:
- Different concerns (unrelated parts of codebase)
- Different types (features vs fixes vs refactoring)
- File patterns (source vs docs vs config)
- Logical grouping (easier to understand separately)
- Size (large changes clearer when broken down)
- Commit: For each atomic unit, stage relevant files and commit
Commit Format
type(scope)!: emoji description
| Component | Required | Notes |
|---|---|---|
type | Yes | Conventional commit type |
(scope) | No | Lowercase, hyphenated (e.g., user-auth, api-client). Omit only when truly global |
! | No | Breaking change indicator |
emoji | Yes | After the colon, before description |
description | Yes | Imperative mood, present tense |
Constraints: First line under 72 characters. Focus on "why" over "what". Imperative mood ("add" not "added").
Breaking Changes
Add ! after scope/type. Include BREAKING CHANGE footer:
git commit -m "feat(api)!: π₯ change auth response format" \
-m "BREAKING CHANGE: /auth/login now returns { token, user } instead of { accessToken, refreshToken }"
Commit Types
| Type | Emoji | Description |
|---|---|---|
feat | β¨ | New feature |
fix | π | Bug fix |
docs | π | Documentation |
style | π | Code style (formatting) |
refactor | β»οΈ | Neither fix nor feature |
perf | β‘οΈ | Performance improvement |
test | β | Adding/fixing tests |
chore | π§ | Build process, tools |
ci | π | CI/CD improvements |
revert | βͺοΈ | Reverting changes |
Extended Emoji Reference
Features: π·οΈ types, π¬ text/literals, π i18n, π business logic, π± responsive, πΈ UX, π¦Ί validation, π§΅ concurrency, ποΈ SEO, π logs, π© feature flags, π₯ breaking, βΏοΈ a11y, βοΈ offline, π analytics
Fixes: π©Ή simple fix, π₯ catch errors, π½οΈ external API changes, π₯ remove code, ποΈ hotfix, π CI fix, βοΈ typos, π remove logs, π¨ linter warnings, ποΈ security
Refactoring: π move/rename, ποΈ architecture, β°οΈ dead code, π¨ structure/format
Chore: π merge, π¦οΈ packages, β add dep, β remove dep, π± seeds, π§βπ» DX, π₯ contributors, π init project, π release, π pin deps, π· CI system, π license, π gitignore
Docs: π‘ source comments
Testing: π€‘ mocks, πΈ snapshots, π§ͺ failing test
UI/Assets: π« animations, π± assets
Database: ποΈ DB changes
Other: βοΈ experiments, π§ WIP
Examples
feat: β¨ add user authentication system
fix(parser): π resolve memory leak in rendering process
refactor(api): β»οΈ simplify error handling logic
feat(api)!: π₯ change authentication endpoint response format
Split example (one diff, four commits):
feat(solc): β¨ add new version type definitions
docs(solc): π update documentation for new versions
chore(deps): π§ update package.json dependencies
test(solc): β
add unit tests for new version features
