Agent skill
git-commit
Review project consistency and commit changes. Checks code vs docs alignment, updates CHANGELOG/README/DESIGN.md, updates ~/history.log, bumps version, then commits, pushes, and deploys if configured. Use after finishing code modifications.
Install this agent skill to your Project
npx add-skill https://github.com/tsaol/awesome-claude/tree/main/skills/git-commit
SKILL.md
Git Commit - Review, Fix, Commit & Deploy
Overview
This skill reviews project consistency after code changes to ensure:
- Code matches design documents
- CHANGELOG is updated for new features/fixes
- README reflects current functionality
- No outdated documentation
- ~/history.log is updated with session summary (if exists)
- Version number is bumped appropriately
- Deployment is triggered if configured in
~/.claude/collaboration.yml
When to Use
Trigger /git-commit after:
- Completing a feature implementation
- Fixing a bug
- Before creating a PR
- After significant code refactoring
Review Checklist
1. Code vs Design Docs
Check if implementation matches design:
- Architecture follows design patterns
- API endpoints match specification
- Data models align with schema
# Find design docs
find . -name "DESIGN.md" -o -name "*.design.md" -o -name "design*.md"
2. CHANGELOG Update
Verify CHANGELOG.md includes:
- New features added
- Bugs fixed
- Breaking changes noted
- Version number updated (if applicable)
# Check recent changes vs CHANGELOG
git diff HEAD~5 --name-only
cat CHANGELOG.md | head -50
3. README Accuracy
Ensure README.md reflects:
- Current installation steps
- Updated usage examples
- New CLI commands/options
- Correct configuration
# Compare README with actual code
cat README.md
4. History Log Update
Check if ~/history.log exists and update it with session summary:
# Check if history.log exists
if [ -f ~/history.log ]; then
echo "history.log exists, will update"
fi
If exists, append a summary of changes made in this session:
=== {DATE} {PROJECT_NAME} - {BRIEF_DESCRIPTION} ===
## Changes
- Feature/fix description
- Files modified
- PRs created
## Key Commands
- python hub/main.py search "query"
- etc.
5. Version Bump
Automatically detect and bump the project version before committing.
5a. Detect version file:
# Check common version file locations (in priority order)
[ -f package.json ] && echo "package.json"
[ -f pyproject.toml ] && echo "pyproject.toml"
[ -f setup.py ] && echo "setup.py"
[ -f setup.cfg ] && echo "setup.cfg"
[ -f VERSION ] && echo "VERSION"
[ -f version.txt ] && echo "version.txt"
[ -f Cargo.toml ] && echo "Cargo.toml"
[ -f build.gradle ] && echo "build.gradle"
5b. Determine bump type based on changes:
| Change Type | Bump | Examples |
|---|---|---|
| Bug fix, typo, minor tweak | patch (0.0.x) | fix query bug, update docs typo |
| New feature, enhancement | minor (0.x.0) | add user avatar upload, add new API endpoint |
| Breaking change, major rewrite | major (x.0.0) | change API response format, remove deprecated endpoints |
Decision logic:
- Check git diff for breaking changes (removed public APIs, changed signatures, schema migrations)
- Check if new files/modules were added (likely minor)
- Default to patch if only modifications to existing files
5c. Bump the version:
# Python (pyproject.toml) - example: 0.2.1 → 0.2.2
# Read current version, calculate new version, update file
grep 'version = ' pyproject.toml
# Node.js (package.json) - example: 1.3.0 → 1.4.0
# Use npm version or manual edit
grep '"version"' package.json
# Plain VERSION file
cat VERSION
5d. Update CHANGELOG with new version header:
If CHANGELOG.md exists, ensure the new version appears at the top:
## [0.2.2] - 2026-02-26
- Fix slow query in user search
- Update error handling for API timeout
Important:
- Always show the user the current version and proposed new version before bumping
- If no version file exists, skip this step and note it in the report
- Version bump changes are included in the same commit
6. Consistency Report
Generate a report:
## Consistency Check Report
### Files Changed
- [ ] List modified files
### Documentation Status
- [ ] CHANGELOG updated: Yes/No
- [ ] README accurate: Yes/No
- [ ] Design docs aligned: Yes/No
- [ ] ~/history.log updated: Yes/No/Not exists
### Version
- [ ] Version file detected: Yes (package.json) / No
- [ ] Current version: 0.2.1
- [ ] Bump type: patch / minor / major
- [ ] New version: 0.2.2
### Deploy Config
- [ ] Deploy configured: Yes/No
- [ ] Method: ssm / ssh / script / N/A
- [ ] Target: instance-id or host
### Issues Found
- Issue 1: ...
- Issue 2: ...
### Recommendations
- Action 1: ...
- Action 2: ...
Workflow
Code Changes Complete
↓
/git-commit
↓
┌──────────────────────────────┐
│ 1. Read changed files │
│ 2. Check CHANGELOG │
│ 3. Verify README │
│ 4. Compare with docs │
│ 5. Update ~/history.log │
│ 6. Version Bump │
│ 7. Generate report │
│ 8. Fix issues (if any) │
│ 9. Git commit & push │
│ 10. Auto Deploy (if config) │
└──────────────────────────────┘
Auto Commit
After fixing all issues, automatically commit and push:
- Stage changes:
git addmodified files - Commit: Summarize code changes in simple, human-like message
- Push: Push to remote branch
- Create PR: If on feature branch, create PR with reviewer
Commit Message Style
ALWAYS use simple, human-like commit messages:
- Keep messages short and natural
- Summarize what the code changes actually do
- Use casual, everyday language
- Avoid formal conventions like "feat:", "chore:", "refactor:", etc.
- Write like a human developer would in daily work
- Never include any Claude-related attribution:
- No "Generated with Claude Code"
- No "Co-Authored-By: Claude"
Good examples:
add user loginfix slow queriesupdate packagesadd image download to browser fetcherstore s3 paths in opensearch
Bad examples:
feat: implement comprehensive user authentication system with JWT token validationchore: update dependencies to latest versionsdocs: update CHANGELOG for feature xyz
# Example commit flow
git add .
git commit -m "add browser fetcher with screenshot support"
git push origin <branch>
gh pr create --reviewer tsaol # if on feature branch
Auto Deploy
After a successful push, check if the project has deployment configured and trigger it.
Deploy Config
Deployment is configured per-project in ~/.claude/collaboration.yml:
projects:
my-project:
repo: user/my-project
deploy:
method: ssm # Deployment method (ssm, ssh, script)
instance: i-0abc123 # Target instance (for ssm/ssh)
command: "cd /app && git pull origin main && sudo systemctl restart myapp"
Supported Deploy Methods
| Method | Description | Required Fields |
|---|---|---|
ssm |
AWS Systems Manager Run Command | instance, command |
ssh |
SSH to remote server | host, user, command |
script |
Run a local script | command |
Deploy Logic
Step 1: Check if deploy is configured
# Read collaboration.yml and find current project's deploy config
cat ~/.claude/collaboration.yml
Identify current project by matching git remote -v against the repo field in collaboration.yml.
Step 2: Check if deploy should trigger
Deploy ONLY when:
- Current branch is
mainormaster(direct push workflow) - OR a PR was just merged to main (github-flow workflow)
- The push was successful
Do NOT deploy when:
- On a feature branch (not yet merged)
- Push failed
--no-deployflag is used
Step 3: Confirm with user
🚀 Deploy detected for project "languages"
Method: ssm
Instance: i-0f86894d2231b1cd0
Command: cd /home/ubuntu/languages && git pull origin main && sudo systemctl restart englearn
Proceed with deployment? (y/n)
Always ask for confirmation before deploying. Never auto-deploy without user approval.
Step 4: Execute deployment
# SSM method
aws ssm send-command \
--instance-ids "i-0abc123" \
--document-name "AWS-RunShellScript" \
--parameters "commands=[\"<deploy-command>\"]" \
--output text
# SSH method
ssh user@host "<deploy-command>"
# Script method
bash -c "<deploy-command>"
Step 5: Verify deployment
# Check SSM command status
aws ssm list-command-invocations \
--command-id "<command-id>" \
--details \
--output text
# Or check service status via SSM
aws ssm send-command \
--instance-ids "i-0abc123" \
--document-name "AWS-RunShellScript" \
--parameters "commands=[\"systemctl status <service>\"]"
Step 6: Report deploy result
### Deploy Result
- Project: languages
- Method: ssm
- Instance: i-0f86894d2231b1cd0
- Status: ✅ SUCCESS / ❌ FAILED
- Details: Service restarted successfully
Usage
/git-commit # Full consistency review + commit + deploy
/git-commit --quick # Quick check (CHANGELOG + README only)
/git-commit --verbose # Detailed report with suggestions
/git-commit --no-deploy # Skip deployment even if configured
Example Output
## Git Check Report
### Changed Files (last commit)
- src/storage.py
- src/main.py
### CHANGELOG Status
⚠️ CHANGELOG.md not updated for recent changes
### README Status
✅ README.md is up to date
### Recommendations
1. Add entry to CHANGELOG.md:
- "save url/source/category in sent_news.json"
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
git-review
Review code changes against requirements and original design. Validates implementation correctness, design alignment, code quality, and runs tests. Use before committing or creating a PR.
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
docx
Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
xlsx
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
product-review
Product review from a PM perspective. Uses multi-agent pipeline to analyze any project/codebase for product discovery, goal alignment, UX/DX audit, competitive analysis, and roadmap planning.
pptx
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
Didn't find tool you were looking for?