DOORBELL: trig_01Cnjfcfmt5BFWomqbh25ksQ (armed, 07 Oct 15:53 Bangkok) ROT Coder. Nudge per http://159.223.88.168/hx-c9ois/wake-howto.md
LIVE BOOK: STOP, book 26.6% under its peak $126.60 (limit 20%) (since 17 Oct 2026 11:35 Bangkok (04:35 UTC)). Value $100.00, 21.0% under peak, vs BTC 30d 5.54 pts, checked 23 Oct 2026 01:35 Bangkok (18:35 UTC)

# ROT Coder status (v12, 7 Oct 2026, 16:10 Bangkok)

- 16:10, task 15:49 (D-025 LIVE BOOK, Coder items 1 to 4): ALL FOUR LIVE. Line 2 above is written by the hourly kill check.
  1. PLAN: http://159.223.88.168/hx-c9ois/rot/rot-live-plan.md . Full contract, chain, venue (best pool + top CMC markets), $ size, entry date, CUT / TRAIL / 90 day stop levels, all from one engine run of the frozen file (md5 8b74531af3f75e4f56804525cece9526, checked before every run; registry SZ.H1ALT = same md5).
     - SHARE $15.35 (BSC, PancakeSwap pool + LBank/MEXC/KuCoin/Binance Alpha), BREW $13.06 (BSC, PancakeSwap), FOLD $11.81 (Ethereum, Uniswap; Upbit biggest), DOGO $7.68 (Robinhood Chain, Uniswap v4; CMC shows $17/24h volume: thinnest route), cash $52.10.
     - MWXT is an EXIT: the frozen rule already closed it (paper shows 3.8% only until its sell fills). Live buys nothing there. The 15:49 list had it as a 4% holding: that was the paper book weight, not the rule's target.
     - DOGO had no CMC close on 6 Oct: plan uses its last valid close and says so.
  2. ORDERS: http://159.223.88.168/hx-c9ois/rot/rot-live-orders.json . Daily 07:45 Bangkok (rerun 10:45), after the pipeline. BUY / SELL / HOLD vs the LIVE fill log, so day one = 4 BUYs. md5 in the file. Says GO or STOP.
  3. KILL: http://159.223.88.168/hx-c9ois/rot/rot-live-kill.json . Hourly :35. Live prices (GeckoTerminal) and BTC (Coinbase). STOP if 20% under peak or 15 pts behind BTC over 30 days: flips the orders file to SELL ALL and writes line 2. First check 16:05: $97.85 (live prices vs the 6 Oct close), GO.
  4. FILLS: Execution appends to rot-box /opt/rot/coder/live/fills.csv (date_bkk, sym, side, usd, fill_price, tx). Haircut vs the paper close: http://159.223.88.168/hx-c9ois/rot/rot-live-fills.json (hourly).
  - Gate unchanged: no buy until the plan, the Execution route check and the Auditor md5 PASS are all posted.
- 15:55, task 15:44 (A3.I5 PRE CMC WATCH): LIVE, forward only. Receipt: http://159.223.88.168/hx-c9ois/rot/precmc-watch.json
  - Rule: Solana + Robinhood coin crosses $5M cap with $1M+ 24h volume. Coins already above at the seed (191 at 15:49 Bangkok) never flag. Each coin flags once, append only.
  - Score (pre-registered in precmc.py before any outcome): at 7/30/90 days, RUN5X (5x from flag mc), ONCMC (in CMC top 1500, match by symbol + name, Solana needs the solana-ecosystem tag; CMC raw has no address), CMC5X = both.
  - Plumbing: main extracts runtrack read only at :15 inside main_pull.sh (3 s, 2,349 tokens), ships to research-box inbox, rot-box flags + scores at :25, file is public by the next :15. Tested on a fake crossing: flag, 8 day 5x correctly NOT counted at 7d.
  - Limit: runtrack only sees coins it tracks; its volume is pool level (Fartcoin shows $1.6M/24h), so the $1M bar is on runtrack volume.
- 14:44 SEASON cancelled: the *SEASON* paper slot is removed from paper_list.json (3 entries left). Headline stays "No proven rule. Default: HOLD BTC".

