Setup Pre-Commit Skill

Set up Husky pre-commit hooks with lint-staged and Prettier, plus typecheck and test steps, adapted to whichever package manager the repo uses.

---
name: setup-pre-commit
description: 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.
---

# 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

How to use

The chore everyone does slightly differently, encoded once: detect the package manager from the lockfile, install, wire the hook, and (the detail most setups miss) omit typecheck/test lines when the repo has no such scripts and say so, rather than committing a hook that fails on every commit. Run it in any JS/TS repo as-is. Save as .claude/skills/setup-pre-commit/SKILL.md, or install Matt's full MIT-licensed set (github.com/mattpocock/skills) with 'claude plugins install mattpocock-skills'.

Originated fromMatt PocockUpdated
Gitbeginner

More skill prompts

---
name: writing-documentation
description: Write or update documentation from the code. Use when the user asks for a README, API reference, guide, docstrings, or says the docs are out of date.
---

# Writing Documentation

Documentation is a claim about behavior. Every claim must be checked against the code before it ships, because a wr
SKILL.md

Documentation Skill

A skill that documents what the code does rather than what it should do: read first, examples from tests, unverifiable claims marked.

Skillintermediate
---
name: security-review
description: Review code for security defects. Use before merging changes that touch authentication, authorization, user input, file handling, secrets, or external requests, or when the user asks for a security review.
---

# Security Review

Find defects an attacker could actually use. A finding without an attac
SKILL.md

Security Review Skill

A skill that reviews changes for exploitable defects, follows untrusted input to where it lands, and reports only findings with an attack path.

Skilladvanced
---
name: accessibility-review
description: Audit UI code for accessibility defects against WCAG. Use when building or changing components, forms, modals, or navigation, or when the user asks about accessibility, a11y, screen readers, or keyboard support.
---

# Accessibility Review

Judge the interface by whether a person can complete th
SKILL.md

Accessibility Skill

A skill that audits UI against WCAG by keyboard, semantics, and state, reporting who is blocked rather than listing rule numbers.

Skillintermediate

Search prompts

Find a prompt by title, description, tag, or category.