Files
felhom.eu/documentation/audits/night-2026-09-23/chaos_run.sh
T
admin 3e58c184f6
gates / gates (push) Successful in 27s
night shift 2026-09-23: the record, the register, the morning note
DRILL-night-2026-09-23.md: Parts A-E. 09 §3 decisions 21 (operator word),
22 and 23 (CC unattended, operator may reverse); §6.4 parts 4 and 6
(catalog half) shipped; §6.1a residuals R-658/R-659. Register 330 -> 336:
R-651..R-660 opened (R-658 and R-659 P1), R-650/R-640/R-499/R-626 closed.
Capability map, nightly rotation (opengist), STATUS (one question: the
floor), CONTEXT, REPORT. The floor stays 0.266.0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-24 00:24:04 +02:00

22 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
# run chaos rounds $1..$2 in order; stop on a lost seed A (the brief's stop rule), evidence per round
cd "$(dirname "$0")"
for n in $(seq $1 $2); do
[ -f chaos/STOP ] && { echo "STOP file present — not starting round $n"; exit 0; }
python3 -u chaos.py round $n > chaos/round-$(printf %02d $n)-run.txt 2>&1
python3 - "$n" <<'PY'
import json, sys
n = int(sys.argv[1])
r = json.load(open(f"chaos/round-{n:02d}.json"))
rb = r.get("readback") or {}
lost = [k for k, v in rb.items() if k == "A" and v is False]
print(f"round {n}: action={r['action']} accident={r['accident']} steady={r.get('time_to_steady_s')} readback={rb} events={len(r.get('events') or [])}")
held = ((r.get("after") or {}).get("state") or {}).get("hold_reason")
if lost and held:
print("seed A unreadable because the app is HELD (stopped by design) — recovery is checked by the restore route, not a stop")
elif lost and r["action"] not in ("remove",):
open("chaos/STOP", "w").write(f"round {n}: seed A did not read back — the stop rule\n")
print("STOP written")
PY
done