diff --git a/docs/re/script-runtime-probe.md b/docs/re/script-runtime-probe.md index acf74fe8..7962e185 100644 --- a/docs/re/script-runtime-probe.md +++ b/docs/re/script-runtime-probe.md @@ -181,3 +181,47 @@ the `else` branch is the only way to reach phase 2, and it requires **Still not observed: a phase ADVANCE.** Five attempts. The obstacle is no longer the freeze or the instrument — it is keeping the escort alive long enough to win. + +## 🔴 2026-08-25 — the "win the mission" route is not converging + +Two more attempts, and the honest summary is that flying to a phase *clear* is +the expensive way to test the prediction. + +**The pilot's gun-fire rate is 1.6 %** — 81 fire frames in 4986 samples — but +that is *not* the blocker it looks like. The nose gun is Power 15 unguided; the +main mount is Power 200 **guided**, and the pilot fired ~70 missiles in ~500 s. +The damage is coming from missiles, and `fire=` in the log only tracks the gun. +Worth writing down because the log invites the wrong conclusion. + +**`SYLPH_KILL_TURRETS=1` made things worse, not better.** The idea was to align +DEFEND with the objective by letting it kill turrets attacking the escort. +Measured: **3387 of 11112 samples (30 %) chased a target more than 20 000 units +away** — turrets are static and spread across the map, so the pilot commits to +distant ones and stops defending anything. The escort still fell to 48.5 %, and +**no additional objective squadron died**. Refuted as an improvement. + +**Both runs ended the same way as before:** `ADN111` destroyed (again — it is +evidently the one closest to the action), `ADN110` and `ADN112` untouched at +state 2, no phase advance. **Six attempts now.** + +### 🟡 The bounded scan delays freezes but does not remove them + +| bounded-scan run | outcome | +|---|---| +| 1 | clean to 694 s, ended by the mission's own lose branch | +| 2 | **froze at ~682 s** | + +Against 3-of-3 frozen inside ~4 minutes with the unbounded sweep, that is still a +large improvement — but "the sweeps were the cause" is too strong. They were *a* +cost; something else also freezes runs at ~11 minutes. + +### The cheaper experiment to run instead + +Stop trying to win. The prediction is that `finished` goes to 1 with +`[phase+300] != 2` when ADN110/111/112 all reach state 4. Guest memory is +writable (`tools/re-capture/gpoke.py`), so **set the two surviving squadrons' +`+16` to 4 directly and watch whether the phase ends and the ordinal steps to +2.** That tests the condition in seconds rather than fighting a mission the +autopilot is not good enough to win, and a wrong answer is as informative as a +right one — if nothing happens, the condition is not what the bytecode reading +says.