用途:为项目配置三层 pre-commit 质量体系,在每次提交前强制执行 lint、类型检查与测试。适用于新项目初始化、为现有项目添加钩子、从基础 lint 升级为完整质量体系、搭建带逐组件检查的 monorepo/插件架构,以及更新钩子版本。不适用情况:钩子已配置且运行良好、项目未使用 git、团队出于流程原因明确不用 pre-commit 钩子。
三层结构:第一层标准钩子,快速全局检查(约 50-200ms),对每个暂存文件做 lint 和类型检查;第二层组件级检查,对暂存文件涉及的组件执行 lint、typecheck 和测试(约 10-30s);第三层验证钩子,做项目特定的结构与模式检查。分层在保持快速反馈的同时捕获项目特有缺陷。
主要能力:通过模块化配置(standard-hooks、component-level-hooks、validation-hooks、ci-integration、troubleshooting)按需加载;支持 Python、Rust、TypeScript 的标准钩子模式;提供 mypy 严格类型检查与 pytest 配置示例;提供 CI 集成与完整 .pre-commit-config.yaml 示例;hooks 固定执行顺序为文件校验、安全扫描(bandit)、全局 lint(ruff)、全局类型检查(mypy)、组件 lint、组件类型检查、组件测试、自定义验证。
使用方式:创建 .pre-commit-config.yaml,可使用命令 python3 plugins/attune/scripts/attune_init.py --lang python --name my-project --path .;在 pyproject.toml 中配置 mypy 与 pytest;安装并测试钩子:uv sync --extra dev、uv run pre-commit install、uv run pre-commit run --all-files;此后 git add 与 git commit 会自动触发钩子。
限制与注意:新项目建议从一开始使用严格设置;现有项目采用渐进式策略,先第一层再第二层;仅在真正紧急时使用 --no-verify 并记录原因,项目文档中不应出现 --no-verify 绕过。具体平台支持、性能数据与收费信息暂未提供。