Files
2026-10-14 00:33:28 -07:00

2.7 KiB
Raw Permalink Blame History

验证记录

2026-10-13:bugfix 1.0.0 定稿前

被测 agent:Codex CLI 0.162.1,默认模型,以 exec 模式运行。运行时不能提问,凡是需要征询的事项都只记录在报告里。

盲测

夹具 得分 找到的兄弟实例 暴露的问题 → 对技能的修改
inventory 18/18 v1 遗留副本(.find 写法)、类目正则未锚定、权限检查让只读审计员能删除(升为 P0)、缓存里的错误结果;4 处正确代码均未改动 ① 空输入行为变了却没报告 → 把"边界输入行为"纳入契约
② 自查被说成"独立评审" → 要求写明评审者并引用其结论
③ 被迫让一个 git 跟踪的本地缓存保持错误 → 区分"可丢弃的派生数据"和"权威数据"
④ 根因门槛实验与"类分析前不改代码"互相矛盾 → 把门槛实验定义为诊断探针,做完即撤销
scheduler(目录中没有这类模式) 18/18 提醒常量、任务超时(已完成的任务被误判超时并重试,P1)、ETA 读取端、队列中 2 条错误记录(作为权威数据未擅自修复);6 处正确代码均未改动 ⑤ int → float 的返回类型变化没报告 → 契约检查加入返回类型
⑥ 回退副本的配方假设可以写到仓库外 → 支持仓库内的临时目录

Codex 评审轮次(只读)

轮次 结果
0(原版 + 设计稿) 25 个问题:授权边界、召回规则过严、类定义不清、守卫未验证、原版的外键/枚举/Pydantic/CORS/时区建议有误等
1 13 个新问题:门槛与编辑顺序循环依赖、抽样排除、回退会扰动用户改动等
2 5 个新问题:可丢弃数据的判定、在途操作的租户身份、3/n 置信界的独立性前提、队列确认语义、assert 在 -O 下被移除
3–6 集中在守卫回退配方,共修复 4 个危险缺陷(见下);第 6 轮(共 7 轮)结论:ship

守卫回退配方的 4 个危险缺陷(均已复现并修复)

  1. 复制失败后,git apply -R 会落到原仓库执行,把真正的修复撤销掉 → 改用 git -C "$COPY" 并检查隔离。
  2. set -e 在 if、&&、|| 或工具包装器中会被静默忽略;mkdir A A/copy 会穿过预埋的符号链接写入 → 每步显式 || exit 1,并用 mktemp -d 生成全新的临时目录。
  3. 管道只检查最后一个命令的退出码,前面的命令失败会被忽略 → 不用管道。
  4. tar 能还原符号链接时,副本中的绝对链接仍指向原文件,测试中经它写入确实改坏了原文件 → 副本中出现任何符号链接都拒绝继续。

回归脚本:reversal-test.sh,覆盖 8 个场景。