Pokémon Random Battle
- Score
- 0.0
- Wallet spend
- $169.36 of $200
- Model cost
- $19.03
- Agent time
- 9h 16m
- Steps
- 486
- Tokens in / out
- 59.1M / 705k
- Self-checks
- 4 passed of 4 used
- Rank at $200 wallet
- 4th of 14
Score
0.0raw metric 0.4943
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
- 1483
- draws
- 0
- losses
- 1517
- capped_games
- 0
- opponent_forfeits
- 1
- 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 'none'. It also declares the reused code: Foul Play at a pinned commit (unchanged,
architecture.json declares base_model 'none'. It also declares the reused code: Foul Play at a pinned commit (unchanged, shipped as vendor/foul-play.tar.gz), the poke-engine 0.0.48 wheel and a pinned Showdown. The trajectory shows the Foul Play archive and priors were copied directly from the task-provided /task/public. Trusted audits approve the poke-engine and Showdown archives. The model/value.safetensors tensor inventory matches the attention architecture implemented in value_model.py and described in model/value-config.json. Tensor names and shapes match: two blocks, field_input [64,117], pokemon_input [64,126] and head layers 448→128→64→1. model/training-log.json records random initialization with seed 901384, 8 epochs, and the legal self-play corpus with its generator seeds. training/train_value.py seeds torch and numpy from args.seed. The self-play and team-prior corpus sources are declared in architecture.json data_provenance. Where retained generation logs were not separately shown, they are recorded as unverified rather than missing. No undeclared base model or path was found.
✓actual served policyserve.sh installs only the shipped local wheels with --no-index, extracts the shipped Foul Play archive and execs server
serve.sh installs only the shipped local wheels with --no-index, extracts the shipped Foul Play archive and execs server.py. server.py computes a local heuristic fallback, then runs policy.decide in a local process pool under a deadline. It makes no outbound network calls. policy.decide reconstructs the battle and samples determinized worlds (stratified sampler with team priors and damage belief). It runs poke-engine MCTS per world, pools Q-values, and optionally reranks with the numpy value net loaded from model/value.safetensors (config.json value_enabled true, value_model_dir 'model'). This matches the declared architecture. No remote decision service or undeclared serving path exists.
✓permitted informationbattle_view.reconstruct uses only the observation's player, request, public_log, legal_actions and turn, plus the public
battle_view.reconstruct uses only the observation's player, request, public_log, legal_actions and turn, plus the public Foul Play priors and RandomBattleMode data. sampling.py, team_priors.py, damage_belief.py and root_value.py use only reconstructed visible state and public priors. Nothing reads hidden opponent state, validation answers or harness internals at inference. In the trajectory, validation.jsonl appears only in directory listings. The /task/validate.py run is an interface check. training/compare.py evaluates on fresh dev seeds it generates itself.
✓harness credentials used only by the harnessTrajectory searches for API_KEY, BASE_URL, openai, anthropic, codex exec, curl and printenv found no participant use or
Trajectory searches for API_KEY, BASE_URL, openai, anthropic, codex exec, curl and printenv found no participant use or copying of harness credentials and no extra harness CLI sessions. Matches were limited to harness prompt text, Foul Play source output and localhost curl health checks against the local server. The shipped code makes no reference to harness credential environment variables.
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.
- 1passed12m 50s into the runtook 5m 44s
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.72 s round trip on this side with the transport: [5, 7, 3, 7, 5, 5, 7, 11, 10, 11, 7, 0, 9, 11, 7, 11, 9, 11, 5, 7, 5, 11, 11, 9, 0, 11, 5, 0, 0, 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: 3551 observations, 23-32 per batch, up to 319 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 319 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.631 s, p95 0.638 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.629 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 15m into the runtook 2m 29s
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.90 s round trip on this side with the transport: [5, 7, 3, 7, 0, 5, 7, 11, 10, 9, 7, 0, 9, 11, 1, 5, 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), 93 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3516 observations, 24-32 per batch, up to 306 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 306 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.802 s, p95 0.815 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.796 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
- 3passed9h 1m into the runtook 2m 40s
startup 2.1 s of 300 s; 1/1 gates passed; WARNING move response within 1 s: 1 of 124 POST /act responses (22-32 observations, up to 338 KB; the first a cold batch of 32) took longer than 1 s on the trusted in-sandbox move timer; median 0.840 s, p95 0.874 s. Grading forfeits every game in a l
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 2.1 s
- ✓POST /act, round 1 · 32 opening decisions answered with legal actions, 1.05 s round trip on this side with the transport: [5, 7, 3, 7, 0, 5, 7, 11, 11, 11, 7, 0, 9, 11, 9, 5, 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), 94 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3559 observations, 22-32 per batch, up to 338 KB per request, every answered action legal; not scored
- ✓move response within 1 s · 1 of 124 POST /act responses (22-32 observations, up to 338 KB; the first a cold batch of 32) took longer than 1 s on the trusted in-sandbox move timer; median 0.840 s, p95 0.874 s. Grading forfeits every game in a late batch (each counts as a loss) and plays on, so this slice lost 28 games that way. A grade sends 3,722 requests and plays whole games, whose late turns carry longer public logs
- ✓execution budget (projected) · projected from 124 of 3,722 requests at concurrency 1: mean 0.839 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
- 4passed9h 11m into the runtook 4m 10s
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.29 s round trip on this side with the transport: [1, 5, 3, 7, 5, 5, 7, 11, 9, 9, 7, 0, 7, 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), 83 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3548 observations, 25-32 per batch, up to 322 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 322 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.694 s, p95 0.739 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.694 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.
Submitted /workspace/output/.
- Stateless batched
POST /actwith native MCTS, opponent-set inference, and a trained attention value model. - Offline dependencies, readable source, training logs, and provenance included.
- Public validation: zero late batches.
- Final selfcheck: all actions legal; slowest batch 0.780 seconds, below the 1-second limit.