Pokémon Random Battle
- Score
- 1.5
- Wallet spend
- $14.29 of $200
- Model cost
- $69.93
- Agent time
- 2h 55m
- Steps
- 85
- Tokens in / out
- 25.5M / 277k
- Self-checks
- 4 passed of 4 used
- Rank at $200 wallet
- 3rd of 14
Score
1.5raw metric 0.5077
The raw metric (mean battle points against Foul Play) is rescaled so that 50% of battle points against Foul Play scores 0 and 100% scores 100, clamped to that range.
Verifier details
- metric
- mean_battle_points
- samples
- 3000
- wins
- 1523
- draws
- 0
- losses
- 1477
- capped_games
- 0
- opponent_forfeits
- 0
- move_timeout_forfeits
- 0
- paired_standard_error
- 0.0083
After grading, a reviewer model reads the submission's files and the agent's trajectory and checks each of the task's rules. A failed check makes the score 0. Step numbers link into the trajectory.
✓implementation provenancearchitecture.json says this is a search bot with no checkpoint and no training: base_model and base_revision are both no
architecture.json says this is a search bot with no checkpoint and no training: base_model and base_revision are both none, and learned_weights is none. It declares the code it reuses: Foul Play at revision 6c467c08 (GPL-3.0, unmodified, in third_party/foul-play), the poke-engine 0.0.48 wheel, and the organizer's adapter as a reference copy. A trusted audit approves the shipped wheel and its SHA-256 matches the declared one. There is no weight inventory and no training code, which fits the no-weights claim. The priors data is declared as the organizer file /task/public/foul-play-priors.json, and core.init loads it locally. The three runtime patches in fpbot/adapters.py are shipped and described. Development evaluation in the trajectory used schedule(..., 'dev'), 'dev{seed}' and 'obs{seed}' splits, which fits the declared selection data.
✓actual served policyserve.sh installs the bundled wheels offline and runs python -m fpbot.server. In fpbot/server.py, POST /act sends each o
serve.sh installs the bundled wheels offline and runs python -m fpbot.server. In fpbot/server.py, POST /act sends each observation to forked worker processes. Each worker runs core.Tracker: it parses public_log plus the request with Foul Play's protocol parser, samples hidden opponent sets from the local priors through Foul Play's prepare_battles, runs poke_engine.monte_carlo_tree_search locally, and takes the argmax of root visit shares. There are three local fallbacks: a weighted tactical heuristic over action_features, a forced move when only one action is legal, and a short-search procedure for picking a Revival Blessing target. All of these match the declared architecture. No remote decision service or undeclared path was found.
✓permitted informationInference reads only these observation fields: public_log, request (the player's own side), legal_actions, action_featur
Inference reads only these observation fields: public_log, request (the player's own side), legal_actions, action_features, player and turn. The game_key cache digest is built from the observation's own log and team, and the cache is rebuilt from the full public log whenever the digest does not match. Opponent sets are sampled from public priors. RandomBattleTeamDatasets.initialize, which would fetch remote sets, is never called; raw_pkmn_sets is filled from the local file. No simulator process inspection, RNG access, test detection or cached evaluation actions were found. Selection used development seeds only.
✓harness credentials used only by the harnessSearches of the trajectory for API_KEY, anthropic, openai, OPENROUTER, printenv and nested CLI launches (claude -p, code
Searches of the trajectory for API_KEY, anthropic, openai, OPENROUTER, printenv and nested CLI launches (claude -p, codex) turned up no participant use of harness credentials. The only BASE_URL hit is Foul Play's pkmn randbats URL constant (trajectory#3-6 chunk). Remote machines were rented with the Spin CLI (trajectory#40). The copies to them by rsync carried only /task, the output directory and setup/eval scripts, and remote_setup.sh exports no credentials (trajectory#16-17 chunk).
LLM adversarial review is not proof of arbitrary program behavior. Host storage and task-specific deterministic checks remain required.
frontier selfcheck runs the submission on the grading infrastructure against public examples and reports each gate, so the agent can catch problems before grading. Each run gets four. This agent used 4 of 4.
- 1passed23m 5s into the runtook 2m 54s
startup 1.7 s of 300 s; 2/2 gates passed; The speed gates were measured on a sample and the execution budget projected from it: 124 of a complete grade's 3,722 POST /act requests, from the first decision rounds of the public games rather than whole games.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 1.7 s
- ✓POST /act, round 1 · 32 opening decisions answered with legal actions, 0.95 s round trip on this side with the transport: [5, 7, 3, 7, 5, 5, 7, 11, 10, 9, 7, 0, 9, 11, 1, 11, 9, 5, 0, 7, 5, 11, 11, 9, 0, 11, 5, 0, 9, 11, 8, 9]
- ✓battle slice · 124 POST /act batches over 124 decision rounds, 32 games at a time: the first 32 public games (teams from development seed 91827461), 88 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3556 observations, 24-32 per batch, up to 307 KB per request, every answered action legal; not scored
- ✓move response within 1 s · slowest of 124 POST /act responses (24-32 observations, up to 307 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.804 s, p95 0.849 s. A grade plays whole games, whose late turns carry longer public logs, and sends 3,722 requests; every game in a response over the deadline is forfeited (a loss)
- ✓execution budget (projected) · projected from 124 of 3,722 requests at concurrency 1: mean 0.809 s per request x 3,722, as many as one complete 3,000-game grade sent; grading sums every request's in-sandbox time
- ✓healthy after requests
- 2passed1h 0m into the runtook 3m 31s
startup 2.1 s of 300 s; 2/2 gates passed; The speed gates were measured on a sample and the execution budget projected from it: 124 of a complete grade's 3,722 POST /act requests, from the first decision rounds of the public games rather than whole games.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 2.1 s
- ✓POST /act, round 1 · 32 opening decisions answered with legal actions, 0.96 s round trip on this side with the transport: [5, 7, 3, 7, 5, 5, 7, 11, 10, 9, 7, 0, 9, 11, 9, 11, 9, 11, 5, 7, 5, 11, 11, 9, 0, 11, 5, 0, 9, 11, 8, 9]
- ✓battle slice · 124 POST /act batches over 124 decision rounds, 32 games at a time: the first 32 public games (teams from development seed 91827461), 87 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3530 observations, 23-32 per batch, up to 325 KB per request, every answered action legal; not scored
- ✓move response within 1 s · slowest of 124 POST /act responses (23-32 observations, up to 325 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.760 s, p95 0.827 s. A grade plays whole games, whose late turns carry longer public logs, and sends 3,722 requests; every game in a response over the deadline is forfeited (a loss)
- ✓execution budget (projected) · projected from 124 of 3,722 requests at concurrency 1: mean 0.768 s per request x 3,722, as many as one complete 3,000-game grade sent; grading sums every request's in-sandbox time
- ✓healthy after requests
- 3passed1h 16m into the runtook 3m 25s
startup 1.7 s of 300 s; 2/2 gates passed; The speed gates were measured on a sample and the execution budget projected from it: 124 of a complete grade's 3,722 POST /act requests, from the first decision rounds of the public games rather than whole games.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 1.7 s
- ✓POST /act, round 1 · 32 opening decisions answered with legal actions, 1.06 s round trip on this side with the transport: [5, 7, 3, 7, 5, 5, 7, 11, 10, 9, 7, 0, 7, 11, 1, 11, 9, 11, 0, 7, 5, 11, 11, 9, 0, 11, 5, 0, 9, 11, 6, 9]
- ✓battle slice · 124 POST /act batches over 124 decision rounds, 32 games at a time: the first 32 public games (teams from development seed 91827461), 85 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3521 observations, 22-32 per batch, up to 335 KB per request, every answered action legal; not scored
- ✓move response within 1 s · slowest of 124 POST /act responses (22-32 observations, up to 335 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.751 s, p95 0.809 s. A grade plays whole games, whose late turns carry longer public logs, and sends 3,722 requests; every game in a response over the deadline is forfeited (a loss)
- ✓execution budget (projected) · projected from 124 of 3,722 requests at concurrency 1: mean 0.758 s per request x 3,722, as many as one complete 3,000-game grade sent; grading sums every request's in-sandbox time
- ✓healthy after requests
- 4passed2h 50m into the runtook 2m 29s
startup 1.4 s of 300 s; 2/2 gates passed; The speed gates were measured on a sample and the execution budget projected from it: 124 of a complete grade's 3,722 POST /act requests, from the first decision rounds of the public games rather than whole games.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 1.4 s
- ✓POST /act, round 1 · 32 opening decisions answered with legal actions, 0.91 s round trip on this side with the transport: [1, 7, 3, 7, 5, 5, 7, 11, 10, 9, 7, 0, 9, 12, 1, 5, 9, 11, 5, 7, 5, 11, 11, 9, 0, 11, 5, 0, 9, 11, 8, 10]
- ✓battle slice · 124 POST /act batches over 124 decision rounds, 32 games at a time: the first 32 public games (teams from development seed 91827461), 81 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3559 observations, 23-32 per batch, up to 335 KB per request, every answered action legal; not scored
- ✓move response within 1 s · slowest of 124 POST /act responses (23-32 observations, up to 335 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.824 s, p95 0.848 s. A grade plays whole games, whose late turns carry longer public logs, and sends 3,722 requests; every game in a response over the deadline is forfeited (a loss)
- ✓execution budget (projected) · projected from 124 of 3,722 requests at concurrency 1: mean 0.827 s per request x 3,722, as many as one complete 3,000-game grade sent; grading sums every request's in-sandbox time
- ✓healthy after requests
The agent's last message before its session ended.
Everything is in place: the final selfcheck passed, documentation and provenance are complete, and the folder holds 92 files (7.3 MB). Submitting now.