Setup Pre-Commit Hooks
SkillDev toolsThis skill sets up pre-commit hooks in a repository so that code is formatted, type checked, and tested before each commit. It installs Husky, lint-staged, and Prettier, detects the package manager, and creates the hook and config files. The result is that commits run formatting on staged files, then type checking and tests.
Use Setup Pre-Commit Hooks in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Setup Pre-Commit Hooks and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Setup Pre-Commit Hooks skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
No other account needed.
Have a git repository with a package.json file.
What your AI can do with it
- Installs Husky, lint-staged, and Prettier as devDependencies
- Detects the package manager from lock files
- Creates .husky/pre-commit to run lint-staged, typecheck, and test
- Creates .lintstagedrc to run Prettier on staged files
- Creates a .prettierrc config if none exists
- Verifies the setup and commits the new files
Getting started
- Have a git repository with a package.json file.
- Run the skill so it detects the package manager and installs Husky, lint-staged, and Prettier as devDependencies.
- Let it initialize Husky and create the .husky/pre-commit, .lintstagedrc, and .prettierrc files.
- If the repo has no typecheck or test script, the skill omits those lines and tells you.
- After the skill verifies the setup, it stages and commits the new files.
What this skill tells your AI
The instructions your AI receives, as published by mattpocock/skills in skills/misc/setup-pre-commit/SKILL.md and read by ahel’s review.
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-commitexists and is executable -
.lintstagedrcexists -
preparescript in package.json is"husky" -
prettierconfig exists - Run
npx lint-stagedto 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-unknownskips files Prettier can't parse (images, etc.)- The pre-commit runs lint-staged first (fast, staged-only), then full typecheck and tests
Signals
- GitHub stars
- 273k
- Forks
- 23k
- Last commit
- Sep 2026
- Installs
- 421k installs
Questions
- How do I set up pre-commit?
- Run the skill in your repo. It installs Husky, lint-staged, and Prettier, creates the hook and config files, verifies the setup, and commits the new files.
- How to run pre-commit before commit?
- Once the skill sets up the .husky/pre-commit hook, it runs automatically before each commit. You can also run npx lint-staged to test it.
- What files does the skill create?
- It creates .husky/pre-commit, .lintstagedrc, and .prettierrc if missing. It also adds a prepare script to package.json.
- What if my repo has no typecheck or test script?
- The skill omits those lines from the pre-commit hook and tells you. The hook still runs lint-staged.
Advanced
- Item type
- skill
- Key
setup-pre-commit-mattpocock- Source
- github.com/mattpocock/skills
Related picks
Skill · aj-geddes
Does the same job in other wordsnodejs-backend-patterns
Skill · wshobson
The pick for Noderun-node-tests
Skill · hiroro-work
The pick for Nodeteach
Skill · mattpocock
More in Dev toolsimplement
Skill · mattpocock
More in Dev toolsponytail
Skill · dietrichgebert
More in Dev tools