提交门控
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a3e29d98/harness-commit-gate-a3e29d98。
技能介绍
问题在哪
本地 git commit 往往只扫一眼 diff 就提交:残留 console.log、误把 API key 打进仓库、改动超出当前任务范围,或者测试其实在红着。CI 发现问题时,提交早已进历史,回滚和排查成本都更高。
技能如何工作
Commit Gate 把「可以提交」当成校验通过的信号,在每次 commit 前跑一套轻量质量门,而不是替你做 code review。
- Diff 审查:用
git diff --staged看暂存区,查调试代码、敏感信息(密钥/令牌)、scope creep、误提交二进制等。 - 按项目探测再验证:不硬编码命令——先看
package.jsonscripts、Makefile/Justfile、Cargo.toml,再选bun test/npm test/vitest/cargo test、build、tsc --noEmit、lint 等。 - 提交说明:按仓库习惯生成 message(如 Conventional Commits),英文祈使句,主题行 ≤72 字符,说明「为什么改」而不只是「fix bug」。
测试、构建或类型检查失败时必须阻断 commit;默认只本地提交,除非你明确说「提交并推送」。
边界与注意
- 若 verification-loop 已跑完全部检查,不要重复执行,直接走提交。
- 无 staged 文件、纯调研无代码变更:不触发门检。
- 仅文档(
.md等)或用户说「不要跑测试」:可做 diff + commit,跳过自动化验证。 - 项目本身有历史失败时,应区分「本次改动引入的新失败」与既有问题;只有前者应阻断。
- 与 harness-verification-loop 等上游技能衔接:验证完成后再交给 Commit Gate 做最后一道门。
使用场景
- 改完代码并说「提交代码」时,对 `git diff --staged` 做审查并按 `package.json`/Makefile 探测结果跑 test 或 build,失败则中止 commit。
- verification-loop 已跑完全部检查,需要生成 ≤72 字符的提交说明并完成本地 commit,且不再重复执行同一套自动化验证。
- 修复问题后说「修复,提交代码」,在 diff 中发现 API key、token 或残留 `console.log` 时必须阻断,直到清理并通过检查。
- 用户说「提交并推送」时,在门检通过后执行 `git commit`;若仅说 commit 或未提及 push,则只做本地提交不推送。
适合人员
- 日常在 Bun/npm 仓库里频繁本地提交、希望 commit 前自动对齐项目 test/build 脚本的全栈工程师
- 采用 harness verification-loop 工作流、验证结束后需要标准化提交说明与原子 commit 的 AI 结对编程使用者
- 维护 Rust(`Cargo.toml`)或 Makefile/Justfile 项目、commit 前依赖 `cargo test` / `make test` 的仓库贡献者
- 对密钥泄漏敏感、需要在每次提交前扫描 staged 变更中 ENV/TOKEN 模式的仓库维护者或安全审查者