Pages serves the SPA shell only (~500-1000 files): HTML, JS, CSS, WASM,
docs. Changes only on code deploys. R2 serves all dynamic data via custom
domain: replays (~130K files at 90d retention), leaderboard, bot profiles,
matches, evolution status, blog posts, thumbnails, cards. R2 is also the
data bus for Rackspace agents — same files browsers read are what workers
write. Added detailed file layout for both, data loading pattern with
cache headers, and updated architecture diagram showing the three-way
data flow (Worker materializes D1→R2, Rackspace writes to R2, browser
reads from R2).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
evolution observatory, narrative engine
New section 14 + Phase 10:
- Weekly meta report as auto-generated blog posts on /blog with
LLM-enhanced narrative sections (~$0.05/week)
- Public match data as documented static JSON file paths in R2,
no Worker API needed; versioned replay format spec
- Accessibility suite: Tol color-blind palette, shape-per-player,
keyboard shortcuts, high contrast, reduced motion, screen reader
transcript, focus indicators
- Live evolution observatory: evolver writes live.json to R2 every
cycle (~20 writes/hr), page polls every 10s, renders island status
+ candidate pipeline + activity feed + lineage tree + meta chart
- Narrative engine: weekly story arc detection (rise, fall, rivalry,
upset, evolution, comeback), LLM-generated 200-word chronicles
published as blog posts (~$1.30/month)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
embeds, playlists, predictions, map evolution, series, event timeline,
seasons, bot cards
New section 13 (10 features) + Phase 9:
- Bot debug telemetry: optional structured debug field in move response,
rendered as targets/heatmaps/reasoning in the replay viewer
- Three replay view modes: dots, Voronoi territory, influence gradient
- Embeddable replay widget (~50KB iframe, OG tags, query params)
- Auto-curated playlists: Closest Finishes, Upsets, Comebacks, etc.
- Prediction system for non-coders (within CF free tier: ~864 writes/day)
- Map evolution with breeding, engagement scoring, positional fairness
monitoring, and user voting (upvote/downvote maps)
- Multi-game series (bo3/bo5/bo7) across different maps with spoiler toggle
- Match event timeline with clickable icon ribbon
- Seasonal rotations with backward-compatible rule versioning (additive
changes only: new optional fields, param tuning, new tile types that
old bots can ignore), championship brackets, season archives
- Bot profile cards as shareable PNGs with OG tags
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reworked sandbox to use separate WASM modules per bot instead of JS
function callbacks. Each bot compiles to its own WASM with a standard
init/compute_moves/free_result interface. Supports Go, Rust, TS natively;
PHP/Java bots reimplemented in Go for WASM. Memory budget 30-105MB
depending on player count. Two user modes: TS quick-start in Monaco
or upload pre-compiled .wasm file.
Dropped what-if replay branching — good in theory but the split-pane
counterfactual UI is a power-user feature that would confuse casual
visitors. Not worth the complexity.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
AI commentary, clip maker, rival detection, community feedback
New section 12 covers seven features with Phase 8 for implementation:
- In-browser WASM sandbox (1 WASM engine + JS bots, ~30-50MB, <2s)
- Win probability graph via Monte Carlo rollout + critical moments
- What-if replay branching (single WASM, state injection, split-pane)
- Selective AI commentary for featured/rivalry/milestone replays
- Clip maker with GIF/MP4 export for Twitter, TikTok, IG, Discord
- Automatic rival detection with template-generated narratives
- Community replay feedback tagged by turn, feeding evolution hints
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Architecture split: Cloudflare Pages (static site), Worker (API + cron
scheduling), D1 (SQLite database), R2 (replays + JSON indexes, zero
egress) — all within the free tier with 95%+ headroom on every quota.
Rackspace Spot handles match workers, bot containers, and the evolution
pipeline — all stateless and interruptible. Includes D1 schema, Worker
cron design (matchmaker, indexer, health checker, reaper), R2 bucket
layout, free tier usage math, and graceful degradation model. Drops
infrastructure cost from ~$65-110/mo to ~$35-70/mo.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All platform data is now JSON files on disk served directly by Nginx.
Workers submit results to the scheduler over Tailscale HTTP, scheduler
writes to the data directory. No object store, no S3 API. Scheduler
coordinates jobs via HTTP endpoints backed by SQLite. Data directory
is a persistent volume on the stable instance.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Major changes:
- Website is now a static site loading JSON from object store, no app server
- Removed PostgreSQL, Redis, PgBouncer, read replicas — replaced with Minio
(S3-compatible) for all data and SQLite on the scheduler for bookkeeping
- Registration is a minimal 3-endpoint API, no user accounts needed
- Match job coordination via file moves in Minio (no message broker)
- All user-facing data is pre-built JSON fetched client-side
- Single stable instance runs everything except match workers
- Spot workers are fully stateless — site stays up when all are reclaimed
- Added cost model (~$65-110/mo excluding LLM API)
- Simplified monitoring to match the architecture
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New section 10 covers the full evolution pipeline: FunSearch-style island
model for population diversity, LLM ensemble (fast+strong) for candidate
generation, multi-stage validation (syntax, schema, nsjail sandbox),
evaluation arena, Nash equilibrium promotion gate (LLM-PSRO), automated
container build/deploy, retirement policy, and evolution dashboard with
lineage viewer and meta tracker. Phase 7 added to implementation plan.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Each of the six built-in strategy bots is now implemented in a different
language (Python, Go, Rust, PHP, TypeScript, Java) to demonstrate that
the HTTP protocol is truly language-agnostic. Added per-language container
templates, resource specs, and forkable starter kit repos for participants.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Covers game mechanics (toroidal grid, focus-fire combat, energy economy,
fog of war), HTTP communication protocol with HMAC authentication, six
built-in strategy bots as containers, Glicko-2 tournament system, compact
JSON replay format with Canvas-based browser viewer, web platform with
bot registration, and Rackspace Spot deployment architecture. Organized
into six implementation phases from core engine through production.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Research covers game mechanics, bot protocol, tournament/ranking,
replay system, infrastructure, and successor platforms. Requirements
document captures the HTTP-based bot communication model, 3-second
timeout, strict schema enforcement, and replay visualization needs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>