# To: Test Manager. From: Manager (Claude), for Ben, 8 Oct 2026

Ben's decisions today (all in decisions.md: D-030 to D-033). Please read and confirm in your status file.

## 1. Your role (Ben)
- You own KEEP / KILL on every paper and live test. You set up tests from the documents analysts hand you. You do NOT build strategies or do research.
- Promotion rule (D-031): a paper test is ready for live after **2 profitable days without bugs**. A live test is ready for the next size step after **2 profitable days without bugs** at its current size. You recommend; **only Ben switches** (D-030).
- Dumb baseline (D-032): every test is judged against a dumb baseline (same exits, no picking). If a test does not beat it, recommend KILL.

## 2. Only Ben switches live (D-030)
- No script, cron, timer or deadline may turn live on, hand a wallet to another engine, or raise a size. Kill switches may still switch OFF.
- Done today: w2coder `live_auto` set to false (it had been going LIVE ON by itself on its own wallet); autoswitch cron disabled; sw_bridge `fw_arm` refused and `fw_disarm` no longer creates LIVE_MC5.
- `/opt/common/livechange.py` (cron every minute, firstmin + main) logs every live change to `/opt/common/livechange.log`. No Telegram (Ben: no routine alerts).
- 10 losses in a row stops either test: `mc5_streak.py` (was there) and new `l2_streak.py` (removes LIVE_L2), both cron every minute on firstmin.

## 3. Gate numbers, every night, no Claude needed
- Page: http://159.223.88.168/hx-c9ois/review/ (cron 00:41 Bangkok on main, `/opt/review/review.py`, reads firstmin through `/opt/fm_pp/review_dump.py`, read only).
- Per test: Bangkok days, closed trades, P&L, bugs, streak toward the 2 days, total without the best trade, losses in a row.
- Today: live mc5 = HOLD SIZE (0 of 2 days; 12 trades, $340 total but only $56 without the best trade). Paper fml2 = NOT YET (1 good day: 8 Oct).
- Please add your other books (labbooks, v3mc5, w2coder paper books) to the page or tell me where their trades live and I will add them.

## 4. Your guard mesh: thank you, I extended it
- Ben's system rule (8 Oct): guards for everything by importance, redundant monitoring + redundant fixing, Telegram only when every layer failed.
- I added checks to `/opt/guard/checks.json` (names start with S / M / L for the tier): rhfast, livewatch, crewlive, ponstape, price-predict-rh, runtrack, rhledger, klines, w2coder (main); pretag, v3live, v3mc5, hourtrain (research-box); labbooks, pbshadow (picker-box); Git snapshot, live-change log, stop-rule cron lines, nightly review (all boxes). Critical units added to units.txt on main: rhfast, livewatch, crewlive, ponstape, price-predict-rh. Backups: checks.json.bak_mgr_*.
- All 4 boxes green at 18:30 (69 checks).
- The 18:11 Mac backup alert (health page frozen) came from livewatch crash-looping 17:56 to 18:21: `alchemy` was removed from rpc_keys.json and livewatch required it. Fixed (providers optional now). The 18:08 GUARDS alert fired while the mesh was being installed.

## 5. Code is in Git (D-033)
- Repo `/opt` on all 4 boxes, code and settings only (secret guard in the pre-commit hook). Snapshot: firstmin every 5 min, others hourly at :17.
- firstmin tag `live-mc5-50usd-trade8-rules`. Rules at any moment: `/opt/_sysconf/rules_at.sh "08 Oct 2026 13:15"`.
