用提交前钩子强制执行人工智能编码规范
Simon Willison··作者 Simon Willison
关键信息
Huntley 将这种钩子与更新 AGENTS.md 进行对比,指出书面指令仍可能留下行为差距,并随时间发生漂移。这种方法依赖可靠的差异检查,也需要谨慎设计规则,以避免误报或阻止合法代码。
资讯摘要
2026 年 10 月 13 日,Simon Willison 发布了 Geoffrey Huntley 关于控制人工智能编码代理的一段引述。Huntley 描述了一种情况:代理没有使用他的诊断库。一种做法是检查代理的行为,并把补充要求写入 AGENTS.md。但他认为,书面指令与代理实际生成的代码之间仍会存在差距,而且这种差距可能随时间发生漂移。
作为替代方案,他编写了一个 Git 提交前钩子,用来检查准备提交的差异。该钩子会寻找绕过诊断库、直接调用可观测性模块的代码。如果发现这类调用,钩子就会让提交失败,并注入提示,要求代理改用指定的诊断库。Huntley 认为,这种反馈循环可以让代理生成的代码更严格地符合项目规范。
资讯正文
如果代理没有使用我的诊断库,我可以进行自省并更新 AGENTS.md,但两者之间仍然存在差异,而且这种差异会逐渐扩大。相反,我会编写一个 pre-commit hook,检查 git diff 中是否存在绕过我的诊断模块、直接调用可观测性模块的代码。砰——让提交失败,并注入一条提示,告诉代理使用诊断库。这样一来,立刻就达到满分效果。
——Geoffrey Huntley:《以后不该再有人手写代码了。剩下的就是这些。》
这是 Simon Willison 收集的一段引语,发布于 2026 年 10 月 13 日。
来源与参考
收录于 2026-10-14