M

setup-pre-commit

作者 mattpocock

setup-pre-commit 可帮助你结合 lint-staged、Prettier,以及可选的类型检查/测试运行来添加 Husky pre-commit 钩子。当你的仓库需要一个快速、可重复的 pre-commit 安全网,并且你希望在保留现有配置的同时,为当前包管理器补上合适脚本时,就适合使用这份 setup-pre-commit 指南。

Stars66k
收藏0
评论0
收录时间2026年5月8日
分类CI 故障排查
安装命令
npx skills add mattpocock/skills --skill setup-pre-commit
编辑评分

该技能评分为 78/100,说明它适合收录到目录中:它提供了一个真实、可触发的工作流,用于配置 Husky pre-commit 钩子、lint-staged、Prettier、类型检查和测试;但在验证以及边界情况处理上,仍有一些采用上的注意点。

78/100
亮点
  • 触发条件明确且实用:目标是添加 Husky pre-commit 钩子,配置 lint-staged,并在提交时执行格式化/类型检查/测试。
  • 操作步骤具体且按顺序展开,包括识别包管理器、安装依赖、初始化 Husky、创建 hook 文件以及配置 Prettier。
  • description 和正文提供了足够的工作流细节,便于 agent 执行时减少猜测,比通用提示更明确;其中还包含了精确命令和文件内容。
注意点
  • 没有包含安装命令或配套脚本/资源,因此用户必须仅依赖 `SKILL.md` 中的说明。
  • 仓库带有测试信号,且指南说明如果脚本不存在就应省略 typecheck/test 行,这使得整个流程在一定程度上依赖项目现状,而非完全开箱即用。
概览

setup-pre-commit 概览

setup-pre-commit skill 可以帮你搭建一套实用的 Git hook 工作流:在提交前运行 Husky pre-commit 检查、用 lint-staged 配合 Prettier 做格式化,并可选地在代码进入 commit 之前执行 typecheck/test。它最适合那些已经有 Node 技术栈、需要一套快速且可重复的配置,而不是手工自己拼 hook 的仓库。

setup-pre-commit 的用途

当你想在 commit 时加一道安全网,统一格式并尽早发现明显问题时,就该用 setup-pre-commit skill。它真正要解决的不是孤立地“安装 Husky”,而是在不迫使你重构仓库的前提下,让本地提交更安全。

什么时候它最适合用

如果你的仓库已经在使用,或者可以使用 Prettier、typechecktest 脚本,并且你希望这套约定能在 npm、pnpm、Yarn 或 Bun 之间保持一致,那么它就很合适。它也适用于你需要在现有项目里快速落地、且尽量少争论规范的场景。

什么时候它的局限比较明显

如果你的项目不是 Node 技术栈,或者你要的是 commit-msg / pre-push 逻辑而不是 pre-commit,或者你的检查需要比简单 hook 更复杂的编排,这个 skill 就没那么适用。它也默认你愿意先确认仓库里到底有哪些脚本,再把它们加进 hook。

如何使用 setup-pre-commit skill

安装并打开正确的文件

使用 npx skills add mattpocock/skills --skill setup-pre-commit 安装。然后先看 SKILL.md,因为真正的工作流和决策点都写在里面。如果你的目录视图只显示一个文件,那也足够按流程设置,但你仍然应该检查仓库树,找出包管理器和脚本相关的线索。

提供正确的仓库上下文

为了获得最佳结果,请告诉这个 skill 当前用了哪个 lockfile、package.json 里是否已经有 typechecktest、以及 Prettier 是否已经配置好。一个更有质量的请求像这样:“Set up setup-pre-commit in this repo using pnpm; keep existing Prettier config; add only the scripts that already exist.” 这比简单说“加 pre-commit hooks”要好,因为它消除了包管理器和 hook 内容上的猜测空间。

按正确顺序执行工作流

这个 skill 的设计流程很简单:识别 package manager、安装开发依赖、初始化 Husky、写入 .husky/pre-commit、添加 lint-staged,以及创建或复用 Prettier 配置。实际操作中,最重要的决定是要不要把 npm run typechecknpm run test 放进 hook;如果这些脚本不存在,就应当省略。这样 hook 才会实用,而不是脆弱。

实用的提示词模板

提示词要明确说明仓库现状和你希望执行的策略。例如:“Use setup-pre-commit to add Husky, lint-staged, and Prettier to this monorepo. The lockfile is pnpm-lock.yaml, typecheck exists, test does not, and there is already a .prettierrc.” 这样 skill 才有足够信息产出正确配置,而不会凭空捏造脚本或覆盖现有配置。

setup-pre-commit skill 常见问题

setup-pre-commit 只适合新仓库吗?

不是。setup-pre-commit skill 在现有仓库里往往更有价值,因为它能帮你在不手工重建文件的情况下,补上一套一致的 hook 策略。它最适合你已经清楚现有脚本和配置的场景。

我需要同时用 Husky 和 lint-staged 吗?

在这套工作流里,需要,这正是它的重点。Husky 负责触发 hook,lint-staged 负责把格式化范围限制在已暂存文件上,让提交保持足够快。如果你只需要其中一部分,用通用提示词可能比 setup-pre-commit skill 更简单。

它会覆盖我的 Prettier 配置吗?

如果使用得当,不应该会。这个 skill 只有在缺少 .prettierrc 时才会创建它,核心判断在于你仓库里是否已经有需要保留的 formatter 配置。如果你已经有既定的风格策略,最好明确说明。

它更适合 CI,还是只适合本地提交?

它的主要价值是本地 pre-commit 强制检查,但同样的检查通常也会贴近 CI 的预期。如果你的 CI 使用的是不同命令,就不要机械照搬 hook;要让 hook 对齐流水线实际运行的脚本。这也是 setup-pre-commit for CI Troubleshooting 里最需要注意的问题。

如何改进 setup-pre-commit skill

把仓库的真实限制告诉它

提升质量最大的办法,就是明确告诉 setup-pre-commit 当前仓库已经存在什么包管理器、脚本和配置文件。缺少这些上下文,容易导致命令前缀写错、生成不必要的脚本,或者 hook 在第一次提交时就失败。

避免常见的 hook 失败

最常见的失败模式,是把 typechecktest 加进 .husky/pre-commit,但这些脚本其实不存在。另一个常见问题是把所有文件都格式化,而不是只处理 staged files,这会让提交速度明显变慢。若你希望 hook 稳定可靠,就要明确说明当脚本缺失时应该怎么处理。

用明确目标提升首次输出质量

不要只说要安装什么,要直接说清楚你想要的结果。更好的指令是:“Add Husky pre-commit hooks that run lint-stagedon staged files, preserve the existing Prettier config, and includetypecheckonly ifpackage.json already defines it.” 这样得到的 setup-pre-commit guide 结果会比泛泛的请求更可用。

在第一轮之后继续迭代

初始设置完成后,检查 hook 是否符合团队对速度和严格度的预期。如果觉得太重,就把昂贵的检查从 pre-commit 移到 CI;如果觉得太松,就补上缺失的脚本,或者缩小 lint-staged 的作用范围。最好的 setup-pre-commit install 结果,是团队真的愿意一直用下去的那一版。

评分与评论

暂无评分
分享你的评价
登录后即可为这个技能评分并发表评论。
G
0/10000
最新评论
保存中...