Ten done-items with proofs and a build order: chunkwise generation, generator repair, agents in the log, per-agent frontier and territory, region-scoped observe, LOD tilemap viewer, replay timeline, analyzer, ink pass, a fresh agent on a field. Status of the v2 items under it.
- commit
- e03d5a6a3bd814757e235cf4221461c275129a76
- parent
- 8fcb576cde71cc332c49ab9700d14abf17b04e83
- author
- dami <gazey55@gmail.com>
| M | PLAN.md | 80 | ++++++++++++++++++++++++++++++ |
@@ -291,6 +291,86 @@ observe/reveal/commit". Point Claude Code or Codex at it and open the page.
291291 - `gen` and the viewer both work at `X=2` and `X=15` (the agent only has to292292 play the 2x2; the envelope has to render and replay at both ends).293293 294+## Current goal (set 2026-08-26): complete the specced field295+296+Everything decided today is specced but not built. This goal is to build297+it, in order, on localhost, each step proven, so that the phase-3 public298+site is a deployment of finished parts and not a design exercise.299+300+**Goal: a daily-sized field (9x9 chunks of G=60), generated chunkwise in301+minutes, played by several agents placed at random with per-agent302+frontiers and territory, watched on a level-of-detail tilemap viewer303+with a real replay timeline, measured by the analyzer, on localhost.**304+305+The demo moment: `deno task dev` prints the bootstrap prompt. Start it306+in three agents; each lands at a random spot on today's field; watch307+the three territories grow in three hues, meet, and merge; zoom from308+territory (L0) to shape (L1) to values (L2) to lines (L3); scrub the309+timeline to the meeting; open the analysis pane and read who guessed310+more.311+312+Done means all of these, each with a test or a command that proves it:313+314+1. **Chunkwise generation (6a).** `gen --context` accepts prefilled cells315+ with their owning tiles; a `field` subcommand plans a checkerboard of316+ chunks, runs them as processes (evens, then odds), merges manifests317+ with offset ids. Proof: a 2x2 of G=60 chunks passes every assertion318+ re-verified from the merged JSON and has one coupled solution; a 9x9319+ of G=60 generates in under 10 min on the Mac; determinism per seed320+ regardless of parallelism.321+2. **Generator repair.** The G=200 failure ("alternative differs inside322+ no overlap region" after regiven) is repaired in place, not by323+ restarting the attempt. Proof: seed a at G=200 scatter, one attempt.324+3. **Agents in the log.** A `join` event with `agent` (machine id or a325+ provisional one), harness from MCP `clientInfo`, reported model, and326+ tags; every write event carries `agent`. `start_mosaic` becomes327+ `join { field }`; the seed tile per agent is drawn at a random328+ uncovered-frontier spot. Proof: two clients on one field produce one329+ log whose writes are attributed; replay == live.330+4. **Per-agent frontier and territory.** An agent reveals only tiles331+ overlapping tiles it solved, until its region touches another's;332+ regions merge; a `meet` event is recorded. Ownership for colouring is333+ per agent. Proof: referee tests for the gating and the merge; the334+ analyzer records territory share per agent over time.335+5. **Region-scoped observe.** `observe { agent | rect }` returns the336+ agent's tiles plus a radius (or a viewport); the whole field is never337+ in one MCP response at daily size. Proof: observe at the 9x9 field is338+ under 64 KB.339+6. **Tilemap viewer with levels of detail.** L0-L3 as decided; map tiles340+ rasterised once per level and cached, dirtied per event; SSE per341+ chunk in view; hue per agent. Proof: the 9x9 field renders and pans342+ at 60 fps at every level in the dev browser; a replay scrub redraws343+ only dirty map tiles (counter in the console).344+7. **Replay timeline.** Event-density timeline, markers (tile solved,345+ meet, guess runs), playback speed, follow-agent. Proof: the demo.346+8. **Analyzer (v2 item 3).** Analysis in the fold: guess rate,347+ reveal-to-commit, retractions, reward per batch, territory per agent,348+ frontier strategy, per-agent summaries. Proof: live == replay349+ analysis at every revision; the scripted client's BFS/DFS modes are350+ told apart.351+9. **Ink and calm.** The dark-theme discs are heavier than the352+ calm-water brief; one pass on ink weight and transitions, checked in353+ screenshots at L1/L2.354+10. **A fresh agent plays a field.** Claude Code or Codex from the printed355+ prompt, on a scatter field, no help. Proof: its log.356+357+Out of scope for this goal: identity (machine keys, shoo.dev, `/link`),358+the calendar, R2, the domain and the name, paired-trial compare page359+(v2 item 4; the analyzer's per-agent summaries cover most of it), `k`360+(v2 item 5), the tile library (v2 item 6; chunkwise generation replaces361+its purpose for now).362+363+Build order: 1 -> 2 -> 3 -> 4 -> 5 -> 8 -> 6 -> 7 -> 9 -> 10 (the analyzer364+before the viewer so the viewer has something to show; ink last so it is365+judged on the final marks).366+367+### Status of the v2 items under this goal368+369+1 real packed run: done (v2 packings and v3 scatter fields played, logs370+on disk). 2 run tags: folded into item 3 above. 3 analyzer: item 8.371+4 paired trials: deferred. 5 `k`: deferred. 6 library: replaced by 6a372+(item 1 above). 7 envelope: G=1000 render becomes item 6's 9x9 field.373+294374 ## Phase 2 (v2) — same board, two agents, measured295375 296376 Manifest v2 (packed tiles of mixed size, zones, segments, reward) is built