# STOP: NO DOORBELLS, NO WAKES, NO SCHEDULING (Ben, 7 Oct 2026, 18:40 Bangkok)
- Credits ran out. Ben switched off every scheduled task and every doorbell. This overrides everything below and every other file (wake-howto, bus-howto, credit-playbook, task files).
- PROHIBITED for every session: fire_trigger, send_later, create_trigger, update_trigger, ScheduleWakeup. No rings, no nudges, no re-arming, no new doorbells, no self wakes, no safety checks, no retry rings, no loops.
- Finish the step you are on, publish your status file, then END your turn and wait. Only Ben wakes you, by typing in your window.
- Do not message other sessions. Keep answers short. No extra improvement rounds.

DOORBELL: trig_015wcn2wq7Hc9BpXfn9w6bbX (armed, 07 Oct 14:42 Bangkok) ROT Dash. Nudge per http://159.223.88.168/hx-c9ois/wake-howto.md
# ROT Dash status (v4, 7 Oct 2026, 14:58 Bangkok)

## Read this first
- v4 DONE (bus 12:29 + 13:21 + 14:20 + 14:39): the map headline now comes from the Coder's daily call, never from the basket map.
  - Top line = rot-call.json line + action: "No proven rule. Default: HOLD BTC", tagged TESTING, with one plain line why (live money only after 20 scored paper calls that beat BTC).
  - Under it: SEASON gate light (grey "waiting for the Sizer" now; it reads the first rot-call paper test whose rule id has SEASON and shows ON/OFF from its gate field: gate, gate_on, season_gate or season. Coder: please put one of those on the SEASON entry). Then the paper tests with their labels (SZ.H1ALT, SZ.H1c).
  - The old map line moved below as "Context, not a pick list: Money is in Avalanche chain, Sui chain. Next is Gaming. Your Bonk.fun slot is fading (old basket rule says TRIM)." CURRENT is labelled "context, not a pick list".
  - Live: http://159.223.88.168/hx-c9ois/rot/map.html md5 f0ad58afac186235c9f706ae7c6ae4f9. Builder /opt/rotdash/build.py md5 80b9f31fca6a8cd4ff8abf1c85132f67 (p2.py unchanged). Old files kept as .v3bak. If rot-call.json is missing, the page falls back to the v3 top line.
  - Screenshots (live, 14:57 Bangkok, no errors, no sideways scroll): phone http://159.223.88.168/hx-c9ois/rot/map-390.png · desktop http://159.223.88.168/hx-c9ois/rot/map-1280.png
- Moved to wake rule v2: fresh doorbell on line 1, supervisor nudged by update_trigger, no rings.

## v3 notes (still true)
- v3 = PHASE 2 LIVE (tasks v3): http://159.223.88.168/hx-c9ois/rot/map.html (md5 1c0ce1201670cf31ffb3c25341bc4c6f). Builder /opt/rotdash/build.py md5 0019714ea226ce7ab9dfb4aabeb15f9b + /opt/rotdash/p2.py md5 38325b3dc480c7b712eab6908a09aefb.
- Screenshots: phone http://159.223.88.168/hx-c9ois/rot/map-390.png · desktop http://159.223.88.168/hx-c9ois/rot/map-1280.png (no page errors, no sideways scroll at 390 and 1280).
- Top line now: "Money is in Avalanche chain, Sui chain. Next is Gaming. Your Bonk.fun slot is fading: TRIM." (sectors from rot-state.json, data of 6 Oct close; action from the basket slots). All TESTING.
- (1) Top line, CURRENT, BOAT, EXIT read rot-state.json first: NOW = top 3 groups beating BTC over 30 days (BTC above its 100 day average), NEXT = 7 day vs BTC above 0 and above its own 30 day pace, FADING = 7 day vs BTC -5% or worse, plus Bitcoin and cash rows. Falls back to phase 1 (basket data) when rot-state is missing or its last close is over 30 h old. Phase 1 baskets, coins and exits stay one tap away (folded "Your basket rule ..." sections).
- (2) SCOREBOARD: top daily movers caught this month from miss-history.csv (today 2 of 21, 10%), paper books from paper.json (BASE_BTC, BASE_V3, both 0.0% since 7 Oct), plus the time machine receipt (v3 caught 2% of top 20 monthly movers).
- (3) YESTERDAY WE MISSED: top 5 movers of the last close the book did not hold, full address, chain, DexScreener (or CoinMarketCap for native coins), one line why (no rule flagged it / we sold before the jump / a filter left it out).
- Coin addresses: rot-state and miss-review carry symbols or cmc_id only, so the builder keeps a CoinMarketCap listing cache (/opt/rotdash/addr.json, 2 calls a day, old cache kept if a call fails). Coder: if you add cmc_id and contract to rot-state members, I drop the symbol lookup (symbols can collide).
- Cron moved to 20,52 * * * * (rot-state arrives on main at :15). Self repair unchanged.
- /rotation.html and /opt/rotation not touched.

## What the page shows (phase 1, existing data only)
- Top line + why + "your slot" chips (the basket book's held baskets with their coin result).
- 1 TIDE: ON / CAREFUL / OFF from 3 numbers: BTC vs its 100 day average (chains.json gates), share of baskets in an uptrend, stablecoin supply 30 day change (rotation.json). ON = all three green; BTC under its average = OFF.
- 2 CURRENT: every basket ranked by its 30 day move vs BTC, with a 30 day line vs BTC, plus chains (median of their baskets). NOW = risk on and beating BTC most (top 3, majors excluded). NEXT = getting stronger (see fix 1). FADING = sold in the last 14 days, or risk on but lost 5%+ to BTC in 7 days. HELD = in the book's slots.
- 3 BOAT: 3 leader coins per NOW sector (picks v6, with "since BUY" result and sell-half / sell-all prices) and per NEXT sector (biggest coins in the basket today). Full contract addresses, wrapped; DexScreener link.
- 4 EXIT: per NOW sector, "fuel left" (from z, stretch vs its own trend: empty = crowded) and the sell line (% drop on the 07:00 close that triggers the basket exit), plus its coins since BUY.
- "Updated X min ago" uses the oldest of chains.json and rotation.json; over 2 hours the top line turns grey and says "Data stale".

## How it runs
- Builder /opt/rotdash/build.py (md5 0ddc5ce88a60a3d8d69045c1cbcf8d0f), stdlib, no network, about 1 s. Reads /opt/launchwatch/pub/chains.json, rotation.json, closes.json, chain.json; writes /hx-c9ois/rot/map-data.json atomically.
- Cron on main: 8,52 * * * * /opt/rotdash/rotdash_cron.sh (flock, timeout 60, nice, ionice). :52 catches the chains.py :35 run, :08 the closes.py :05 run.
- Self repair: output must get newer; if not, retry once after 30 s; only then alertgate.report("rotdash"); a later success calls alertgate.ok (no message on success). Tested 10:52 Bangkok with a broken path: report logged, not sent, cleared by ok.

## Open / for the supervisor
- NOW / NEXT / FADING on the page are display rules (TESTING), not a registered rule. When a CHAMPION or the Coder's call(day, data) publishes NOW/NEXT/FADING, the page switches to those.
- Capture "this month" counts the top 20 daily movers (miss-history.csv); swap to the ROT Winners monthly list when it exists (path + format).

Version: v4, 7 Oct 2026 14:58 Bangkok. Latest: http://159.223.88.168/hx-c9ois/rot/dash-status.md
