Skip to content
Development
Skill

/setup-pre-commit

在当前仓库设置 Husky pre-commit hooks,集成 lint-staged (Prettier)、类型检查和测试。适用于用户想添加 pre-commit hooks、设置 Husky、配置 lint-staged,或在提交时运行格式化、类型检查和测试时。

From plugin
vinvcn-mattpocock-skills
5.4k31 skills

Claude Code

$ npx -y skills add vinvcn/mattpocock-skills-zh-cn --skill setup-pre-commit --agent claude-code

SKILL.md

setup-pre-commit.SKILL.md
name: setup-pre-commit
description: 在当前仓库设置 Husky pre-commit hooks,集成 lint-staged (Prettier)、类型检查和测试。适用于用户想添加 pre-commit hooks、设置 Husky、配置 lint-staged,或在提交时运行格式化、类型检查和测试时。

设置 Pre-Commit Hooks

这会配置什么

  • **Husky** pre-commit hook
  • **lint-staged** 对所有 staged files 运行 Prettier
  • **Prettier** config(如果缺失)
  • pre-commit hook 中的 **typecheck** 和 **test** scripts

步骤

1. 检测 package manager

检查 `package-lock.json` (npm)、`pnpm-lock.yaml` (pnpm)、`yarn.lock` (yarn)、`bun.lockb` (bun)。使用存在的那个。不清楚时默认 npm。

2. 安装依赖

作为 devDependencies 安装:

husky lint-staged prettier

3. 初始化 Husky

npx husky init

这会创建 `.husky/` dir,并向 package.json 添加 `prepare: "husky"`。

4. 创建 `.husky/pre-commit`

写入这个文件(Husky v9+ 不需要 shebang):

npx lint-staged
npm run typecheck
npm run test

**Adapt**:把 `npm` 替换为检测到的 package manager。如果 repo 的 package.json 没有 `typecheck` 或 `test` script,就省略对应行并告知用户。

5. 创建 `.lintstagedrc`

{
  "*": "prettier --ignore-unknown --write"
}

6. 创建 `.prettierrc`(如果缺失)

只有没有 Prettier config 时才创建。使用这些 defaults:

{
  "useTabs": false,
  "tabWidth": 2,
  "printWidth": 80,
  "singleQuote": false,
  "trailingComma": "es5",
  "semi": true,
  "arrowParens": "always"
}

7. 验证

  • [ ] `.husky/pre-commit` 存在且可执行
  • [ ] `.lintstagedrc` 存在
  • [ ] package.json 中的 `prepare` script 是 `"husky"`
  • [ ] prettier config 存在
  • [ ] 运行 `npx lint-staged` 验证可用

8. 提交

Stage 所有 changed/created files,并用 message 提交:`Add pre-commit hooks (husky + lint-staged + prettier)`

这会经过新的 pre-commit hooks,是一个不错的 smoke test。

备注

  • Husky v9+ 不需要 hook files 中的 shebangs
  • `prettier --ignore-unknown` 会跳过 Prettier 无法 parse 的 files(images 等)
  • pre-commit 先运行 lint-staged(快,只针对 staged files),再运行完整 typecheck 和 tests
Read more
@vinvcn
Ships withvinvcn-mattpocock-skills

Matt Pocock 的 mattpocock/skills:第三方简体中文本地化,非官方仓库。这些 agent skills 是他每天用于真实工程工作的,不是 vibe coding:小、易改、可组合,适用于任何模型。 本仓库定期同步上游,并额外支持 DeepSeek Harness(dsh)插件安装,安装后以 /zh- 调用任意技能(上游没有的能力,详见 dsh-plugin/README.md)。

Stars on GitHub

Momentum

stars in total
5.4k
Star history of vinvcn/mattpocock-skills-zh-cn on GitHub, a chart by star-history.com

Other skills on vinvcn-mattpocock-skills.

code-review

code-review

从固定点(commit、branch、tag 或 merge-base)开始,按 Standards(代码是否符合本仓库记录的编码标准?)和 Spec(代码是否符合来源 issue/spec…

codebase-design

codebase-design

用于设计深模块的共享词汇。适用于用户想设计或改进模块接口、寻找深化机会、决定 seam 放在哪里、让代码更容易测试或更适合 AI 导航,或其他技能需要深模块词汇时。

diagnosing-bugs

diagnosing-bugs

面向棘手缺陷和性能回退的诊断循环。适用于用户说 “diagnose” / “debug this”,或报告某些东西 broken、throwing、failing、slow 时。

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about setup-pre-commit.

Which coding agents can use setup-pre-commit?
setup-pre-commit installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.