agentsclimarketplace

Setup pre commit

Skill helderberto/agent-skills/skills/setup-pre-commit

My personal SDLC toolbelt for AI coding agents — PRD to ship.

Install
npx -y skills add helderberto/agent-skills --skill setup-pre-commit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests. Use when user asks to "add pre-commit hooks", "setup husky", "setup pre-commit", "configure lint-staged", or wants commit-time formatting/typechecking/testing. Don't use for running linters manually or writing tests.

SKILL.md

2.9 KB, as published. Nobody here has run it

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 (if they exist)

Workflow

  1. Detect package manager from lock file: package-lock.json (npm), pnpm-lock.yaml (pnpm), yarn.lock (yarn), bun.lockb (bun). Default to npm if unclear.

  2. Install 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 (no shebang needed for Husky v9+):

    npx lint-staged
    <pm> run typecheck
    <pm> run test
    

    Replace <pm> with detected package manager. If repo has no typecheck script in package.json, omit that line and tell the user. Same for test.

  5. Create .lintstagedrc:

    {
      "*": "prettier --ignore-unknown --write"
    }
    
  6. Create .prettierrc (only if no Prettier config exists):

    {
      "useTabs": false,
      "tabWidth": 2,
      "singleQuote": true,
      "trailingComma": "all"
    }
    
  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 confirm it works
  8. Commit all changed/created files: Add pre-commit hooks (husky + lint-staged + prettier) This runs through the new pre-commit hooks -- a good smoke test.

Rules

  • Never overwrite existing Prettier config
  • Never overwrite existing .husky/pre-commit without asking user first
  • Always use detected package manager consistently
  • Husky v9+ doesn't need shebangs in hook files
  • prettier --ignore-unknown skips files Prettier can't parse (images, etc.)
  • Pre-commit runs lint-staged first (fast, staged-only), then full typecheck and tests

Error Handling

  • No package.json found -- report and stop
  • Existing .husky/pre-commit -- ask user before overwriting
  • husky init fails -- check node_modules exists, suggest running install first
  • npx lint-staged verification fails -- check Prettier is installed, check .lintstagedrc syntax
  • No typecheck or test scripts -- omit from hook, tell user which were skipped

See Also

  • validate-code -- run lint/typecheck/tests manually
  • commit -- create git commits following repo style

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.