Git Commit Skill
Overview
Create well-structured git commits with conventional commit messages that clearly describe the changes.
Instructions
When committing changes, follow these steps:
- •
Check the current state - Run these commands in parallel:
- •
git statusto see staged and unstaged changes - •
git diff --cachedto see what's staged - •
git diffto see unstaged changes - •
git log --oneline -5to see recent commit style
- •
- •
Stage changes if needed - If there are unstaged changes the user wants to commit, stage them with
git add - •
Analyze the changes - Review what's being committed:
- •What files are affected?
- •What's the nature of the change (fix, feature, refactor, docs, etc.)?
- •What's the primary purpose?
- •
Update CHANGELOG.md - Add a description of the changes under the
## [Unreleased]section:- •Read the top of
CHANGELOG.mdto see the current format - •If there's no
## [Unreleased]section, create one at the top (after the header) - •Add entries under the appropriate category header:
- •
### Added- New features or capabilities - •
### Changed- Changes to existing functionality - •
### Fixed- Bug fixes - •
### Removed- Removed features or code - •
### Security- Security-related changes
- •
- •Each entry should be a bullet point with a clear description
- •Use sub-bullets for additional context when helpful
- •Example format:
markdown
## [Unreleased] ### Added - New phone agent limitation directives - Agent now clarifies it cannot make calls including 911 - Redirects persistent requests to main clinic
- •Stage the CHANGELOG.md changes with
git add CHANGELOG.md
- •Read the top of
- •
Generate a commit message following this format:
code<type>: <short description> <optional body explaining what and why> Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Types:
- •
feat: New feature - •
fix: Bug fix - •
refactor: Code restructuring without behavior change - •
docs: Documentation changes - •
style: Formatting, whitespace - •
test: Adding or updating tests - •
chore: Maintenance tasks, dependencies
- •
- •
Create the commit using a HEREDOC for proper formatting:
bashgit commit -m "$(cat <<'EOF' type: short description Optional longer description. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> EOF )"
- •
Verify success - Run
git statusto confirm the commit was created
Guidelines
- •Keep the first line under 72 characters
- •Use imperative mood ("add feature" not "added feature")
- •Focus on WHY the change was made, not just WHAT changed
- •Don't include file lists in the message - git tracks that
- •Match the style of recent commits in the repo when possible
Safety
- •Never use
--forceor destructive commands - •Never skip hooks with
--no-verifyunless explicitly asked - •Never amend commits that have been pushed
- •If there are no changes to commit, inform the user