Pokémon Random Battle
- Score
- 1.0
- Wallet spend
- $13.47 of $50
- Model cost
- $40.68
- Agent time
- 2h 41m
- Steps
- 153
- Tokens in / out
- 34.8M / 212k
- Self-checks
- 3 passed of 3 used
- Rank at $50 wallet
- 5th of 14
Score
1.0raw metric 0.505
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
- 1515
- draws
- 0
- losses
- 1485
- 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 declares base_model and base_revision as none and training_performed as false. It declares Foul Play (
architecture.json declares base_model and base_revision as none and training_performed as false. It declares Foul Play (pmariglia/foul-play) as reused code at a pinned revision, plus the poke-engine 0.0.48 wheel with a sha256. A trusted audit approved that wheel and confirmed the sha256 matches. The Foul Play source is vendored under foul-play/. The only data is foul-play-priors.json, declared as copied from the organizer's /task/public, and the trajectory confirms it (trajectory#37). There are no learned checkpoints. Per DEVELOPMENT.md, development was dev-seed A/B selection of search settings with no training. Policy explicitly allows existing bots, including Foul Play, and search-only bots without a checkpoint.
✓actual served policyserve.sh installs the bundled wheels offline (--no-index) and execs bot/server.py. server.py sends each /act request to
serve.sh installs the bundled wheels offline (--no-index) and execs bot/server.py. server.py sends each /act request to local engine_worker.py subprocesses. Those workers rebuild the battle with bot/reconstruct.py using Foul Play's parser, then bot/policy.py samples hidden sets from local priors and runs poke_engine.monte_carlo_tree_search. The chosen action is restricted to legal actions. Forced moves are answered directly, and on a deadline or error the server uses the local bot/fallback.py heuristic. The best-response path is optional, disabled by default, and also local (expectiminimax). No remote decision service or undeclared decision path was found.
✓permitted informationDecisions use only obs public_log, the player's own request, legal_actions and action_features. Hidden opponent sets are
Decisions use only obs public_log, the player's own request, legal_actions and action_features. Hidden opponent sets are sampled from public priors. There is no access to opponent private state or the simulator RNG. Serving makes no network calls: priors are loaded from the local file, not Foul Play's remote fetch, and Foul Play's websocket path is unused. The content fingerprint is used only for the reconstruction cache and worker affinity, not to detect tests or replay cached evaluation actions. Development used fresh public dev simulation seeds, which policy allows.
✓harness credentials used only by the harnessTrajectory searches for API keys, base URLs, printenv/env and provider endpoints found no reading, copying or use of har
Trajectory searches for API keys, base URLs, printenv/env and provider endpoints found no reading, copying or use of harness credentials. Network activity was limited to Spin compute rentals for dev A/B tests (allowed), localhost curl calls and package installs on rented machines. The shipped serving code reads no credentials.
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 3 of 4.
- 1passed36m 4s into the runtook 2m 37s
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.88 s round trip on this side with the transport: [5, 7, 3, 7, 5, 5, 7, 11, 11, 9, 7, 0, 9, 11, 1, 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), 86 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3538 observations, 25-32 per batch, up to 328 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 328 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.768 s, p95 0.774 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.769 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 6m into the runtook 3m 10s
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, 0.99 s round trip on this side with the transport: [1, 7, 3, 7, 5, 5, 7, 11, 10, 9, 7, 0, 9, 11, 2, 11, 9, 11, 5, 9, 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: 3542 observations, 24-32 per batch, up to 344 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 344 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.746 s, p95 0.767 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.749 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 38m into the runtook 3m 1s
startup 2.0 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.0 s
- ✓POST /act, round 1 · 32 opening decisions answered with legal actions, 1.01 s round trip on this side with the transport: [1, 7, 3, 7, 5, 5, 7, 11, 10, 11, 7, 0, 9, 11, 1, 11, 9, 11, 5, 7, 5, 11, 11, 9, 0, 11, 5, 0, 0, 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), 85 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3528 observations, 24-32 per batch, up to 328 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 328 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.750 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.752 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 submission folder matches the final self-checked copy (88 files, 7.2 MB). Submitting now.