AgentStack
SKILL verified MIT Self-run

Setup Pre Commit

skill-helderberto-agent-skills-setup-pre-commit · by helderberto

Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests. Use when user asks to \"add pre-commit hooks\", \"setup husky\", \"setup pre-commit\", \"configure lint-staged\", or wants commit-time formatting/typechecking/testing. Don't use for running linters manually or writing tests.

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

Install

$ agentstack add skill-helderberto-agent-skills-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

Setup Pre-Commit Hooks

What This Sets Up

  • Husky pre-commit hook
  • lint-staged running Prettier on all staged files
  • Prettier config (if missing)
  • typecheck and test scripts in the pre-commit hook (if they exist)

Workflow

  1. Detect package manager from lock file: package-lock.json (npm), pnpm-lock.yaml (pnpm), yarn.lock (yarn), bun.lockb (bun). Default to npm if unclear.
  1. Install devDependencies:

`` husky lint-staged prettier ``

  1. Initialize Husky:

``bash npx husky init ` This creates .husky/ dir and adds prepare: "husky"` to package.json.

  1. Create .husky/pre-commit (no shebang needed for Husky v9+):

`` npx lint-staged run typecheck run test ` Replace with detected package manager. If repo has no typecheck script in package.json, omit that line and tell the user. Same for test`.

  1. Create .lintstagedrc:

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

  1. Create .prettierrc (only if no Prettier config exists):

``json { "useTabs": false, "tabWidth": 2, "singleQuote": true, "trailingComma": "all" } ``

  1. Verify:
  • .husky/pre-commit exists and is executable
  • .lintstagedrc exists
  • prepare script in package.json is "husky"
  • Prettier config exists
  • Run npx lint-staged to confirm it works
  1. Commit all changed/created files: Add pre-commit hooks (husky + lint-staged + prettier)

This runs through the new pre-commit hooks -- a good smoke test.

Rules

  • Never overwrite existing Prettier config
  • Never overwrite existing .husky/pre-commit without asking user first
  • Always use detected package manager consistently
  • Husky v9+ doesn't need shebangs in hook files
  • prettier --ignore-unknown skips files Prettier can't parse (images, etc.)
  • Pre-commit runs lint-staged first (fast, staged-only), then full typecheck and tests

Error Handling

  • No package.json found -- report and stop
  • Existing .husky/pre-commit -- ask user before overwriting
  • husky init fails -- check node_modules exists, suggest running install first
  • npx lint-staged verification fails -- check Prettier is installed, check .lintstagedrc syntax
  • No typecheck or test scripts -- omit from hook, tell user which were skipped

See Also

  • [validate-code](../validate-code/SKILL.md) -- run lint/typecheck/tests manually
  • [commit](../commit/SKILL.md) -- create git commits following repo style

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.