A Polymarket weather research and trading monorepo, combining four projects from
lynx-canadensis with contributor attribution and sanitized Git history.
| Project | Purpose |
|---|---|
| poly-weather | Python data collection, SQLite storage, calibration and backtesting. |
| poly-weather-rust | Rust migration of the research backend; paper execution only. |
| poly-weather-bot | Event-driven Rust strategy/execution engine; dry run by default. |
| poly-dashboard | FastAPI API and React dashboard. |
From the repository root, with Python 3.14+, Node 24 and a Rust toolchain:
python -m pip install -r poly-weather/requirements.txt
python -m pip install -r poly-dashboard/apps/api/requirements-dev.txt
python poly-weather/backtest.py --list-strategies
npm --prefix poly-dashboard/apps/web ci --ignore-scripts
npm --prefix poly-dashboard/apps/web run build
python -m unittest discover -s poly-dashboard/apps/api/tests
cargo test --locked --manifest-path poly-weather-rust/Cargo.toml
cargo check --locked --all-targets --manifest-path poly-weather-bot/Cargo.toml
python tools/verify_import.pyRust dependencies need a native C toolchain. The CI workflow also runs the Python fixture suite. Each component keeps its own manifest and lockfile.
- Dashboard backtests use the Python strategy registry and 1-minute replay, with structured JSON results and file-based history.
- The bot writes JSON positions; the dashboard reads Python SQLite state.
- Runtime databases, document caches, logs and portfolio files have been removed from shared history. Generate synthetic inputs with
python tools/review_demo.py --output tmp/review-demoand pointPOLY_WEATHER_DB_PATHat itsdata.db.
Passing checks do not establish profitable trading or complete dashboard integration.
Sanitized source branch heads remain under archive/<repo>/<branch>.
The verifier checks the immutable import snapshot, the sanitized source commits and 12 archived
branches recorded in the source manifest.
The history cleanup changes commit IDs; full originals are backed up locally.