Receber por email
← Voltar para o catálogo

setup-pre-commit

Instala hooks de pré-commit do Git usando a ferramenta de hook do projeto (Husky+lint-staged, pre-commit, lefthook, cargo-husky) para formatação, linting, verificação de tipo ou testes no momento do commit, detectando o ecossistema primeiro.

27estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: Apache-2.0

Como adicionar

/plugin marketplace add OutlineDriven/odin-claude-plugin

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/setup-pre-commit-outlinedriven/svg)](https://www.skillteca.com.br/skills/setup-pre-commit-outlinedriven)

Skills relacionadas

Ver todas de Desenvolvimento →

Alerta por categoria

Receba novas skills de Desenvolvimento toda segunda

1 email curto, só com as skills novas de Desenvolvimento. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Detect the ecosystem, pick the right hook tool, install with formatter + type-check + test gates.

Detection (run first)

Dispatch Explore agent — or for a single-language repo, probe directly via fd for lockfile / manifest signature. Map the first manifest hit to an ecosystem. Multi-language repos: ask the maintainer which surface to gate, or apply both.

Ecosystem → hook tool

| Ecosystem | Hook tool | Install command | | -------------------- | -------------------------- | ---------------------------------------------------------------- | | npm / yarn / pnpm / bun | husky + lint-staged | <pm> add -D husky lint-staged prettier && npx husky init | | Python (poetry/pip) | pre-commit (framework) | pipx install pre-commit && pre-commit install | | Go | lefthook (or pre-commit) | go install github.com/evilmartians/lefthook@latest && lefthook install | | Rust (cargo) | cargo-husky (or pre-commit)| add cargo-husky as [dev-dependencies]; runs on cargo test | | OCaml (dune) | pre-commit + dune hooks | pipx install pre-commit && pre-commit install |

Per-ecosystem hook contents

Node ecosystems — write .husky/pre-commit:

npx lint-staged
<pm> run typecheck
<pm> run test

Drop missing scripts and tell the user. Write .lintstagedrc:

{ "*": "prettier --ignore-unknown --write" }

Formatter policy is out of scope for this skill. Do NOT auto-create .prettierrc. If no Prettier config exists, surface that fact and ask the user.

Python — write .pre-commit-config.yaml:

repos:
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.6.0
    hooks:
      - id: ruff
      - id: ruff-format
  - repo: local
    hooks:
      - id: pyright
        name: pyright
        entry: pyright
        language: system
        pass_filenames: false
      - id: pytest
        name: pytest
        entry: pytest -q
        language: system
        pass_filenames: false
        stages: [pre-commit]

Go — write lefthook.yml:

pre-commit:
  parallel: true
  commands:
    fmt:    { run: gofmt -l -w {staged_files} }
    vet:    { run: go vet ./... }
    test:   { run: go test -race ./... }

Rust — Cargo.toml:

[dev-dependencies]
cargo-husky = { version = "1", default-features = false, features = ["precommit-hook", "run-cargo-test", "run-cargo-clippy", "run-cargo-fmt"] }

OCaml — .pre-commit-config.yaml:

repos:
  - repo: local
    hooks:
      - id: dune-fmt
        name: dune fmt
        entry: dune fmt
        language: system
        pass_filenames: false
      - id: dune-build
        name: dune build
        entry: dune build
        language: system
        pass_filenames: false
      - id: dune-test
        name: dune runtest
        entry: dune runtest
        language: system
        pass_filenames: false

Verify

  • fd -d 2 -t f '\.husky|\.pre-commit-config\.yaml|lefthook\.yml' shows the expected file.
  • The hook is executable.
  • Run a no-op commit (git commit --allow-empty -m "chore: verify hooks") — every gate must run and pass.

Commit

chore: install pre-commit hooks (<tool>). The commit itself trips the new hook — first-class smoke test.

Compartilhar X LinkedIn