Setup Pre Commit
Matt PocockCommunityCreated by Matt Pocock
- Skill
- Workflow
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill streamlines the setup of automated quality checks in your repository by configuring Husky, lint-staged, and Prettier. It detects your package manager, installs necessary dependencies, and creates the required configuration files to ensure code formatting, type checking, and testing occur automatically before every commit.
What it does
- Detects the project's package manager automatically.
- Installs Husky, lint-staged, and Prettier as development dependencies.
- Initializes Husky and configures the pre-commit hook file.
- Sets up lint-staged to run Prettier on staged files.
- Creates a default Prettier configuration if one is missing.
- Verifies the setup and provides a final commit command.
When to use it
- When you want to enforce code formatting before commits.
- When you need to ensure tests and type checks pass before code is committed.
- When setting up a new project and wanting to establish quality standards early.
- When you want to standardize pre-commit workflows across a team.
Advantages
- Reduces manual effort in setting up complex hook configurations.
- Ensures consistent code style across the entire repository.
- Prevents broken builds by running tests and type checks locally before committing.
- Supports multiple package managers including npm, pnpm, yarn, and bun.
Usage examples
- “Set up pre-commit hooks for my project.”
- The agent will detect your package manager, install Husky and lint-staged, configure the pre-commit hook to run formatting and tests, and finalize the setup.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/mattpocock/setup-pre-commit/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip setup-pre-commit.zip -d .agents/skills
Documentation by Matt Pocock
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 prettier3. Initialize Husky
npx husky initThis 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 testAdapt: 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
Files
- ATTRIBUTION.mdAdded by AutoGineer866 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md2.2 KiB
- agents/openai.yaml99 B
SKILL.md
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 prettier3. Initialize Husky
npx husky initThis 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 testAdapt: 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
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Node.js
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Matt Pocock
- Publisher
- Matt Pocock (Community)
- Source
- mattpocock/skills · skills/misc/setup-pre-commit · commit 4ae2317
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Matt Pocock or Matt Pocock.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download setup-pre-commit.zip