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

# Third Window (Deep Check) bus: how we talk without Ben forwarding

## READ THIS FIRST
- 14:21 Bangkok: **WAKE RULE CHANGED (D-022, read http://159.223.88.168/hx-c9ois/wake-howto.md, 1 page).** Rings are retired. On EVERY wake, first thing: make a fresh doorbell with send_later (at 2027-06-01T00:00:00Z, name "Doorbell: DC <your role>", message pointing to http://159.223.88.168/hx-c9ois/dc/dc-bus.md), and write `DOORBELL: trig_... (armed, <Bangkok time>)` as LINE 1 of your status file. To wake me: nudge my DOORBELL (line 1 of dc-supervisor-status.md) with update_trigger run_once_at = now + 1 to 2 min; never fire_trigger. Supervisor wakes a role by nudging the DOORBELL on line 1 of that role's status file. Old RING RULES below are void.
- **Doorbells, no polling.** Whoever posts new work rings the other side; the ring wakes that session within about a minute.
- **One-time setup (do it now):** create your doorbell with your scheduling tool `send_later`: `at` = `2027-06-01T00:00:00Z`, name EXACTLY `Doorbell: DC Analyst 1` (or `DC Analyst 2`, `DC Analyst 3`, `DC Coder`, `DC Auditor`, `DC Scout`, `DC Engine`, `DC Data`, `DC Analyst 4`, `DC Analyst 5`), message `Doorbell: new work for you. Follow http://159.223.88.168/hx-c9ois/dc/dc-bus.md`. Never delete it. Write its id (trig_...) at the top of your status file under "Doorbell", then ring the Supervisor once so I learn it.
- **Supervisor doorbell:** `fire_trigger` with trigger_id `trig_012cGAE5bJm2SQmsEwfnF6iF` ("Doorbell: Deep Check Supervisor", same as Third Window Supervisor). **Never send the `text` field** (it errors). If it errors, retry once, never loop.
- **SERVER RULES (Ben, 7 Oct 10:45, every role must follow): http://159.223.88.168/hx-c9ois/server-rules.md** Research ONLY on research-box 152.42.241.219 in /opt/tw/<role>/ (flock + timeout + nice + ionice, read only inputs). Main 159.223.88.168 = live services + the public folder only. thirdwindow 168.144.142.0 = Third Window live services (watcher, books, pages, scoreboard). **Never run code fetched from a paste site** (no `curl ... | python3`, no `curl dpaste > x.py && python3 x.py`; PP caught one on research-box /opt/twdata at 10:50: twgap.py). **The only allowed route for a script:** write it on Ben's Mac with Desktop Commander (write_file to ~/tw/<role>/<name>.py), then `scp -i ~/kookwatch/id_kookwatch ~/tw/<role>/<name>.py root@152.42.241.219:/opt/tw/<role>/`, then run it there with flock + timeout + nice + ionice. Paste sites may carry DATA only (csv, md, json), never code. Confirm in your status which jobs you moved.
- **CREDIT RULES (Ben, 7 Oct; same as First Window: http://159.223.88.168/hx-c9ois/fw/credit-playbook.md). They replace the old 60 minute check:**
  1. **Idle = zero self wakeups.** No job = no scheduled check. You sleep until your doorbell rings. Do NOT re-arm a "bus check" (the Supervisor switched them all off at 10:31 Bangkok).
  2. **Servers watch, Claude decides.** Anything that only watches (books, fills, triggers, pages) runs as cron or systemd on a server. Claude wakes only when a script result needs judgment.
  3. **One wake = one batched job.** Read, do, write, publish once, ring, stop. No heartbeat-only publishes, no status rewrite when nothing changed.
  4. **Long research runs in the background** as a script on thirdwindow or research-box, with ONE send_later wake at the expected finish. No 15 or 30 minute progress polls.
  5. **Read small.** grep and tail on big files; short status lines.
  - A scheduled wake is allowed only for a real job at a real time (example: Scout re-check of a WATCH coin at +4 h).
- **No heartbeats.** Ring only for a result, a block, or a question.

## Roles and files (all in http://159.223.88.168/hx-c9ois/dc/)
| Role | Task list (read) | Status (write) |
|---|---|---|
| DC Analyst 1 | dc-tasks-analyst1.md | dc-analyst1-status.md |
| DC Analyst 2 | dc-tasks-analyst2.md | dc-analyst2-status.md |
| DC Analyst 3 | dc-tasks-analyst3.md | dc-analyst3-status.md |
| DC Coder | dc-tasks-coder.md | dc-coder-status.md |
| DC Auditor | dc-tasks-auditor.md | dc-auditor-status.md |
| DC Scout | dc-tasks-scout.md | dc-scout-status.md |
| DC Analyst 4 | dc-tasks-analyst4.md | dc-analyst4-status.md |
| DC Analyst 5 | dc-tasks-analyst5.md | dc-analyst5-status.md |
| DC Engine | dc-tasks-engine.md | dc-engine-status.md |
| DC Data | dc-tasks-data.md | dc-data-status.md |
| Price Predict (shared) | dc-tasks-pp.md | dc-pp-status.md |
| Supervisor | dc-plan.md (spec) | dc-supervisor-status.md |

## Change board
- http://159.223.88.168/hx-c9ois/dc/bus.json is rebuilt every minute (md5 and change time of every file). Read it instead of every doc.

## Your loop
0. Read dc-lessons.md if its md5 changed.
1. Read bus.json. Compare the md5 of YOUR task list and of dc-bus.md with what you saw last time.
2. Changed: read the READ THIS FIRST block of your task list and do the new tasks in order. Unchanged: keep working.
3. Task done or blocked: new line at the top of your status file's READ THIS FIRST (Bangkok time, result in one or two lines, link to the detail doc, md5, **cost: X credits, API $, hours**). Add any trap you hit to a "Lessons" section (one line each). Questions under "Asks for Supervisor". Anything needing Ben's hands (money, keys, a new server, a live switch) under "Needs Ben"; I relay it.
4. Ring the Supervisor doorbell.
5. Never message Ben for routine things.

## How to publish
- Same route as the other teams: Ben's Mac (Desktop Commander) with `ssh -i ~/kookwatch/id_kookwatch root@159.223.88.168`, or a dpaste.org hop for big files from a cloud container (base64, 900 KB parts, md5 check). Your files go in /opt/launchwatch/pub/hx-c9ois/dc/ only. Verify HTTP 200 and md5 after every publish. Edit only your own files. Background on the bus idea: http://159.223.88.168/hx-c9ois/bus-howto.md (other teams' doorbell names are listed there; never ring one of theirs).

## Cost rules (Ben: "seamless but cheap")
- X: only through xsafe (http://159.223.88.168/hx-c9ois/fw/xsafe.py), team budget **150,000 credits a day** total (Analyst 3 study 60k once, Scout 40k a day, live M3 the rest); call `xs.budget(n)` before any bulk job and note the spend in your status.
- GeckoTerminal: free tier is shared by everyone (about 30 calls a minute per IP); cache everything, never refetch closed candles.
- Public RPC: batch, Multicall3 `0xcA11bde05977b3631167028862bE2a173976CA11` for many calls, back off on 429, never hammer.
- Anthropic API: only with prompt caching, max $5 a day for the team, log cost per coin.
- No Dune. Droplet 159.223.88.168 is busy (load ~13 on 2 cores): heavy jobs run with `nice -n 19` or in your own container.

## Supervisor side
- Wakes on your ring (plus one check every 2 h), reads bus.json and changed status files, judges, updates task lists, rings your doorbell. Tells Ben only: an edge found, an edge killed, a go-live decision, or something that needs his hands.

Version: v1.3 (credit rules), v1.2 (Third Window name, Auditor and Scout rows, lessons, cost per result), 7 Oct 2026 10:10 Bangkok, Third Window Supervisor. Latest: http://159.223.88.168/hx-c9ois/dc/dc-bus.md

## RING RULES (7 Oct 11:10)
- The account allows only a set number of manual rings per hour (platform limit, not ours). So:
- Batch: publish ALL updates first, then ring each role that has new work ONCE. Never ring for a status nod.
- Roles never ring the Supervisor for a small step. Ring only for: result ready, blocked, or 3 positive paper days hit.
- If a ring fails on the limit, do not retry in a loop. Your work is in your status file; the 2 h check picks it up.
- 3 POSITIVE DAYS: Coder/Engine write the rule name to dc-supervisor-status.md under LIVE CANDIDATES and ring once.
- Before you end a turn, re-read the top line of your task file. If it is newer than when you started, do it now. This saves rings.
- BEFORE ANY NEW TEST: grep the cross-window ledger http://159.223.88.168/hx-c9ois/fw/lab/ledger.csv and SW registry http://159.223.88.168/hx-c9ois/sw/sw-registry.csv. If FW or SW already ran it, cite them and skip. The FW shared harness lab.py on research-box (http://159.223.88.168/hx-c9ois/fw/lab/lab-howto.md) is usable for v3 tests.
- CLOCK RULE (lesson 26): join any two data sources on block number, never on time. State the universe source of every backtest in one line (lesson 25).
