commitpreflight 是一款针对 AI 编程智能体所写提交信息的预检 lint 工具。它的定位是在智能体调用 git commit 之前,先检查提交信息是否合规,从而避免因钩子拒绝而浪费一轮对话去重写。
用途 当 AI 编程智能体生成提交信息并执行 git commit 时,可能被钩子拒绝,导致智能体需要额外一轮来修正。commitpreflight 在提交发生前捕获这类问题,并给出具体的修复建议,而不是仅仅报出错误。
规则来源 该工具的规则集并非基于风格偏好,而是由真实失败数据驱动:一个自主编程智能体集群在 7 天内记录了 10,976 次 CLI 失败,其中约五分之一是格式错误的提交信息,这是该语料中最大的一类智能体 CLI 失败。
一个关键细节是超限的形态:81% 的超限只差 10 个字符或更少。智能体并不会在主题行里写长篇大论,而只是略微超出限制。因此合适的干预是在最后一个词边界处裁剪,这也是 commitpreflight 所建议的做法;当超限过大、裁剪等同于重写时,它则不会给出裁剪建议。
使用方式
- 作为 GitHub Action:在 CI 中对拉取请求里的每条提交信息进行 lint。
- 与 pre-commit 配合使用。
- 作为 git 钩子使用。
- 从智能体调用:--json 会输出机器可读的列表,智能体无需解析自然语言即可据此行动。
- 直接调用。
- 可选配置:在 pyproject.toml 中进行设置。
退出码与严格模式 当出现任何 error 级别的发现时,退出码为 1,否则为 0。使用 --strict 可让 warning 也变为阻断性错误。
适用场景 适用于使用 AI 编程智能体自动生成提交信息的开发流程,尤其是需要在 CI、pre-commit 或 git 钩子阶段对提交信息进行预检的场景,也适用于智能体需要以机器可读方式获取修复建议的自动化流程。
限制与收费 资料未提供关于平台兼容性、具体规则列表、安装命令细节、性能表现或效果保证的更多信息。资料提到,若需在规模化场景下跨 AI 智能体集群运行 commitpreflight,可选用团队订阅,价格为每月 100 美元。