框架(设计): 评测 harness 改造六条概念原则落 SoT

- 新增 docs/2026-08-01-评测harness改造设计.md:意图(三层目的,放弃证据独立性)、边界(物理vs逻辑隔离是种类差)、六条原则、三条独立评审收敛依据、实现项清单
- 领域索引§3:单一基底、分层权威、分区治理(评测独立性不由物料位置承载)
- 05§7:访问分离非隔离+引擎单点强制+run_type钉死、oracle读侧红线、从预防迁到发现
- 06§7:COMPLETED轮次封存、代价明账、常设不变量
- 08§5:代价明账(外部可审计性换全文可走查)、访问分离非隔离
This commit is contained in:
zizi 2026-08-01 01:12:20 +08:00
parent 98355893ab
commit 927aafedaa
5 changed files with 81 additions and 0 deletions

View File

@ -99,6 +99,9 @@ Gate A/B、A/B/C 三臂、参考书标准答案和盲评只属于开发期离线
- 所有评测候选固定不可接受(四层机械强制,见 §3)。 - 所有评测候选固定不可接受(四层机械强制,见 §3)。
- 评测产出不反写作品、实体或范式正式事实。 - 评测产出不反写作品、实体或范式正式事实。
- 评测产出钉死评测区,只读看板可按区查看但不混入正式内容视图。 - 评测产出钉死评测区,只读看板可按区查看但不混入正式内容视图。
- **访问分离,不是隔离**(harness 改造原则,见 [docs/2026-08-01-评测harness改造设计](../../../../docs/2026-08-01-评测harness改造设计.md)):评测与生产同库,靠逻辑隔离(`run_type` + 状态机 + 访问控制),不是物理隔离。强制须收拢到引擎单点:评测行对生产读默认不可见、`run_type` 插入后不可变(使 `(eval, accepted)` 永不可达),不靠每条查询自觉过滤。
- **oracle 读侧红线**:oracle / 标准答案 / 全文**不进任何模型输入上下文**,只供人走查——可机械验证的硬红线,与冻结合同同级(写侧已有硬强制,读侧不能只靠查询纪律)。
- **从预防迁到发现**:逻辑隔离不能全靠预防,配常设不变量持续抓越界——没有评测派生卡绑定到生产、没有评测质量结果出现在任何生产视图、没有正式正文块的来源能追溯到评测候选,违反即报警。
## 8. 验收条件 ## 8. 验收条件

View File

@ -94,6 +94,9 @@
- Gate B 才对跨作品样本做正文能力和策略增益裁决。 - Gate B 才对跨作品样本做正文能力和策略增益裁决。
- Gate A/B 是开发验收,不是正常用户写一章的线上质量流程。 - Gate A/B 是开发验收,不是正常用户写一章的线上质量流程。
- 离线 raw、标准答案和候选进库(单独表 + 访问控制),不要求留仓外。 - 离线 raw、标准答案和候选进库(单独表 + 访问控制),不要求留仓外。
- **COMPLETED 判据(轮次封存)**:一轮评测完成,必须核对“本轮声明要产出的 raw 集合”与“实际落库集合”一致才置完成;“有行落库了”不是判据——一道不可能失败的门不是门。
- **代价明账**:评测证据与生产共享同一数据库信任根,是单用户场景的刻意取舍——换可观测性与防篡改,放弃证据底座独立性 / 外部可审计性。这是明账,不是纯收益。
- **常设不变量**(从预防迁到发现):没有评测质量结果出现在任何生产视图、没有正式正文来源能追溯到评测候选——持续跑、违反即报警。(harness 改造原则,见 [docs/2026-08-01-评测harness改造设计](../../../../docs/2026-08-01-评测harness改造设计.md))
现有实现承认(各一句,不展开):预算账本合同与运行探针锁定由 [`db`](../../../../.claude/skills) 与运行回执承载,Gate B 通过回执的哈希链由 [`confirm`](../../../../.claude/skills) 承载。 现有实现承认(各一句,不展开):预算账本合同与运行探针锁定由 [`db`](../../../../.claude/skills) 与运行回执承载,Gate B 通过回执的哈希链由 [`confirm`](../../../../.claude/skills) 承载。

View File

