name: 'committing' description: 'Creates well-structured git commits following conventional commit format. Use when committing changes, preparing commits, or when asked to commit code.'
Git Committing
Commit Message Format
<type>(<scope>): <subject>
[optional body]
[optional footer]
Types
| Type | Description |
|---|---|
feat | New feature |
fix | Bug fix |
docs | Documentation only |
style | Formatting, no code change |
refactor | Code change without fix/feature |
perf | Performance improvement |
test | Adding or fixing tests |
chore | Build, CI, tooling changes |
Rules
- Subject line: Under 50 characters, imperative mood ("add" not "added")
- Body: Wrap at 72 characters, explain "why" not "what"
- Scope: Optional, indicates affected area (e.g.,
parser,api,ui) - Breaking changes: Add
!after type orBREAKING CHANGE:in footer
Workflow
-
Run
git statusto see changes -
Run
git diffto review modifications -
Check recent commits with
git log --oneline -5for style consistency -
Stage specific files (avoid
git add -A) -
Write commit message using HEREDOC:
git commit -m "$(cat <<'EOF' type(scope): subject Body explaining why this change was made. EOF )" -
Verify with
git status
Safety
- Never commit secrets, credentials, or .env files
- Never use
--no-verifyunless explicitly requested - Never amend commits that have been pushed
- Create NEW commits after hook failures, don't amend