git-hooks

Activate this skill when:

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "git-hooks" with this command: npx skills add autumnsgrove/groveengine/autumnsgrove-groveengine-git-hooks

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

commit-msg

Validates conventional commit format

pre-commit-secrets-scanner

Prevents leaked API keys/secrets

Language-Specific

Hook Language Checks

pre-commit-python

Python Black, Ruff

pre-commit-javascript

JS/TS Prettier, ESLint, TypeScript

pre-commit-go

Go gofmt, go vet

pre-commit-multi-language

Mixed Auto-detects and runs appropriate tools

Automation Hooks

Hook Purpose

pre-push

Runs tests before push

post-checkout

Auto-updates dependencies on branch switch

post-commit

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:

  • setup_guide.md

  • Complete installation guide

  • examples.md

  • Custom hook examples

  • TROUBLESHOOTING.md

  • Common issues

  • Individual hook scripts for reference

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

cloudflare-deployment

No summary provided by upstream source.

Repository SourceNeeds Review
General

rich-terminal-output

No summary provided by upstream source.

Repository SourceNeeds Review
General

api-integration

No summary provided by upstream source.

Repository SourceNeeds Review