Claude-skill-registry git-hooks
Set up and configure Git pre-commit hooks for code quality, secrets scanning, and commit message validation. Use when installing git hooks, configuring pre-commit checks, or enforcing code standards.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
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-hooks-autumnsgrove-grovescout" ~/.claude/skills/majiayu000-claude-skill-registry-git-hooks && rm -rf "$T"
manifest:
skills/data/git-hooks-autumnsgrove-grovescout/SKILL.mdsource content
Git Hooks Skill
When to Activate
Activate this skill when:
- Setting up pre-commit hooks
- Configuring commit message validation
- Installing secrets scanners
- Enforcing code quality standards
- Automating pre-push tests
Quick Installation
# Use interactive installer (recommended) ./AgentUsage/pre_commit_hooks/install_hooks.sh # Or manual installation for Python project cp AgentUsage/pre_commit_hooks/commit-msg .git/hooks/ cp AgentUsage/pre_commit_hooks/pre-commit-python .git/hooks/pre-commit cp AgentUsage/pre_commit_hooks/pre-commit-secrets-scanner .git/hooks/pre-commit-secrets cp AgentUsage/pre_commit_hooks/pre-push .git/hooks/ chmod +x .git/hooks/*
Available Hooks
Core Hooks (All Projects)
| Hook | Purpose |
|---|---|
| Validates conventional commit format |
| Prevents leaked API keys/secrets |
Language-Specific
| Hook | Language | Checks |
|---|---|---|
| Python | Black, Ruff |
| JS/TS | Prettier, ESLint, TypeScript |
| Go | gofmt, go vet |
| Mixed | Auto-detects and runs appropriate tools |
Automation Hooks
| Hook | Purpose |
|---|---|
| Runs tests before push |
| Auto-updates dependencies on branch switch |
| Shows commit summary and TODOs |
Hook Selection by Project
# Python Project commit-msg + pre-commit-python + pre-commit-secrets-scanner + pre-push # JavaScript Project commit-msg + pre-commit-javascript + pre-commit-secrets-scanner + pre-push # Go Project commit-msg + pre-commit-go + pre-commit-secrets-scanner + pre-push # Multi-language commit-msg + pre-commit-multi-language + pre-commit-secrets-scanner + pre-push
What Each Hook Does
commit-msg
Validates commit message format:
# Accepted formats feat: Add user authentication fix: Correct validation error docs(readme): Update installation # Rejected Update files # No type feat add feature # Missing colon
pre-commit-secrets-scanner
Scans for exposed secrets:
- Anthropic API keys (
)sk-ant-... - OpenAI API keys (
)sk-... - AWS credentials (
)AKIA... - GitHub tokens (
)ghp_... - Hardcoded passwords
pre-commit-python
# Runs automatically on staged .py files uv run black --check $file uv run ruff check $file
pre-push
# Runs before push uv run pytest tests/ # or pnpm test, go test, cargo test
Testing Hooks
# Test pre-commit directly .git/hooks/pre-commit # Test with sample commit git add . git commit -m "test: verify hooks" # Run with debug output bash -x .git/hooks/pre-commit
Bypassing Hooks (Emergency Only)
# Skip all hooks git commit --no-verify -m "Emergency fix" # Only use when: # - Emergency production fixes # - Hook malfunction # - Intentional override
Troubleshooting
Hook Not Running
# Check existence ls -l .git/hooks/ # Fix permissions chmod +x .git/hooks/* # Check syntax bash -n .git/hooks/pre-commit
Permission Denied
chmod +x .git/hooks/*
Failed Quality Checks
# Run tools manually uv run black --check . uv run ruff check . # Fix issues uv run black . uv run ruff check --fix . # Retry commit git commit -m "Your message"
Missing Tools
# Install code quality tools uv add --dev black ruff # Verify installation which black uv run black --version
Custom Hook Configuration
Modify pre-commit for Your Project
#!/bin/bash # .git/hooks/pre-commit # Get staged Python files FILES=$(git diff --cached --name-only --diff-filter=ACM | grep '\.py$') if [ -n "$FILES" ]; then # Run your tools uv run black --check $FILES || exit 1 uv run ruff check $FILES || exit 1 fi exit 0
Hook Execution Order
- pre-commit - Before commit (code quality)
- commit-msg - Validates message format
- post-commit - After commit (notifications)
- pre-push - Before push (tests)
Best Practices
DO ✅
- Install secrets scanner on ALL projects
- Use commit-msg for consistent history
- Run tests in pre-push
- Test hooks after installation
DON'T ❌
- Skip hooks regularly
- Disable secrets scanning
- Ignore hook failures
- Commit without testing hooks first
Related Resources
See
AgentUsage/pre_commit_hooks/ for:
- Complete installation guidesetup_guide.md
- Custom hook examplesexamples.md
- Common issuesTROUBLESHOOTING.md- Individual hook scripts for reference