Skip to content

docs: record the D5 C6 close-out - #117

Merged
StackOverFlow11 merged 1 commit into
mainfrom
docs/progress-c6
Jul 31, 2026
Merged

docs: record the D5 C6 close-out#117
StackOverFlow11 merged 1 commit into
mainfrom
docs/progress-c6

Conversation

@StackOverFlow11

Copy link
Copy Markdown
Owner

进度文档 PR,对应 #115(C6 改造)#116(C6 删除)。docs-only。

记录的重点

决策③「杀第二条因子取数路径」收尾:11 个旧 runner 归零,三个重生成工具退役为 verify-only,D1 基线 frozen-forever。

但值得带走的不是删除本身,是三件被测量而非被断言的事:

  1. 接线是真的 —— 裸路径 / 内联路径绕过网关 / 保留调用但吞掉异常,三种绕过各有一条测试打红。第三种正是记录侧改用行为测试而非 AST 的理由:AST 只能证明那行代码在
  2. 一份 manifest 的射程经两轮才写准 —— 先写宽(承诺能抓一个在当前 pin 状态上已不可能再发生的 case),再写窄(漏了一个既非计数也非键、却一直在被比较的判定标志)。那句偏窄的措辞是 lead 转述的,实现方按测量否掉了它,理由是"照抄会把同一个缺陷装进 fix 里"。而那条"承认限制"的测试被刻意做成会在检查被加强时变红 ⇒ 声明不可能再次比代码宽。
  3. 冻结目录并不是不可变的 —— 113 个文件里 7 个不被任何哈希覆盖,唯一真正无保护的那个正是已被实际覆盖过的。规则现在只说它能诚实说的话:「一个字节未写」是关于某次操作的陈述,不是关于该目录不可变的陈述。

同一个协议洞复发三次

树在评审测量期间被改动,两次。都不是被测试抓住的,都是被"与预期矛盾的观察"抓住的。 闭合它需要三方各补一条:lead 等全部条目(含追加项)交付且明确收工才派返工;评审每份报告显式声明是否收工;实现方声明停手后非经指派不得恢复工作——哪怕是自己发现的真缺陷

两次污染都没让任何一轮重来,因为定界是按**「哪次测量读了哪份文本」做的(不是 commit 时间戳——工作树先于 commit 改变),且"没动可执行代码"是用剥掉 docstring 后的 AST 相等**量出来的。

C6 in two PRs, per the owner's ruling that the conversion and the deletion
be separated and each carry its own review: #115 retired the three
regeneration tools to verify-only, #116 deleted the eleven legacy runners
and wired verification into the three sites where the C5 harness had been
reading frozen inputs unchecked. Decision (3) - kill the second factor
data path - closes here.

What is worth carrying forward is not the deletion. Three things were
established by measurement rather than by assertion:

The wiring is real. Reverting a read site to a bare path, replacing it
with an inline path that never calls the gateway, and keeping the call but
swallowing its exception are three distinct ways to bypass the check, and
each has a test that goes red. The third one is the reason the record side
uses a behaviour test rather than an AST assertion: AST can only show the
line is present.

A manifest's claim was narrowed to what it actually blocks, in two
rounds. It was first written too wide - it promised to catch a case that
can no longer occur on the pinned record, because the loss already
happened and what is pinned is the state after it. Then it was written too
narrow, missing a boolean verdict flag that is neither a count nor a key
yet is compared. The narrow wording came from the lead relaying a reviewer
phrasing; the implementer rejected it on measurement, on the grounds that
copying it would build the same defect into the fix. The test that asserts
the remaining limitation is deliberately built to go red if anyone
strengthens the check, so the declaration cannot silently become wider
than the code again.

And the frozen directory turned out not to be immutable. Seven of its 113
files are covered by no hash at all, and the one that is genuinely
unprotected is the one that was actually overwritten, in July. The rule
now states what it can honestly state: "no bytes were written" is a claim
about an operation, not about the directory.

The same protocol hole recurred three times: the tree was modified while a
reviewer was measuring it. Neither occurrence was caught by a test; both
were caught by an observation that contradicted an expectation. Closing it
took one rule on each side - the lead waits for every item including
appended ones, the reviewer states whether it has finished, and the
implementer does not resume after declaring it has stopped, not even for a
defect it found itself. Neither contamination cost a round, because the
scoping was done by which text a measurement read rather than by commit
timestamps, and because "no executable change" was measured as AST
equality after stripping docstrings.
@StackOverFlow11
StackOverFlow11 merged commit eb5bbf9 into main Jul 31, 2026
@StackOverFlow11
StackOverFlow11 deleted the docs/progress-c6 branch July 31, 2026 17:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant