with one click
split-commit
Split a commit with mixed changes into separate commits
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Split a commit with mixed changes into separate commits
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Capture session learnings and save to skills, guidelines, or reference docs under ~/.claude/.
Orchestrate parallel claude -p sessions — bootstrap, launch, monitor, and converge. Works with any skill that produces manifest.json, item directories, and a runner script.
Create a request (pull request or merge request) or update an existing one following project conventions.
Resolve merge or rebase conflicts between branches.
Assess open PRs with unaddressed review comments and generate a parallel addressing script — produces manifest.json and let-it-rip.sh for address-request-comments execution.
Assess open work items and generate a parallel execution script — produces manifest.json and let-it-rip.sh for implement/clarify execution.
| name | split-commit |
| description | Split a commit with mixed changes into separate commits |
Keywords: git, commit split, atomic commits, rewrite history, force-with-lease, two-group split, bisectable, git reset, interactive patch, git add -p
Split a commit that mixes unrelated changes (e.g., docstrings + features) into separate commits.
/git:split-commit - Split the most recent commit/git:split-commit <commit-hash> - Split a specific commitIdentify the commit to split:
$ARGUMENTS is empty, use HEADShow the commit contents:
git show <commit> --stat
git show <commit>
Output this prompt as plain text and stop (do NOT use AskUserQuestion — this is free-text input): "How would you like to split this commit? Describe the two (or more) groups of changes."
Save original files before resetting:
mkdir -p tmp/claude-artifacts/split-commit
# For each file in the commit
git show <commit>:<filepath> > tmp/claude-artifacts/split-commit/<filename>_original
Reset to parent commit:
git reset --hard <commit>^
Apply first group of changes:
tmp/claude-artifacts/split-commit/ as reference, apply only the first groupgit add <files>
git commit -m "<message>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"
Apply remaining changes:
tmp/claude-artifacts/split-commit/ originalsgit add <files>
git commit -m "<message>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"
Verify and push:
git log --oneline -3
Ask the operator: "Ready to force push these changes?"
git push origin <branch> --force-with-lease
tmp/claude-artifacts/split-commit/ BEFORE resettinggit add -p (interactive patch mode) after step 4 to selectively stage each group instead of restoring from tmp/claude-artifacts/split-commit/