SuperAPI AI 工具集

precommit

通用与其它

查看项目

更新于 10-16 09:52

技能介绍

用途:这是一个“完整版”提交前检查(precommit)技能,关键词为 precommit、pre-commit、lint and test、quality gate。目标是按 lint:fix → build → test 的顺序执行质量门禁。不适用的场景:不做 build 的快速检查应改用 /precommit-fast;不含 lint:fix 的验证循环应改用 /verify;仅运行测试则直接运行测试即可。

工作流步骤及性质:comment_blocks(拒绝过长注释块,只读,可跳过,属策略步骤,可致失败但不计入“验证已运行”)、lint-fix(自动修复代码风格,读写,可跳过)、build(验证编译成功,只读,可跳过)、test-unit(运行完整测试套件,只读,可跳过)。失败行为为 continue-all:跑完全部步骤并报告所有结果。

使用方式:先用 Glob 检查项目根目录是否存在 .claude/scripts/precommit-runner.js。存在则运行 node .claude/scripts/precommit-runner.js --mode full --tail 80。若输出“## Overall: ✅ PASS”则直接采用;若输出“⚠️ NO CHECKS RUN”,不视为通过,须进入回退流程执行项目真实检查;若为“❌ FAIL”则按真实失败处理,不得静默回退。脚本不存在时尝试自动安装,然后回退到按生态手动检测。回退时按清单识别生态:package.json 对应 Node.js,pyproject.toml 对应 Python,Cargo.toml 对应 Rust,go.mod 对应 Go,build.gradle(.kts) 对应 Java Gradle,pom.xml 对应 Java Maven,Gemfile 对应 Ruby,各生态各有 lint-fix、build、test 命令;Node.js 按锁文件自动判断包管理器。lint:fix 后可运行 git diff --name-only 记录自动修复的文件。结论明确的回退运行后可用 review-state.js note precommit pass 或 fail 记录结果;不可执行的运行不记录。

输出格式:列出 lint:fix、build、test 各步骤状态(✅/❌/⏭️/⛔,⏭️ 为仓库主动跳过,⛔ 为必需工具不可用并阻止 PASS),随后列出变更文件、Overall 结论与检查清单。

限制:缺少必需工具(如 ruff、pytest、cargo、go、golangci-lint、mvn、bundle、Gradle wrapper)会将步骤标为不可用并阻止 ✅ PASS;探测有超时(PRECOMMIT_PROBE_TIMEOUT_MS,默认 120s),超时记为不可用。策略步骤失败记为 ❌ FAIL,绝不会是 ⚠️ NO CHECKS RUN。其余未在资料中说明的细节暂未提供。