Skip to main content

git-commit-conventions: separate Git commits by change intent

Review a working tree and separate distinct batches of work into commits with short messages. Authorship follows the user’s Git configuration rather than adding AI attribution.

Source facts

Repository
zazencodes/skills
Last source activity
October 5, 2026 at 05:09
Detected SKILL.md language
English
Stars
0
Forks
0

How to use

Start from the diff and untracked files. Group changes by the task they serve, including separate intentions within the same file; stage explicit paths and inspect each commit. The source requires checking that the split preserves the finished work.

Limitations

A shared file does not automatically make unrelated changes one batch. The source calls for user guidance when conflicts or another action could lose work; it does not authorize discarding someone else’s edits.

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
git-commit-conventions
description
Commit message and authorship conventions. Use before any commit or push, whether asked for or self-initiated — including "commit this", "commit and push", "/commit".
# Git Commit Conventions Follow these conventions on every commit. - Commit authorship should follow the user's system git config only; no co-author trailers. - Commit messages should be very simple: one short line per distinct batch of changes. ## Working conventions - Read `git diff` and check for untracked files before deciding on commits. - One commit per distinct batch of changes. Only group files together when they are closely related; otherwise commit them separately. - Match the message style of the recent commits in this repo. - Never add AI attribution — no `Co-Authored-By`, no "Generated with" footer. - Attempt simple fixes yourself; ask for guidance on merge conflicts or anything that risks losing work. ## Splitting a mixed working tree Batches are defined by *intent*, not by file. Two batches routinely touch the same file — a feature and a follow-up fix to it, a refactor and a behaviour change. That they interleave inside a file is the normal case, not a reason to give up and make one commit. Default to splitting. Do it without being asked, and do not ask permission first: splitting is expected, and the work below is mechanical and reversible. - Separate work the user asked for in separate turns into separate commits. If they said "build X", then later "now fix Y", that is two batches even if Y edits the files X created. - Do not merge batches because the split "would be a rebase, not staging" or because a file was rewritten wholesale. Neither is a reason to combine them. - `git add -p` needs a TTY and is unavailable. Use the reconstruct method instead: 1. Copy the final version of every file containing more than one batch somewhere outside the repo. 2. `git reset --soft HEAD~1` if already committed, otherwise just start here. 3. Edit those files back to the state of the *first* batch alone, then commit it. 4. Restore the saved final versions, then commit the second batch. Repeat step 3–4 for a third batch and beyond. - Order commits so each one stands alone: the earlier commit must build and pass tests without the later one. Verify it — `git stash -u`, check out the earlier commit, run the test suite, then return. An earlier commit that only works once the next lands is a broken split, not a split. - Stage explicit paths. `git add -A` silently sweeps in unrelated untracked files; check `git show --stat` after committing and amend if something snuck in. - When done, confirm the split preserved the work: `git diff <original-sha> HEAD` should be empty, or show only changes you can name and justify. If a split genuinely cannot be made to work, say so and explain what blocks it, rather than committing everything together and mentioning it afterwards.
View on GitHub