展开本页目录
开始前准备什么
- 下载练习包,先阅读 README 中的依赖和运行范围。
- 使用独立练习目录;starter 是待完成任务,reference 是作者参考实现。
- 账号型功能须在自己的授权环境执行;本题不要求提供真实凭据。
- 准备四类输入
- 限定审查范围
- 复现被吞异常
- 检查形状缺口
- 明确返回合同
- 回归正常空结果
- 核对审查证据
1. 准备四类输入
把正常空数组、有数据、连接异常和items错误形状分开。正常空结果是业务成功,不应和外部失败混在一起。
2. 限定审查范围
在自己的授权Claude会话让silent-failure-hunter只读branches.mjs,要求报告具体catch/fallback位置与能复现的输入。
本题本地命令
node branches.mjs3. 复现被吞异常
运行作者坏实现:连接异常被catch变成[]。回读调用方所见结果,与正常空结果完全相同,说明故障已不可区分。
4. 检查形状缺口
让外部返回items:null。没有形状检查时会把null传出去;这类合同破坏也不能被描述为“没有记录”。
5. 明确返回合同
参考实现区分{ok:true,items}与{ok:false,error},先检Array.isArray。修复目标是使失败可见,而非永远显示成功。
6. 回归正常空结果
再次执行四种输入。正常[]继续成功,有数据保留原项;连接失败和错误形状都进入明确错误分支。
7. 核对审查证据
将你自己的Agent报告逐项对照实际分支表。未复现的意见保留待查;本题branch-comparison.json来自Node执行,不是Agent输出。
怎样确认已经完成
- 区分业务空结果与服务失败
- 正常空结果不误报
- 故障向调用方可见
- 已运行 Node 四类分支正负对照;官方 silent-failure-hunter 审查Agent未调用,未伪造AI审查报告。
常见问题
AI 代码审查怎么找到 catch 后假装成功的错误?
让专用审查Agent追踪catch和fallback,再用实际故障输入验证。只看返回值不抛异常,无法证明业务成功。
返回空数组到底是没数据还是接口失败?
需要明确成功/失败合同。正常空结果返回成功的items:[];连接异常、错误形状保留错误类型,不能一起兜底成空数组。
哪些功能已经实际执行?
已运行 Node 四类分支正负对照;官方 silent-failure-hunter 审查Agent未调用,未伪造AI审查报告。



