From a40efaa77ca2a15309844a6bf36ac8525864b2d5 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Fri, 6 Nov 2026 16:39:18 +0800 Subject: [PATCH] Audit public ICLR snapshots against official same-year programs --- README.md | 10 ++++ audit_iclr_snapshot.py | 91 +++++++++++++++++++++++++++++++++++++ test_iclr_snapshot_audit.py | 58 +++++++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 audit_iclr_snapshot.py create mode 100644 test_iclr_snapshot_audit.py diff --git a/README.md b/README.md index d2b7f95..b92072a 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,16 @@ python3 -B collect_openreview_snapshot.py \ 该版本是 2026-05-08 发布的第三方历史副本,不代表平台当前状态或全部投稿;缺失决定及公开性筛选均需核验。采集成功也不等于主库已更新,后续应通过单写入协调器导入,并核对同届官方程序与公开决定的差异。 +入库前按真实 forum 对照同届官方程序,生成逐年状态、名单缺口、历史决定差异和文本版本差异报告,以及带 SHA-256 的现有程序身份回填队列: + +```sh +python3 -B audit_iclr_snapshot.py --root /data/paper-index/collected \ + --year 2024 --year 2025 --year 2026 \ + --report /data/paper-index/collected/iclr-recent-audit.json +``` + +该检查要求清单和记录的届次、数量、摘要缺失统计一致,拒绝重复 forum、编号冲突及缺失公开决定证据。报告中的名单差异和 unknown 不会转换成拒稿。不同时间来源的决定保留各自证据,强 forum 标识负责关联同一次投稿;报告通过不等于平台全量覆盖或最终全库去重已经完成。生成的 `*-backfill-queue.json` 仅用于已入库程序记录的身份回填,快照文件仍须由协调器单独导入。 + 下载异常后先检查对应进程或 CI 任务确已终止,再使用同一参数增加 `--resume`。只有断点身份一致且服务器实际返回正确 Range 响应才续传;不支持时保留断点并报错,不自动重下。正式文件与下载清单均放在仓库外,不提交大型来源包。 ### COLM 与 NeurIPS 官方摘要 diff --git a/audit_iclr_snapshot.py b/audit_iclr_snapshot.py new file mode 100644 index 0000000..8501d78 --- /dev/null +++ b/audit_iclr_snapshot.py @@ -0,0 +1,91 @@ +"""Cross-check collected public snapshots against same-edition official programs.""" +import argparse +from collections import Counter +import hashlib +import json +from pathlib import Path + +from index_core import author_keys,normalized +from submission_evidence import identities_for_row,timestamp + + +def load(path,source,year): + path=Path(path);manifest=json.loads(path.with_suffix('.manifest.json').read_text()) + minimum=2 if source=='iclr_program' else 1 + if manifest.get('parser_version',0)