Three features requested by Andrew Freiberg (physical-game player) and
refined by Seth, bringing digital blind chess closer to the physical
table:
1. Moderator announces every move and attempted move to both players
(widen announcement audience to 'both'; suppress bot retry churn).
2. Running capture tally (server-derived per-viewer protocol field).
3. Phantom opponent pieces — a client-local, drag-and-drop opponent-model
overlay, blind mode only, never sent to the server.
Spec only; no implementation. Phased: F1+F2 then F3.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- DECISIONS.md: in-game chat (player↔player and human↔Gemma) deferred
indefinitely. Blind-mode chat is a side channel that defeats the
moderator-vocabulary security boundary; chat with Gemma leaks belief
state mid-game. Resolvable but expensive — revisit only on demand.
- Spec: same deferral noted in "Out of scope".
- New plan: docs/superpowers/plans/2026-04-28-ai-player-phase-1-casual.md
— 13 tasks, 80 sub-steps. Phase 1 only (Casual bot end-to-end). Phase 2
(Recon) gets its own plan once Phase 1 outcomes inform Recon's target.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two-phase plan: Casual bot first (algorithmic, ~200 LoC), then Recon bot
(gemma4:26b chat agent) with persistent private chat history per game.
Bots play through the same view filter and FSM as humans — no oracle access.
Endpoint priority: steel141 RTX 3090 Ti primary, pve197 V100 fallback. Mid-game
GPU failover allowed (one-way). Reasoning hidden from user during play, revealed
in collapsible post-game panel.
Reverses the 2026-04-28 DECISIONS.md row "Client-side AI / hint generation —
explicitly out of scope." Reversal is partial: human-vs-human hint generation
remains rejected; this spec only adds AI in the human-vs-AI path.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>