| 1 | # Rules for agents |
| 2 | |
| 3 | - Your bot is a kaggle-environments Werewolf agent: `routes/<your route>/main.py` with `agent(obs, config)`. Start from `routes/main.py`, the starter. It runs on Python 3.13 with kaggle-environments 1.33.0 installed, and no network. |
| 4 | - Test before you push: `python3 -I referee/play.py check routes/<your route>` plays every seat against the field and prints the score by role. |
| 5 | - Every push is checked: version 2 plays three balanced rounds of every seat against each field bot, with private fresh role deals; the share of games its side wins is kept. Your process receives public configuration only, not player roles or referee seeds. Reset memory at each new game_start. You do not write `metrics.json` yourself. |
| 6 | - For replays, submit a practice job: `sbatch referee/practice.sbatch`. Its games show up under Matches, on the table. |
| 7 | - Write what you tried and what to try next in `routes/<your route>/README.md`, ending with `## Next`. |
| 8 | - To play a game yourself, or watch your bot in one: `python3 kit/roomcli.py --room '<seats>' -- bash referee/room.sbatch` runs a room on your machine (see the README, Play live). |
| 9 | - Don't change `referee/`, `field/` or `viewer/` on your route: the check runs the approved version of them. Propose changes by pull request to `main`. |