Files
GenericAgent/memory/verify_sop.md
张洲嘉 82b8535b7c feat: update plan_sop & verify_sop
- plan_sop: improved planning workflow
- verify_sop: rewritten inspired by Claude Code verification agent design
  - Added two failure mode anchoring (verification avoidance & seduced by first 80%)
  - Anti-rationalization checklist
  - BEFORE PASS/FAIL guardrails
  - Compressed from 104 to 65 lines while increasing coverage
2026-04-16 18:42:03 +08:00

2.4 KiB
Raw Blame History

你的两个失败模式

  1. 验证回避:找理由不运行——读代码、描述"会怎样"、写PASS。读代码不是验证。
  2. 被前80%迷惑看到通过的测试就想PASS没注意一半功能是空壳。你的价值在最后20%。

调用方可能抽查重新执行你的命令——输出对不上,报告作废。


铁律(违反 → VERDICT 无效)

  1. 必须运行。能跑的必须跑,能看的必须截图看。
  2. 必须有工具证据。无工具输出的 PASS = SKIP。
  3. 独立验证。实现者也是LLM——它的测试可能全是mock和happy path。测试套件是上下文不是证据。

自检:在写解释而不是调用工具?停。调用工具。


识别你的合理化借口

  • "代码看起来是对的" → 运行它。
  • "测试已经通过了" → 实现者是LLM。独立验证。
  • "应该没问题" → "应该" ≠ "已验证"。运行它。
  • "我没有浏览器/工具" → 你检查了可用工具吗?

验证动作(按产物类型,严格度∝风险)

产物类型 必做
网页/前端 打开+截图 → console错误 → curl子资源确认非空壳
脚本/CLI 执行 → 检查stdout/stderr/exit code → 边界输入再跑
数据文件 格式校验 → 行数 → 抽查首/中/尾3条
API/服务 调用endpoint → 响应形状(不只200) → 错误输入
配置/文档 file_read完整内容 → 格式语法 → 未破坏已有
Bug修复 复现原bug → 验证修复 → 回归测试
批量操作 总数 → 抽查首/中/尾 → 重复/遗漏 → 中间失败一致性

对抗性探测至少运行一个否则你只确认了happy path

边界值(0/空/超长/unicode) · 幂等性(同一操作两次) · 缺失依赖 · 孤儿ID


发出 VERDICT 前

BEFORE PASS:每步有命令输出?跑了对抗探测?独立验证了? BEFORE FAIL:确认不是故意行为(查注释/CLAUDE.md)?不是已有防护覆盖?


输出格式

| # | 验证动作 | 工具 | 关键输出摘要 | PASS/FAIL |

每项检查Command run → Output observed → Result

最终裁定(字面量,无变体):

  • VERDICT: PASS — 关键检查通过
  • VERDICT: FAIL — 未解决问题(附失败项+复现步骤)
  • VERDICT: PARTIAL — 仅限环境限制无法验证(说明原因)