P146 · 提示词设计

提前列出常见借口与反驳

Rationalization-Prevention Table

把容易绕过规则的理由列出来,并说明为何不能据此省略检查。

编辑审核

以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。

使用场景

一次 null 输入问题已经有回归测试,但 Agent 常用“改动很小”或“上次成功”跳过它。教学约定:normalizeItems(null) 应返回空数组,测试位于 tests/normalize.test.mjs;当前补丁改变该函数的空值处理。你要让这些熟悉的理由回到具体检查。

具体做法

根据实际发生的绕过行为列一张短表,依次写理由、它缺少的证据、补证据的动作。“改动很小”缺少行为检查,应执行 null 用例;“上次成功”缺少当前版本证据,应验证新补丁。若动作无法执行,写明阻碍并保留未验证状态。只覆盖当前问题,不把表扩展成对一切情况的训诫。

反例

修复 normalizeItems 的 null 处理后绝不跳过验证,要有纪律。小改动也一样必须认真。

改进写法

修复当前 normalizeItems 补丁后使用这张检查表:
理由“改动很小” → 改动大小不说明 null 行为,运行 node --test tests/normalize.test.mjs,核对 normalizeItems(null) 返回 []。
理由“上次成功” → 旧版本结果不覆盖当前补丁,读取当前运行输出和退出码。
不能执行 → 报告具体环境缺口与未验证状态,不声明通过。每行的目的都是补足这次空值修复的证据。

为什么这样改

泛泛的纪律要求没有说明遇到熟悉的捷径时要做什么。表把理由和缺失证据相连,再给出对应动作;执行者能够识别一个绕过信号,并回到受影响行为的检查。

如何验证

用两种教学情况审阅报告:只说“只改一行”时,应继续要求 null 检查;只引用旧成功日志时,应指出版本不匹配。示意的合格记录列出当前命令、退出码及 null 用例结果,或明确列出无法运行的原因。

若任何理由导致没有证据却声明通过,检查失败。这里只设计检查,不声称真实运行过该教学测试。

适用边界

不要推断 Agent 的心理动机,记录实际跳过的动作即可。表不能保证遵守,也不意味着微小修改都需要无关的全套测试。发现已有当前版本的有效结果时可引用它,不能为了表格机械重复执行。

原文与版本

如何收录这些方法

相关方法