Cron Schedule (VM) / Launchd (Mac)
:30Scan phase — fetch 1000 markets, run all strategies, cache signals (LLM)
:00Execute phase — read cached signals, size, trade, resolve, notify
:20 / :50Observer — price snapshots for 1000 markets (no LLM)
:25 / :55Trade fetcher — CLOB trade data from Polymarket Data API
07:30Research — scan-only run, no trades
09:00Full WhatsApp summary (all strategies, portfolio stats)
10:40 / 22:40Strategy factory — evaluation + auto-generate strategy proposals
19:30Live run — stale_market, price_move_fade (also via dual execution every 2h)
03:45DB backup — local + GCS (30-day retention)
04:15Retention cleanup — prune rows older than 730 days
Safeguards
◉
Exposure caps — per-strategy ($20-$80) and per-time-window ($40-$150) limits
◉
Loss streak alerts — 10+ consecutive losses triggers review (not auto-kill)
◉
Dry run guard — dry runs don't consume cached signals
◉
Run lock — prevents overlapping scan or execute runs
◉
Kill switch — scripts/kill_live.py cancels all live orders immediately