setup-pre-commit
Original:🇺🇸 English
Not Translated
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.
1installs
Sourceneilpmaiden/skills
Added on
NPX Install
npx skill4agent add neilpmaiden/skills setup-pre-commitSKILL.md Content
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 (npm), (pnpm), (yarn), (bun). Use whichever is present. Default to npm if unclear.
package-lock.jsonpnpm-lock.yamlyarn.lockbun.lockb2. Install dependencies
Install as devDependencies:
husky lint-staged prettier3. Initialize Husky
bash
npx husky initThis creates dir and adds to package.json.
.husky/prepare: "husky"4. Create .husky/pre-commit
.husky/pre-commitWrite this file (no shebang needed for Husky v9+):
npx lint-staged
npm run typecheck
npm run testAdapt: Replace with detected package manager. If repo has no or script in package.json, omit those lines and tell the user.
npmtypechecktest5. Create .lintstagedrc
.lintstagedrcjson
{
"*": "prettier --ignore-unknown --write"
}6. Create .prettierrc
(if missing)
.prettierrcOnly 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
- exists and is executable
.husky/pre-commit - exists
.lintstagedrc - script in package.json is
prepare"husky" - config exists
prettier - Run to verify it works
npx lint-staged
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
- skips files Prettier can't parse (images, etc.)
prettier --ignore-unknown - The pre-commit runs lint-staged first (fast, staged-only), then full typecheck and tests