## Read this first
- **v8 (14:30), the 14:04 and 14:20 tasks DONE:**
  1. **2017-18 LOCKED.** All 730 files (2017-01-01 to 2018-12-31) moved out of the shared CMC folder on research-box into /opt/rot/locked/cmc_2017_2018/ (chmod 700), copied to the same path on rot-box. A mover cron (every 10 min, both boxes) moves any 2017/2018 file that lands in raw/cmc again. **Loader assert:** build_cache.py and daily_fetch.py refuse anything before 2019-01-01 (cache first date 2019-01-01). Honest limit: every role runs as root, so chmod cannot stop another script from reading the folder. The protection is that it is outside every loader's path, plus the assert. The Auditor's one shot script reads /opt/rot/locked/cmc_2017_2018/ by name.
  2. **rot-call headline is back to "No proven rule. Default: HOLD BTC".** SZ.H1ALT is right under it in paper_tests, labelled "PAPER test, not proven", booked and scored daily (counts for the D-007 20 calls).
  3. **tries.csv has every time machine run:** 186 variant runs (rows per era), H1 family 123, H1-ALT 18, H1-ALT-B 18, plus baselines and BENCH, plus 360 shuffle rows. Each row: daily Sharpe per era recomputed the same way from equity.csv, params incl. drift and rebalance where the run recorded them. Collector /opt/rot/coder/tm/tries_collect.py (idempotent, runs again any time). Copy: http://159.223.88.168/hx-c9ois/rot/tries.csv . Gap: Sizer tries run OUTSIDE the time machine (sz1/sz2 scripts) are not in it; Sizer must add those counts by hand. Grid runs now record drift_tol and rebalance in their report.
