--- name: git-commit description: Create atomic commits prepended with emojis --- # Commit Create atomic commits prepended with emojis using only non-interactive commands. ## Process - Inspect current changes with `git status` and `git --no-pager diff HEAD`. - Decide whether the changes should be one commit or several logical commits. - If multiple logical changes exist, plan and split them into separate commits. - For each commit: - Stage only the relevant changes with `git add ...`. - Review the staged diff (e.g. `git --no-pager diff --cached`) to confirm what’s included. - Commit with a message (`git commit -m "…"`) following the style below. - Return the commits to the user. ## Style - **Atomic**: One concern per commit. - **Split big changes**: Separate features, fixes, refactors, docs, etc. when they are independent. - **Subject line**: - Format: ` ` - Imperative, present tense (e.g. "Add…", "Fix…"). - Under 72 characters. - No trailing period. - Do not add explicit scopes like `feat:`, `network:`, `chore:`. - Always ensure the commit message accurately reflects the diff. ## Splitting Commits Split into multiple commits when: - Changes touch unrelated parts of the codebase. - Different types of work are mixed (feature, fix, refactor, docs, tests, chore). - Different file types are mixed in a way that’s easier to review separately (e.g. code vs docs). - The diff is very large and can be broken into smaller, easier-to-review steps. ## Examples - ✨ Add user authentication system - 🐛 Resolve memory leak in rendering process - 📝 Update API documentation with new endpoints - ♻️ Simplify error handling logic in parser - 🎨 Reorganize component structure for better readability - 🔥 Remove deprecated legacy code - 💚 Resolve failing CI pipeline tests - ♿️ Improve form accessibility for screen readers