git-commit
Format, lint, test, and commit changes. Detects repo tooling automatically.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Commit all changes in the repo with proper formatting, linting, and testing.
1. Gather Context
Check what tooling exists:
!ls -la package.json Makefile Cargo.toml pyproject.toml go.mod 2>/dev/null || true
!cat package.json 2>/dev/null | head -50 || true
Study the repo's commit message style:
!git log --oneline -20
Note the pattern: conventional commits? imperative mood? lowercase? prefix? scope? Look at casing, punctuation, length, and structure. Your commit message MUST follow this pattern.
2. Current Changes
!git status
!git diff
!git diff --cached
3. Execute
Based on what you found:
- Format: Run formatter if available (prettier, black, gofmt, cargo fmt, nixfmt, etc.)
- Lint: Run linter if available (eslint, tsc --noEmit, clippy, etc.)
- Test: Run tests related to changed files if test runner exists
- Plan commits: Look at the git log style. If the repo favors small, focused commits (one logical change each), split the staged/unstaged changes into multiple commits — group related files together by logical change. If the repo uses larger commits, a single commit is fine.
-
Stage & commit: For each logical group,
git addthe relevant files by path (nevergit add -A— avoid staging.env, credentials, or large binaries) and commit with a message matching the repo's style. Go from most independent change to most dependent.
If $ARGUMENTS is provided, use it as the commit message for a single commit of all changes. Otherwise, generate messages matching the repo's commit style, splitting into multiple commits when it matches the repo's pattern.
Fix any formatting/lint issues automatically. If tests fail, report and stop.
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-03-11
- Index updated
- 2026-03-11
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!