setup-pre-commit

Thiết lập hook pre-commit Husky với lint-staged (Prettier), kiểm tra kiểu và kiểm thử trong repo hiện tại. Sử dụng khi người dùng muốn thêm hook pre-commit, thiết lập Husky, cấu hình lint-staged, hoặc thêm định dạng/kiểm tra kiểu/kiểm thử tại thời điểm commit.

npx skills add https://github.com/mattpocock/skills --skill setup-pre-commit

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

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

{
  "*": "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-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

Thêm skills từ mattpocock

writing-for-agents
mattpocock
Viết tài liệu cho agent. Sử dụng khi tạo hoặc chỉnh sửa kỹ năng, hoặc sửa đổi AGENTS.md hoặc CLAUDE.md.
wait-what
mattpocock
Dừng lại. Thông điệp vừa rồi không được tiếp nhận — hãy trình bày lại.
communication
to-questionnaire
mattpocock
Biến một quyết định bạn chưa thể trả lời trọn vẹn thành một bảng câu hỏi để người khác điền vào.
grill-me
mattpocock
Phỏng vấn người dùng một cách không ngừng về một kế hoạch hoặc thiết kế cho đến khi đạt được sự hiểu biết chung, giải quyết từng nhánh của cây quyết định. Sử dụng khi người dùng muốn kiểm tra căng thẳng một kế hoạch, bị chất vấn về thiết kế của họ, hoặc đề cập đến "grill me".
researchcommunicationproject-management
tdd
mattpocock
Phát triển hướng theo kiểm thử với vòng lặp đỏ-xanh-tái cấu trúc. Sử dụng khi người dùng muốn xây dựng tính năng hoặc sửa lỗi bằng TDD, đề cập đến "đỏ-xanh-tái cấu trúc", muốn kiểm thử tích hợp, hoặc yêu cầu phát triển kiểm thử trước.
developmenttesting
handoff
mattpocock
Nén cuộc hội thoại hiện tại thành một tài liệu bàn giao để một tác nhân khác tiếp nhận.
communicationproject-managementdocument
prototype
mattpocock
Xây dựng một bản mẫu dùng một lần để phát triển thiết kế trước khi cam kết thực hiện. Định tuyến giữa hai nhánh — một ứng dụng terminal có thể chạy được để kiểm tra trạng thái/logic nghiệp vụ, hoặc nhiều biến thể giao diện khác nhau có thể chuyển đổi từ một tuyến đường. Sử dụng khi người dùng muốn tạo bản mẫu, kiểm tra tính hợp lý của mô hình dữ liệu hoặc máy trạng thái, phác thảo giao diện, khám phá các lựa chọn thiết kế, hoặc nói "tạo bản mẫu này", "cho tôi thử nghiệm", "thử một vài thiết kế".
developmentdesigncreative
triage
mattpocock
Phân loại vấn đề thông qua máy trạng thái được điều khiển bởi các vai trò phân loại. Sử dụng khi người dùng muốn tạo vấn đề, phân loại vấn đề, xem xét lỗi mới hoặc yêu cầu tính năng, chuẩn bị vấn đề cho tác nhân AFK, hoặc quản lý quy trình làm việc vấn đề.
developmentproject-managementcommunication