Claude-skill-registry git-batch-commit
Intelligently detects when too many files are staged and automatically groups them by feature or functionality using Conventional Commits with user language preference
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/git-batch-commit" ~/.claude/skills/majiayu000-claude-skill-registry-git-batch-commit && rm -rf "$T"
skills/data/git-batch-commit/SKILL.mdGit Batch Commit Optimizer
This skill optimizes version control workflows by detecting when too many files are staged for commit and automatically organizing them into logical, feature-based batches with Conventional Commit messages.
Capabilities
- Smart Threshold Detection: Automatically detects when staging area contains too many files (threshold-based analysis)
- Intelligent File Grouping: Groups files by feature/functionality, not just directory structure
- Change Analysis: Analyzes git diff to understand what each file modification does
- Conventional Commits: Generates commit messages following the standard (feat/fix/docs/refactor/chore/style/test/perf)
- Language-Aware Messages: Commit messages follow user's language preference (English/Chinese/etc.)
- Multi-Batch Execution: Executes multiple commits in logical sequence
Input Requirements
Git repository state:
- Working directory with git repository
- Modified/staged/untrayed files ready for commit
- User language preference (defaults to English)
- Optional: Custom threshold for file count (default: 10 files)
- Optional: Specific Conventional Commit scope preferences
Formats accepted:
- Direct git status/diff output
- File paths with change descriptions
- Text description of changes made
Output Formats
Results include:
- Analysis of file count and recommended batching strategy
- Grouped file sets by feature/functionality
- Conventional Commit messages for each batch (type/scope/description)
- Execution plan showing commit sequence
- Summary report of commits created
Output structure:
{ "analysis": { "total_files": 25, "threshold": 10, "requires_batching": true, "recommended_batches": 3 }, "batches": [ { "batch_id": 1, "commit_type": "feat", "scope": "authentication", "files": ["auth.py", "login.py"], "message": "feat(authentication): add OAuth2 login support" } ], "execution_summary": "Created 3 commits across feat, fix, and docs types" }
How to Use
Example 1 - Auto-detect and batch: "Analyze my git staging area and create appropriate batch commits"
Example 2 - With language preference: "Create batch commits in Chinese for all these staged files"
Example 3 - Custom threshold: "Use a threshold of 15 files and batch my commits accordingly"
Example 4 - Specific commit types: "Group these changes and use 'feat' and 'refactor' commit types"
Scripts
: Parses git status/diff, detects file counts, analyzes change typesgit_analyzer.py
: Groups files by feature, generates Conventional Commit messages, executes commitsbatch_committer.py
: Handles multilingual commit message generationcommit_language.py
Conventional Commit Types
Standard Types Used:
- feat: New feature or functionality
- fix: Bug fix
- docs: Documentation changes only
- refactor: Code restructuring without feature changes
- chore: Maintenance tasks (dependencies, configs)
- style: Code style/formatting (no logic change)
- test: Adding or updating tests
- perf: Performance improvements
Scope Examples:
(api), (ui), (auth), (database), (core)
Best Practices
- Review before execution: Always review the proposed batches before committing
- Meaningful scopes: Use clear, project-specific scopes for better commit history
- Atomic commits: Each batch should represent a cohesive unit of change
- Language consistency: Keep commit language consistent within a project
- Threshold tuning: Adjust threshold based on project size and team preferences
- Feature grouping: Prefer functional grouping over directory-based grouping
Limitations
- Requires git repository in working directory
- Cannot automatically resolve conflicts between batches
- Scope detection depends on file naming conventions and change analysis
- Language detection may require explicit user preference
- Some complex refactorings may need manual grouping
- Does not handle pre-commit hooks automatically (user must ensure hooks pass)
Configuration Options
Optional configuration via
git_batch_config.json:
{ "threshold": 10, "default_language": "en", "preferred_scopes": ["api", "ui", "core", "tests"], "commit_types": ["feat", "fix", "docs", "refactor", "chore"], "auto_execute": false }
Safety Features
- Dry-run mode: Preview batches before committing
- Rollback support: Can amend or reset if issues detected
- Validation: Checks for unstaged critical files
- Conflict detection: Warns about potential file dependencies across batches