From git-toolbox
Split large changes into meaningful minimal units and commit them sequentially with semantic commit messages. Uses only standard git commands with no external tool dependencies.
How this skill is triggered — by the user, by Claude, or both
Slash command
/git-toolbox:semantic-commitThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Split large changes into meaningful minimal units and commit them sequentially with semantic commit messages. Uses only standard git commands with no external tool dependencies.
Split large changes into meaningful minimal units and commit them sequentially with semantic commit messages. Uses only standard git commands with no external tool dependencies.
--dry-run: Show proposed commit splits without actually committing--lang <language>: Force commit message language (en or ja)# Get all changes
git diff HEAD --name-status
git diff HEAD --stat
Group files by:
src/auth/ → authentication)test:, docs only → docs:, config only → chore:# Analyze by directory structure
git diff HEAD --name-only | cut -d'/' -f1-2 | sort | uniq
# Analyze by change type
git diff HEAD --name-status | while read status file; do
case $status in
A) echo "$file: new" ;;
M) echo "$file: modified" ;;
D) echo "$file: deleted" ;;
R*) echo "$file: renamed" ;;
esac
done
Check commit message conventions in this priority order:
commitlint.config.*, .commitlintrc.*, or package.json commitlint sectionpackage.json, Cargo.toml, pom.xml, etc.# Search for CommitLint config
find . -maxdepth 1 -name "commitlint.config.*" -o -name ".commitlintrc.*" | head -1
# Analyze existing commit patterns
git log --oneline -50 --pretty=format:"%s" | grep -oE '^[a-z]+' | sort | uniq -c | sort -nr
Determine commit message language:
subject-case: [0] (indicates Japanese)# Count Japanese commits
git log --oneline -20 --pretty=format:"%s" | grep -cE '[あ-ん]|[ア-ン]|[一-龯]'
Present the proposed split to the user:
Proposed Commit Splits:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Commit 1/3
Message: feat: implement user registration and login
Files:
• src/auth/login.ts
• src/auth/register.ts
• src/auth/types.ts
Commit 2/3
Message: test: add authentication tests
Files:
• tests/auth.test.ts
Commit 3/3
Message: docs: add authentication documentation
Files:
• docs/authentication.md
Proceed with these commits? (y/n/edit):
# Reset staging area
git reset HEAD
# For each commit group:
# 1. Stage only the group's files
git add <file1> <file2> ...
# 2. Verify staged files
git diff --staged --name-only
# 3. Commit with generated message
git commit -m "$(cat <<'EOF'
<type>: <description>
EOF
)"
# Verify all changes are committed
git status --porcelain
# Show created commits
git log --oneline -n 10 --graph
<type>: <description>
[optional body]
[optional footer(s)]
Required:
feat: New feature (user-visible functionality)fix: Bug fixOptional:
build: Build system or external dependency changeschore: Other changes (no release impact)ci: CI configuration changesdocs: Documentation-only changesstyle: Code style changes (whitespace, formatting, semicolons)refactor: Code changes without bug fix or feature additionperf: Performance improvementstest: Adding or modifying testsy: Execute proposed commit splitsn: Canceledit: Edit individual commit messagesmerge <num1> <num2>: Merge specified commitssplit <num>: Further split a specified commitgit push automaticallygit stash before processing important changestype: description format. Never include (scope) or ! in commit messages.npx claudepluginhub b4tchkn/claude-code-plugins --plugin git-toolboxCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.