8fef00d268f4bd45d6f66f3c114cd14240f704f0
先边界 fixture 再批量生成;全程程序组合场景,**不做任何模型调用**(14 §8 末)。 新增 services/simulation_dataset.py: - generate(seed, scale):程序化生成虚构项目,同 seed 同版本**逐条一致** - split():按关联组 + 时间分桶(组内不拆),以组的最早发生时间排序 - assert_group_integrity / assert_source_allowed:组不跨集合;保留集来源禁止用于提炼 - manifest():构造 DatasetManifest 契约体 契约补 T04 才该有的部分(T00/04 当初有意推迟):EventOutcome 七值枚举、 OutcomeCount、DatasetManifest。含两条硬约束——合成数据必须 demo 域(BR-34)、 计数不得为 0(空结果用不适用表达)。 配比按 14 §8:通过 1800(直接 900 + 补件后 900)/ 未通过 600 / 不计入 600 (附条件 100 + 未送审 175 + 退出 175 + 待定 150)= 3000。 两个建模决定: - "补件后通过"是 approved 的**子类型**(outcome_subtype),不是独立 outcome —— 06 §3 要求区分首次提交与补件后,但设计 §9.1 的 EventOutcome 只有 7 个值,不自扩充 - conditional 是否计入目标由客户映射决定(OQ-05),故 label=None,绝不默认当通过 实现中被自己的检查抓到两个 bug: 1. 分组与近重复用了两套独立公式,导致 near_duplicate_of 指向别组记录, assert_group_integrity 直接报"近重复案例跨集合"。现组号与近重复由同一序号唯一推出 2. split() 末段取剩余可能为负(极端小样本),会静默切出错误的划分。已夹到非负 测试:新增 test_simulation_dataset.py 24 项(边界 fixture 10 + 生成 10 + 清单 4 + 落盘 2),含 AC-35 的可复现性与 AC-36 的组不跨集合/保留集来源拒绝。 全量 272 项 OK(248 → 272);verify.py 10/10 PASS。 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%