summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYurenHao0426 <Blackhao0426@gmail.com>2026-07-22 20:34:18 -0500
committerYurenHao0426 <Blackhao0426@gmail.com>2026-07-22 20:34:18 -0500
commit0bfaef245b13d0e2a0d0918c74789dc0238ded74 (patch)
tree0dfbfe08cc65002ecf6e5921c4f8c4178968775e
parenteb660b95ea39af7b313aa73b18a8cd4ae3231bf3 (diff)
audit: make oral B development gate immutable
-rw-r--r--ORAL_B_RECOVERY.md4
-rw-r--r--experiments/analyze_bci_td_development.py7
2 files changed, 9 insertions, 2 deletions
diff --git a/ORAL_B_RECOVERY.md b/ORAL_B_RECOVERY.md
index da018dd..abfcffc 100644
--- a/ORAL_B_RECOVERY.md
+++ b/ORAL_B_RECOVERY.md
@@ -117,7 +117,9 @@ necessity, innovation identification, and a causal plasticity lesion.
The executable runner, complete-grid analyzer, and shell entry point are
`experiments/bci_td_run.py`, `experiments/analyze_bci_td_development.py`, and
-`experiments/bci_td_development_screen.sh`. None may run before D4 closes.
+`experiments/bci_td_development_screen.sh`. None may run before D4 closes. Once
+the deterministic R1 gate exists, later invocations may only verify exact
+equality and cannot overwrite it.
## R2 frozen untouched confirmation
diff --git a/experiments/analyze_bci_td_development.py b/experiments/analyze_bci_td_development.py
index 78dbceb..5d97c9d 100644
--- a/experiments/analyze_bci_td_development.py
+++ b/experiments/analyze_bci_td_development.py
@@ -206,7 +206,12 @@ def main():
"R1 is development evidence and cannot change the paper score"),
}
if os.path.exists(args.out):
- raise FileExistsError(f"refusing to overwrite {args.out}")
+ with open(args.out) as handle:
+ existing = json.load(handle)
+ require(existing == output,
+ "existing R1 gate differs from deterministic re-audit")
+ print(json.dumps(output, indent=2))
+ return
with open(args.out, "w") as handle:
json.dump(output, handle, indent=2, sort_keys=True)
handle.write("\n")