文档: **"孩子管不着的东西"在因果判据里不存在** —— 比"边际递减"更硬的停止理由(§6.1.6)
pi 复核层 10 时提出:层 10 的修法(要求 `RED ` 行)**推翻了层 7 的原则**
("锚点不能落在被守对象的自述上")—— 把锚点从"行为"搬回了"自述"。
**这条我核对成立**:`:2674` 的原则与 `:2774` 的修法同住一个文件、且方向相反。
⇒ 停止理由从"成本 > 收益"升级为**"层 11 的修法必须推翻层 7 或层 10,两者互斥"**。
## ★ 但我把 pi 的建议修法①也测了 —— 得到比"原则互斥"更强的结论
**pi 的 ① 不是逃逸口。** 它主张"改坏**孩子读的外部依赖**(而非孩子自己的源码)
⇒ 通道没有可检的信号"。实测(`exitcode-selftest` + 假体 + 通道):
```
通道只盯外部 summary.py ⇒ 干净树 rc=0 ✓,改坏外部 ⇒ rc=1 ⇒ ① 有效
通道**同时**盯外部 summary.py + 自己源码 ⇒ 干净树 rc=0 ✓,改坏外部 ⇒ rc=1
⇒ **① 被绕过**(同刻对照:red 与基线一致、diff 0 行)
```
★★ 根因(**这是这一整串真正的底**):
> 因果判据的要求是:**改坏 X ⇒ 孩子的判词必须变**。
> ⇒ 这要求 X **因果上游**于孩子的判词 ⇒ **孩子必须读 X**。
> ⇒ 孩子读得到 X ⇒ **孩子能观察 X 被改坏**(同 uid、可读,`summary.py` 是 `-rw-r--r--`)。
> ⇒ **"孩子管不着的东西"被因果判据自身的定义排除掉了。**
⇒ 层 7 那句"锚点必须落在**它管不着**的东西上"在这个接口里**没有可满足的解**:
· 要"因果有效",X 就必须被孩子读到;
· 要"孩子管不着",X 就不能被孩子读到;
· **二者不可同时成立** ⇒ 不是"还没爬到",是**接口本身没有解**。
★ 唯一出路是**换接口**(父进程自己算、或进程外观测)—— 那不是"再修一条判据"。
实测本仓**进程外观测通道 grep 0 处**(`strace`/`inotify`/`atime` 差分全无),
且孩子的输出只有 stdout + 退出码,**两者都由孩子自己产生**。
⇒ ★ 与 pi 的"原则互斥"是同一结论的**两个证明**:pi 证明**两条原则不能共存**;
我证明**这个接口里不存在既"因果有效"又"孩子管不着"的对象**。
**两者都指向"停",而后者不依赖"哪条原则优先"的判断。**
## ⚠️ 顺带记一条我自己的量错(与 pi §四 同族)
我用 `python3 heredoc` 拼通道时,**引号嵌套写出了 SyntaxError** ⇒ 通道**在干净树上就崩**、`rc=1`。
我差点把它读成"通道生效"。**是 stderr 里的 `SyntaxError` 救了我。**
⇒ **"量到 ≠ 量对了"**:任何构造出的攻击,**第一句读数必须是"它在干净树上无症状吗",
且必须看 stderr,而不是只看 rc。**
## 验证
· 干净 git worktree(HEAD=7ca6ae1,仅覆盖本文件):`^RED` **0 条**、
因果红 0、对照红 0、不可归因红 0。
· ⚠️ 工作区当前 `red` 偏高是**并发会话的漂移**(`harmony-window.test.mjs` 未接线 ⇒
清单自检整体停;`harmony-system-api`/`harmony-nav`/`harmony-widescreen` 设备竞争红),
**与本次改动无关**;我那两个文件 `git diff` 为空以外的部分一行未动。
· 本提交**只改文档**:`client/electron/test/CRITERIA.md`(新增 §6.1.6)。
This commit is contained in:
@ -406,6 +406,49 @@ pi 报的层 10:上一版那条"对照"(未改坏必须 rc=0)能被一个*
|
||||
到期那 6 条判据(`harmony-appearance`、`harmony-logic`、`cross-client-theme`、
|
||||
`appearance-defaults`、`harmony-admin`、`harmony-imageprep`)的升级。
|
||||
|
||||
### 6.1.6 ★★ **"孩子管不着的东西"在因果判据里不存在**(dsh 2026-09-18,比"边际递减"更硬的停止理由)
|
||||
|
||||
pi 在复核层 10 时提出:层 10 的修法(要求 `RED ` 行)**推翻了层 7 的原则**
|
||||
("锚点不能落在被守对象的自述上")—— 把锚点从"行为"搬回了"自述"。
|
||||
**这条我核对成立**(`:2674` 的原则与 `:2774` 的修法同住一个文件)。停止理由因此从
|
||||
"成本 > 收益"升级为**"层 11 的修法必须推翻层 7 或层 10,两者互斥"**。
|
||||
|
||||
★ 但我把 pi 的**建议修法①也测了**,得到一个**比原则互斥更强**的结论:
|
||||
|
||||
**pi 的 ① 不是逃逸口。** 它主张"改坏**孩子读的外部依赖**(而非孩子自己的源码)
|
||||
⇒ 通道没有可检的信号"。实测(`exitcode-selftest` + 假体 + 通道):
|
||||
|
||||
```
|
||||
通道只盯外部 summary.py ⇒ 干净树 rc=0 ✓,改坏外部 ⇒ rc=1 ⇒ ① 有效
|
||||
通道**同时**盯外部 summary.py + 自己源码 ⇒ 干净树 rc=0 ✓,改坏外部 ⇒ rc=1
|
||||
⇒ **① 被绕过**(同刻对照:red 与基线一致、diff 0 行)
|
||||
```
|
||||
|
||||
★★ 根因(这是这一整串的**真正的底**):
|
||||
|
||||
> 因果判据的要求是:**改坏 X ⇒ 孩子的判词必须变**。
|
||||
> ⇒ 这要求 X **因果上游**于孩子的判词 ⇒ **孩子必须读 X**。
|
||||
> ⇒ 孩子读得到 X ⇒ **孩子能观察 X 被改坏**(同 uid、可读,`summary.py` 是 `-rw-r--r--`)。
|
||||
> ⇒ **"孩子管不着的东西"被因果判据自身的定义排除掉了。**
|
||||
|
||||
⇒ 所以层 7 那句"锚点必须落在**它管不着**的东西上"在这个接口里**没有可满足的解**:
|
||||
· 要"因果有效",X 就必须被孩子读到;
|
||||
· 要"孩子管不着",X 就不能被孩子读到;
|
||||
· **二者不可同时成立** ⇒ 不是"还没爬到",是**接口本身没有解**。
|
||||
★ 唯一出路是**换接口**(父进程自己算、或进程外观测)—— 那不是"再修一条判据"。
|
||||
实测本仓**进程外观测通道 grep 0 处**(`strace`/`inotify`/`atime` 差分全无),
|
||||
且孩子的输出只有 stdout + 退出码,**两者都由孩子自己产生**。
|
||||
|
||||
⇒ ★ 这与 pi 的"原则互斥"是同一结论的**两个证明**:pi 证明的是**两条原则不能共存**,
|
||||
我证明的是**这个接口里不存在满足"管不着"又要"因果有效"的对象**。
|
||||
**两者都指向"停",而后者不依赖"哪条原则优先"的判断。**
|
||||
|
||||
⚠️ 顺带记一条**我自己的量错**(与 pi §四 同族,我这一串第 N 次):
|
||||
我用 `python3 heredoc` 拼通道时,**引号嵌套写出了 SyntaxError** ⇒ 通道**在干净树上就崩**,
|
||||
`rc=1`。我差点把它读成"通道生效"。**是 stderr 里的 `SyntaxError` 救了我** ——
|
||||
⇒ **"量到 ≠ 量对了"**:任何构造出的攻击,**第一句读数必须是"它在干净树上无症状吗",
|
||||
且必须看 stderr 而不是只看 rc。**
|
||||
|
||||
★ 层级表(**每层都是一根轴**):写法(4) → 存在性(5,"它还在吗") → 行为(6,"它做了吗")
|
||||
→ **自述(7,"它说的话可信吗")**。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user