拓展阅读

用工程环境提高交付质量

让知识可发现,让关键约束和结果可验证。

推荐阅读 11 / 12本地中文导读

对应资料:Harness Engineering [S065]

沿着对象与状态理解本章

先写出要守住的行为,再用会失败的反例证明确实需要修改。测试通过必须绑定被测代码版本;之后再改文件,旧绿色结果不再证明当前交付。

下方图解的固定输入在“输入与适用条件”中声明。它用于解释本章机制,不与本章其他独立例子的数值暗中接续。

动态图解 · F34

测试是找反例,不是给代码盖绿章

为什么“测试都通过”仍可能交付错东西?

测试只能验证它实际检查的行为和版本。一条只断言“不报错”的测试无法证明排除规则正确。好的测试围绕需求构造能击中错误的输入;代码修改以后,旧绿色结果也不再自动属于新版本。

反例能让错误实现暴露问题的具体输入。
回归修改破坏了本来成立的行为。
交付证据当前版本对应的检查命令、结果与范围。

输入与适用条件:构造的文件筛选任务;通配符语义须由需求明确,不在动画里偷偷改变“匹配文件名”与“匹配完整路径”的规则。

1 / 6 · 明确需求

第1步,共6步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

测试是找反例,不是给代码盖绿章:明确需求明确需求排除*.tmp,但保留其余文件构造小反例a.py、b.tmp、nested/c.tmp先看原始失败确认旧代码确实没有正确排除实施最小修改修复匹配语义,不改无关API测试针对行为检查保留、排除、嵌套和空规则绑定版本交付绿色结果属于当前代码,而非旧文件教学流程;高亮表示当前步骤,不表示真实耗时比例。

不先说匹配对象与目录语义,无法判断哪个输出才正确。

本步状态由图形与说明共同给出。

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

为什么需要

减少返工和虚假完成,而非让审查循环无限增长。

怎样实现

围绕可观察行为、反例和当前版本组织验证。

可能的代价与误解

测试与实现共用同一错误假设、只测顺利路径、频繁审查无实际修复。

如何判断是否做对

故意引入一处已知错误,测试应失败;恢复后再通过。

让代码环境成为可靠的信息与反馈系统

本篇对应Harness Engineering。模型能力之外,仓库知识是否可发现、工具是否清晰、测试是否能运行,都会影响最终交付。官方文章提供特定团队经验,不是通用效率承诺。[S065]

原创对照:项目A只有一句“严格遵守规范”;项目B提供模块入口、路径约定、可运行测试与重要边界。后者给出可操作证据,而不是要求模型凭空理解。

把规则放在合适位置

全局入口提供地图,模块文档提供局部事实,Skill提供专业方法,测试和静态检查落实稳定约束。相同规则复制在多处会产生冲突,需要明确权威来源。[S122][S139]

不是所有规则都应写成强制检查。约束稳定且违反后果严重时适合自动化;需要情境判断时保留原则与证据,避免把复杂问题硬编码为脆弱规则。

从失败模式决定流程

简单Bug有明确复现与局部补丁时,可以快速修改验证。跨模块约定不清时,需要调查;高风险变更需要更强独立检查。固定Analysis→Task→Review并非对所有任务都最优。

代码审查应提高健康度,不因非关键不完美无限阻塞。小且明确的问题可以直接修复再验证,重要设计分歧再回到决策。[S136][S137]

长任务交接必须可恢复

交接保留目标、当前代码、已完成内容、验证与待办。文字说“功能完成”不足够,必须知道对应版本。任务恢复也不能盲目重复外部动作。[S130][S142]

原创例子:补丁已应用、测试未运行。新会话应先确认文件,再运行验证;不能重新应用补丁后声称重复执行就是更安全。

工程机制也要接受回归测试

Prompt、工具、上下文裁剪和模型配置都可能改变质量。官方产品复盘表明Harness调整也会造成回退,因此长任务、压缩、恢复和边界任务需要覆盖。[S141]

完成本篇后,应该能对每项规则回答:防什么错误、有没有证据、执行成本多少、模型或环境变化后是否仍需要。

继续深入:第6章 · 真实编码Agent 或阅读拓展阅读目录6.3的逐项讲义。所有链接均为本地内容。

运行示例 · G11

把“支持exclude”变成可以验收的输入输出表

输入与条件。需求:exclude=["a"]时不构建a及其子目录,但ab仍参与;空exclude不改变原行为。

步骤与对象内部动作中间结果 / 新状态
1正常路径输入a、a/x预期均排除。
2相邻反例输入ab/x预期保留,区分目录边界与字符串前缀。
3空集合exclude=[]所有原候选仍按原规则处理。
4异常条件路径是否规范化、大小写是否敏感先查实际平台要求,不能凭空追加跨平台承诺。
5验收对当前补丁运行这组行为测试通过后再看是否有真实集成风险。

把过程连起来。验收不是“代码能运行”,而是覆盖能区分正确实现与常见错误实现的输入。

边界与反例。示例需求仅含声明条件;生产项目还需按真实目录、构建系统与用户约束补充。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。