用途:为 Python 项目配置 git pre-commit 钩子,在提交前自动执行代码质量检查,并可将检查扩展到 Claude Code 的 Stop 钩子,在返回用户前运行完整 lint 套件。
主要能力:使用 pre-commit 框架管理钩子;集成 ruff(含自动修复与格式化)、mypy、basedpyright;支持将已有手动钩子迁移到 pre-commit;支持增量检查(默认只检查暂存文件);可配置 Claude Code Stop 钩子 lint 门禁,自动修复琐碎问题,遇到无法修复的错误时阻止 Claude 停止并要求继续修复;包含循环防护与工具缺失时的优雅跳过。
必要用法:在 dev 依赖组加入 pre-commit、ruff、mypy、basedpyright;创建 .pre-commit-config.yaml 并配置对应仓库与本地钩子;执行 uv pip install pre-commit 与 pre-commit install;用 pre-commit run --all-files 验证。Stop 钩子需将 lint-gate.py 软链接到 ~/.claude/hooks/,并在 ~/.claude/settings.json 中配置 Stop 命令 python3 ~/.claude/hooks/lint-gate.py。
适用场景:新项目初始化、从手动钩子迁移、从 PostToolUse 钩子迁移到 Stop 钩子、大型代码库或 monorepo 的性能优化。
限制:需先运行 py-quality-setup 配置工具权限;mypy/basedpyright 等类型错误无法自动修复,需人工或 Claude 处理;紧急情况可用 git commit --no-verify 绕过;钩子过慢时可考虑仅在 CI 运行类型检查。