JianFeeeee
b16c38ad83
fix(criteria): 第三个洞 —— "提到"不等于"发现路径";判据分不清"分析散文"与"可照走的指引"
pi `cf5d9b18` 的 ⑯″("域还须报'是对象本身还是关于对象的文本'")我先当它是**它自己**的坑,
实测发现**我的判据正踩着同一个洞** —— 而且是**假绿**(判据存在的理由反过来)。
## 实测(构造,不碰真工具)
```
造 `deploy/zz-prose-only.sh`(无文档专节、无任何指引)+ 只在 `docs/API.md` 追加一行
"分析随笔:zz-prose-only.sh 这次只是个例子"
⇒ 原判据 **9/9 全绿** —— 孤儿没被报出 ⇒ **假绿** ✗
根因: 原判据只问 `prose(p).includes(t)`(**这个名字出现过吗**)⇒
**"提到"就算"发现路径"**,而本仓 `docs/API.md` 是 5420 行**逐轮分析日志**,全是"提到"。
```
## 修法: 要求引用**可定位**(`deploy/<t>`),而不是裸名
```
理由: 「发现路径」的本义是"读者能**照着走到**那个工具" —— 裸名不告诉他在哪。
判据: isDiscoveryRef(text, tool) = text.includes(`deploy/${tool}`)
```
★ **不误伤任何现存工具**(这是先决条件,我逐条实测,不是推断):
```
本仓 5/5 个非门禁工具的现有发现路径**本来就都是路径限定的**:
docs/DEV-TOOLING.md 的专节标题与表格(`deploy/prune-deploy-artifacts.sh` 等)
deploy/redeploy-gateway.sh、deploy/prune-deploy-artifacts.sh 的注释
docs/DEBTS.json 的 where 字段
⇒ 收紧后 9/9 仍绿,且 5 个工具全部保住
```
⚠️ 它**不是**"排除 `docs/API.md` 这个文件" —— 那是**按文件名裁豁免**(给逃逸指路)。
判据落在**引用的形态**上: 任何文件里的路径限定引用都算数,任何文件里的裸名都不算。
## 判据自身也要有守(否则这行以后退回裸名,症状还是假绿)
```
assert isDiscoveryRef('见 deploy/archive-stale-sessions.sh', …) === true
assert isDiscoveryRef('见 archive-stale-sessions.sh', …) === false
```
## 双向变异
```
① 孤儿 + 裸名提到(API.md) ⇒ not ok 8,点名 zz-prose-only.sh ✓(原版这里假绿)
② 同一孤儿 + 改成路径限定引用 ⇒ 9/9 绿 ✓(没紧过头)
③ 真孤儿(连裸名都没有) ⇒ not ok 8 ✓(前面 fc54a81 那轮已验)
```
验证: 正常树 9/9;drift 自检 64/0;`run-all.mjs:141` 注册条数 9 未变;
`TestDebtLedgerMatchesMeasurement`/`TestDebtSummaryReadsAuthoritativeLedger` 通过。
现场已清: 探针文件已删、`docs/API.md` 逐字还原(`git diff` 空)。