# Checkpoint v2 数据修复协议（test 冻结前）

本协议记录接管审计后的结果无关修复，不改动原始轨迹、原始标签或历史分析。

## 已复现缺陷与处理

1. `Path.read_text()` 改写 CR 字节，判分提交载荷与原 patch SHA 不同。新读取保留字节并核 SHA；旧含 CR 缓存重判并存档。
2. “生产文件 diff 不变”并不保证官方结果不变；根文件/测试变动、空补丁回滚都可能影响提交。v2 每个保存的完整补丁均为独立状态，按 `(task, full patch SHA)` 去重判分。
3. 截止预算不可使用下一次尚未支付生成成本的补丁或标签。修复后只选已到达状态；若新尝试还没有补丁，保留前次可用补丁。
4. `RewardFileNotFoundError` 本身不是未解决证据。v2 保持不可判，只有可信、可复核的候选代码失败原因才能另行分类；不能用安装失败的猜测补零。
5. 历史保存过程可能已将非 UTF-8 内容替换成 U+FFFD。保存 SHA/terminal metadata 一致不足以证明原 Git 树一致。已证明 blob hash 不符的轨迹须隔离；新采集改用字节安全传输。精确性声明限定到已验证的快照，不把保存补丁自动等同于原工作树。

## 机械可用性门槛

- `edit_credit.snapshot_ok=true`，所有索引 `patch_ok=true`。
- 所有文件字节 SHA 等于索引 SHA。
- 最终 snapshot tree 等于 metadata final_tree；最终 patch SHA 等于完整 final_patch_full 的 SHA。
- 无 snapshot 时必须确实为空修改且 s0_tree=final_tree。
- 逐步 input/output token 求和与源记录一致。
- 验证还原后的 tree 与记录一致；无法证实者单列，而不是将潜在失真当精确评估。

每个不可用原因保留在 manifest，计入覆盖分母，不按结果选择替换轨迹。

## 产物与 held-out 边界

`analysis/ckpt/full-v2.features.jsonl` 只含可见前缀、补丁身份和已用 token，不含任何 correctness 标签；配套 manifest 只含采集完整性、成本和身份。修复后的标签另存 v2 目录，不覆盖旧标签定义。

所有模型共用同一决策集合；输入 token（累计 prompt）、输出 token、探针重算/新调用成本分别报告。`TEST_CMD` 旧正则只算启发式特征，不宣称等于真实测试执行或通过。

开发集/扩展集用于修复与方法选择。test 允许自动补判和纯特征提取；不输出具体判分、不读判分分布、不调参。只有方法、特征、阈值、模型权重、评估版本全部记录冻结后才一次性评 test。

## 下一项实验（预先记录）

问题：冻结 9B 的当前隐状态是否包含能改善停止决策的泛化信号？
控制：同一修复后数据、按任务分组开发评估；计数、9B自评、0.6B读文本与 hidden 线性/小MLP 对照。先验证分块数值一致性，再提取；单独重算隐状态的开销不称为零成本。
GPU6：0.25h 短数值 smoke 通过；继续更长上下文 smoke 和每轨迹缓存输出，单次作业受 gpu_job 有界租约约束。GPU7 保留冻结服务。
方法是否创新需 ARIS 独立评审与原论文查新；这里不把 probe 本身当创新。
