用途:为仓库安装 Git pre-commit 钩子,先探测项目生态,再选用对应钩子工具,并写入格式化、类型检查、测试三类门禁。
主要能力:先运行探测(可用 Explore 代理,或单语言仓库直接用 fd 查找 lockfile/manifest 签名),把首个 manifest 命中映射到生态;多语言仓库需询问维护者要门禁哪一面,或两者都装。生态到工具映射:npm/yarn/pnpm/bun 用 husky + lint-staged,安装命令 <pm> add -D husky lint-staged prettier && npx husky init;Python(poetry/pip)用 pre-commit,pipx install pre-commit && pre-commit install;Go 用 lefthook,go install github.com/evilmartians/lefthook@latest && lefthook install;Rust 用 cargo-husky(或 pre-commit),作为 dev-dependencies 加入,随 cargo test 运行;OCaml(dune)用 pre-commit + dune 钩子。
使用方式:Node 写 .husky/pre-commit(npx lint-staged、<pm> run typecheck、<pm> run test,缺失脚本要删除并告知用户)与 .lintstagedrc;Python 写 .pre-commit-config.yaml(ruff、ruff-format、pyright、pytest);Go 写 lefthook.yml(gofmt、go vet、go test -race);Rust 在 Cargo.toml 加 cargo-husky 配置;OCaml 写 dune fmt/build/runtest 钩子。完成后验证:用 fd 确认钩子文件存在、钩子可执行、跑一次空提交 git commit --allow-empty -m "chore: verify hooks" 确认所有门禁通过,最后提交 chore: install pre-commit hooks (<tool>)。
限制:格式化策略不在本技能范围内,不要自动创建 .prettierrc;若不存在 Prettier 配置,需说明并询问用户。多语言仓库的门禁范围需人工确认。