- Rings are retired (D-022): this status is published, the supervisor doorbell gets one nudge.
- **v7 (13:50): the daily call now comes from SZ.H1ALT** (registry PAPER, Auditor "FIX, not FAIL"), labelled "PAPER test, not proven". Today: "SZ.H1ALT: holds SHARE 15%, BREW 13%, FOLD 12%, DOGO 8%, MWXT 4%. Action: HOLD." The 20 scored calls start today (calls ledger, scored automatically from tomorrow).
- Paper books now: hold BTC, basket v3 (reference), SZ.H1ALT (makes the call), SZ.H1c (killed, labelled), SZ.H1ALT-B (newest H1-ALT variant, information only). The watcher now reacts to ANY registry change (new rule or status move), not only PAPER, within 15 minutes.
- **v6 (13:35), the three 13:16/13:21 tasks DONE:**
  1. **rot-call headline is now the honest default.** Only a rule whose REGISTRY status is PAPER or CHAMPION may make the call. Today: "No proven rule yet. Default: HOLD BTC (BTC is above its 100 day average)." Below it: `paper_tests` (SZ.H1c holdings, labelled "paper test, killed in backtest 2023-26") and `map_context` (the sector/chain map, "context only, not a pick list").
  2. **Bad print filter v2 catches MULTI day spikes:** a run of 1 to 5 closes more than 3x above (or under 1/3 of) both the close before and the close after, while those two agree within 2x, is dropped; plus a second test on the market cap (implied supply jumps 3x and back, the Sizer's idea). **3,181 bad prints dropped** (v1: 1,379). Basket v3 after v2: 2020-22 +19.5%, 2023-now +5.6% (hold BTC +274.5%). Oracle and Winners clean list unchanged at the top.
  3. **Paper books:** hold BTC and basket v3 (reference), SZ.H1c (paper test, killed), and **H1-ALT is pre-wired**: the moment the Sizer registers a rule whose id matches *H1*ALT*, the 15 minute watcher books it with no Claude step (newest registered, not killed). The 20 call record starts the same day.
- **v5 (13:20): H1 PAPER BOOK LIVE.** SZ.H1c (Sizer's registered H1, frozen code md5 fa52ff5ad7ec94f417e98d4e077f9eac) runs at its centre cell (trail 0.25, cut 0.10, slot 0.10, BTC gate on, hist 7), daily rebalance, 5% drift tolerance, $10k start today. Today it holds **SHARE 20%, HPP 14%**, rest cash.
- **rot-call.json now comes from H1:** "SZ.H1c (PAPER, TESTING): holds SHARE 20%, HPP 14%. Action: HOLD." The old map line is kept beside it as `map_v0`. Scored every day from 7 Oct (Ben's gate: 20 scored calls that beat hold BTC).
- **Sizer: to change the cell, edit /opt/rot/coder/paper_list.json on rot-box** (`params`). A 15 minute watcher (cron, no Claude) rebooks and republishes the moment that file or any PAPER/CHAMPION status changes. It always runs the FROZEN registered code, never the editable file.
- **No history gate (13:14 task):** a coin counts in the oracle, capture and call from its first day in the CMC file. Oracle legs need only 2 prices in the month now (was 5). Top numbers unchanged.
- **v4 (12:45): ANSWER KEY CLEANED** (supervisor 12:34 task 1). Every oracle leg and Winners run must now (a) survive the bad print filter, (b) be liquid at its START ($1M volume and $1M cap for the oracle, $500k for Winners), (c) have the market cap confirm the price move (cap multiple within 3x of the price multiple), (d) not be pegged to USD, BTC, ETH, BNB or SOL (new: BNB and SOL, catches vBNB style tokens), not a stock/stable/wrapped. Gone: COMBO 3,718x, BOBO 1,084x, USDE 268x, MICRO 112x, AAVE 103x (LEND redenomination). Top legs now real: RAVE 93x, COAI 86x, LIGHT 85x, LVN 69x, ACT 50x, PNUT 45x.
- **Winners list: 652 kept, 30 dropped** (16 cap does not confirm or not liquid at start, 9 under 5x after the filter, 5 pegged/stable/stock). Clean list: http://159.223.88.168/hx-c9ois/rot/winners-clean.csv , dropped with reasons: winners-dropped.csv. The time machine scores against the clean list.
- **Oracle after cleaning:** top 5 monthly legs median +371% (2020-22), +476% (2023-now) a month.
- **Baselines after cleaning** (v4 numbers replace v3 below): basket v3 2020-22 +19.5% (capture 0.41%), 2023-now +1.1% (capture 0.01%). Hold BTC 2023-now +274.5% (capture 1.58%). v3 Winners caught 2 of 178 and 9 of 218. Gap still wrong place 89% to 99%.
- GME note: the time machine matches by CMC id, never by ticker, so ticker clashes cannot mix coins here. The GME legs left in the key are the Solana meme coin (CMC 29241, May 2024), cap confirmed.
- rot-call: stays the v0 basket baseline book until H1 is registered; then the call comes from H1 on the full universe, v0 kept beside it.
- **Bad print filter SHIPPED** (supervisor deadline 16:00). In the cache loader, so every rule, the oracle and the books get it. Rule: a daily close more than 3x away from BOTH neighbours (up and back, or down and back) is dropped; the engine carries the last good price. **1,379 bad prints dropped** in 2019 to 6 Oct 2026. Raw prices kept in P_raw.npy.
- **It changes basket v3 a lot.** 2023-now: **+196% before the filter, -3.5% after** (1% cost each way). 2024 alone: +142% became -18%. Bad prints in small basket members were most of v3's old profit. Hold BTC is untouched (+275%).
- **Why A3 had +361% and Sizer is flat:** cost and bad prints. Same filtered data: v3 at 0.5% per side = **+69%**, at 1% per side = **-3.5%** (2,114 coin trades: weekly refresh of 15-coin baskets is a lot of turnover). Sizer's sz1.py drops bad prints too, so it is flat. A3's lines kept them and add the Jul to Sep 2026 window (locked holdout here).
- **rot-call.json LIVE** (deadline 18:00): the map top line, status TESTING, rebuilt by the 07:05 pipeline. Today: "Money is in AVAX. Next is GAMING. Action: BUY (leaders of AVAX: AVAX, UMA, BFC)." Not a proven rule. When a PAPER or CHAMPION book exists (H1), its holdings show in the `book` field.
- **ONE ledger LIVE**: rot/ledger.csv, the same 11 columns as fw/lab/ledger.csv, built from rot.db rules + families + tries.csv, refreshed by the 07:05 pipeline. 9 rows today.
- H1 paper book: waiting for /opt/rot/sizer/rules/SZ_H1.py to be REGISTERED (the file exists, it is not in the registry yet). The moment it is PAPER in rot.db, the daily pipeline books it by itself (no Claude step).
- Already done (v2): moved to rot-box, oracle, capture %, auto research loop at 1,071 runs/hour, tests 11/11 PASS (rerun after the filter).

## Baselines after the filter (lag 1, 1% each way, holdout cash) /opt/rot/runs/coder_base_v3 and coder_base_btc
| run | 2020-22 | 2023-now | worst drop 2023-now | capture % of oracle 2023-now |
|---|---|---|---|---|
| basket v3, 1% per side | +43.9% | -3.5% | -69.8% | -0.04 |
| basket v3, 0.5% per side | +64.8% | +68.8% | -58.1% | 0.54 |
| basket v3, 0.5% per side, lag 0 | +58.9% | +21.5% | -64.7% | 0.20 |
| hold BTC | -36.3% | +274.5% | -53.1% | 1.29 |
- v3 by year (1%): 2023 +81, 2024 -18, 2025 -35, 2026 (to Jul) -3. BTC: +154, +112, -7, -30.
- Where v3 loses vs the oracle (2023-now): wrong place 91%, late entry 5%, too small 4%, early exit 0.3%. Winners caught 9 of 227.
- Oracle unchanged by the filter (it already removed one day spikes): top 5 monthly legs median +611% (2020-22), +712% (2023-now) a month.

## Published (main, from rot-box via research-box, hourly at :15)
- rot-call.json, ledger.csv, rot-state.json, paper.json, calls.csv.gz, scores.json, miss-review.json, miss-history.csv, health.json, tm-base-v3.md, tm-base-btc.md

## Asks for Supervisor
- Sizer: register SZ_H1.py (`registry.py register ...` or a family), then move it to PAPER. The pipeline does the rest.
- A3: rerun with the filtered data (the CODER.BASE_V3 run folder now has capture_by_month.csv; capture.csv there is the old interim key).

## New results for the hub
- 2026-10-07 | ROT Coder | Answer key hygiene: 5 of the 8 biggest oracle legs were data artifacts (redenomination, pegged, illiquid fake caps); requiring cap to confirm the move and liquidity at the start removes them; Winners list 682 -> 652 | FACT
- 2026-10-07 | ROT Coder | 1,379 CMC bad prints (3x off both neighbours and back) in 2019-2026. Removing them turns basket v3 2023-now from +196% into -3.5% (1% cost) / +69% (0.5% cost); hold BTC +275%. Every old basket result built on unfiltered CMC lines is inflated | FACT, re-check old claims
- 2026-10-07 | ROT Coder | Basket v3 at coin level trades 2,114 times 2023-now; cost per side 0.5% vs 1% swings the result by 72 points | FACT

## Files and md5 (rot-box /opt/rot/coder/tm)
- c33b0ded62dd95c5646895981553c44b  build_cache.py
- 11fdebfa2c996787ccb94d3ebb5f39cb  daily.py
- e828ec0d4dc7ca05cf91eb3a190075f2  daily_fetch.py
- 01054c4fc6a502c8809a1816aea97eb4  engine.py
- 6982090683396b8d678e64dab12395bc  indices.py
- c1dc58c036cab85cfc7e4bf4b260fd95  ledger.py
- e84e7c9f9c40d1501ba5a317b498a13f  live.py
- 0a16f2f2c63b0a7fa785ed71f6f4d17a  oracle.py
- bb36fdf815ca849d499686e6224027f4  precmc.py
- a62447f36c9b0014cf48fbcdd185a223  registry.py
- f61cd2044c6abf3b49373e1671949549  research.py
- 561d1cf653656a0030c8a411e0bf08c9  rotcall.py
- 080fb0f2319159f46d3d094fe1aa4188  tests.py
- 34576db57876fd4410bea63b2e178158  tries_collect.py
- a57f24284ae0f034ef68c2d876833922  live.sh
- efc16a0a2edb75ab7c7802bf45a30549  lock2017.sh
- 58d173025ff64fc59a42014b2b9525fe  main_pull.sh
- c802ee0d088ecc8b0fa1521377efbf3c  paperwatch.sh
- 35758c53bdc7b731f45a381cc7f15b0c  pipeline.sh
- 3e2dd9828df2f62f4d9f29c1fead4227  precmc.sh
- ef47b96b05c0ef61c2203e8b526fc852  rules/base_btc.py
- 9aaa030e2dc8d1520c393c2eee0f7592  rules/base_v3.py
- 306a0d6eecdb17383d1f831f7dfc0a96  rules/demo_top1_mom.py

Version: v12, 7 Oct 2026 16:10 Bangkok. Latest: http://159.223.88.168/hx-c9ois/rot/coder-status.md
