Reported issues for PokéArena
Pod holds 12 of 12 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to PokéArena.
Most discussed
Self destruct moves doesn't work as intended
user doesn't drop to 0 hp. it just treats it like a normal move.
Read the thread · 2026-05-27 · closed · 1 comment
Engine: Pokemon abilities
Status: not started — placeholder
Gen 1 baseline has no abilities. Tracking issue for adding ability slots to species, ability lookup at battle start, and the per-ability trigger hooks the engine would need (on-switch-in, on-damage-taken, modify-stat, etc.).
Scope, design, and acceptance criteria not yet written.
Read the thread · 2026-05-24 · closed · 1 comment
Team builder: explicit moves per Pokemon
Status: not started
Why: Right now teams are []int of dex IDs and the engine picks 4 moves from the
learnset. For competitive play (and especially Pv-Claude) both sides need real
agency over movesets — a Tauros with Body Slam / Hyper Beam / Earthquake / Blizzard
is a different Pokémon from one with Tackle / Growl / Stomp / Leer.
Schema:
type TeamEntry struct { Dex int; Moves [4]string }
type Team []TeamEntry // 1..6 entries; Gen 1 so no items/abilities
UI: Clickin
Read the thread · 2026-05-24 · closed · 1 comment
MCP: clarify wait()/phase semantics for simultaneous turns
Status: not started
Why: The current contract is "Wait returns ready when it's your turn
to act" — fine in the abstract, but the engine resolves both sides'
choices simultaneously in PhaseChoosing, and during PhaseReplace
only the side(s) with a fainted active need to act. The view doesn't
distinguish three real cases an agent should care about:
- You need to choose this turn, opponent also choosing — your call is blind to their choice (the common case).
- You need to ch
Read the thread · 2026-05-24 · closed · 1 comment
Add cmd/pokearena-agent: reference agent harness (direct WS, provider-pluggable, BYO key)
Background and full rationale: docs/agent-harness.md. This issue is the actionable build.
Goal
Ship a standalone binary that anyone can run to play a PokéArena battle with an LLM of their choice. It is the example answer to "how do I plug in an LLM"; the system answer is "speak the gateway WS protocol."
Depends on #17 (drop LLMAgent) — these are sister changes but neither blocks the other strictly.
Shape
Two pieces:
`internal/agentl
Read the thread · 2026-05-25 · closed · 0 comments
MCP: handle fog of war better
we should reveal info + state of the battle as they are revealed. for example, if opponent uses a move - then you know that the pokemon has that move. We should figure out how to make this better.
Read the thread · 2026-05-24 · open · 0 comments
Claude as team drafter (MCP propose_team)
Status: not started
Why: If both sides can be Claude, both sides need to be able to build a team too — not just play one we hand them. "Blind drafting" (neither side sees the other before lock-in) falls out for free if we don't broadcast the team.
Surface: MCP tool propose_team(slots int) → Team returning a legal team
(species in dex, moves in each species's learnset). Server validates and either
accepts or returns the validation error so the agent can retry.
*Open question:
Read the thread · 2026-05-24 · open · 0 comments
Disconnect detection (30s grace → forfeit)
Status: not started
Why: If a trainer's WS drops mid-battle (Claude's MCP server crashes, browser tab closes, network blip), the other player is stuck waiting for an opponent who will never act. Some form of "are you still here?" is needed regardless of Pv-Claude — the human-vs-local-AI mode also benefits.
Explicitly NOT in scope: per-turn shot clock. Pokémon has no pass action; inventing one adds rules without earning them. A player taking 10 minutes to think is fine; a player who
Read the thread · 2026-05-24 · open · 0 comments
Most recent
MCP: damage-range prediction per legal move
Status: not started
Why: Stat numbers in the view (Atk 154, Def 115, …) and a move's
base power are sufficient in principle to compute expected damage,
but the agent has to know the engine's exact damage formula, RNG range,
and effective level scaling. In practice, an agent's mental model
diverges from the engine by an order of magnitude until it gets enough
observed turns to back-fit a multiplier — by which point the battle is
half over and several decisions were made on bad numb
Read the thread · 2026-05-24 · open · 0 comments
MCP: include move metadata in the view
Status: not started
Why: engine.MoveSlot exposes only {move_id, pp, max_pp} to the
agent. To decide between, say, outrage and dragon-claw, the agent has
to recall from training data the base power, type, accuracy, and
physical/special category of each move. This is fragile in two ways:
- The agent's memory of move stats is generation-dependent. Crunch is special in gen 3, physical in gen 4+ — get the gen wrong and damage models are wildly off.
- As the move dex evolve
Read the thread · 2026-05-24 · open · 0 comments
MCP: expose the legal-action list on the view
Status: not started
Why: Today the agent reconstructs the legal action set from
phase, replace, the active Pokémon's moves[*].pp, and which team
members are unfainted. The logic to do this correctly already exists
server-side as ai.legalActions(view) (internal/ai/agent.go) — it's
used by the in-process harness AI but not exposed over the MCP surface.
So the agent reimplements it from the view, badly, and the gateway
catches the failures with errNotYourTurn / illegal-action
Read the thread · 2026-05-24 · open · 0 comments
MCP: surface the per-turn event log to the agent
Status: not started
Why: Today the agent sees only a BattleView snapshot before/after each
turn and has to reverse-engineer what happened by diffing HP/PP/active-index
fields against the previous snapshot. That breaks in real cases:
- Foe switches Active A out for Active B and the attacker hits B on the switch-in — looks identical to "A fainted, B replaced" if you only diff the snapshot. (Seen in practice: an agent claimed a KO that never happened, then mis-modeled the rest of
Read the thread · 2026-05-24 · open · 0 comments
The remaining reports are on the project's issue tracker.