Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
julianobarbosa avatar

Pre Commit

  • 47 installs
  • 6 repo stars
  • Updated July 22, 2026
  • julianobarbosa/claude-code-skills

Helps with git & pull requests tasks.

About

pre-commit is a Claude Code skill for git & pull requests. It helps solo builders move faster with AI-assisted development.

  • pre-commit
  • Git & Pull Requests
  • AI-coding skill

Pre Commit by the numbers

  • 47 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #310 of 733 Git & Pull Requests skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/julianobarbosa/claude-code-skills --skill pre-commit

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs47
repo stars6
Last updatedJuly 22, 2026
Repositoryjulianobarbosa/claude-code-skills

What it does

Helps with git & pull requests tasks.

Files

SKILL.mdMarkdownGitHub ↗

PreCommit

A comprehensive skill for managing pre-commit hooks - the framework for multi-language pre-commit hook management that automates code quality, formatting, linting, and security scanning.

Quick Reference

CommandDescription
pre-commit installInstall git hooks
pre-commit run --all-filesRun all hooks on all files
pre-commit autoupdateUpdate hooks to latest versions
pre-commit run <hook-id>Run specific hook

Workflow Routing

WorkflowTriggerFile
Setup"setup pre-commit", "initialize hooks", "create config"Workflows/Setup.md
AddHooks"add hook", "add linting", "add formatter", "add security"Workflows/AddHooks.md
Troubleshoot"fix pre-commit", "hook failing", "debug hooks"Workflows/Troubleshoot.md
CIIntegration"CI pipeline", "GitHub Actions", "GitLab CI"Workflows/CIIntegration.md
CustomHook"create custom hook", "local hook", "write hook"Workflows/CustomHook.md

Documentation

DocumentPurpose
QuickStartGuide.mdInstallation and first-time setup
HooksReference.mdComprehensive hook catalog by language/purpose
ConfigurationGuide.mdAdvanced configuration options
SecurityHooks.mdSecret detection and security scanning

Tools

ToolPurpose
Tools/PreCommitManager.tsCLI for managing pre-commit configurations
Tools/HookGenerator.tsGenerate .pre-commit-config.yaml templates
Tools/HookValidator.tsValidate hook configurations

Examples

Example 1: Setup pre-commit for a new project

User: "Setup pre-commit for my Python project"
→ Invokes Setup workflow
→ Creates .pre-commit-config.yaml with Python hooks (black, isort, flake8)
→ Runs pre-commit install

Example 2: Add Terraform hooks

User: "Add Terraform validation hooks"
→ Invokes AddHooks workflow
→ Adds terraform_fmt, terraform_validate, terraform_docs hooks
→ Configures tflint and checkov integration

Example 3: Add security scanning

User: "Add secret detection to pre-commit"
→ Invokes AddHooks workflow
→ Adds gitleaks, detect-secrets, trufflehog hooks
→ Configures appropriate exclusion patterns

Example 4: Debug failing hook

User: "My eslint pre-commit hook is failing"
→ Invokes Troubleshoot workflow
→ Checks hook configuration and dependencies
→ Provides fix recommendations

Supported Hook Categories

  • Python: black, isort, flake8, mypy, bandit, pyupgrade
  • JavaScript/TypeScript: prettier, eslint, biome
  • Infrastructure: terraform, terragrunt, helm, kustomize
  • Kubernetes: kubeconform, kubeval, checkov
  • Security: gitleaks, detect-secrets, trufflehog, trivy
  • General: yamllint, jsonlint, shellcheck, markdownlint

---

Gotchas

  • Hook output disappears when run via `git commit -m` in an editor terminal — stdout/stderr get swallowed by the editor wrapping. Run pre-commit run --all-files directly to see the actual failure message.
  • `pre-commit autoupdate` bumps to latest tag but doesn't update pinned config in hook repos — a hook that pins flake8==6.0.0 internally keeps that version. Look at each hook's additional_dependencies after autoupdate.
  • Hooks only run on staged files by default, so editing a file after git add and then committing runs the hook against the OLD content. Use --all-files in CI to catch this.
  • `exclude:` regex is anchored differently than `files:`exclude: tests/ does NOT exclude tests/foo.py in some hook versions; use exclude: ^tests/ to be safe. Anchor everything.
  • `language: system` hooks bypass the pre-commit venv and rely on the user's PATH — works on your machine, fails in CI with command not found. Prefer language: python with additional_dependencies.
  • `pre-commit install` doesn't install for `commit-msg` or `pre-push` by default — separate --hook-type calls needed. Many teams add commit-msg hooks then wonder why they don't fire.
  • Skipping a hook via `SKIP=hookid git commit` is per-shell-invocation, not per-commit — CI runs with a fresh env where SKIP is unset and the hook fires anyway.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.