AgentStack
SKILL verified Apache-2.0 Self-run

Setup Pre Commit

skill-outlinedriven-odin-codex-plugin-setup-pre-commit · by OutlineDriven

Install git pre-commit hooks via the project's hook tool — Husky+lint-staged (JS), pre-commit (Python/OCaml), lefthook (Go), cargo-husky (Rust). Use when the user wants commit-time formatting, linting, type-checking, or test gates. Detects ecosystem first.

No reviews yet
0 installs
18 views
0.0% view→install

Install

$ agentstack add skill-outlinedriven-odin-codex-plugin-setup-pre-commit

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Setup Pre Commit? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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 | 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
 run typecheck
 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 ./... }

RustCargo.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 (). The commit itself trips the new hook — first-class smoke test.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.