SuperAPI AI 工具集

paired-probe

测试与质量

查看项目

更新于 10-16 05:31

技能介绍

用途

paired-probe 用于检验“检查本身是否有效”。一个检查如果在故障存在和不存在的两种情况下输出相同内容,那它实际上没有测量任何东西,但它仍会返回一个看起来像证据的答案,并可能被据此采取行动。本技能让这种“盲检”以显式失败的方式暴露出来,而不是静默地给出错误结论。

适用时机

在报告以下任何结论之前,因为这些都是判定性结论:

  • “没有发现问题”“全部干净”“无失败”“可以安全删除”
  • 覆盖 N 个条目的扫描、审计或状态汇总
  • 刚刚变绿的安全或 CI 门禁
  • 任何你预期会失败、结果却通过的检查

尤其是在结果出乎意料地通过时,应立刻使用。意外通过是成本最低的信号,说明发生变化的是测量工具,而不是客观世界。

三道门

门 问题 它能捕获的失败
Differential(差分) 故障不存在时它输出什么? 两种情况输出完全相同的探测
Non-empty(非空) 它实际检查了多少个条目? 测量了零个却报告为干净的扫描
Exit-aware(退出感知) 探测本身是否运行了? 错误被吞掉、却打印出成功

“无法观测(could-not-observe)”是第三种结果,绝不并入任何一种判定。

使用方式

差分模式:先制造故障,再移除故障,两个分支的输出必须不同。

scripts/paired-probe.sh --name "retired model pin fails the gate" \
  --present "printf 'model: claude-opus-4\n' > wf.yml && bash tests/ci/lint.sh" \
  --absent  "rm -f wf.yml && bash tests/ci/lint.sh"

单次模式,当故障无法被制造时(例如实时扫描):

scripts/paired-probe.sh --name "worktrees examined" \
  --measure "git worktree list --porcelain | awk '/^worktree /{print \$2}'" \
  --min-count 1

退出码:0 表示具备区分能力或满足计数,1 表示 BLIND(盲检),2 表示用法错误,3 表示无法观测。

为什么需要它

来自单次会话(2026-08-21)的四个探测示例,每一个都自信地给出错误结果,且没有一个显式失败。其中三个是由其他人而非检查本身发现的:

探测 它问了什么 它为何说谎
“这个分支推送了吗?” 本地引用缓存 未拉取和从未推送会输出相同内容
“分支在 origin 上吗?” 远程分支列表 squash 合并会删除头分支,已落地的工作会被读成丢失
“这个工作树持有独特的工作吗?” diff main HEAD 对称比较,导致一个过时树会把 main 与自身对比标红
“有工作树面临风险吗?” 对某个被阻塞的临时文件做循环 写入失败,`

以上每一个都会在几秒内被第 1 或第 2 道门拦下。

可推广的规则

在信任一个工具的沉默之前,先问:这个工具在结构上无法观测到什么?工具报告的是它所查询的通道,而非现实本身:是本地缓存而非远程,是整个文件而非 frontmatter,是代理而非源头。当答案是零或空集时,正是应当检查该通道的时刻,因为零也是损坏的工具会返回的结果。

相关技能

  • ork:verify 评价已完成的工作;本技能评价检查本身。
  • ork:quality-gates 用于在确认存在真实缺陷后进行升级处置。