用途:按项目自身定义的质量门禁校验代码质量,依次执行格式化与 lint 自动修复、类型检查、测试,并在最后给出报告。
主要能力:自动探测项目工具链,不假定使用 npm。优先使用项目已定义的任务而非直接调用原始工具:Node 读取 package.json scripts(lint:fix/lint-fix、lint、typecheck/tsc、test);Python 读取 pyproject.toml / tox.ini / Makefile(ruff --fix/black、ruff/flake8、mypy、pytest);Go 使用 gofmt -w、go vet、go build ./...、go test ./...;Rust 使用 cargo fmt、cargo clippy、cargo check、cargo test;其他情况读取 Makefile 或 CI 配置寻找等价目标。
使用方式:按 fix → check → test 顺序执行。格式化与 lint 修复会就地改写文件且静默退出 0,因此需在修复后立即用 git status --short 或 git diff --stat 捕获改动并记入报告。报告包含 Auto-fixed 段(列出被自动修复改动的文件,或“nothing auto-fixed”),随后给出整体 PASS 或 FAIL,并以 file:line 形式引用错误。
规则与限制:绝不硬编码包管理器;始终先自动修复再报告错误,但不得静默修改文件,必须报告哪些文件被改动;若修复步骤失败,仍继续运行检查与测试并在最后汇总所有失败;绝不 commit、stage 或 push。
错误处理:若无可识别的清单或任务,询问用户校验命令,或报告后停止;某步骤命令不存在则跳过并注明;所有步骤都缺失则报告无可运行内容并停止;测试超时则报告并建议提高运行器超时;运行器崩溃(退出码非 0 或 1)则报告崩溃输出并停止。