docs(@projects/@magic-civilization): 📝 update screenshot evidence details

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Natalie 2026-05-12 12:07:07 -07:00
parent 8fc97ffaed
commit f84a531340

View file

@ -78,9 +78,13 @@ Document explicitly in the proof scene's docstring:
`get_viewport().get_texture()`; weston-headless backend gives a real
GL context and `Image.save_png` succeeds.)
- ✓ Captures 6 screenshots minimum (turns 0, 5, 10, 15, 20, 25).
Evidence: 26 PNGs (turn-00 through turn-25, every turn) at
`.local/demo-runs/2026-05-12-phase13-screenshots/turn-NN.png`, each
1920×1080 RGBA, ~1.06 MB.
Evidence: 52 PNGs at
`.local/demo-runs/2026-05-12-phase13-screenshots/turn-NN-{overview,capital}.png`,
every turn from 0 to 25, each at two zoom levels (overview = full
map bbox, capital = 9-tile window around Claude's starting capital
so individual units and city sprites are unambiguously visible).
Each PNG is 1920×1080 RGBA with an in-frame HUD overlay reading
`Turn N • Claude (slot 0) gold X cities Y units Z [zoom]`.
- ✓ Recap markdown with per-turn action log.
Evidence: `.local/demo-runs/2026-05-12-phase13-screenshots/recap.md`
has the per-turn table with action signatures, gold, city count,
@ -93,19 +97,26 @@ Document explicitly in the proof scene's docstring:
events, view}`).
- ✓ Screenshots show real game state evolution (cities appear, units
move, scores change).
Evidence: final transcript view at line 802 shows `cities=9 units=71
tiles=960` across all 3 players (Claude: 3 cities/31 units, AI1: 3
cities/15 units, AI2: 3 cities/25 units). Renderers are wired
directly under a Camera2D with no SubViewport tiering; per-turn
`sync_units` / `sync_cities` re-pushes the rehydrated arrays. PNG
sha256 hashes differ across turns (e.g. turn-00=04dcf093 vs
turn-25=f5313add). At the duel-map zoom the unit dots are small;
the per-turn variation is verifiable byte-wise rather than at-a-glance.
Evidence: capital-zoom captures make unit + city evolution
unambiguously visible at a glance. `turn-00-capital.png` shows a
single founder unit on grassland; `turn-15-capital.png` shows the
same patch of land populated with multiple Claude warriors and the
cluster of trees that marks Claude's second city; the HUD overlay
on every PNG reads e.g. `Turn 15 • Claude (slot 0) gold 196 cities
2 units 16 [capital]`. Final transcript view at line 802 shows
`cities=9 units=71 tiles=960` across all 3 players (Claude: 3
cities/31 units, AI1: 3 cities/15 units, AI2: 3 cities/25 units).
Renderers are wired directly under a Camera2D with no SubViewport
tiering; per-turn `sync_units` / `sync_cities` re-pushes the
rehydrated arrays.
- ✓ Determinism: same seed → byte-identical transcript + per-screenshot hash.
Evidence: two consecutive `CP_SEED=42` runs on apricot produced
byte-identical `transcript.jsonl` (`cmp` exit 0) and per-turn PNG
sha256 matches across runs (turn-00..25 hashes identical run-1 vs
run-2: 04dcf093…, 8f182b0b…, 5cbd885d…, 9cc17b5d…, e1f6fb4e…, f5313add…).
Evidence: re-ran `CP_SEED=42 CP_ZOOM_MODE=both` on apricot twice;
`cmp` reports `transcript.jsonl` byte-identical across runs and
the sample `turn-15-capital.png` byte-identical across runs (PNG_OK
marker in the apricot stdout transcript). Earlier overview-only runs
also produced byte-identical PNGs across runs at the six checkpoint
turns (turn-00..25: 04dcf093…, 8f182b0b…, 5cbd885d…, 9cc17b5d…,
e1f6fb4e…, f5313add…).
- ✓ p2-67 Phase 13 closes.
Evidence: the wire-transcript-only gap in the demo deliverable is
filled. The proof scene + wrapper script ship the missing visual
@ -117,9 +128,13 @@ Document explicitly in the proof scene's docstring:
- `src/game/engine/scenes/tests/claude_vs_ai_render_proof.tscn`.
- `scripts/p2-72-option-b-render.sh` (weston-headless + flatpak Godot wrapper).
- `.local/demo-runs/2026-05-12-phase13-screenshots/`:
- `turn-00.png``turn-25.png` (26 captures, 1920×1080, ~1.06 MB each)
- `turn-NN-overview.png` (full-map bbox, HUD overlay) × 26 turns
- `turn-NN-capital.png` (9-tile window around Claude's capital,
HUD overlay) × 26 turns
- `recap.md`
- `transcript.jsonl` (802 lines / 27 MB)
- `CP_ZOOM_MODE` env on the wrapper: `overview` | `capital` | `both`
(default `both` for the demo deliverable).
## Why this size