plugins/ls-git/skills/git-atomic-commit/SKILL.md
Use when splitting a working tree into atomic commits, or when changes need to be distributed across new commits and/or edits to prior commits on the branch. Especially relevant when changes within a single file belong in different commits.
npx skillsauth add LandonSchropp/agent-toolkit plugins/ls-git/skills/git-atomic-commitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
An atomic commit captures one logical change. Each commit stays portable: it can be reviewed, reverted, cherry-picked, lifted into its own PR, edited, or reordered without rebase conflicts cascading through the work that came after.
Atomic commits also keep history honest. Without that discipline, the log records false starts and reversals — code added in one commit and removed in another — and readers have to trace every commit to know the final state.
A single file often picks up changes that belong in different commits:
Don't let "but it's just one file" be the reason unrelated changes ship together.
When the user invokes this skill, they might be hinting that they'd like to split up some uncommitted changes atomically.
If there are uncommitted changes in the working tree (staged or unstaged), or the user is explicitly asking to reorganize existing work into atomic commits, follow the procedure in references/process.md. Always present the plan to the user and wait for confirmation before executing.
If there's nothing to split, apply atomic-commit principles to any new commits made during the rest of the session.
| Thought | Reality |
| ---------------------------------------------------- | ------------------------------------------------------------------------------ |
| "I'll just commit everything as one" | The user invoked this skill to split. Propose a plan first. |
| "I can use git add -p" | Requires a TTY. You can't. Use restore-and-replay. |
| "I'll add a follow-up commit to patch the prior one" | If it belongs to a prior commit on the branch, edit it. Don't pollute history. |
| "I'll skip the plan step and start committing" | Without a plan, you'll commit the wrong groupings. Show the user first. |
| "Restore-and-replay is too tedious" | It's the only working option. Use it. |
| "I'll describe the splits and let the user do it" | After plan approval, execute the splits yourself. |
tools
Use when working with a stack of GitHub pull requests — creating branches, keeping the stack in sync, or merging in order. Covers Git Town setup, PR targeting, rebasing, and landing the stack.
tools
Use when writing or modifying tests in a Bun project
tools
Use when publishing or releasing a new version of an npm/pnpm/yarn/bun package to the registry. Covers package-manager detection, semver bump selection, tagging, pushing, scoped-package access, authentication, and one-time passwords (OTP).
tools
Use when a finished worktree's branch has been reviewed and committed and needs to land. Rebases onto the latest default branch, then either fast-forwards it into the default branch (personal direct-to-main repos) or pushes it for a pull request (shared feature-branch repos).