polyglot-git-hooks
polyglot-git-hooks — SKILL.md
Variant: standard · When to use: the skill is invoked, you produce a
lefthook.ymland wire it, control returns to the caller. The tool taught is Lefthook (a Git-hooks manager); the skill is named for its differentiator — driving checks across multiple languages from one config.
Overview
This skill sets up Git hooks for a polyglot repo with Lefthook — a fast, Go-based, language-agnostic hooks manager. The goal is one lefthook.yml at the repo root that runs the right fast checks on staged files at pre-commit (format + lint) and the slower checks at pre-push (type-check + tests), across a mixed-language repo (e.g. a TypeScript subtree and a Python subtree), in parallel. It is the local "fail fast before the commit/push" layer that complements, not replaces, CI. This skill owns the hook wiring — the per-tool details (how Biome/Ruff/tsc/ty themselves work) belong to their own skills, which this one references.
When to activate
- ✅ Setting up Git hooks for a repo (a new
lefthook.yml), or adding apre-commit/pre-pushgate. - ✅ Wiring lint/format/type-check to run on staged files before a commit, or on push files before a push.
- ✅ Configuring hooks for a polyglot or monorepo where different subtrees use different toolchains.
- ✅ Migrating off husky+lint-staged or the Python
pre-commitframework to a single-config, polyglot setup.
Do NOT activate when: