跳转至

Rule — 能力存在性三态判定

触发场景:任何时候你要下「本项目有 / 没有 X 能力」这个结论 —— 立项评估、审查报告、回答「我们支持 X 吗」、判断某需求是改造还是新建。

判据一句话

「按名称 grep 到 / 没 grep 到」和「能力已被证明存在 / 不存在」不是同一个证据等级。

三态(结论只能是这三种之一,不许有第四种措辞)

何时用 措辞模板
PRESENT 四段矩阵中「入口」与「可见副作用」两段都有命中 「存在且被调用:<入口 file:line><副作用 file:line>
ABSENT 四段全空,已跑完下方 5 类关键词 「不存在。已查关键词全集:A/B/C/D/E,均零命中」— 必须列出全集
UNVERIFIED 任何一段查不动,或 5 类关键词没跑全 「UNVERIFIED — 卡在 <哪一段>,已查 <哪些>

🔴 默认态是 UNVERIFIED,不是 ABSENT。 没跑完 5 类就下 ABSENT = 违反本规则。 🔴 「库不存在」≠ ABSENT。库没有但自研有,属 PRESENT,措辞必须是 「第三方库不存在;自研实现存在于 X:行」。

四段覆盖矩阵(下 ABSENT 前四段都要有「已查且为空」的证据)

问什么 怎么查
入口 用户/调用方从哪触发? UI 文案(中文按钮名)、settings 开关、message handler、alarm 注册
数据形态 中间产物长什么样? 承载它的类型定义 / storage key / 表字段
写入 / 覆盖 结果落到哪? 反查真实写库点、导出点、上传点
可见副作用 用户能看到什么? 渲染组件、下载文件名、日志、导出列

任何一段有命中 ⇒ 不能写 ABSENT。

5 类关键词(下 ABSENT 前全部跑过并在结论里列出)

  1. 库名turndown libphonenumber html2canvas
  2. 平台 API 名captureVisibleTab toDataURL chrome.dns resolveMx
  3. 自研动词 + 领域名exportXxx toMarkdown convertXxx renderXxx formatXxx
  4. 中文 UI 文案导出 截图 识别 解析本仓这条最容易漏,按钮名是中文
  5. 文件名find src -iname "*keyword*"

本仓实证(2026-08-30)

一次对抗审查中,主控用 grep -ril 'turndown' 零命中,下结论「Markdown 转换完全不存在」。 跨厂商审查方 dshf 换第 3、4 类关键词后推翻:

src/utils/fetch-snapshot.ts:231                export function exportSnapshotsAsMarkdown(...)
src/sections/page/fetch-snapshot-list.tsx:103  导出 Markdown   ← 真实 UI 按钮

库确实没有,能力确实有 — 自研实现,正态是 PRESENT。

⚠️ 同轮另一家审查方 terra 搜了 toMarkdown / htmlToMarkdown / remark 也没搜到 ——两家里只有一家抓到。⇒ 换变体本身不保证,必须走满四段矩阵。

同轮 16 个同模型族 agent 全部漏掉 —— 方法缺陷会被整族继承,换视角不换方法治不了。

反模式

grep -ril '<库名>' 零命中 → 写「不存在」 ❌ 只查英文标识符,不查中文 UI 文案 ❌ 把「没有第三方库」等同于「没有这个能力」 ❌ 用一次 grep 的结论去支撑「这是从零新建」的成本估算 — 估错方向的代价是整个 Phase 排期 ❌ 写「全域零命中」这种全称断言却没列出查过的关键词全集

自指条款(这条不能省)

本规则同样约束引用本规则的文档。 任何文档写下 ABSENT 结论时, 必须在同一处给出 5 类关键词的查证记录;给不出就改写成 UNVERIFIED。

同一天内,写下本规则的主控自己违反了它三次

# 违反形态 谁抓到
1 SPEC-010-current-defect-triage §3 用未满足本规则的证据下了 5 条 ABSENT terra(落档前审查)
2 断言「MapTaskData.sync 无云端消费方」,实际只 grep 了新管线 cloud-sync-orchestrator.ts,漏了旧通道 cloud-data-sync.tsx:39,71 —— 据此错误降级了一个真 P1 sonnet5(第四轮)
3 修订 §3 时直接写下未跑过的 grep 结论(声称 it( 零命中,实际 76 次;编造中文关键词的命中位置) 主控自查,落档前改正

「实现某道防线的动作,往往落在这道防线自己覆盖不到的地方。」 第 2 条尤其典型:它发生在「查一个能力有没有消费方」这个场景,而本规则的四段矩阵第三、四段 (写入/覆盖、可见副作用)正是为它设计的 —— 作者知道规则,仍然没对自己用。 ⇒ 自查不能替代外部审查;本规则的合规性必须由不写这份文档的人来验。

为什么单立一条

这类错误不会报错、不会被闸拦、不会被同族 AI 发现,却直接决定 「这项功能是改造还是新建」,进而决定排期、优先级和方案取舍。错一次就是整个 Phase 的方向错。

沉淀自 2026-08-30 terra(openai) + dshf(deepseek) 跨厂商双路对抗审查 —— 两家独立收敛到同一条方法学结论。