From d639c9a112cd4955b2fdaa0d20ed218fd034e193 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 8 Sep 2026 13:39:30 -0400 Subject: [PATCH] lane E3: the prediction's outcome, leaf for leaf 204 -> 158 and 103 -> 87, closed 46 and 16, regressed 0 -- the predicted table line for line, including the 32-leaf target in full. Three further pairs the model was never fitted to close 42, 12 and 12 with zero regressions; 128 leaves across five pairs. The AFlags-vs-VFlags falsification is decided on a real save rather than in a comment: running the engine on zuul-turn23-fleet23 reproduces the frozen stamp at the one system whose active mask is clear while its sticky and explored masks are not. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01ARBgSooAfokKUy6wKUKEyZ --- .../system-visibility-prediction.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/findings/subsystems/system-visibility-prediction.md b/findings/subsystems/system-visibility-prediction.md index 719a800..9c86022 100644 --- a/findings/subsystems/system-visibility-prediction.md +++ b/findings/subsystems/system-visibility-prediction.md @@ -104,3 +104,56 @@ Each of these is a way the model is wrong and the symptom that would show it. * `rcex` (6 leaves per pair). Unexplained. * `NVs` / `PlayerView`. Count 0 on both reference pairs; the `PlayerView` refresh loop is a separate phase and no leaf of it diverges on either pair. + +--- + +# Measured + +Run after the build, against the prediction above, which was committed in `55ea86f` before +any engine file existed. Engine branch `wip/visibility`, host `ctest` 46/46, clean-room OK, +shim cross-built on CT111 with exports byte-identical. + +| pair | baseline | after | closed | regressed | +|---|---:|---:|---:|---:| +| `turn1-state -> turn2-state` | 204 | **158** | **46** | **0** | +| `turn2-state -> turn3-state` | 103 | **87** | **16** | **0** | + +Closed, by leaf name — the prediction's table, line for line: + +``` +turn1 -> turn2 EPid 8 ETS 8 Eid 8 NVE 8 (= the brief's 32) ltis 8 EFlags 6 +turn2 -> turn3 ETS 8 ltis 8 +``` + +`tools/standalone_report.py`'s own numbers, whose baseline is the do-nothing distance from +the input save rather than from main, are **209 -> 158 (closed 51, regressed 0)** and +**108 -> 87 (closed 21, regressed 0)**; the five-leaf difference in each is what main had +already closed. + +## Three pairs the model was never fitted to + +Rule 2's strong form. None of these was looked at while the model was being built; the +`human-*` pair is a different game on a different map with a different species mix. + +| pair | baseline | after | closed | regressed | +|---|---:|---:|---:|---:| +| `human-turn2-orders -> human-turn3-noderoute` | 353 | 311 | 42 (21 `ETS`, 21 `ltis`) | 0 | +| `zuul-turn15-orders -> zuul-turn16-noderoute` | 276 | 264 | 12 (6 `ETS`, 6 `ltis`) | 0 | +| `zuul-turn16-noderoute -> zuul-turn17-orders2` | 341 | 329 | 12 (6 `ETS`, 6 `ltis`) | 0 | + +**128 leaves closed across five pairs, 0 regressed.** + +## The falsification that mattered + +The `AFlags`-vs-`VFlags` case is the one the reference pairs could not decide, and it is +decided. Running the engine on `zuul-turn23-fleet23.sav` reproduces the freeze on the save +itself: every observed system's stamp moves to 24 and Bismol's — sticky mask 2, explored +mask 2, **active mask 0** — stays at 22, in both `ETS` and `ltis`. A `VFlags` or `EFlags` +model moves it to 24. That row is also a host test (`tests/game_sim/test_visibility.cpp`, +`test_bismol_freeze`), which asserts the freeze *and* asserts what the wrong gate would have +produced, so a later edit that swaps the mask fails loudly rather than quietly agreeing with +the five pairs above. + +None of the other falsification cases fired. The remaining ones — the two `Eid` derivations +and the map ordering — are exactly the ones the section marked "**symptom:** none available", +and they are still not settled; §8 of the model doc names the workloads.