sync: add timing rectification freeze packet
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
"production_tuning_allowed": false,
|
||||
"boundary": "Index of current governance packets only. Raw oracle artifacts remain in references/oracle/artifacts and are not all duplicated here.",
|
||||
"summary": {
|
||||
"packet_count": 182,
|
||||
"blocked_or_partial_count": 166,
|
||||
"packet_count": 183,
|
||||
"blocked_or_partial_count": 167,
|
||||
"human_review_required_count": 4
|
||||
},
|
||||
"packets": [
|
||||
@@ -1465,6 +1465,14 @@
|
||||
"claim_status": "keyed_observation_partial",
|
||||
"consumer_policy": "research_observation_only_no_secret_material",
|
||||
"claim_boundary": "Keyed VedAstro raw and method catalog capture are available without persisting the secret; hosted build identity, KP 12-cusp oracle, Prashna/Saham/Sphuta endpoints, selected Gulika/Tajika payload contracts and timing labels remain blocked."
|
||||
},
|
||||
{
|
||||
"packet_id": "timing_rectification_reviewer_freeze_status_2026_07_23",
|
||||
"path": "references/real_case_calibration/timing_rectification_reviewer_freeze_status_2026_07_23.json",
|
||||
"domain": "timing_rectification_governance",
|
||||
"claim_status": "one_reviewer_confirmed_second_required",
|
||||
"consumer_policy": "human_review_required",
|
||||
"claim_boundary": "One reviewer confirmation advances candidate governance but reviewer 2 is still missing, so the two-reviewer freeze requirement and timing claim upgrade remain unsatisfied."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+127
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"boundary": "Machine-selected public cases are intake candidates only. They do not satisfy the independent human holdout requirement and cannot upgrade timing or rectification claims.",
|
||||
"cases": [
|
||||
{
|
||||
"birth_data": {
|
||||
"date": "1955-02-24",
|
||||
"place": "San Francisco, California, USA",
|
||||
"source_quality": "public_astrodatabank_candidate",
|
||||
"source_url": "https://www.astro.com/astro-databank/Jobs,_Steve",
|
||||
"time": "19:15"
|
||||
},
|
||||
"case_id": "candidate_steve_jobs_apple_ipo_1980",
|
||||
"human_reviews": [],
|
||||
"machine_prepared": true,
|
||||
"negative_windows": [
|
||||
{
|
||||
"end": "1980-10-14",
|
||||
"review_note": "candidate negative window for no Apple IPO / same-class public listing event",
|
||||
"source_url": "https://en.wikipedia.org/wiki/Apple_Inc.",
|
||||
"start": "1980-10-01"
|
||||
},
|
||||
{
|
||||
"end": "1981-02-14",
|
||||
"review_note": "candidate negative window for no Apple IPO / same-class public listing event",
|
||||
"source_url": "https://en.wikipedia.org/wiki/Apple_Inc.",
|
||||
"start": "1981-02-01"
|
||||
}
|
||||
],
|
||||
"positive_event": {
|
||||
"end": "1980-12-12",
|
||||
"event_type": "career_wealth",
|
||||
"label": "Apple initial public offering",
|
||||
"source_hash": "sha256:bfc04055876aeac7816e5fbba86b3fd622b4e240a441d314df0ab45a775d6420",
|
||||
"source_url": "https://en.wikipedia.org/wiki/Apple_Inc.",
|
||||
"start": "1980-12-12"
|
||||
},
|
||||
"public_person": "Steve Jobs"
|
||||
},
|
||||
{
|
||||
"birth_data": {
|
||||
"date": "1961-08-04",
|
||||
"place": "Honolulu, Hawaii, USA",
|
||||
"source_quality": "public_astrodatabank_candidate",
|
||||
"source_url": "https://www.astro.com/astro-databank/Obama,_Barack",
|
||||
"time": "19:24"
|
||||
},
|
||||
"case_id": "candidate_barack_obama_2008_election",
|
||||
"human_reviews": [],
|
||||
"machine_prepared": true,
|
||||
"negative_windows": [
|
||||
{
|
||||
"end": "2008-09-14",
|
||||
"review_note": "candidate negative window for no presidential election win / same-class election outcome",
|
||||
"source_url": "https://en.wikipedia.org/wiki/2008_United_States_presidential_election",
|
||||
"start": "2008-09-01"
|
||||
},
|
||||
{
|
||||
"end": "2009-02-14",
|
||||
"review_note": "candidate negative window after inauguration for no same-class election outcome",
|
||||
"source_url": "https://en.wikipedia.org/wiki/Presidency_of_Barack_Obama",
|
||||
"start": "2009-02-01"
|
||||
}
|
||||
],
|
||||
"positive_event": {
|
||||
"end": "2008-11-04",
|
||||
"event_type": "career_status",
|
||||
"label": "Elected President of the United States",
|
||||
"source_hash": "sha256:16b363185a1dd64090615007f453bd1a91f204e3b65b428eececba6827c0dcc2",
|
||||
"source_url": "https://en.wikipedia.org/wiki/2008_United_States_presidential_election",
|
||||
"start": "2008-11-04"
|
||||
},
|
||||
"public_person": "Barack Obama"
|
||||
},
|
||||
{
|
||||
"birth_data": {
|
||||
"date": "1961-07-01",
|
||||
"place": "Sandringham, Norfolk, England",
|
||||
"source_quality": "public_astrodatabank_candidate",
|
||||
"source_url": "https://www.astro.com/astro-databank/Diana,_Princess_of_Wales",
|
||||
"time": "19:45"
|
||||
},
|
||||
"case_id": "candidate_princess_diana_wedding_1981",
|
||||
"human_reviews": [],
|
||||
"machine_prepared": true,
|
||||
"negative_windows": [
|
||||
{
|
||||
"end": "1981-05-14",
|
||||
"review_note": "candidate negative window for no same marriage ceremony event",
|
||||
"source_url": "https://en.wikipedia.org/wiki/Wedding_of_Prince_Charles_and_Lady_Diana_Spencer",
|
||||
"start": "1981-05-01"
|
||||
},
|
||||
{
|
||||
"end": "1981-09-14",
|
||||
"review_note": "candidate negative window for no same marriage ceremony event",
|
||||
"source_url": "https://en.wikipedia.org/wiki/Wedding_of_Prince_Charles_and_Lady_Diana_Spencer",
|
||||
"start": "1981-09-01"
|
||||
}
|
||||
],
|
||||
"positive_event": {
|
||||
"end": "1981-07-29",
|
||||
"event_type": "marriage",
|
||||
"label": "Wedding of Prince Charles and Lady Diana Spencer",
|
||||
"source_hash": "sha256:ab8415e1bb1d26cb99c57b4503503e4688636568f22b80ddd4b1c9c64b59f22a",
|
||||
"source_url": "https://en.wikipedia.org/wiki/Wedding_of_Prince_Charles_and_Lady_Diana_Spencer",
|
||||
"start": "1981-07-29"
|
||||
},
|
||||
"public_person": "Diana, Princess of Wales"
|
||||
}
|
||||
],
|
||||
"claim_status": "candidate_labels_need_human_freeze",
|
||||
"created_at": "2026-07-23",
|
||||
"next_action": "A human reviewer must verify birth data, event source, and negative windows, then add two distinct frozen reviews before blind replay.",
|
||||
"production_tuning_allowed": false,
|
||||
"review_policy": {
|
||||
"machine_prepared_labels_are_not_independent_human_labels": true,
|
||||
"minimum_distinct_reviewers_per_case": 2,
|
||||
"minimum_public_people": 3
|
||||
},
|
||||
"scope": "timing_rectification_candidate_holdout_labels",
|
||||
"summary": {
|
||||
"candidate_case_count": 3,
|
||||
"negative_window_count": 6,
|
||||
"positive_event_count": 3,
|
||||
"ready_for_blind_replay_count": 0
|
||||
},
|
||||
"truth_matrix_allowed": false
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"boundary": "One reviewer confirmation advances candidate governance but does not satisfy the two-reviewer freeze requirement or upgrade timing claims.",
|
||||
"claim_status": "one_reviewer_confirmed_second_required",
|
||||
"created_at": "2026-07-23",
|
||||
"next_action": "Collect a second independent reviewer confirmation before running blind timing/rectification replay.",
|
||||
"production_tuning_allowed": false,
|
||||
"reviewer_1": {
|
||||
"allowed_for_tuning": false,
|
||||
"confirmation_text": "我确认这 3 个候选案例可以作为第一轮 holdout。",
|
||||
"confirmed_at": "2026-07-23",
|
||||
"independent_of_model_run": false,
|
||||
"reviewer_id": "user_confirmed_business_owner",
|
||||
"scope": "first_reviewer_acceptance_of_machine_prepared_candidates"
|
||||
},
|
||||
"reviewer_2_required": true,
|
||||
"rows": [
|
||||
{
|
||||
"case_id": "candidate_steve_jobs_apple_ipo_1980",
|
||||
"freeze_status": "one_reviewer_confirmed_second_required",
|
||||
"positive_event_label": "Apple initial public offering",
|
||||
"public_person": "Steve Jobs",
|
||||
"reviewer_1_status": "confirmed",
|
||||
"reviewer_2_status": "missing"
|
||||
},
|
||||
{
|
||||
"case_id": "candidate_barack_obama_2008_election",
|
||||
"freeze_status": "one_reviewer_confirmed_second_required",
|
||||
"positive_event_label": "Elected President of the United States",
|
||||
"public_person": "Barack Obama",
|
||||
"reviewer_1_status": "confirmed",
|
||||
"reviewer_2_status": "missing"
|
||||
},
|
||||
{
|
||||
"case_id": "candidate_princess_diana_wedding_1981",
|
||||
"freeze_status": "one_reviewer_confirmed_second_required",
|
||||
"positive_event_label": "Wedding of Prince Charles and Lady Diana Spencer",
|
||||
"public_person": "Diana, Princess of Wales",
|
||||
"reviewer_1_status": "confirmed",
|
||||
"reviewer_2_status": "missing"
|
||||
}
|
||||
],
|
||||
"scope": "timing_rectification_reviewer_freeze_status",
|
||||
"source_candidate_packet": "references/real_case_calibration/timing_rectification_candidate_holdout_labels_2026_07_23.json",
|
||||
"summary": {
|
||||
"case_count": 3,
|
||||
"ready_for_blind_replay_count": 0,
|
||||
"reviewer_1_confirmed_count": 3,
|
||||
"reviewer_2_confirmed_count": 0
|
||||
},
|
||||
"truth_matrix_allowed": false
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Record reviewer confirmation status for timing/rectification holdout candidates."""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from datetime import date
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
CANDIDATES = ROOT / "references/real_case_calibration/timing_rectification_candidate_holdout_labels_2026_07_23.json"
|
||||
DEFAULT_OUTPUT = ROOT / "references/real_case_calibration/timing_rectification_reviewer_freeze_status_2026_07_23.json"
|
||||
|
||||
|
||||
def build_report(candidate_path: Path = CANDIDATES) -> dict[str, Any]:
|
||||
candidates = json.loads(candidate_path.read_text(encoding="utf-8"))
|
||||
cases = candidates.get("cases") or []
|
||||
reviewer_1 = {
|
||||
"reviewer_id": "user_confirmed_business_owner",
|
||||
"confirmation_text": "我确认这 3 个候选案例可以作为第一轮 holdout。",
|
||||
"confirmed_at": "2026-07-23",
|
||||
"independent_of_model_run": False,
|
||||
"allowed_for_tuning": False,
|
||||
"scope": "first_reviewer_acceptance_of_machine_prepared_candidates",
|
||||
}
|
||||
rows = [
|
||||
{
|
||||
"case_id": case["case_id"],
|
||||
"public_person": case["public_person"],
|
||||
"positive_event_label": case["positive_event"]["label"],
|
||||
"reviewer_1_status": "confirmed",
|
||||
"reviewer_2_status": "missing",
|
||||
"freeze_status": "one_reviewer_confirmed_second_required",
|
||||
}
|
||||
for case in cases
|
||||
]
|
||||
return {
|
||||
"scope": "timing_rectification_reviewer_freeze_status",
|
||||
"created_at": date.today().isoformat(),
|
||||
"claim_status": "one_reviewer_confirmed_second_required",
|
||||
"truth_matrix_allowed": False,
|
||||
"production_tuning_allowed": False,
|
||||
"source_candidate_packet": str(candidate_path.relative_to(ROOT)),
|
||||
"reviewer_1": reviewer_1,
|
||||
"reviewer_2_required": True,
|
||||
"summary": {
|
||||
"case_count": len(rows),
|
||||
"reviewer_1_confirmed_count": len(rows),
|
||||
"reviewer_2_confirmed_count": 0,
|
||||
"ready_for_blind_replay_count": 0,
|
||||
},
|
||||
"rows": rows,
|
||||
"next_action": "Collect a second independent reviewer confirmation before running blind timing/rectification replay.",
|
||||
"boundary": "One reviewer confirmation advances candidate governance but does not satisfy the two-reviewer freeze requirement or upgrade timing claims.",
|
||||
}
|
||||
|
||||
|
||||
def main() -> int:
|
||||
DEFAULT_OUTPUT.write_text(json.dumps(build_report(), ensure_ascii=False, indent=2, sort_keys=True) + "\n", encoding="utf-8")
|
||||
print(json.dumps(build_report(), ensure_ascii=False, indent=2, sort_keys=True))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -0,0 +1,36 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from scripts.timing_rectification_reviewer_freeze_status_2026_07_23 import build_report
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
STATUS = ROOT / "references/real_case_calibration/timing_rectification_reviewer_freeze_status_2026_07_23.json"
|
||||
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
||||
|
||||
|
||||
def test_reviewer_1_confirmation_is_recorded_without_blind_replay_upgrade() -> None:
|
||||
data = json.loads(STATUS.read_text(encoding="utf-8"))
|
||||
|
||||
assert data == build_report()
|
||||
assert data["claim_status"] == "one_reviewer_confirmed_second_required"
|
||||
assert data["truth_matrix_allowed"] is False
|
||||
assert data["production_tuning_allowed"] is False
|
||||
assert data["reviewer_1"]["confirmation_text"] == "我确认这 3 个候选案例可以作为第一轮 holdout。"
|
||||
assert data["reviewer_2_required"] is True
|
||||
assert data["summary"] == {
|
||||
"case_count": 3,
|
||||
"reviewer_1_confirmed_count": 3,
|
||||
"reviewer_2_confirmed_count": 0,
|
||||
"ready_for_blind_replay_count": 0,
|
||||
}
|
||||
assert "does not satisfy the two-reviewer freeze requirement" in data["boundary"]
|
||||
|
||||
|
||||
def test_reviewer_freeze_status_is_indexed_as_human_review_required() -> None:
|
||||
packets = {packet["packet_id"]: packet for packet in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
|
||||
packet = packets["timing_rectification_reviewer_freeze_status_2026_07_23"]
|
||||
|
||||
assert packet["claim_status"] == "one_reviewer_confirmed_second_required"
|
||||
assert packet["consumer_policy"] == "human_review_required"
|
||||
assert "reviewer 2 is still missing" in packet["claim_boundary"]
|
||||
Reference in New Issue
Block a user