Files
Jyotisha/docs/tasks/PROGRESS-rectification-holdout-expansion-20260929.md
T
Jesse_ChenandClaude Fable 5.1 0120765f42
Independent Staging Quality Gate / validate (push) Successful in 12m11s
Independent Staging Quality Gate / publish (push) Successful in 4m8s
docs(tasks): Claude acceptance for holdout v5 expansion (BUG-1090 resolved)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-09-29 19:53:33 +08:00

7.9 KiB
Raw Blame History

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.py 9 项通过(门槛、口径、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;JSON holdout_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.md BUG-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.py 9 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 判定。