bd389ebd315e62e73644ae734bd9b7cc0a6017c4
T07 第三块。ScreeningRun 是**既有 run 对象的受约束投影**,不是第二份运行存储; AC-13/14 由既有 enqueue 实现,本批只验证其成立、不重做。 新增契约:Degradation、DimensionResult、ProbabilityView、ScreeningRun。 契约层的硬约束:`probability` 与 `probability_view.real_estimate` 的类型就是 `None`,传任何数值都被 pydantic 拒绝——"未校准就没有概率"不靠自觉; 演示估计必须标 synthetic_demo 且带"人工设定"说明、取值 0–1。 新增 services/prescreen.py: - assemble():把冻结方案、政策结论、降级与维度状态收成契约合法的运行视图 - versions_block():冻结 plan_hash 与各组件版本;题库与主审模型未接入时**留空**, 不编造版本号 - dimension_results():维度状态由本次核查结果推出 - assert_versions_frozen():未冻结方案版本或专项修订的运行不得执行 **实现中被测试抓到一个真实错误**:初版把"被引用组件未报告结果"当作已核查 (状态 checked)。这是把静默当成通过,违背 BR-07。现改为:任一被引用组件没有 结果即 unknown;issue 优先于 unknown(具体阻断比信息缺失更该被看到)。 测试:新增 test_prescreen_run.py 20 项,其中 4 项直接验证既有 enqueue 的 AC-13(新证据→新快照+新运行、旧运行留存、旧 revision 冲突)与 AC-14(同键同载荷 返回同一运行、异载荷 409)。全量 410 项 OK(390 → 410);verify.py 10/10 PASS。 T07 三块完成,卡片验收对照:AC-05/06/07/12/45(T07-a)· AC-09/10/21(T07-b)· AC-13/14 验证(T07-c)。AC-08 的跨项目引用拒绝已在 T03 覆盖。 Co-Authored-By: Claude Code <noreply@anthropic.com>
mini_openclaw
Languages
Python
78.8%
TypeScript
18.4%
JavaScript
1.7%
CSS
0.5%
Shell
0.3%
Other
0.3%