SuperAPI AI 工具集

prek

编程与开发

查看项目

更新于 10-16 03:17

技能介绍

用途:把 prek(Rust 驱动的高速 pre-commit 钩子管理器)接入项目并生成配置。适用于项目尚无 prek.toml、需要新增或审计钩子,或从 .pre-commit-config.yaml 迁移的场景。

主要能力:扫描仓库根目录的语言标记(Cargo.toml、pyproject.toml、package.json、go.mod、Gemfile、Shell、Dockerfile 等),多标记视为多语言项目;检查已有配置;按类别推荐钩子并说明作用。内置钩子(repo = "builtin")离线零配置,常推荐 trailing-whitespace、end-of-file-fixer、check-yaml、check-toml、check-json、check-merge-conflict、detect-private-key、check-added-large-files 等。语言钩子通过社区仓库或 local 配置,如 Rust 的 cargo fmt/clippy、Python 的 ruff、TS/JS 的 eslint/prettier、Go 的 gofmt/go vet、Shell 的 shellcheck。

使用方式:生成或增补 prek.toml,新项目给出完整配置并加注释,已有项目只显示差异、不重复钩子。写完后执行 prek install 与 prek run --all-files 验证;未安装时提示 cargo install prek 或 brew install prek。支持阶段钩子(如把 pytest 放到 pre-push)、全局 exclude、prek 独有的 glob 模式。迁移时 prek 可原生读取 YAML,也可转为 TOML 以使用 glob、repo: builtin 等特性。

限制:不配置 CI、GitHub Actions 或其他 CI 钩子系统;不管理 husky、lint-staged 或 Python pre-commit 配置;未经确认不删除已有钩子;不直接修改 .pre-commit-config.yaml,只生成 prek.toml。首次运行可能因自动修复钩子重排文件而失败;rev 固定版本会过期,建议定期更新;prek install 需要 .git/hooks/ 写权限,共享钩子的 worktree 中会失败。