sots-re/verify/results/shim
alex 254ce7c156 SD: the ship-design composer 0x006ad700 -- a word-cost model, verified where it could be
Lane PAR localised the AI's RNG variance to this function and stopped. This
reads it from the instruction stream (0x006ad700..0x006ae61a, swept to the next
function start; the padding confirms Ghidra's size is right on this one) and
measures it live with a sub-bracket on VM145.

THE MODEL. Nine live draw sites plus two provably dead. Only three of the nine
can cost more than one word, and only through NextInt's rejection loop; the four
cl_Chance probabilities are all strictly inside (0,1), so neither zero-word
early-out is reachable anywhere in the function. The loop-carried draw fires
once per SMALL STANDARD WEAPON BANK selected by

  f  = 1.00 / 0.75 / 0.50 by request flags, hull size and one 0.3 coin
  M  = (int)(N * f);  D' = max(1, (N+1)/M)
  L  = #{ bank j : PointDefence section, or j mod D' == 0 }

which is not monotone in N -- at f=0.75, N=4 costs 4 words and N=5 costs 3.

VERIFIED. Client 32's seven turn-1 words decompose as TWO composer calls: a
costOnly=1 price query (3 words) and a costOnly=0 build (4). That was predicted
from two push literals at 0x006cda9a/0x006cdb17 and committed before the probe
existed. Two pinned runs in fresh processes agree row for row. The probe's bank
counts 3/1/2 match the Tarkas section catalog's bank counts exactly -- a hooked
pointer walk and a parsed data file agreeing from opposite directions. The
detour is behaviour-neutral: unpinned it reproduces the published
d59bb9f2fd0eb535.

NOT VERIFIED, and this is the part worth reading. The loop-carried draw has
NEVER FIRED -- six composer calls across four runs, zero. On turn 1 the weapon
lookups gate it; on turn 15 every composer call is a price query that returns
nine steps earlier. Five of the nine sites have never fired and two of nine
exits have ever been taken. The formulas for those are read, not measured, and
section 6 says so.

CORRECTS roll-parity.md: its site table omits a live draw site (0x00691e9b,
which the same lane measured live at 0x00691ea0), so the AI turn has 22 live
sites and not 21; and 'six of seven turn-1 words come from the composer' is
five from its body plus two from a helper it calls -- all seven are in its
subtree.

NEW: on turn 15 the composer is 10 of 16 words, not 16 of 16. The task
system's coin at 0x0069086a fires four times and never fired on turn 1.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ARBgSooAfokKUy6wKUKEyZ
2026-09-08 20:50:03 -04:00
..
aidesign SD: the ship-design composer 0x006ad700 -- a word-cost model, verified where it could be 2026-09-08 20:50:03 -04:00
aiorders CB: third pinned run -- three processes, nine natural seeds, one autosave 2026-09-08 19:26:20 -04:00
airng PAR: roll parity -- an AI client's per-turn RNG word count is not fixed at any scope 2026-09-08 19:33:00 -04:00
eventlive lane V: live verification of the event-posting model against an advance prediction 2026-09-08 05:59:22 -04:00
l1 L1: CDiff crosses at frame 50, and the AI client seed is fresh in every process 2026-09-08 18:23:19 -04:00
l3 lane L3: both containers filled, and filling them does not make the tail draw 2026-09-08 19:46:16 -04:00
probes lane H: five live probes, the oracle restored, and a harness perturbation bisected to one hook 2026-09-08 13:53:36 -04:00
tailrng Z: a second calibrated oracle pair -- three instruments agree on 20 words for turn 5 2026-09-08 10:45:18 -04:00
watchpoints W3: NVO.TShn's writer trapped live, its gate named, and 158/158 on the corpus 2026-09-08 16:41:09 -04:00
m0-main-menu.png p2-m0 evidence: shim log + menu screenshot; Initialize signature caution 2026-09-07 17:22:21 -04:00
m0.log p2-m0 evidence: shim log + menu screenshot; Initialize signature caution 2026-09-07 17:22:21 -04:00
m1-shim.log P2-M1 verified on the live game: golden trace, 0-divergence compare, replace passes the End-Turn oracle 2026-09-07 22:18:22 -04:00
m2-scout-shim.log m2 code merged (VM window pending); record the 3-word vector struct hazard 2026-09-07 22:43:05 -04:00
mf-after-shim.log board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
mf-after-turn2.png board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
mf-after-turn7.png board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
mf-before-shim.log board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
mf-before-turn2.png board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
mf-before-turn7.png board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
mf-human-home-no-ships.png board: lane C state-checksum landed; fpu_cw experiment queued; event-posting lane 2026-09-08 03:47:21 -04:00
recap-b1-shim.log lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-b3-shim.log lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-misc-shim.log lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-misc-turn7.png lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-trace-shim.log lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
recap-turn2-loaded.png lane R: golden-trace recapture with guards on the live game 2026-09-08 03:06:43 -04:00
unlock-shim.log lane U: the unlock cascade, implemented and live-verified 2026-09-08 06:57:37 -04:00