name: commit description: Create git commits with good messages. Use when user says "commit", "create commit", or asks to commit changes. tools: - Bash(git status) - Bash(git diff *) - Bash(git log *) - Bash(git add *) - Bash(git commit *) - read_file - glob
Git Commit Skill
Create a well-formatted git commit for staged changes.
Instructions
Gather information (run in parallel):
git status- See what's staged and unstagedgit diff --staged- See exactly what will be committedgit log --oneline -5- See recent commit message style
Analyze changes:
- What was changed? (files, functions, features)
- Why was it changed? (bug fix, new feature, refactor)
- Follow the repository's commit message style
Draft commit message:
- First line: concise summary under 50 chars
- Focus on "why" not "what"
- Match existing commit style
Execute commit:
- Stage relevant files if needed:
git add <files> - Commit with HEREDOC format:
git commit -m "$(cat <<'EOF' Your commit message here EOF )" - Verify with
git status
- Stage relevant files if needed:
Safety Rules
- Do NOT commit .env or credential files
- Do NOT use
--amendunless explicitly asked - Do NOT push unless explicitly asked
- If commit fails, create NEW commit (don't amend)
Example
# Check status and diff
git status
git diff --staged
# Commit
git commit -m "$(cat <<'EOF'
Fix authentication timeout issue
Increased JWT expiry from 1h to 24h to prevent
frequent re-authentication during long sessions.
EOF
)"
# Verify
git status