All skills
mattpocock avatar

/setup-pre-commit

@3216582 official
by Matt Pocockmattpocock/skills274k stars
22,987

Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.

Use this Skill: https://skilld.dev/gh/mattpocock/skills/setup-pre-commit

This session only. Nothing lands on disk.

SKILL.md

≈64 tokens always: the name and description. ≈494 when used: this file. ≈25 more on demand in 1 file.

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

Steps

1. Detect package manager

Check for package-lock.json (npm), pnpm-lock.yaml (pnpm), yarn.lock (yarn), bun.lockb (bun). Use whichever is present. Default to npm if unclear.

2. Install dependencies

Install as devDependencies:

husky lint-staged prettier

3. Initialize Husky

npx husky init

This creates .husky/ dir and adds prepare: "husky" to package.json.

4. Create .husky/pre-commit

Write this file (no shebang needed for Husky v9+):

npx lint-staged
npm run typecheck
npm run test

Adapt: Replace npm with detected package manager. If repo has no typecheck or test script in package.json, omit those lines and tell the user.

5. Create .lintstagedrc

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

6. Create .prettierrc (if missing)

Only create if no Prettier config exists. Use these defaults:

{
  "useTabs": false,
  "tabWidth": 2,
  "printWidth": 80,
  "singleQuote": false,
  "trailingComma": "es5",
  "semi": true,
  "arrowParens": "always"
}

7. 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 verify it works

8. Commit

Stage all changed/created files and commit with message: Add pre-commit hooks (husky + lint-staged + prettier)

This will run through the new pre-commit hooks: a good smoke test that everything works.

Notes

  • Husky v9+ doesn't need shebangs in hook files
  • prettier --ignore-unknown skips files Prettier can't parse (images, etc.)
  • The pre-commit runs lint-staged first (fast, staged-only), then full typecheck and tests

Source: SKILL.md on GitHub

1 warning16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill automates the setup of Husky, lint-staged, and Prettier for git pre-commit hooks. It involves installing standard developer tools and configuring local project files, which is expected and safe behavior for this task.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

  • Runlayer7mo

    1/1 file flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 3216582. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated last month

README badge

README badge for mattpocock/skills/setup-pre-commit

Installs and configures Husky pre-commit hooks with lint-staged to run Prettier, TypeScript type checking, and tests on every commit. Targets Node.js projects using npm, pnpm, yarn, or bun and detects the package manager automatically.

Generated from the current SKILL.md.

Does this skill work with all package managers?
Yes. It detects npm, pnpm, yarn, or bun from lockfiles and adapts the install and hook commands accordingly, defaulting to npm if unclear.
What if my repo doesn't have typecheck or test scripts?
The skill omits those lines from the pre-commit hook and notifies you, so Husky only runs lint-staged and Prettier.
Will this overwrite my existing Prettier config?
No. The skill only creates `.prettierrc` if one doesn't already exist.
Does this require Husky v9 or later?
The skill is written for Husky v9+ (no shebangs needed), but will install whatever version the package manager resolves.

Generated from the current SKILL.md. These answers refresh after source changes.