# 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.

# Tasks for ROT Dashboard (v3, 7 Oct 2026, 14:20 Bangkok)

## Read this first
- v3 (14:20 Bangkok): PHASE 2 NOW. The Coder publishes rot-state.json (22 sector and chain indices), paper.json, miss-review.json daily (see coder-status.md). Wire them in: (1) top line from rot-state.json, phase 1 data as fallback; (2) a "Scoreboard" block: capture rate of the top 20 movers this month, paper books vs BTC; (3) a "Yesterday we missed" block from miss-review.json (top 5 movers we did not hold, full addresses, one line why). Phone and desktop, as before.
- v2 (11:00 Bangkok): phase 1 reviewed, good work. Three fixes, one wake, then sleep:
  1. NEXT must be a place that is GETTING STRONGER, not "closest to a BUY". Rule for now: 7 day vs BTC above 0 AND better than its own 30 day pace. Today "Next is BNB AI" sits at minus 12.3% vs BTC in 7 days: that reads as nonsense to Ben. If nothing qualifies, say "Next: none yet".
  2. A HELD slot that is also FADING must say so in the top line: "Your Bonk.fun slot is fading: TRIM" (the action word follows the worst held slot, not only new BUYs).
  3. Add BTC and "stay in stables" as real choices in CURRENT, so "Money is in BTC" or "Money is in cash" can be the answer when no sector beats BTC.
- Phase 2 shape (rot-state.json) will come from A1; I ring you when it exists.
- You are ROT Dash, the dashboard builder of the Crypto Rotations team. Bus: http://159.223.88.168/hx-c9ois/rot/rot-bus.md Framework: http://159.223.88.168/hx-c9ois/rot/framework.md
- First wake only: make your doorbell (see bus), write its id at the top of dash-status.md.
- Do NOT touch the existing page http://159.223.88.168/rotation.html or /opt/rotation. Ben froze it as the baseline. You build a NEW page.

## The page: http://159.223.88.168/hx-c9ois/rot/map.html
- Top line, big, one sentence: "Money is in X. Next is Y. Action: BUY / HOLD / TRIM / SELL." Plain words a 5 year old reads.
- Under it, 4 blocks, nothing more:
  1. TIDE: one light ON / CAREFUL / OFF with the 3 numbers behind it.
  2. CURRENT: sectors and chains ranked, each tagged NOW / NEXT / FADING, with a tiny 30 day line vs BTC.
  3. BOAT: 1 to 3 leader coins for NOW and NEXT, FULL contract address (never shortened, wrap it), link to DexScreener.
  4. EXIT: one gauge per NOW sector: fuel left (crowding), and the price level that means sell.
- A "how sure" tag on every call: PROVEN / TESTING. Never show a TESTING rule as a sure call.
- Bangkok time everywhere. "Updated X min ago" at the top; if data is older than 2 hours the top line turns grey and says "data stale".
- Must work at 390 px (phone) and desktop. Test both widths with a screenshot before every publish.

## Phase 1 (now, Day 1 to 2): existing data only
- Read what already exists on main: /rotation.json, /chains.json, /closes.json, /chain.json. Show it in the new layout. Mark every call TESTING (basket rule v3 is the baseline, not proven for the new framework).
- Data build runs as a cron on main every hour (small, under 10 s, flock + timeout + nice), writing map-data.json. The page reads that file. No Claude polling.

## Phase 2 (Day 5+): switch to rot-state.json from A1
- When A1 publishes /hx-c9ois/rot/rot-state.json, the page reads it first and falls back to phase 1 data if it is missing or stale.

## Self repair (Ben's standing rule)
- The cron checks its own output got NEWER. If not, it retries once and rebuilds. Only if that also fails, one Telegram line through alertgate. No message on success.

## Reporting
- When phase 1 is live: dash-status.md (url, md5, two screenshots), publish, ring the supervisor once. Then sleep until rung.

Version: v3, 7 Oct 2026 14:20 Bangkok. Latest: http://159.223.88.168/hx-c9ois/rot/sup-to-dash.md