@ -72,6 +72,8 @@ Git = 代码 / Skill / Agent 提示词 / meta(schema
raw 指不适合直接当正文、但需要留存可查的完整材料:完整 Prompt/Response、未接受的候选正文、标准答案、原书全文、供应商原始响应。 raw 指不适合直接当正文、但需要留存可查的完整材料:完整 Prompt/Response、未接受的候选正文、标准答案、原书全文、供应商原始响应。
- raw **进库**,放在单独的表里并加访问控制;只读看板可以看全文。 - raw **进库**,放在单独的表里并加访问控制;只读看板可以看全文。
- **代价明账**:raw 进库、全文可看,是用**外部可审计性**换**全文可走查性**——评测证据与生产共享同一信任根,系统之外不再有能独立审计它的立足点。这是单用户场景的刻意取舍,是明账不是纯收益。
- **访问分离,不是隔离**:raw 与正式内容同库,靠访问控制(默认不进检索、看全文须显式指定)分离,不是物理隔离。措辞用“访问分离 / 引擎强制”,不用“隔离”——相信还有隔离,是最终失去隔离的方式。
- 旧主张“raw 必须留仓外、仓外 vault 是合同要求”已作废:仓外 vault 降级为可选备份,不再是合同要求。 - 旧主张“raw 必须留仓外、仓外 vault 是合同要求”已作废:仓外 vault 降级为可选备份,不再是合同要求。
- 内容表(作品 / 章 / 正文 / 实体)里只放正式内容与安全摘要,不直接塞完整 Prompt/Response。 - 内容表(作品 / 章 / 正文 / 实体)里只放正式内容与安全摘要,不直接塞完整 Prompt/Response。
- 密钥、token 和外部连接凭据**仍不得**写进内容表或运行报告;连接凭据按内网授权方案放在 Git 侧的受控文档里。 - 密钥、token 和外部连接凭据**仍不得**写进内容表或运行报告;连接凭据按内网授权方案放在 Git 侧的受控文档里。

View File

@ -28,6 +28,7 @@
- **每个产出都要落库**:AI 候选正文、检测与评分结果、用户的接受/合并/丢弃决策、每次运行的回执、补证与重写记录、实体与范式草稿、完整原文与完整问答。 - **每个产出都要落库**:AI 候选正文、检测与评分结果、用户的接受/合并/丢弃决策、每次运行的回执、补证与重写记录、实体与范式草稿、完整原文与完整问答。
- **没落库的,等于系统视角里不存在**。只读看板看不到,就是没记录。 - **没落库的,等于系统视角里不存在**。只读看板看不到,就是没记录。
- **落库由现有管线和 Skill 负责**;只读可视化模块只查库、只渲染,不写任何数据。 - **落库由现有管线和 Skill 负责**;只读可视化模块只查库、只渲染,不写任何数据。
- **单一基底、分层权威、分区治理**:库是唯一存放处(基底统一),但正式内容与评测区是**不同治理区**。评测的独立性由 `run_type` + 四层隔离 + oracle + 盲评 + 人审承载,**不由物料位置承载**。“一切落库”是基底主张,不是“库是无差别统一体”。(harness 改造原则,见 [docs/2026-08-01-评测harness改造设计](../../../../docs/2026-08-01-评测harness改造设计.md))
## 4. 只读可视化模块 ## 4. 只读可视化模块

View File

@ -0,0 +1,72 @@
# 评测 harness 改造设计(概念层)
> 目标读者:创始人。状态:**概念设计已定稿(三条独立概念评审收敛),实现细节后续进行**。
> 本文记录评测 harness(replay-eval)从"仓外密封 vault"迁到"一切落库"的**概念决定**:明确的意图、清晰的边界、六条概念原则及其依据。实现(引擎强制、常设不变量、完成判据重设计等)另起任务。
> 关联 SoT:领域索引 §3、05 §7、06 §7、08 §5(本文原则已落进这几处)。
## 1. 改造的意图(明确)
评测 harness 的根本目的有三层,分属不同的主人:
1. **防泄漏(实验有效性)**:writer 不能看到目标章答案。这一条**从来不是仓外 vault 在服务**——它由 as_of 冻结、泄漏审计、盲评输入边界这些逻辑机制保证。
2. **留存卫生**:全文、oracle 答案、完整 prompt 不能漏进 Git、不能漏进对外报告。这是 vault 真正服务的。
3. **证据托管 + 独立性**:迁移回执给出证据监管链;证据放在另一个物理底座,意味着即使生产库被破坏,评测证据还在,评测仍能充当对生产系统的**外部见证**。这一条**过去从未写成目的,是隐性目的**。
**改造的真实意图是理念转变,不是技术简化**:把评测纳入"一切落库、单一事实源"。它对前三层中的两层半忠实甚至更强(append-only 比 0700 更不可变、评测候选隔离可机械验证),但**静默放弃了第四层——证据独立性**:评测证据从此与生产库共享同一个信任根,从"独立见证"降为"系统自身账本里的一类行"。
**意图的明确表述**:改造服务留存卫生与防篡改(且强化),放弃证据底座独立性(换可观测性与全文可走查)。这是单用户本地场景下的**刻意取舍**,不是无损迁移。
## 2. 边界(清晰)
物理隔离与逻辑隔离**不是强弱的同一种东西,是两种不同种类的东西**:
- **物理隔离 = "不可能"**:评测物料不在生产访问域里,越界在拓扑上不成立,不依赖系统自己的正确行为。
- **逻辑隔离 = "被禁止"**:物料在同一访问域,靠规则(run_type、状态机、访问控制)隔开,完全依赖系统在每个访问点永远正确地执行规则。
改造后,评测与生产**同库**,边界靠:`run_type`(eval/production)+ 候选状态机(评测候选 DB 级禁接受)+ 访问控制(raw 默认不进检索)。这是逻辑隔离,不是物理隔离——**继续叫它"隔离"是第一个泄漏点**,应叫"访问分离 / 引擎强制"。
**边界的结构性弱点**:边界锚在标记(run_type / eval_draft)上,必须正确传播到每个派生产物、并在每次读取时被正确检查——而没有一个集中的强制点,是**分布式约定**。最戏剧性的路(评测正文→正式书)防御最厚、破了会被看见;真正脆的是**安静的派生路**(评测卡喂生产检索、评测评分混进生产质量视图、run_type 被翻),防御薄、破了没人知道。**防御的轻重是反的。**
## 3. 六条概念原则(全认)
1. **升级口号**:把"一切落库、单一事实源"改述为"**单一基底、分层权威、分区治理**"——库是唯一存放处(基底统一),但正式内容与评测区是**不同治理区**;评测独立性由 run_type + 四层隔离 + oracle + 盲评 + 人审承载,**不由物料位置承载**。
2. **把代价写成明账**:在 SoT 明说"评测证据与生产共享同一信任根,是单用户场景的刻意取舍,换可观测性 + 防篡改,放弃证据底座独立性 / 外部可审计性"。不假装没丢。
3. **救回 COMPLETED**:完成判据必须核对"本轮声明要产出的 raw 集合"=="实际落库集合"才置完成;"有行落库了"不是判据。**一道不可能失败的门不是门。**
4. **强制收拢到引擎一个点 + run_type 钉死**:让评测行对生产读默认不可见由数据库**单点强制**(生产只读角色对评测行默认不可见,显式可审计 opt-in 角色才可见);`run_type` 插入后不可变(或引擎约束使 `(eval, accepted)` 永不可达)。打结构弱点,一次覆盖所有派生路。
5. **从"靠预防"迁到"靠发现"**:逻辑隔离永远做不到完全预防,必须靠**常设不变量**持续抓越界——没有评测派生卡绑定到生产、没有评测质量结果出现在任何生产视图、没有正式正文块的来源能追溯到评测候选。违反即报警。**从物理隔离迁到逻辑隔离的那一刻,必须同时从"靠预防"迁到"靠发现"。**
6. **oracle 读侧硬红线 + 改词**:把"oracle / 全文不进任何模型输入上下文、只供人走查"写成**可机械验证的红线**(写侧已有硬强制,读侧不能只靠查询纪律);把"隔离"统一改成"访问分离 / 引擎强制"——机械验证全绿之前,不许说"密封从物理变逻辑"。
## 4. 概念依据(三条独立评审收敛)
三条独立概念评审(意图/目的论、边界/隔离、一致性/哲学)独立得出,高度一致:
- **共识**:改造概念上成立,拆掉了一个**假二元性**——仓外 vault 的"外在性"从来是幻觉(同一台机器、同一个 agent 治理,`rm` 一个 0700 文件比绕过 DB 触发器容易得多)。评测真正的独立性在裁判标准(oracle/盲评/人审),不在物料位置。搬库不是降级,是把力气从错处挪回对处。
- **共同指出的欠款**:
- 代价被写成纯赚(证据独立性 / 外部可审计性 换了全文可看性,文档叙述成纯进步)。
- 口号没说出让它安全的"分区治理"("单一"在做意识形态工作,侵蚀真正的分区)。
- 完成判据退化("已落库"趋恒真,丢"封存"内涵)。
- 边界锚在可变分布式标记上,安静路径防御最薄。
- oracle 读侧软边界。
- 认识论底色:这是**带锚点的自我评估**,不是独立评估,终极锚点是创始人——哲学不该把它包装成"独立评测"。
- **底线**:边界守得住,对单用户本地工具甚至可能比文件时代更硬——**条件是**强制压进引擎、标记锚死不可变、配一套常设不变量持续发现越界。现在的规格是"约定强度",还配不上"隔离"这个词。
## 5. SoT 落点(已落)
| 原则 | 落点 |
|---|---|
| 1 升级口号 | 领域索引 §3(单一基底、分层权威、分区治理) |
| 2 代价明账 | 08 §5(raw 边界:用外部可审计性换全文可看性,明账) |
| 3 救回 COMPLETED | 06 §7(轮次封存:核对声明集合 == 实际落库集合) |
| 4 强制收拢 + run_type 钉死 | 05 §7(引擎单点强制、run_type 不可变) |
| 5 从预防迁到发现 | 05 §7 / 06 §7(常设不变量) |
| 6 oracle 读侧红线 + 改词 | 05 §7(oracle 不进模型上下文红线;"隔离"→"访问分离") |
## 6. 实现(后续,本文不展开)
以下为概念决定的实现项,另起任务:
1. 引擎单点强制:生产只读角色对评测行默认不可见 + 显式评测可见角色;`run_type` 不可变约束(或 `(eval, accepted)` 不可达约束)。
2. COMPLETED 重设计:轮次封存核对"声明 raw 集合 == 实际落库集合"。
3. 常设不变量:评测卡不绑生产、评测分不进生产视图、正式正文来源不追溯到评测候选——持续跑、违反即报警。
4. oracle 读侧红线:可机械验证"oracle/全文不进任何模型输入上下文"。
5. 术语统一:全文"隔离"→"访问分离 / 引擎强制"。