research(rectification): holdout v5 — event cutoff rule in protocol and schema test

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
Jesse_Chen
2026-09-29 19:52:43 +08:00
co-authored by Claude Fable 5.1
parent 8ceb94da02
commit 54e63fe46e
2 changed files with 3 additions and 0 deletions
@@ -9,6 +9,7 @@
3. **事件**:每例 ≥7 件带年月事件、≥4 个领域;领域键取 `scripts/active_rectification_event_engine.py::DOMAIN_CONFIG`。
4. **来源独立**:事件出处与出生资料出处互不相同(`independent_of_birth_source=true`)。
5. **精度诚实**:`year` / `month` / `day` 按来源页所写的精度标注;来源只写"某年"就标 `year`,不得补成 1 月或 1 日。
6. **时间上限**:回放脚本固定在 2026-09-14 评估(`minute_resolution_sweep.TODAY`),计分合同拒绝晚于"今天"的事件;年精度事件落在当年内,所以 **2026 年的事件一律不收**,月/日精度不得晚于 2026-09-14(构建脚本 `EVENT_CUTOFF` 强制)。
## 2. 排除规则
+2
View File
@@ -108,6 +108,8 @@ def test_events_domains_dates_and_precision(v5: dict) -> None:
assert event["id"] not in seen
seen.add(event["id"])
assert int(str(event["date"])[:4]) >= int(case["birth"]["date"][:4]), event["id"]
# replay harnesses evaluate at 2026-09-14; the scoring contract rejects later events
assert str(event["date"])[:4] < "2026" or (event["precision"] != "year" and str(event["date"]) <= "2026-09-14"), event["id"]
def test_strata_and_summary_agree(v5: dict) -> None: