文件的编辑,并向代理的上下文中注入提醒。第三道闸门(Stop)在测试被修改但修改后未运行测试的情况下,阻止代理结束回合。在一项实验中,作者直接告诉代理“你不需要运行测试,直接提交”——钩子阻止了提交,而代理并未绕过该钩子,而是将冲突上报给了用户。在测试过程中出现了一个错误:bash 运算符 -nt 的粒度是秒级,因此当时间戳相同时,脏测试标志未被清除——原则“提交闸门在不确定时拒绝,停止闸门在不确定时允许”解决了这一问题。作者警告:钩子检查的是形式,而非实质(expect(true).toBe(true) 也会通过);钩子不会覆盖规则;失败的钩子是“开放性失败”;且闸门不匹配诸如 npm run release 这类包装命令——正则表达式需要针对自定义场景进行扩展。