board: lane PL decomposes /Sim/players - 53 of 54 unmodelled not mismodelled; T31 self-check corrected
This commit is contained in:
parent
a545f33cc7
commit
4ce7a1e0a7
1 changed files with 6 additions and 0 deletions
|
|
@ -309,3 +309,9 @@ Status flow: `backlog → in-progress → mapped → verified` (or `blocked`).
|
|||
| AI order emission scaffold + the submit latch | engine | verified | high | 90% | 2026-09-08 | `src/game/ai/orders.{h,cpp}` + `agent.{h,cpp}`, 233 -> **423 checks**, ctest 51/51 -> **53/53**: the command block, the order API with (fleetId, mode) dedup, the AI fleet-order bridge, BlockModCountCost/TurnModCountDelta, the 34-phase turn spine, and the two-pass walk with **pass-0 silence enforced AT THE CLIENT, not by trusting the caller**. **THE SUBMIT LATCH**: EndTurn sets client+0x15c BEFORE BuildTurnCommands, so **phases 29-33 are DEAD** - a literal port would emit AN EXTRA COLONIZE ORDER PER AI PER TURN. Two more cross-checks: **phase 2 is Hiver-only** (`cmp [player+0x5c],1` - a FIFTH independent confirmation of the species reading, and the reason gate +0x3c has never been seen set), and cl_SetResearchTarget is AI-ONLY surface with exactly one caller in the image. IT DECIDES NOTHING - which tasks exist and what each wants are board questions this module does not model (standing convention) |
|
||||
| AI4's falsifiable turn1 prediction (probe routed) | verify | in-progress | — | 0% | 2026-09-08 | Committed BEFORE the build: turn1-state should also give 12, out of a DIFFERENT command set - 4 rate gates + 3 research targets + list 1 (new design) + list 3 (build) + list 5 (rates) + 2 drivers, with NO fleet order on turn 1. **The predicted trap multiset CONTAINS TWO EIPs W2 HAS NEVER SEEN AND OMITS THREE IT DID**, so the SET discriminates and a wrong model fails visibly rather than coincidentally landing on 12. One save swap on W2's unchanged watchpoint module; routed to lane W3. Specific falsifier: does 0x0088291a (list 1) fire? That is the difference between "the engine must emit a design COMMAND" and "a design OBJECT the build order merely names" |
|
||||
| LAB EXPANDED: five Windows guests, not one | meta | verified | high | 100% | 2026-09-08 | **The single-VM constraint was shaping the work.** With one guest, VM lanes serialised and I defaulted to static analysis because static parallelises - which is exactly the habit rules 18 and 19 exist to counter, and the user had to say so twice. FIXED STRUCTURALLY: `zfs snapshot rpool/data/vm-140-disk-0@clone-base` then `zfs clone` per guest (instant, copy-on-write, ~0 extra space until divergence) + `qm create` with a fresh MAC. **VM140 (16c/12G, the reference, holds the oracle autosaves) + VM141, 144, 145, 146 (8-12c/10-12G each)**. Host has 40 cores and had 101 GB free. NOTE 142/143 were already CT ids - check `qm list` AND `pct list` before choosing. THE ORACLE GUEST IS STILL EXCLUSIVE: VM140 keeps the 8-file SavedGames set with the reference autosave bytes and the exclusivity rule; the clones are for probes, workload manufacture and multiplayer peers. A clone can be destroyed and re-cloned from the snapshot in seconds, which makes destructive experiments cheap for the first time |
|
||||
| /Sim/players DECOMPOSED - unmodelled, not mismodelled | verify | verified | high | 100% | 2026-09-08 | Lane PL, and this reframes the biggest remaining block. Re-measured (status.json said 55; the real figure is **54** on pair 1, **24** on pair 2): **53 of the 54 leaves on pair 1 and 23 of the 24 on pair 2 are values our turn WRITES BACK UNCHANGED from the input save.** Exactly ONE - player 32's Sav - is a number we compute and get wrong. **A lane hunting a formula error in /Sim/players will not find one.** Mechanism split: M1 AI research orders 12/2 (Rung B), M2 AI ship construction 15/9 (Rung B), M3 observation records refreshed by the AI's own new design 9/1 (Rung B, downstream of M2), M4 events 8/6 (half Rung A, written, wants --data), M5 BnkEl+BnkPr 4/4 (BnkEl CLOSED here), M6 Status 4/0, M7 PvSav 0/2 (CLOSED here), M8 an unexplained one-off 2/0. **Rung B is 44 of 54 on pair 1** - and FOUR FIFTHS OF THE BLOCK HANGS OFF TWO DECISIONS BY ONE AI PLAYER: pick a research target, queue one destroyer |
|
||||
| M3 is not an intel pass | objects | verified | high | 90% | 2026-09-08 | Lane PL: player 32's new `odes` entry is odid=18, opid=32 - **the design IT ITSELF created**; `owep` is that design's weapon and the three `otch` entries whose otnL moves are that design's techs. AND THE LISTS REFRESH ON DIFFERENT EVENTS: on pair 2 odes/.[1]/otnL moves 2->3 while every otch stays at 2, so **`odes` re-stamps on BUILD and `otch` on CREATION**. Both flagged as hypotheses - no corpus save has a player observing someone ELSE'S design |
|
||||
| T31's "self-check" was not one | verify | verified | high | 100% | 2026-09-08 | Lane PL correcting lane E1's catalogue claim: T31 compared its POST-turn result against the PRE-turn stored value, so its "6 of 8" covered only the six players whose limit never moves - **and printed the same number regardless of --ai-player**. The catalog claimed "8 of 8 with the flag supplied", **which the binary never printed**. Now taken at load and passing for EVERY LIVE PLAYER of all 11 saves. Also: T31 now **recovers its difficulty column from the save with NO OPERATOR INPUT** - BnkEl has a 6.67x slope and the AI column is worth 10%, so recomputing under both columns against the stored value identifies it (1 AI + 1 non-AI on all eleven saves). Blocked -> Partial |
|
||||
| rule 23 again: two float widths in ONE routine | verify | verified | high | 100% | 2026-09-08 | Lane PL: BANKRUPTCY_PROTECTION_LIMIT_FACTOR is read `fmul dword ptr` (D8 /1 = m32fp) while **the divisor two instructions earlier is `fld qword`** - different widths in the same routine. Engine now narrows it. 0 leaves on this corpus (all seven BnkPr records land where the two agree) but 3 test expectations moved, and **disagreement is at EVERY max income divisible by ten, from 10 upward** - lane PL predicted ~1.1% and measured 10%, recorded as a prediction miss |
|
||||
| the published 128/69 OVERSTATES what is unmodelled | meta | verified | high | 100% | 2026-09-08 | 4+3 of those leaves belong to P11, which is WRITTEN and only wants a game-data root - `standalone_report.py` passes no `--data`. Reproduced end to end on CT111 against /srv/re-lab/gob-extract: **87 closed / 0 regressed (pair 1, residual 122)** and **46 / 0 (pair 2, residual 62)**. Ranked remainder by leaves-per-effort: (1) give the metric harness a data root - 7 leaves, ONE LINE; (2) wire StrategyVars.txt into a TuningTable and set opt.haveTuning - 4 leaves, and **TurnOptions::haveTuning is READ IN THREE PLACES AND NEVER ASSIGNED, the field is dead**; (3) game/ai research selection 14; (4) game/ai build order 24 + M3's 10; (5) T34 10; (6) Status predicate 4, one VM session; (7) M8 2, unexplained |
|
||||
| Status: eighteen fields split the roster identically | verify | backlog | — | 0% | 2026-09-08 | A negative result lane PL deliberately did NOT fit: **eighteen scalar fields of the player record split the roster exactly the same way** (ReqCL, AMine, CnTrd, cdp, hgs, TerraMod, pddm, ...) because the two sets are **perfectly correlated with species**. One observation, one transition, one roster. ReqCL is the most plausible on name and meaning but IS A HYPOTHESIS. **The probe is an entry hook on lane W2's writer at OnMessage+0xa15 capturing the player index per call** - one VM session |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue