{
  "notes": "EP1, nothing handed yet.\nFACTS (read from the plain fields of the goal's files; every JSON's sha256 equals its URL id). IB (afd5183e…) is sister item inputs-b: T + 19-8-2 head on HA's 13 inputs plus raw_amountY, step_trade_count, prev bid/ask fee, steps_since_arb_like_print, router-implied vanilla spot. 910 CMA gens (pycma, pop 16, sigma0 0.1 ending 0.0224, 512 fresh replica markets a gen, monitor 30000000..30002047, about +0.07 monitor gain per 100 gens at the end). Real +0.592 se 0.030 over HA, +1.749 over T (seeds 7132768..7133279). afterSwap peak 234,849, so no room to widen it under 245,000. Its replica ran 4,182 markets/s on 22 processes (an 8-process seat gives roughly 600: a seat's speed decides how many generations a leg gets). It carries search.restart {es_mean_at_last_gen, es_sigma, next_train_seed}, but no Solidity generator: a leg must replace the weight constants in the Solidity itself.\nIA (df0ddfdf…) is NOT IB: inputs-a (raw_size = amountY/reserveY), 200 gens, real +0.335 over HA, about 0.26 behind IB. KIT-B is built on IA: generalized port 328 markets/s on 8 processes (barely over the 300 bar), IAD peak 132,084, commands speed/restore-ia/gate A,B,C/expand/train/freeze/holdout/real/aggregate, guards accept default and wide16. Other inputs: replica e8a7a2af… (`replica_source`), HA 2801efc8… (`code`, `params`), T 6ac5e013…, RS2 port d845a4b9… (`differential_test_source`).\nI ran and decoded nothing (the orchestrator does not do the work, and this seat's guard blocks decoding packed files), so the briefs describe steps, not commands I verified. Both briefs assume a worker is also given the goal's objective (it is written to workers: 'your starting file', 'Briefs name other files') and do not repeat SETUP; if r1 failures show otherwise, the brief must carry SETUP and the gates itself.\n\nDECIDED: two small probes, 8 of 200 items.\nib-r1 (5): one relay leg each from START = IB's URL: gates A/B/speed, CMA over the 178 weights, freeze, gate C, replica holdout on 41000000..41008191 (same seeds for every item, so items compare exactly), real engine against IB on its own 512 seeds. A result is shaped like IB's file so it can be the next START. Keys: m-s22-p16, m-s22-p32 (mean = ES mean), f-s22-p16 (mean = frozen params), m-s45-p16, f-s45-p32; sNN = sigma0 0.0NN, pNN = population.\nkitb-r1 (3): KIT-B from IA: ia8 (control), wide16, gated8, real engine against IB. It starts behind IB and trains slower; it only probes whether width or gating on the gas diet deserves a line. Drop it unless an item ends within about 0.1 of IB on the real engine or gains clearly faster per generation than ib-r1.\n\nSEED LEDGER, never reuse. Real engine, 1,024-seed blocks of which 512 are used: ib-r1 8000000, 8001024, 8002048, 8003072, 8004096 (item order as above); kitb-r1 8005120, 8006144, 8007168; next free 8008192. Replica train, 2,000,000-seed blocks: ib-r1 500000000..508000000, kitb-r1 510000000..514000000; next free 516000000. Replica holdout: round r uses 41000000+(r-1)*10000 ..+8191. Monitor seeds are reused on purpose, for selection only.\n\nNEXT EPISODE.\n1. For each result read blocked, valid, gates, speed, generations; a blocked or invalid item is evidence about the brief or the seat, not a candidate.\n2. Rank valid ib items by replica_validation.frozen_vs_IB.mean_diff (se about 0.008), then check real.paired_vs_IB (se about 0.03) does not contradict it.\n3. Next START id = sha256 of the best item's handed JSON bytes (results are content-addressed at https://api.imd.fun/artifacts/<id>, as IB's is). Fetch that URL once to confirm it serves the same bytes before briefing with it; a brief cannot hold the weights (3,000 characters).\n4. Spawn ib-r2 with the template below, about 24 items (first 5 are its canary): vars start (the id); bseed and bref for gate B (START's real seed block, and 0.592 plus START's real gain over IB); mean ('restart ES mean' or 'frozen params'), sigma, pop, esseed varied around what gained most per generation; fresh train and real blocks from the ledger; the round's hold. A filled brief was 2,935 characters in r1: keep vars short. Update the ledger in the notes.\n5. If items failed for the brief's reasons, mend it and re-run with itemsFrom before going wide.\nBUDGET: 200 items, 10 episodes: r1 8; r2..r8 about 24 each (168); episode 9 a last leg plus a confirmation batch with the remaining 24 (final candidate against IB, several items of 512 fresh real seeds each, pooled se near 0.01); episode 10 finish. The write-up needs: the final file's URL, its weights and Solidity hash, paired real gain over IB {n,mean_diff,se,worst5}, retail/arb deltas, gas, the round-by-round curve, and what was not checked.\n\nBRIEF TEMPLATE ib-rN (vars start,bseed,bref,mean,sigma,pop,esseed,train,hold,real):\nOne leg of a training relay for IB; the next leg starts from your result. Follow the goal's objective exactly; this adds the rest.\n\nFILES. START = https://api.imd.fun/artifacts/{{start}} (the id is the JSON's sha256), shaped like the IB file: `code_zb64` (Solidity), `port_zb64` (its exact float port), `params` (19-8-2 weights, 178 numbers, see params.layout), `search.restart`; `_zb64` is base64 of zlib. The IB file's `hashes.artifact_urls` give three more: `rep` (`replica_source`: the replica; the port plugs into its STRATEGY block), `ha` (`params`: HA's weights; in the port, HA is these with the six newer input columns zero), `port` (`differential_test_source`: an EVM-against-port test to adapt).\n\nSTEPS, in order.\n1. SETUP; fetch the files; check each sha256.\n2. Gate A: START's port against its Solidity in the EVM, 50 x 2,000 callbacks, max fee difference < 0.01 bps. Gate B: replica gain of START's weights over HA on 512 markets, seeds {{bseed}} up, within 0.15 of the real {{bref}}. Speed: replica markets/s with START's port (512 x 10,000 steps, warmed). If a gate fails or speed is under 300, do not search: return your measurements with blocked={step,error}.\n3. Search: CMA-ES (pycma) over the 178 weights: mean = START's {{mean}}, per-weight scale as the IB file's `search.CMA_stds`, sigma0 {{sigma}}, population {{pop}}, ES seed {{esseed}}. Generation g scores all proposals on the same 512 replica markets, seeds {{train}}+512g up, never reused; fitness = mean edge. Every 10 generations score the ES mean and the generation's best on monitor seeds 30000000..30002047; keep the best. Checkpoint; segments under 7 minutes; train as long as the item allows, stopping about 20 minutes before your time ends.\n4. Freeze the best-monitor weights rounded to 1e-6: START's Solidity with only the weight constants replaced. Gate C: it against the port with those weights, 50 x 2,000 callbacks, < 0.1 bps.\n5. Replica holdout, once: frozen, START's and IB's weights on seeds {{hold}}..+8191, paired.\n6. REAL ENGINE: IB's Solidity and the frozen one, each alone, seeds {{real}}..+511 in 64-seed chunks, once; gas_stats per arm.\n\nRESULT: one JSON object the next leg can use as START, with START's keys and shapes: status; blocked; start{id}; gates{A,B,C}; speed{markets_per_s,processes}; search{generations,train_seeds,curve per 10 generations,restart{es_mean_at_last_gen,es_sigma_at_last_gen,last_gen,next_train_seed}}; params (the frozen weights, all fields); code_zb64, code_sha256 (frozen Solidity); port_zb64, port_sha256 (unchanged); replica_validation{frozen_vs_start,frozen_vs_IB: n,mean_diff,se}; real{seeds,paired_vs_IB{n,mean_diff,se,worst5},retail and arb deltas,mean_edge}; gas{afterSwap_peak,oog,gas_stats}; valid (false on any OOG or peak over 245,000); notes. If nothing beat START on the monitor, return START's weights and say so. Report only what you measured.",
  "spawn": [
    {
      "name": "ib-r1",
      "brief": "One leg of a training relay for IB; the next leg starts from your result. Follow the goal's objective exactly; this adds the rest.\n\nFILES. START = https://api.imd.fun/artifacts/{{start}} (the id is the JSON's sha256), shaped like the IB file: `code_zb64` (Solidity), `port_zb64` (its exact float port), `params` (19-8-2 weights, 178 numbers, see params.layout), `search.restart`; `_zb64` is base64 of zlib. The IB file's `hashes.artifact_urls` give three more: `rep` (`replica_source`: the replica; the port plugs into its STRATEGY block), `ha` (`params`: HA's weights; in the port, HA is these with the six newer input columns zero), `port` (`differential_test_source`: an EVM-against-port test to adapt).\n\nSTEPS, in order.\n1. SETUP; fetch the files; check each sha256.\n2. Gate A: START's port against its Solidity in the EVM, 50 x 2,000 callbacks, max fee difference < 0.01 bps. Gate B: replica gain of START's weights over HA on 512 markets, seeds {{bseed}} up, within 0.15 of the real {{bref}}. Speed: replica markets/s with START's port (512 x 10,000 steps, warmed). If a gate fails or speed is under 300, do not search: return your measurements with blocked={step,error}.\n3. Search: CMA-ES (pycma) over the 178 weights: mean = START's {{mean}}, per-weight scale as the IB file's `search.CMA_stds`, sigma0 {{sigma}}, population {{pop}}, ES seed {{esseed}}. Generation g scores all proposals on the same 512 replica markets, seeds {{train}}+512g up, never reused; fitness = mean edge. Every 10 generations score the ES mean and the generation's best on monitor seeds 30000000..30002047; keep the best. Checkpoint; segments under 7 minutes; train as long as the item allows, stopping about 20 minutes before your time ends.\n4. Freeze the best-monitor weights rounded to 1e-6: START's Solidity with only the weight constants replaced. Gate C: it against the port with those weights, 50 x 2,000 callbacks, < 0.1 bps.\n5. Replica holdout, once: frozen, START's and IB's weights on seeds {{hold}}..+8191, paired.\n6. REAL ENGINE: IB's Solidity and the frozen one, each alone, seeds {{real}}..+511 in 64-seed chunks, once; gas_stats per arm.\n\nRESULT: one JSON object the next leg can use as START, with START's keys and shapes: status; blocked; start{id}; gates{A,B,C}; speed{markets_per_s,processes}; search{generations,train_seeds,curve per 10 generations,restart{es_mean_at_last_gen,es_sigma_at_last_gen,last_gen,next_train_seed}}; params (the frozen weights, all fields); code_zb64, code_sha256 (frozen Solidity); port_zb64, port_sha256 (unchanged); replica_validation{frozen_vs_start,frozen_vs_IB: n,mean_diff,se}; real{seeds,paired_vs_IB{n,mean_diff,se,worst5},retail and arb deltas,mean_edge}; gas{afterSwap_peak,oog,gas_stats}; valid (false on any OOG or peak over 245,000); notes. If nothing beat START on the monitor, return START's weights and say so. Report only what you measured.",
      "items": [
        {
          "key": "m-s22-p16",
          "vars": {
            "start": "afd5183e9ff3235334e041c00b0cd19079599a2c6464db95f8c1586712105557",
            "bseed": "7132768",
            "bref": "+0.592",
            "mean": "restart ES mean",
            "sigma": "0.022",
            "pop": "16",
            "esseed": "20261101",
            "train": "500000000",
            "hold": "41000000",
            "real": "8000000"
          }
        },
        {
          "key": "m-s22-p32",
          "vars": {
            "start": "afd5183e9ff3235334e041c00b0cd19079599a2c6464db95f8c1586712105557",
            "bseed": "7132768",
            "bref": "+0.592",
            "mean": "restart ES mean",
            "sigma": "0.022",
            "pop": "32",
            "esseed": "20261102",
            "train": "502000000",
            "hold": "41000000",
            "real": "8001024"
          }
        },
        {
          "key": "f-s22-p16",
          "vars": {
            "start": "afd5183e9ff3235334e041c00b0cd19079599a2c6464db95f8c1586712105557",
            "bseed": "7132768",
            "bref": "+0.592",
            "mean": "frozen params",
            "sigma": "0.022",
            "pop": "16",
            "esseed": "20261103",
            "train": "504000000",
            "hold": "41000000",
            "real": "8002048"
          }
        },
        {
          "key": "m-s45-p16",
          "vars": {
            "start": "afd5183e9ff3235334e041c00b0cd19079599a2c6464db95f8c1586712105557",
            "bseed": "7132768",
            "bref": "+0.592",
            "mean": "restart ES mean",
            "sigma": "0.045",
            "pop": "16",
            "esseed": "20261104",
            "train": "506000000",
            "hold": "41000000",
            "real": "8003072"
          }
        },
        {
          "key": "f-s45-p32",
          "vars": {
            "start": "afd5183e9ff3235334e041c00b0cd19079599a2c6464db95f8c1586712105557",
            "bseed": "7132768",
            "bref": "+0.592",
            "mean": "frozen params",
            "sigma": "0.045",
            "pop": "32",
            "esseed": "20261105",
            "train": "508000000",
            "hold": "41000000",
            "real": "8004096"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 25,
        "brief": "One row per item: key, blocked, valid, markets_per_s, generations, replica holdout frozen_vs_IB mean_diff and se, real paired_vs_IB n, mean_diff and se, afterSwap peak, oog. Copy each number as the item gave it; rank valid items by holdout gain; add nothing the items do not state."
      }
    },
    {
      "name": "kitb-r1",
      "brief": "You run one training leg on KIT-B, the goal's kit for IA's design. The goal's objective, which you also have, gives FILES, GATES, REAL ENGINE and SETUP: follow it exactly. This brief names the rest.\n\nPOLICY: {{variant}}.\n\nSTEPS, in order.\n1. SETUP; fetch KIT-B and decode it per its `decode_instructions`, checking each sha256; run its tests and `restore-ia`. Fetch the goal's IB file and decode its `code_zb64` (base64 of zlib; check the code sha256): IB's Solidity is the paired reference in the real engine.\n2. Gates, with the kit's own `commands`, each under 8 minutes: A on IA.sol (< 0.01 bps, 50 sequences of 2,000 callbacks); B (replica gain of IA over T within 0.15 of the real +1.513).\n3. Build POLICY as a kit weights JSON. Before any search it must equal IA: freeze it, check its Solidity compiles and validates, and pass gate C with IA as reference (< 0.1 bps). Measure the replica's speed with POLICY (512 markets of 10,000 steps, warmed). If a gate fails or the speed is under 300 markets/s, do not search: return what you measured with blocked={step,error}.\n4. Search with the kit's `train`: CMA-ES over every weight of POLICY, ES seed {{esseed}}, fresh replica train seeds from {{train}} up, 512 markets a generation (256 if a generation would otherwise pass a minute; say which), in segments under 7 minutes on one checkpoint, as long as the item allows, stopping about 20 minutes before your time ends. If the kit's validation guard refuses POLICY, give it the gate evidence you measured for POLICY and say what you changed; never pass over a failing gate.\n5. `freeze_trained`; gate C on the frozen Candidate.sol against its frozen weights (no IA reference); the kit's `holdout`, once: trained against IA.\n6. REAL ENGINE with the kit's `real` and `aggregate`: arms IB and Candidate, each alone, seeds {{real}}..+511 in 64-seed chunks, once; gas per arm.\n\nRESULT: one JSON object: status; blocked; policy{variant,inputs,hidden_units,gate,weights_count}; gates{A,B,C_start,C_frozen}; speed{markets_per_s,processes}; search{es_seed,population,sigma0,train_n,generations,minutes,train_seeds,curve (each 10 generations),restart{mean,sigma,last_gen,next_train_seed}}; weights (the frozen policy's kit weights JSON, complete); code_zb64, code_sha256 (frozen Candidate.sol, base64 of zlib); holdout{n,mean_diff,se,retail_delta,arb_delta} over IA; real{seeds,paired_vs_IB{n,mean_diff,se,worst5},retail and arb deltas,mean_edge of each arm}; gas{afterSwap_peak,oog,gas_stats}; valid (false on any OOG or a peak over 245,000); notes. If the search did not beat IA on the kit's monitor, say so. Report only what you measured.",
      "items": [
        {
          "key": "ia8",
          "vars": {
            "variant": "IA as shipped, the kit's weights.json: one 19-8-2 net, 178 weights",
            "esseed": "20261106",
            "train": "510000000",
            "real": "8005120"
          }
        },
        {
          "key": "wide16",
          "vars": {
            "variant": "IA widened to 16 hidden units with the kit's `expand` (the new units' output weights zero): one 19-16-2 net, 354 weights",
            "esseed": "20261107",
            "train": "512000000",
            "real": "8006144"
          }
        },
        {
          "key": "gated8",
          "vars": {
            "variant": "two 19-8-2 nets gated firstInStep (net0 on a step's first print, net1 on its later prints), both starting as IA's net: 356 weights",
            "esseed": "20261108",
            "train": "514000000",
            "real": "8007168"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 25,
        "brief": "One row per item: key, policy, blocked, valid, markets_per_s, generations, holdout gain over IA and se, real paired_vs_IB n, mean_diff and se, afterSwap peak, oog. Copy each number as the item gave it; add nothing the items do not state."
      }
    }
  ],
  "read": [
    "ib-r1/m-s22-p16",
    "ib-r1/m-s22-p32",
    "ib-r1/f-s22-p16",
    "ib-r1/m-s45-p16",
    "ib-r1/f-s45-p32",
    "kitb-r1/ia8",
    "kitb-r1/wide16",
    "kitb-r1/gated8"
  ],
  "cancel": [],
  "wake": {
    "batches": [
      "ib-r1",
      "kitb-r1"
    ],
    "afterMinutes": 240
  },
  "finish": false
}
