Pokémon Random Battle
- Score
- 0.0
- Wallet spend
- $0.34 of $10
- Model cost
- $8.40
- Agent time
- 4h 2m
- Steps
- 273
- Tokens in / out
- 26.2M / 267k
- Self-checks
- 1 passed of 1 used
- Rank at $10 wallet
- 4th of 14
Score
0.0raw metric 0.4837
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
- 1451
- draws
- 0
- losses
- 1549
- capped_games
- 0
- opponent_forfeits
- 0
- move_timeout_forfeits
- 0
- paired_standard_error
- 0.0085
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 with no checkpoint. architecture.json sets base_model and base_revision to none and lists the
This is a search-only bot with no checkpoint. architecture.json sets base_model and base_revision to none and lists the reused code separately: Foul Play at revision 6c467c08 (GPL-3.0, vendored in vendor/fp), the poke-engine 0.0.48 wheel and the priors JSON, each with a sha256. The trajectory supports these claims. In step 7 the participant extracted /task/public/foul-play.tar.gz. In step 136 they copied /workspace/dev/fp into output/vendor/fp along with the priors and the src files. In step 135 they copied the organizer's engine wheel and its sha256 matched. I found no Edit or Write calls on the vendored fp tree. The trusted audits approve the poke-engine wheel and the PyPI dependency wheels. No training was performed, no weight files were shipped, and the weight inventory is empty, which matches the declared approach. The project's own wrappers (src/policy.py adapters and src/mysearch.py's in-process search) are readable and described accurately.
✓actual served policyserve.sh installs the vendored wheels offline, sets policy=fp2 and agg=visits_argmax, and runs src/serve.py. POST /act s
serve.sh installs the vendored wheels offline, sets policy=fp2 and agg=visits_argmax, and runs src/serve.py. POST /act sends each game to a forked worker (policy_route.route_key). The worker calls policy.decide, which parses public_log plus the request into a Foul Play Battle (get_battle/_fresh_battle). It then handles forced moves, uses revival search when Revival Blessing applies, and otherwise calls mysearch.find_best_move_inproc. That function draws hidden-information samples via mode.prepare_battles and runs poke_engine.monte_carlo_tree_search locally. The chosen move is mapped back to a legal_actions index. The only other path is a fixed-weight heuristic over the supplied action_features, used on timeouts or errors. The 'fpw' diagnostic branch is not reachable with the shipped config. No remote service is called, and every decision path is declared in architecture.json and PROVENANCE.md.
✓permitted informationInference reads only these observation fields: player, public_log, request, legal_actions and action_features. Beyond th
Inference reads only these observation fields: player, public_log, request, legal_actions and action_features. Beyond that it uses public game data: Foul Play's pokedex and moves data and the organizer's public random-team priors. The serving code has no network calls, no simulator or process inspection, no access to the opponent's private state or RNG, and no detection of test cases or cached answers. The cache keys are built from the player's own team in the request, and they are used only to update parsing incrementally. Development used freshly generated dev seeds against the public Foul Play opponent, which the policy allows.
✓harness credentials used only by the harnessI searched the trajectory for API_KEY, BASE_URL, anthropic, openrouter, printenv, env dumps and claude CLI calls, and fo
I searched the trajectory for API_KEY, BASE_URL, anthropic, openrouter, printenv, env dumps and claude CLI calls, and found no participant use of the harness credentials. The only credential activity is Spin's documented workflow: spin compute create/exec/upload, and spin transfer credentials --read-only with the session file uploaded to the rented VM (trajectory#122, trajectory#123). That is the participant's own Spin allowance and is allowed. No harness keys were echoed, copied or used, and no extra harness sessions were launched.
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 1 of 4.
- 1passed3h 57m into the runtook 2m 51s
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.94 s round trip on this side with the transport: [5, 7, 3, 7, 5, 5, 7, 11, 10, 11, 7, 0, 9, 11, 9, 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), 88 finished games replaced by further development-seed matchups, against the pinned Foul Play: 3540 observations, 24-32 per batch, up to 324 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 324 KB; the first a cold batch of 32) on the trusted in-sandbox move timer; median 0.776 s, p95 0.779 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.776 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 verified. Submitting: