← ClaudeAtlas

smart-commitlisted

Automatically cluster and commit git changes into logical groups with conventional commit messages. Use when: committing multiple unrelated changes, cleaning up work before PR, organizing messy commits, or when asked to "commit my changes", "smart commit", "organize commits", or "cluster commits".
nsollazzo/skills · ★ 0 · Code & Development · score 75
Install: claude install-skill nsollazzo/skills
# Smart Commit Cluster uncommitted changes into logical groups and commit each with a clear conventional commit message. ## Workflow 1. Run `git status` and `git diff` to inspect all uncommitted changes 2. Check for pre-staged changes with `git diff --cached`. If anything is already staged, don't fold it into clusters silently — commit it as its own commit (it was likely staged deliberately) or ask the user what to do with it 3. Analyze changes and cluster into logical groups by: - Feature or functionality - Bug fix - Related files (e.g., component + its test + its styles) - Type (docs, config, refactor, etc.) - If a single file contains changes belonging to different clusters, assign it to the most related cluster and mention the extra change in the commit body (interactive `git add -p` is not available) 4. For each logical group: - Stage relevant files: `git add <files>` - Generate conventional commit message (see format below) - Commit: `git commit -m "<message>"` 5. Repeat until all changes are committed 6. Update `CHANGELOG.md` unreleased section (see below), then commit: `docs: update changelog` ## Commit Message Format Use conventional commits: `<type>(<scope>): <description>` Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`, `perf`, `ci`, `build` Examples: - `feat(auth): add password reset flow` - `fix(api): handle null response from users endpoint` - `refactor(utils): extract date formatting helpers` -