| name | commit-manager |
| description | Groups git changes by logical purpose and commits them sequentially. Use when user runs /commit, asks to commit changes, or wants to review, group, and commit git changes. |
Commit Manager
Groups changes by purpose, NOT by file. One commit = one logical change.
Grouping rules
- Group by purpose, not by file — multiple files may belong to the same commit.
- Never mix unrelated changes in the same commit.
- Prefer many small coherent commits over one large commit.
- Each commit must be independently understandable and reversible.
- Use
git add -p for partial staging when a file contains multiple logical changes.
- Strip all Jupyter notebook outputs before staging
.ipynb files — run jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace <file> or nbstripout <file> on each notebook.
Commit order
style — formatting / whitespace
- Renames / moves
refactor — code changes without behavior change
fix — bug fixes
perf — performance improvements
feat — new features
test — adding or modifying tests
docs — documentation
chore — maintenance, config, build
Commit message format
<type>: <short description>
Types:
| Type | Purpose |
|---|
feat | New functionality |
fix | Bug fix |
docs | Documentation only |
style | Formatting / whitespace (no logic change) |
refactor | Code change without behavior change |
test | Add or modify tests |
chore | Maintenance, config, build tasks |
Workflow
- Run
git status and git diff to see all changes.
- Present a plan: list proposed commit groups with their files/changes.
- Ask user to confirm or adjust the plan.
- Before staging
.ipynb files, strip outputs with jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace <file> or nbstripout <file>.
- Stage and commit each group sequentially.
- Never commit secrets, env files, or large binaries.
- Do not push unless explicitly requested.