Best for
- Histories where git blame answers nothing
- Splitting a day's tangled work into reviewable commits
- Teams adopting a commit convention without the nagging
What you give it
- Your staged or unstaged changes, and context on why you made them
What you get back
- A proposed commit split: which files and hunks belong together and why
- Messages with a correct summary line and a body that explains the why
- Convention compliance (your format) without you memorising the rules
How it works
- Reads the diff and clusters changes by logical intent.
- Proposes the split before staging anything — you confirm, it stages by file or hunk.
- Writes each message: imperative summary under the length limit, body explaining why and what the alternatives were.
- Flags surprises in the tree (forgotten changes, debug leftovers) instead of silently committing them.
Example
You: I changed nine files today: a bug fix, its test, and some drive-by renames. Make commits.
Result: Three commits proposed: the fix with its test (message explains the root cause in the body), the renames separately (mechanical, says so), and a config change you had forgotten about — flagged and confirmed before anything is staged.
Limits — please read
- The why in the body is only as deep as the context you give.
- It stages exactly what each commit needs — never a blanket add of everything.
- History rewrites of already-pushed commits are out of scope on shared branches.