Install
$ agentstack add skill-junerdd-skills-split-commits ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Split Commits
Turn an overgrown working tree into a short sequence of focused local commits. Assemble each commit in the index first, hand it to $git-commit for the message, then stop for user confirmation before running git commit. Do not push as part of this skill.
Workflow
- Inspect the current Git state.
git status --shortgit diff --statgit diff --cached --stat
- Decide whether the work should be split. Split when one or more of these are true:
- the changes contain multiple independent concerns
- refactors and behavior changes are mixed
- tests belong to only one part of the implementation
- generated or lock files should travel with only one subset
- a file contains unrelated hunks that would produce a misleading single commit
- Write a short commit plan before staging.
- Aim for 2-5 commits.
- Give each commit one purpose and one likely Conventional Commit type.
- Order commits so each one is understandable on its own.
- Respect the current index.
- If staged changes already match the next planned commit, keep them.
- If staged changes mix unrelated concerns, stop and ask before repartitioning the index.
- Stage only the next logical batch.
- Use
git addfor whole files. - Use
git add -pwhen only some hunks belong. - Avoid
git add .unless the remaining work is intentionally one batch.
- Verify the staged batch.
git diff --cached --statgit diff --cached- Confirm no secrets, unrelated files, or accidental churn are included.
- Invoke
$git-commitand use it to draft the commit message from the staged diff only. - Review the proposed message against the staged diff.
- Keep it if accurate.
- Tighten it if it overstates the change or merges multiple concerns in the wording.
- If
$git-commitindicates the staged set is still mixed, do not commit it. Refine the staged batch and rerun$git-commit.
- Present the staged diff summary and the finalized message to the user, then ask for explicit confirmation for that one commit.
- Wait for confirmation before changing Git history.
- If the user declines, refine the staged batch or the message and ask again.
- Run
git commitwith the finalized message only after the user explicitly approves that staged batch. - Re-run
git status --shortand continue with the next planned batch until the intended local commits are created.
Grouping Heuristics
Prefer splitting by intent, not by directory alone.
Good commit boundaries:
- a bug fix with the tests that prove it
- a pure rename or move isolated from behavior changes
- a mechanical formatting or codemod sweep isolated from semantic edits
- a dependency bump paired with the code or config required for that bump
- documentation that belongs to a single feature or refactor
Poor commit boundaries:
- "backend files" vs "frontend files" when both implement one feature
- tests separated from the code they validate unless the repo already expects that pattern
- arbitrary file-count balancing
- one commit per file when the behavior change spans several files
If two changes cannot be described honestly with one subject line, they likely deserve separate commits.
Guardrails
- Do not push.
- Do not amend unless the user explicitly asks.
- Do not run
git commituntil the user explicitly approves the current staged batch and message. - Do not use destructive commands such as
git reset --hardorgit checkout --. - Do not silently unstage or restage a mixed index; ask first if the existing staged state must be reshaped.
- Do not ask
$git-committo summarize unstaged changes. It must see staged changes only. - Stop and ask if the remaining edits are too entangled to split without guessing intent.
Completion
Before finishing:
- ensure every requested local commit exists
- leave any intentionally uncommitted changes in the working tree
- report the created commit subjects or SHAs to the user
- do not push or open a PR
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: JUNERDD
- Source: JUNERDD/skills
- License: MIT
- Homepage: https://junerdd-skills.vercel.app
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.