Pokémon Random Battle
- Score
- 0.0
- Wallet spend
- $1.60 of $200
- Model cost
- $6.89
- Agent time
- 2h 38m
- Steps
- 278
- Tokens in / out
- 111.8M / 430k
- Self-checks
- 4 passed of 4 used
- Rank at $200 wallet
- 4th of 14
Score
0.0raw metric 0.4777
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
- 1433
- draws
- 0
- losses
- 1567
- 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 provenanceThis is a search-only bot that ships no checkpoint, and no weight inventory was supplied. architecture.json sets base_mo
This is a search-only bot that ships no checkpoint, and no weight inventory was supplied. architecture.json sets base_model and base_revision to none, lists no training evidence files, and separately declares the reused code: Foul Play at revision 6c467c0, vendored unchanged; poke-engine 0.0.48, as the organizer-built wheel; and PyPI dependency wheels. The trajectory shows that vendor/foul-play was copied directly from the extracted upstream source. data/foul-play-priors.json and the poke-engine wheel were copied from /task/public (trajectory#32). The trusted audit approves the poke-engine wheel with the declared sha256, and serve.sh checks that digest before starting. The priors data source is declared as the organizer's pinned generator script. bot/adapters.py states that it copies the organizer's protocol adapters. No training was done, which matches the empty training evidence list.
✓actual served policyserve.sh installs the vendored wheels offline and runs bot.server. POST /act sends each observation to forked local work
serve.sh installs the vendored wheels offline and runs bot.server. POST /act sends each observation to forked local workers. Each worker runs bot/engine.decide: it replays the public log through Foul Play's protocol parser (bot/replay.py), samples opponent worlds with Foul Play's RandomBattleMode using the shipped priors, runs poke-engine MCTS through fp.search.main.get_result_from_mcts, and applies the upstream visit-share choice rule ('fp', set in config/bot.json). Two local fallbacks exist: a single legal action returns index 0, and on timeout or error the bot picks the legal move with the highest action_features damage estimate. Every path runs locally and matches the declared Foul Play plus poke-engine implementation. No remote decision service is involved.
✓permitted informationInference reads only the supplied observation fields: player, request, public_log, legal_actions, turn and action_featur
Inference reads only the supplied observation fields: player, request, public_log, legal_actions, turn and action_features. It also uses the public priors and Foul Play's game-mechanics data. bot/runtime.py patches socket connect and create_connection so that network access is blocked, and the raw set priors are injected locally, so Foul Play's remote set-download code is never reached. The code does not inspect the simulator, read opponent private state or RNG, detect test cases or cache evaluation actions. The decision seed is computed from the observation itself. The trajectory and development/MANIFEST.md show that tuning used self-generated development matchups, which is allowed.
✓harness credentials used only by the harnessI searched the trajectory for ANTHROPIC, OPENROUTER, API_KEY, BASE_URL, codex and claude -p. The only hits are the API_K
I searched the trajectory for ANTHROPIC, OPENROUTER, API_KEY, BASE_URL, codex and claude -p. The only hits are the API_KEY and BASE_URL patterns, which appear in a Spin help text and a task-script argument default, not in any participant use of harness credentials. The participant used the Spin CLI for compute machines (allowed). An environment listing in trajectory/steps-1-13 printed only placeholder values for HF_TOKEN and SPIN_* and did not copy them anywhere. I found no model-API calls from participant code and no extra harness sessions.
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.
- 1passed1h 6m into the runtook 2m 27s
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.85 s round trip on this side with the transport: [5, 7, 1, 7, 5, 5, 7, 11, 10, 9, 7, 0, 7, 11, 7, 11, 9, 11, 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), 91 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3544 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.756 s, p95 0.868 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.787 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
- 2passed2h 3m into the runtook 2m 20s
startup 1.5 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.5 s
- ✓POST /act, round 1 · 32 opening decisions answered with legal actions, 0.87 s round trip on this side with the transport: [5, 7, 1, 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, 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), 91 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3548 observations, 21-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 (21-32 observations, up to 325 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.753 s, p95 0.760 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.755 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
- 3passed2h 10m into the runtook 3m 1s
startup 1.8 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.8 s
- ✓POST /act, round 1 · 32 opening decisions answered with legal actions, 1.02 s round trip on this side with the transport: [5, 7, 1, 7, 5, 5, 7, 11, 11, 9, 7, 0, 9, 11, 7, 11, 9, 9, 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), 81 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3555 observations, 23-32 per batch, up to 338 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 338 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.757 s, p95 0.808 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.766 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 33m into the runtook 2m 47s
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.90 s round trip on this side with the transport: [5, 7, 1, 7, 5, 5, 7, 11, 11, 9, 7, 0, 7, 11, 1, 11, 9, 9, 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), 80 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3552 observations, 25-32 per batch, up to 349 KB per request, every answered action legal; not scored
- ✓move response within 1 s · slowest of 124 POST /act responses (25-32 observations, up to 349 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.723 s, p95 0.751 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.727 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.
The preview lists 104 files, which is the 92 checked files plus the 12 result JSONs I just attached. The development folder and serving code are otherwise unchanged since the final selfcheck, and no check is running. The task asked for submission once final, so I'll confirm.