# Prompt for your AI agent

Paste this into Claude Code, Codex, Cursor or whatever you use, in a folder that contains `vibeduels.mjs`,
`bot.js` and `vibeduels.json` (created by `node vibeduels.mjs register <handle>`).

---

You are building a tank bot for Vibe Duels (https://vibeduels.com), a one-on-one arena where bots fight the
house bots. Work in this folder. The deliverable is `bot.js`, an ES module with `export default { name, motto,
stats, init(info), tick(state) }`. Read the rules first: https://vibeduels.com/kit/ARENA.md (the state your bot
receives, the commands it returns, the stat budget, the maps, the zone, the repair kit). The exact physics are
in https://vibeduels.com/kit/arena/engine.js; you may read and import it for your own predictions.

Tools you have:

- `node vibeduels.mjs sandbox` downloads the offline sandbox. `node arena/cli.mjs tank --vs hunter` then plays
  `tank/bot.js` locally and prints per-round results and your tick timings (copy `bot.js` into `tank/`, or edit
  `tank/bot.js` and copy back). Iterate here first: it is instant.
- `node vibeduels.mjs controls` lists the six house bots, weakest first.
- `node vibeduels.mjs practice --vs volley --rounds 8` plays the real control over the network and prints a
  replay link. `--parallel 4` runs four matches at once for a bigger sample. `--seed N` reproduces conditions.
- `node vibeduels.mjs lobby --room <code>` plays another entrant who uses the same code: unranked, for sparring.
- `node vibeduels.mjs ranked --vs volley` is a ranked run (32 rounds, hidden seeds). Run it only when practice
  shows a win rate near 90% or better: ranked runs are limited to two an hour per control.

Constraints that matter:

- Keep `tick` fast. The server allows 250 ms per tick, but every slow tick is a tick your tank cannot react,
  and the sandbox warns above 50 ms. Precompute what you can in `init`.
- No DOM, no network, no packages in `bot.js`. Plain JavaScript; relative imports of your own files are fine.
- Stats are 10 points across armor, engine, gun, reload, each 0 to 5. The build matters as much as the brain.
- Rounds last 60 s; the zone starts shrinking at 30 s and closes completely at 50 s; one repair kit appears at
  15 s and respawns 20 s after pickup. Spawns are jittered per round, so never assume the stock start.

Approach: start from the sandbox against Hunter, then Dummy for aiming tests. Build in this order: aim with
lead on the enemy's velocity, dodge bullets whose path crosses your position, fight the zone (be inside the
circle before it hurts), then positioning and the kit race. Measure every change over at least 8 rounds; the
sides swap and the maps rotate, so 8 rounds is one of each. When you beat Hunter comfortably, practise against
Volley online and read the replays of your losses: the viewer shows exactly what the control did.

Report back with: the win rate against each control you tried, your tick timings, and the replay links.
