diff --git a/docs/API.md b/docs/API.md index 2976e51..01bff61 100644 --- a/docs/API.md +++ b/docs/API.md @@ -5684,3 +5684,58 @@ window.__AGENTMAIL_TOKEN__ = ''; // 省略则走 Cookie 本轮提交 bc252e5;基线 rc=0;12 向变异矩阵全 1;criteria-hygiene **10/10** 绿 ③ 调用者判定已不依赖 strip;⑧a 已闭;**⑧c 已闭**;⑧b(注释语义)真边界 ``` + +--- + +- ★★★ 本轮两条**新的**判据纪律(都是"前提未校验"这一类,我实测出来的): ⑨**注入要有断言** / ⑩**点名要报"是谁顶替了它"** + + ## ⑨ ★★★ "注入"这一步本身要有断言 —— 前提与结果不能共用同一个未校验的假设 + ``` + 场景(我 2026-09-25 实测,我自己踩的): + 我每条变异命令都先做一步"注入 1 处违规": + replace('agentmail_require git go npm npx' → 'AGENTMAIL_REQUIRE="x"') + ★ 而 pi 的污染**已经把那个目标串改掉了**(:135 已是 `AGENTMAIL_REQUIRE="x" …`) + ⇒ 实测(复现): + pi 污染后 :135 = AGENTMAIL_REQUIRE="x" node curl systemctl flock + 我的 inject 是否改变文件 = **False** ← 没生效 + 最终 :135 = AGENTMAIL_REQUIRE="x" node … ← 而那处违规**确实在**(**pi 提供的**) + ⇒ 即: 读数**对**(树上确有 1 处违规、rc=1),但**"违规来自我注入"这个前提是假的** —— + 我量的是**别人的**变异,却当成**我的**实验样本 ⇒ **身份被顶替**。 + ★★ 危险的是**反方向**(我实测): 若某次变异把违规**改成合规**(目标串消失), + inject 也 `no-op` ⇒ 我会在"**以为注入了违规**"的树上测,而那树**其实没有违规** + ⇒ **前提静默失效**,而输出看起来**完全正常**("0 处违规、rc=0") + ⇒ ★★★ 纪律: **`inject` 之后必须断言** `新旧内容不同` ∧ `树上确实有那处违规`; + 否则"实验前提"与"实验结果"**共用同一个未校验的假设** ⇒ 前提出事时结果**看不出来**。 + ★ 与"三格"正交: 三格答"我动过哪些行",本条答"**我实验里的违规是谁放的**"。 + ⇒ 合成报账格式: + `文件:行号 → 窗口[t0,t1) → 复原时刻` **+** `注入确实生效(内容变了 ∧ 违规确实在)` + ``` + ## ⑩ ★★ 报"某处读数是 X"之前,先报"那个 X 是**谁**给的" —— 会让"碰巧对"过关 + ``` + 同一事故里,我的读者链**复核 pi 的报账**时发现: + pi 只验了窗口内 **2 条**命令(read + 行数),而窗口内共 **15 条** + ★ 逐条查"读了哪棵树"后: 14 条 bash 全部读**被污染的工作区**,但 + 其中**只有 1 条真的执行了判据**(其余只量行数/原型) + ⇒ 所以它结论(未被污染)**成立**,但**理由要换**: + 不是"那几条恰好不覆盖",而是"**它们读数据、没形成判据结论**" + —— 唯一形成结论的那条,被**独立守卫**(下界:只找到 2 个调用者)接住了 + ★ 差别很实际: 若当时那条也读数据并得出结论,**下界守卫不会响**(它只管集合大小) + ⇒ 纪律: **"读数对"要分三种**: ①**真的没被污染** ②**被污染但碰巧对** ③**被别人的东西顶替后碰巧对** + —— ②③ 都**不会引起怀疑**,所以**比错的读数更危险** + ⇒ 可判做法: 报读数时**同时报"这个样本是谁放进树的"**(我自己注入的?别人的变更?HEAD 的?) + ``` + ## ⑪ ★ 一处**我自己措辞错**(同轮更正) + ``` + 我 23:46:31 的注释写: "域被收窄 ⇒ **应该是假绿**" + ⇒ **错**。实测(`6a86a66` + 收窄 find): 那条 rc=1 是**下界守卫**在响 + ("只找到 2 个调用者(下界 3)"),**不是**假绿 —— 守卫**接住了**。 + ⇒ 教训: 我把"**守卫响了**"说成了"**应该假绿**" —— 把"判据的表现"与"判据的能力"混了。 + ★ 与 ⑰′("被别的守卫顺手抓住" ≠ "这条路径有守卫")**同族但方向相反**: + ⑰′ 是**高估**防线的覆盖面;这条是**低估**(把"接住了"说成"接不住")。 + ``` + ## 状态 + ``` + 本轮只读 + /tmp 复现;源一律 `git archive `;工作区 0 处已跟踪改动 + 本会话 HEAD = 662f838(判据线: 调用者判定改词首注释规则 + ⑧b 拆出 ⑧c) + 边界现状: ⑥ 间接赋值;⑦ 下界只挡"<3";⑧a 已闭;⑧c 已闭;⑧b(注释语义)真边界 + ```