skill
Setup Pre Commit
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.
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
## 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
```bash 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`
```json { "*": "prettier --ignore-unknown --write" } ```
### 6. Create `.prettierrc` (if missing)
Only create if no Prettier config exists. Use these defaults:
```json { "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
Install
Run this command
npx skills add mattpocock/skillsWorks with
Manual steps
Install with `npx skills add mattpocock/skills`, or clone the repository and copy the `skills/misc/setup-pre-commit` folder into your Claude skills directory.
Frequently asked questions
What is the Setup Pre Commit skill?
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.
How do I install Setup Pre Commit?
Run this in your terminal:
npx skills add mattpocock/skillsWhich AI tools does Setup Pre Commit work with?
It works with claude_app, claude_code, claude_api, cursor, codex, windsurf, cline, zed.
Who made Setup Pre Commit?
mattpocock.
Is Setup Pre Commit free?
Yes, it is free to use.
npx skills add vercel-labs/skills
npx skills add mattpocock/skills
npx skills add mattpocock/skills
npx skills add mattpocock/skills
npx skills add mattpocock/skills
npx skills add genmedia-labs/skills
Audit before you install
Run any source through our checks - AI visibility, security, performance, and stack detection.
Automated Web Security Scan
security
PageSpeed Analyzer
performance
AI Content Quality Test
arabic content
AI Agent / MCP Server Tester
ai testing
Site Stack Detector
migration
AI SEO / AEO / GEO Audit
ai visibility
llms.txt Generator
ai visibility
Readability Score
arabic content
Schema / JSON-LD Builder
ai visibility
AI Cost Calculator
ai testing
Headline Analyzer
arabic content