Make commits reviewable and auditable as self-contained units, and order multi-file changes into atomic dependency-ordered waves. Use when planning commits, 'split this into commits', 'break this up', 'commit strategy', splitting work into waves, staging changes, reviewing branch history, or deciding whether a commit is too broad, too tiny, incomplete, or hard to revert.
79
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
A standalone commit is a commit a reviewer can audit on its own, at that point in branch history. It may depend on earlier commits in the same branch, but it should not require future commits to explain, compile, test, or justify it.
Related Skills: See git for conventional commit messages and PR text.
This skill owns both halves of commit shaping. Hold them at once:
Without ordering, "standalone" drifts into polished but poorly sequenced commits. Without the boundary checks, technically ordered commits can still be hard to review.
Each commit should answer one sentence:
This commit changes
<thing>so that<outcome>because<reason>.
If the sentence needs "and also", split the commit. If the reason only becomes true in a later commit, move the work later or combine the dependent pieces.
Before committing, verify the staged diff against these checks:
| Check | Question |
|---|---|
| Reviewable | Can a reviewer understand the purpose from this diff and message alone? |
| Buildable | Does the repo still typecheck, build, or pass the relevant focused test after this commit? |
| Complete | Are all call sites, exports, tests, docs, and fixtures needed for this concern included? |
| Focused | Is there exactly one behavioral, structural, or documentation concern? |
| Auditable | Can someone inspect the before/after and see the invariant being preserved or changed? |
| Revertible | If this commit were reverted, would it remove one coherent change without dragging in unrelated work? |
When a commit fails one check, fix the staged set before writing the message.
Standalone does mean:
Standalone does not mean:
When ordering work into waves, plan each wave as a standalone commit:
Wave 1 claim: Add the type or contract, plus any tests that prove the new shape.
Wave 2 claim: Add the implementation that satisfies the contract.
Wave 3 claim: Move consumers onto the implementation.
Wave 4 claim: Remove old paths once no consumers depend on them.Do not create a "setup" commit that only makes a future commit possible unless it is independently reviewable. A foundation commit is fine when it introduces a real contract, helper, migration, or test fixture with a clear reason.
Before coding a wave, write its claim. After staging it, re-read the staged diff and ask whether the claim is still honest. If not, split, combine, or move the work.
git diff --staged.Prefer file-level staging when files cleanly map to the commit claim. Use hunk staging when one file contains multiple concerns.
Split when:
Combine when:
feat(sync): add workspace sync typesProblem: The types are unused, untested, and only make sense after a later implementation commit.
Better: Include the contract-level implementation or test that proves why the types exist.
refactor(auth): reorganize session helpersProblem: The diff also changes session expiry behavior. Reviewers may scan it as a move-only change.
Better: Commit the move first with no behavior change, then commit the expiry behavior change with tests.
fix(settings): persist provider selectionProblem: The commit also renames unrelated variables and formats nearby files.
Better: Keep the fix focused. Put cleanup in a separate commit only if it is worth reviewing.
Use the git skill for exact conventional commit formatting. For standalone commits, make the subject name the outcome, not the implementation detail.
Good:
fix(settings): persist selected provider across reloadsWeak:
fix(settings): update localStorage callAdd a body when the reason, invariant, or review boundary is not obvious from the diff.
cb12bcc
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.