Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
7.9 KiB
7.9 KiB
PROGRESS · 生时校正开放评价集扩到 ≥60 例(v5,2026-09-29)
任务书:TASK-rectification-holdout-expansion-20260929.md。分支 codex/rectification-holdout-expansion-20260929,基线 origin/staging @ 5febb111(开工时 head;78b9c5b6 之后的提交与本单无关,未 rebase)。BUG:BUG-1090(开工核对最大号 1089)。
结果一句话
v5 已建:77 例(v4 20 例原样继承 + 57 例新增公开 Rodden-AA),964 件事件;v4 子集在三个回放脚本上的基线数字与已发布数字逐格一致;分层配额除 UTC+8 5/6 外全部达标;生产代码零改动。
T1 选例协议与名单
- 协议:
docs/research/holdout_v5_protocol_2026_09_29.md(入选标准、排除规则、分层配额、核对流程、2026 年事件上限)。 - 名单:
references/real_case_calibration/holdout_v5_roster.json(57 例,每例 Astro-Databank URL、AA 评级、采集人、镜像页 URL、时区与地名核对结果)。 - 环境缺口:astro.com 在 2026-09-29 对自动访问返回"One moment..."拦截页,Wayback 快照间歇 000;评级与出生资料从 Astro-Seek famous-people 页读取(逐字转载 Astro-Databank 评级、采集人、日期、时间、地点、坐标、UTC 修正)。记录里同时写原页 URL 与镜像 URL。验收时若 astro.com 可访问,请抽样回到原页复核。
- 分层统计:
| 维度(配额) | v5 | 达标 |
|---|---|---|
| 出生年代 ≥3 段 | 14 段(1850s–1990s) | 是 |
| 纬度带三档 | <25° 14 / 25–45° 44 / >45° 19 | 是 |
| 南半球 ≥8 | 12 | 是 |
| 22:00–02:00 ≥6 | 9 | 是 |
| UTC+8 ≥6 | 5 | 否(原因与已扫范围见构建说明 §1) |
T2 事件抽取与核对
- 事件从英文 Wikipedia 纯文本(API
extracts)逐句筛候选、人工选择并标注领域 / 日期 / 精度;每条保存source.quote(逐字引文),构建脚本核对引文存在后才写入;找不到引文的行被拒收而非静默丢弃。 - 新增 57 例:每例 8–20 件,领域 ≥4;精度 day 185 / month 143 / year 493。领域键取自
DOMAIN_CONFIG。 - 拒收记录(不改数字凑合):Borges、Allende、Arrau(时区不一致)、Corazon Aquino(地名距记录坐标 129 km)、Juan Perón(生日两源不一致)、Pope Francis(只 3 个领域)、Rod Chang / Aga Muhlach / Eugene Domingo(传记不足 4 领域)。
- 删掉 2026 年事件 2 条(Messi、Zidane):回放脚本固定 2026-09-14 评估,计分合同拒绝晚于"今天"的事件;协议 §1.6 与构建脚本
EVENT_CUTOFF已固化。 - schema 测试:
tests/test_holdout_v5_schema.py9 项通过(门槛、口径、v4 原样、出生记录字段、核对字段、引文、领域 / 日期 / 精度、分层汇总、roster / events 与数据集一致、构建确定性)。
T3 构建脚本
scripts/research/holdout_v5_build.py:从 v4 + roster + events 生成 v5;--check只校验。两次构建 md5 一致(3f8f…→ 最终版由test_build_is_deterministic锁定)。- v4 的 20 例在 v5 中出生资料与事件逐字段一致(测试
test_v4_cases_are_inherited_verbatim)。
T4 基线成绩单
scripts/research/holdout_v5_baseline.py:把minute_resolution_sweep/cluster_width_probe/futile_collect_stop_replay(经guided_collect_holdout_replay.load_cases)的模块常量指到指定数据集与独立输出文件,只跑baseline变体;不改这三个脚本。- 硬红线 5:
--dataset v4复跑,三个脚本共 7+12+6 组数字与minute_resolution_2026_09_14.json、cluster_width_2026_09_14.json、futile_collect_stop_replay_2026_09_29.json逐格一致(表在holdout_v5_build_2026_09_29.md§3;JSONholdout_v5_baseline_v4_all_2026_09_29.json)。 - v5 全集:
holdout_v5_baseline_v5_all_2026_09_29.json,数字见构建说明 §4。 - 发现并处理:
cluster_width_probe.run会顺手重写minute_resolution_2026_09_14.md里的勘误表(数值相同、格式15.0→15)。已git checkout还原该文件,并在holdout_v5_baseline.py里把append_previous_errata置空,保证复跑不碰已发布文档。
| 半径 | 引擎先验头名(v4) | 六题回放头名(v4) | 六题后真值在区间(v4) | 六题后宽度中位(v4) | D1 六格真值在区间 truth / opposite |
|---|---|---|---|---|---|
| ±10 | 0.18(0.35) | 0.64(0.80) | 76/77(20/20) | 15(15) | 76/77,76/77 |
| ±30 | 0.08(0.15) | 0.49(0.55) | 76/77(20/20) | 35(33) | 76/77,76/77 |
| ±60 | 0.06(0.10) | 0.26(0.35) | 75/77(20/20) | 63(56) | 75/77,75/77 |
真值被挤出的例与说明见构建说明 §4。
T5 文档
docs/research/holdout_v5_build_2026_09_29.md、docs/research/ACTIVE_FRONTS.md(索引)、定论页 §8、docs/tasks/README.md状态板、docs/BUG_HISTORY.mdBUG-1090。
门禁与测试
- 生产代码零改动(
git diff origin/staging --stat只有docs/、references/real_case_calibration/、scripts/research/holdout_v5_*.py、tests/test_holdout_v5_schema.py)。 tests/test_repo_privacy_markers.py全绿;test_minute_resolution_research.py、test_cluster_width_research.py全绿(09-14 的 JSON 未改写)。- 快速门:见文末「快速门」节。
遗留
- UTC+8 差 1 例;astro.com 原站抽样复核;Rod Chang(台湾 AA)若能找到可靠传记可补。
- 拒收的 3 例时区不一致(阿根廷 / 智利 1899–1908)值得在 astro.com 可访问后核对原记录的时区注释。
快速门
- 开工基线(
origin/staging@5febb111,本 worktree,Node 22 in PATH):Python 步 1001 passed / 1 skipped;随后npm test在frontend报sh: 1: tsx: not found(worktree 没装前端依赖)→ 门失败。 - 改动后(
ca54d357):Python 步 1001 passed / 1 skipped,同一处tsx: not found,与基线逐条一致。前端零改动,未在 worktree 安装依赖(环境缺口,非回归)。 - 定向:
tests/test_holdout_v5_schema.py9 passed;test_minute_resolution_research.py+test_cluster_width_research.py+test_repo_privacy_markers.py全绿。
Claude 验收(2026-09-29)
- 范围:改动只在
docs/、references/real_case_calibration/(v5 三个新文件)、scripts/research/holdout_v5_*.py、tests/test_holdout_v5_schema.py;v3 / v4 数据与 10 个冻结文件零改动,校正验证完整性门禁绿。 - 确定性:
holdout_v5_build.py --check退出 0(rebase 前后各一次)。 - 硬红线 5:
holdout_v5_baseline_v4_all_2026_09_29.json里 v4 子集 sweep(±10/±30/±60 头名 0.35/0.15/0.10、覆盖 1.00、宽度 21/61/121、并列 0.05/0.05/0.00、六题回放 0.80/0.55/0.35)、cluster_width(15/33/56、覆盖 1.00)、futile 六格(20/20,宽度 14/15/15/15/34/33/34/33/53/56/53/56)与 09-14 / 09-26 / 09-29 已发布数字逐格一致。 - 来源抽样(新增 57 例的 10%,seed 20260929 抽 6 例:Bush / Kubitschek / Nadal / Dantes / Ali / Aniston):astro.com 原页对验收方同样返回浏览器验证页;Astro-Seek 镜像页(curl 跟随 301)逐条核对出生日期、本地时间、UT 偏移(含 Kubitschek LMT +2:54)全部与 roster 一致,采集人姓名一致;评级字母在镜像页为图标非文本,未能机器提取。Nadal 两件事件与 Wikipedia 正文一致。
- 测试:schema 9 + 隐私 + 两轮研究测试 + 完整性门禁 + 打分研究测试 = 54 passed。
- 分层:年代 14 段、纬度 14/44/19、南半球 12、跨午夜 9 达标;UTC+8 5/6 未达——执行方已扫全部镜像,无更多可用 AA,属数据可得性缺口,接受并保留在 BUG-1090 记录。
- 已 rebase 到
origin/staging(四处文档冲突均为双方追加,保留两侧;定论页 §8 v5 在 §9 研究单之前)。 - 结论:通过,合入 staging。下一步:研究单在 v5 上跑 R-A / R-B / R-C 判定。