v0.3.3 — hunk-level commit splitting
A file that genuinely spans two concerns no longer has to land wholesale in one commit.
Upgrade with claude plugin update repo-gate@cc-agents-kit, then restart open sessions.
Added — semantic-commit splits at hunk level
The skill used to assign a mixed file to whichever concern dominated it. It now splits the file when the split is real, and documents the mechanics that make it work unattended:
Driving git add -p over a pipe. It reads answers from stdin, so no TTY is needed. The git diff --cached confirmation is mandatory rather than optional, because on EOF git add -p quits: an answer count that does not match the hunk count under-stages, silently.
The patch-editing fallback, for two concerns interleaved inside one hunk. s splits on line counts and rarely lands on the concern boundary, so the hunk is edited directly and applied with --recount — deleting lines from inside a hunk leaves the @@ counts stale and git apply then rejects the whole file.
git stash push --keep-index --include-untracked before verifying. Verification then runs against the commit candidate instead of a working tree that no longer matches it. Without --include-untracked, a new file belonging to a later group stays in the tree and test discovery still finds it.
Provenance
CREDITS.md gains rows for pathless-rewriter-guard.sh and staged-secret-guard.sh. Both are original work, but they shipped in 0.2.0 with no entries, so the file that claims to cover everything published did not.
Versions
repo-gate 0.1.3. guard-hooks 0.2.2 and context-handoff 0.1.2 are unchanged.