git-commitlisted
Install: claude install-skill aiskillstore/marketplace
# Git Commit
Break changes into logical, atomic commits using interactive staging.
## Workflow
1. Analyze all changes
2. Identify logical units (one concern per commit)
3. Stage relevant changes (whole files or hunks)
4. Commit with a good message
5. Repeat until all changes are committed
## Analyzing Changes
```bash
git status # overview of changed files
git diff # unstaged changes
git diff --cached # staged changes
git diff HEAD # all changes (staged + unstaged)
```
Look for natural boundaries: different features, bug fixes, refactors, or config changes.
## Identifying Logical Commits
Each commit should represent one logical change. Signs that changes belong in separate commits:
- Different purposes (bug fix vs feature vs refactor)
- Unrelated files or components
- Changes that could be reverted independently
- Separate items from a PR review or task list
Common groupings:
- Related files implementing a single feature
- A bug fix with its test
- Rename/move operations separate from behavior changes
- Config or dependency changes separate from code
## Staging Strategies
### Whole files
```bash
git add <file> # stage entire file
git add <dir>/ # stage all files in directory
git reset HEAD <file> # unstage file
```
### Partial files (hunk staging)
Use `git add -p` to stage specific hunks within a file:
```bash
git add -p # interactively stage hunks from all file