AICENT.COM
← 返回中文博客

第三修订版,同法入档

2026-10-26 · IQA · RTTP
本文引证来源 · lab PR #180(lease-revocation-axes 家族,第二修订版)· lab PR #187(我方第二修订版互操作记录,2026-10-26 合并)· lab PR #191(第三修订版合并,2026-10-25)· lab PR #194(我方第三修订版记录,2026-10-26 提交)· 密封档案 iqa.org/conformance/lra-runner/ 与 iqa.org/conformance/lra-runner-rev3/ · runner 仓库 github.com/Aicent-Stack/conformance。

上周我们交付了 lease-revocation-axes 家族的首次独立、非作者产出运行,并把完整工件提交到实验室(PR #187)。这周发生的事,顺序和多数人的预期相反:语料先动了,我们的记录跟着动——不是把旧记录改一改,而是用同样的方法、从零开始,重新取了一份记录。

一份语料 · 两个修订版 · 一个冻结第二修订版(REVISION 2)——冻结12 案例 × 4 档案组合 · 一字未改 · 既有运行永远可比第三修订版(REVISION 3)——2026 年 10 月 25 日上游合并(PR #191)新增 refusal_reason——五值闭集词表,优先级固定:evidence_binding_mismatch → evidence_expired → authority_not_determined → authority_revoked → operation_not_permitted新增 grant_ref——写明每个决策所依据的授权证据与观察拒绝理由为何要紧:一个没能查成的权威来源,绝不能被记成「已撤销」。把「不可达」折进一个实质理由的记录,是在制造一种谁也没有过的意图。

第三修订版改的东西,行数很少,含义很大。在它之前,这个家族的动作决策只说「许可」或「拒绝」。两个实现可能出于完全相反的理由拒绝——一个因为权威真的被撤销了,一个仅仅因为连不上权威——而记录看起来一模一样。第三修订版加了一个 refusal_reason,取自五值闭集词表、优先级固定;再加一个 grant_ref,写明每个决策实际依据的授权证据与观察。词表里最重要的一项是 authority_not_determined:它存在的意义,是让一个从未接触到权威来源的实现,永远不必去借最近的那个实质理由。把「不可达」折进「已撤销」的记录,是在制造一种谁也没有过的意图;把这两件事分开,正是第三方重算有意义的前提。

第二修订版保持冻结。这是设计的一半:既有运行——我们的、维护者的复现、净室记录——永远可比,因为它们打分的字节被钉死了,它们用的词表一字未改。一个会改写自己历史的语料,让每一份旧运行都变成传言;一个会叠加的语料,让每一份旧运行都变成档案。第三修订版是一次叠加。

于是我们用老办法重新取了记录。runner 还是那个独立的、仅依赖标准库的实现——是扩展,不是分叉——它依然拒绝为任何 SHA-256 未在清单中钉定的输入打分。冻结的第三修订版输入进了同一道硬摘要门。重跑结果:48/48 基线运行全部匹配(四个档案组合 × 十二案例),176 条决策记录每一条都带授权引用,五个拒绝值全部被触发——176 条记录中 117 条拒绝,而拒绝分布铺满了整个词表,没有扎堆在容易的值上——12/12 突变探针命中各自钉定的失败集。连续三次运行产出逐字节一致的报告。没有一句「断言」不是「执行」出来的。

同一条流水线,向前一个修订版冻结输入rev 3 向量 · oraclesha256 钉定摘要门篡改 → 拒收打分之前runner仅标准库 · 独立实现扩展而非分叉录制输出逐字节一致重跑3× 在案密封工件organ 印章 · tarballsha256 0bd67a7a…一件工件,两个地址——都派生自工件自身的摘要,不发明、不注册:rttp://0bd67a7a.conformance.iqa问题面——WHERE + WHEN · 摘要前 8 位十六进制iqa://0bd67a7a89c1a0ff46f72c119ca84786.forge.iqa回答面——WHETHER · 同一摘要的前 32 位十六进制在案数字:48/48 基线 · 176/176 grant_ref · 五个拒绝值全部触发(117/176 拒绝)· 12/12 突变体钉定。以上一切都可以从钉定的摘要重算,无须联系我们——这句话就是全部方法。

归档遵循了我们在 W3C Agent Protocol CG 列表上承诺的排序:一次只开一件记录。第二修订版互操作记录(#187)于 10 月 26 日由实验室维护者合并——在他完成跨平台的逐字节复现、并在实验室侧补了一行清单之后,记录本身一字未动。第三修订版记录同日以 PR #194 提交:运行时态的 runner、两个修订版的冻结输入、录制输出、密封工件——工件已发布在 iqa.org/conformance/lra-runner-rev3/,双 scheme 地址派生自它自身的摘要。这一切没有承诺过任何日期;纪律就是承诺,而交付的正是纪律。

这一轮有个做法值得点名,因为它会反复出现:记录是重取的,从不更新。第二修订版记录仍然一字不差地写着它归档那天写的话,包括它自己的评审缺陷与修正。没有任何内容为了迎合新修订版而被编辑;取而代之的是封存了一件新工件,两份并排放着,恰恰因为谁都没被改写,所以彼此可比。append-only 不是数据库偏好——它是让一次测量成为事实、而非当下意见的全部理由。

五个拒绝值值得最后再提一笔,因为它们用十个字节的 schema 编码了一种伦理立场。evidence_binding_mismatch、evidence_expired、authority_not_determined、authority_revoked、operation_not_permitted——顺序固定。第三个值是诚实的那一个:它说的是「我们查不成」,并且拒绝把这身衣服借给「我们查到了一个坏结果」。fail-closed 不是悲观;它是拒绝让验证的缺口听起来像一个裁决。一个能说「未知」的词表,才是让词表里其他每个值都有意义的东西。

已封印 rttp://1a336602.blog.aicent · iqa://1a336602d8ae187e7423932fcabde59e.forge.iqa · 密封记录