{
  "notes": "Episode 3/10. On entry: 15 of 400 items used; 12 results handed; still running: e01-mechanism-pilots/normalizer-state (confirm block 5004000) and e02-search-regime a,b. No refusals. This episode spawns 7 batches x 2 items = 14 items (29 used if all admitted, 371 left).\n\nRESULTS READ (all local paired vs STACK, each arm alone vs Vanilla; none is a board result):\n- b01 evaluator: harness sound. CH 0..999 = 525.5258821780834 exactly; STACK self-comparison 1x256 vs 4x64 identical per seed (d=0 everywhere); STACK afterSwap max 211,576, afterInitialize 220,962, 0 OOG; edge = arb + retail reconstruction reconciles to 1e-13 and rebuilt arb volume matches reported to 4e-9 rel. STACK mean 523.27 on 10000..10255 (arb -28.1, retail 551.4). Trust the harness shape all workers now use.\n- b02 censored-price: V10 (code sha256 cd9bdb45ab0537ad25c4fd90ca8618898cef6386de3df65f192eaef65fbca245, artifact https://api.imdnotdead.fun/artifacts/33f54e81f3372088e9eced52c0174f310ac348af98ef5727b73785c088679194, its `harness_source` is a reusable confirm harness) frozen before confirmation; fresh 5000000..5001999: +0.1372 se 0.0136, arb +1.273 / retail -1.136, 0 OOG, max_ok 194,870. Screens: wholesale replacement of slow pHat or the stale signal by the posterior mean lost 6-7 per seed (V4,V6,V7); the gain comes from V10's interval-mass likelihood on the fast estimate. First real gain of the goal; the requester asked for two more fresh confirmations and for building on it.\n- b02 value-policy: STACK + floor fMid >= 0.3*sqrt(uncertainty) (sha256 5c36797359a0e8e724f703fca6bdb3c152cbd73134f2085c8f47f00c6a3fabcf, artifact f68b806e83fd1e392242efc2abcf09b9271b74e93fcf9eba699efcca11dd6e4e): fresh 5002000..5003999 +0.0164 se 0.0015 (real, tiny). L2/max/lookup compositions all lost 0.02..0.87; floor kappa >= 0.45 lost 4.5..113. Additive composition stays.\n- b02 event-hazard: blocked (worker machine was not x86: rosetta/ld-linux error at uv venv). Not a tried idea; its idea is folded into e03-horizon.\n- b05 share (requester 4b): a -0.232 se 0.013 held-out (retail -0.205); b's CMA collapsed to w=1 (pure STACK), held-out -0.002 se 0.003; every evaluation with STACK weight < 0.95 lost. RETIRED: router-share revenue-optimal fee on the attracting side.\n- b06 arbside (requester 4d): a -0.024 se 0.007 held-out (arb +0.098, retail -0.122; max_ok 235,618); b ran out of time (2 evals). Exposed-side surcharge from the arb sizing identity buys arb edge but loses more retail. RETIRED as a standalone family.\n- b04 board-fit (ranks 1-10, 20, STACK): leaders' mid fee 34.0-35.6 bps vs STACK 36.7; lean -0.57..+0.57 vs STACK +1.01; fees vary per run (mid sd 1.3-1.7) so none is flat; leaders' fee rises little with retail volume (0.19-0.44 bps/10k Y vs STACK 1.42) and more with the vol proxy (4.8-6.8 vs 3.2); vs STACK they are 0.5-1 bps cheaper in low-retail runs and 2-3.6 bps cheaper in high-retail runs, almost all on the bid. Per-run gap to #1 8.69 (sd 1.98, #1 wins every run); gap regressions explain 42-45% of variance; volume differences account for ~2.5 of the 8.7, the rest is per-unit edge at equal volumes. Hypotheses handed (untested, from-scratch rules; prior from-scratch rules lost 18-83): volatility-led symmetric mid with weak flow term; shock-memory variance; mixed flow/vol with small positive lean. Use these as a diagnostic (reduce flow sensitivity, raise vol sensitivity) once e02-search-regime reports whether its 60 multipliers move that way; do not build them as standalone fee rules.\n- b03 designs: liquidity-shadow (tau = E clip(g,-fb,fa), V=f-/+tau, one-step J with share slope and arb gradient; families A-F; identity test and sign test as falsifiers) -> e03-shadow runs family B. policy-distillation (RES-TABLE residual over gap/sigma x first-in-step x silence, CRN CMA-ES, shuffle and level-shift controls; alternatives GATED-MIX, HORIZON-FEE, ASYM-ROUTER-TARGET) -> e03-restable and e03-horizon.\n\nDECISIONS: (1) e03-confirm-v10 a/b: exact V10 vs STACK on 5008000..5009999 and 5010000..5011999 (requester ask 1; pooled with the first block gives 6,000 fresh seeds for the >= +0.1 submission bar). (2) e03-v10-floor a/b: V10 + value-policy floor, kappa screened because V10's slot-13 variance scale may differ; confirms frozen vs STACK and vs V10 on 5012000 / 5014000. (3) e03-v10-blend a/b: partial posterior weights into the toxicity price and staleHat, stale-shift coefficient re-tune (requester ask 2), confirm on 5016000 / 5018000. (4) e03-v10-retail a/b: cheaper attracting side on V10 (requester ask 3), confirm on 5020000 / 5022000. (5) e03-restable a/b, (6) e03-horizon a/b, (7) e03-shadow a/b: new families on plain STACK, CMA-ES on 64-seed CRN blocks, re-check 256, held-out 512, each confirms on its own block ONLY if held-out gain > 2 se and >= +0.05 (blocks 5024000..5035999 allocated in that order). No cancellations; e02-search-regime and normalizer-state keep running.\n\nSEED LEDGER (confirmation blocks, half-open, 2,000 each, spent once allocated, never reused): 5000000 censored-price (used), 5002000 value-policy (used), 5004000 normalizer-state (running), 5006000 event-hazard (allocated, unused, treat as spent), 5008000 confirm-v10/a, 5010000 confirm-v10/b, 5012000 floor/a, 5014000 floor/b, 5016000 blend/a, 5018000 blend/b, 5020000 retail/a, 5022000 retail/b, 5024000 restable/a, 5026000 restable/b, 5028000 horizon/a, 5030000 horizon/b, 5032000 shadow/a, 5034000 shadow/b. NEXT FREE: 5036000. Tuning ranges used so far: 10000..13020 (pilots), 100000..130511, 200000..230511, 300000..330511 (e02), 400000..630511 (e03, each item in its own 10k-20k band). Next free tuning band: 640000.\n\nEPISODE 4 PLAN: (a) Read blocked first; a setup failure is a re-run, not a negative. (b) Verify each result: code present, sha256 matches, amm-match validate, oog 0, max_ok reported (STACK ~214k; > 235k needs a trim), paired n as asked, seeds inside the assigned bands, retail+arb deltas reconcile. (c) V10 submission: if both confirm-v10 blocks are >= +0.1 with 0 OOG, tell the requester in notes that V10 pooled over 6,000 fresh seeds meets the bar (they submit). (d) Promotion rule unchanged: fresh-block gain > 2 se and >= +0.1 -> candidate for submission; 0..+0.1 with > 2 se -> keep as a stackable increment; flat/negative -> retire with its artifact. (e) Integration wave: combine every V10 increment that confirmed (floor, blend, retail settings) into one file, two items on different machines, fresh blocks from 5036000; leave-one-out ablation if the sum disagrees with the parts. (f) New families that pass held-out on STACK get ported onto the best V10 stack in the same wave. (g) e02-search-regime: if the 60 multipliers moved coherently (lower flow terms, higher sigma terms, as board-fit suggests), brief a 2-copy continued search warm-started from its best_params and log on fresh CRN seeds; if flat, record the family as capped. (h) Still unspent ideas: GATED-MIX and ASYM-ROUTER-TARGET from policy-distillation, liquidity-shadow families C/E, the board-fit flow-desensitised diagnostic; the requester's hint 4d (arb sizing) is now measured negative. (i) Keep >= 100 items for integration, two-copy confirmations and a final gas check. Rules in force: briefs < 3,000 chars with the verbatim setup script; two items per idea; every {{var}} present in every item; no machine checks; CH calibration in every confirm brief; no seed >= 5000000 for tuning; never pool confirmation outcomes of different hashes; no board rank is ever claimed from local figures (transfer ~0.65). finish stays false.",
  "spawn": [
    {
      "name": "e03-confirm-v10",
      "brief": "Confirm the exact V10 file vs STACK on fresh seeds {{start}}..{{stop}} (half-open, 2000), copy {{copy}}. No tuning, no selection, no seed dropped, no code change.\nSetup: clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in the workspace (not /tmp); save this as scratch/setup.sh, run `sh scratch/setup.sh` once at the checkout root, prefix later commands `. scratch/env.sh && `; on failure return blocked={step,error}, n 0.\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncommand -v uv >/dev/null||{ curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz|tar --no-same-owner -xz -C $R/tmp;cp $R/tmp/uv-*/uv $R/bin/;}\nW=amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl;curl -LsSf https://github.com/gtmcknight/amm-sim/releases/download/sim-6b6921f8/$W -o $R/$W\necho \"aedb68280aca34c110968f00148387c95885207913fb2cf19a1ab4c5cfd6887a  $R/$W\"|sha256sum -c -\nuv venv --python 3.12 .venv;uv pip install $R/$W numpy py-solc-x==2.1.0 pyrevm==0.3.7;uv pip install --no-deps -e .\npython -c \"import solcx;solcx.install_solc('0.8.24')\"\namm-match validate contracts/src/StarterStrategy.sol\nV10 = `code` of https://api.imdnotdead.fun/artifacts/33f54e81f3372088e9eced52c0174f310ac348af98ef5727b73785c088679194 (sha256 cd9bdb45ab0537ad25c4fd90ca8618898cef6386de3df65f192eaef65fbca245); STACK = `code` of https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1 (sha256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719). Verify both hashes of the exact code strings. The V10 artifact's `harness_source` is a ready confirm harness: save it as scratch/harness.py, the codes as scratch/V10.sol and scratch/STACK.sol.\nCheck once: CH https://raw.githubusercontent.com/ChengHua926/amm-challenge/d34a5199c59a4c44d5336a25f1436b4ae1f21104/contracts/src/Strategy.sol on seeds 0..999 gives mean edge 525.5258821780834, else blocked.\nRun `python scratch/harness.py --start {{start}} --n 2000 --out scratch/confirm.json scratch/V10.sol scratch/STACK.sol` (each arm alone vs VanillaStrategy, run_batch(...,8), configs per MatchRunner._build_configs, 20-seed chunks; if a host kills a run, resume in smaller chunks over the same seeds). gas_stats_reset()/gas_stats() around each arm chunk; any OOG, revert or halt in either arm invalidates the result (report it, keep all seeds).\nReturn JSON: {item, blocked, v10_sha256, stack_sha256, calibration{n,mean_edge,passed}, seeds{start,stop}, paired{n,mean_diff,se,worst[5 {seed,d}]}, arm_means{candidate{edge,retail,arb},stack{edge,retail,arb}}, retail_edge_delta{mean,se}, arb_edge_delta{mean,se}, gas{candidate{max_ok,oog,revert,other_halt},STACK{same}}, valid, reasons, commands}. No board claim.",
      "items": [
        {
          "key": "a",
          "vars": {
            "copy": "a",
            "start": "5008000",
            "stop": "5010000"
          }
        },
        {
          "key": "b",
          "vars": {
            "copy": "b",
            "start": "5010000",
            "stop": "5012000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 32000
      }
    },
    {
      "name": "e03-v10-floor",
      "brief": "V10 + uncertainty floor (value-policy's floor on censored-price V10), copy {{copy}}: tune seeds {{tune}}, confirm block {{cstart}}..{{cstop}}.\nSetup: clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in the workspace (not /tmp); save this as scratch/setup.sh, run `sh scratch/setup.sh` once at the checkout root, prefix later commands `. scratch/env.sh && `; on failure return blocked={step,error}, n 0.\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncommand -v uv >/dev/null||{ curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz|tar --no-same-owner -xz -C $R/tmp;cp $R/tmp/uv-*/uv $R/bin/;}\nW=amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl;curl -LsSf https://github.com/gtmcknight/amm-sim/releases/download/sim-6b6921f8/$W -o $R/$W\necho \"aedb68280aca34c110968f00148387c95885207913fb2cf19a1ab4c5cfd6887a  $R/$W\"|sha256sum -c -\nuv venv --python 3.12 .venv;uv pip install $R/$W numpy py-solc-x==2.1.0 pyrevm==0.3.7;uv pip install --no-deps -e .\npython -c \"import solcx;solcx.install_solc('0.8.24')\"\namm-match validate contracts/src/StarterStrategy.sol\nV10 = `code` of https://api.imdnotdead.fun/artifacts/33f54e81f3372088e9eced52c0174f310ac348af98ef5727b73785c088679194 (sha256 cd9bdb45ab0537ad25c4fd90ca8618898cef6386de3df65f192eaef65fbca245); STACK = `code` of https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1 (sha256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719). Verify hashes.\nMethod: each strategy alone vs VanillaStrategy, run_batch(X, Vanilla, configs, 8), configs per MatchRunner._build_configs; paired d per seed, se=sd/sqrt(n), no seed dropped; gas_stats per arm, any OOG/halt invalidates; arb edge rebuilt from prior spot+fees and fair price, retail=total-arb.\nChange: add `uint256 constant KAPPA;` and right after fMid is composed, before skew: `{ uint256 fl = wmul(KAPPA, _isqrt(uncertainty * WAD)); if (fMid < fl) fMid = fl; }`. On STACK KAPPA 0.3 gained +0.016 (se 0.0015), >= 0.45 lost 4.5..113. V10's slot-13 uncertainty is the posterior variance (other scale): log mean sqrt(uncertainty) of V10 and STACK on 8 seeds; screen KAPPA {0.1,0.2,0.3,0.45,0.6} vs V10 on the first 128 tuning seeds, best 2 on the next 384, freeze the best (KAPPA=0 must equal V10 exactly on 16 seeds; amm-match validate); run frozen, V10 and STACK once each on the confirm block: report frozen-STACK (primary) and frozen-V10.\nReturn JSON: {item, blocked, code, sha256, kappa, scale_check{v10,stack}, screen[{kappa,n,mean_diff,se}], shortlist, confirm{seeds, vs_stack{n,mean_diff,se,worst}, vs_v10, retail_edge_delta, arb_edge_delta, gas{max_ok,oog}}, notes}.",
      "items": [
        {
          "key": "a",
          "vars": {
            "copy": "a",
            "tune": "400000..400511",
            "cstart": "5012000",
            "cstop": "5014000"
          }
        },
        {
          "key": "b",
          "vars": {
            "copy": "b",
            "tune": "420000..420511",
            "cstart": "5014000",
            "cstop": "5016000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 48000
      }
    },
    {
      "name": "e03-v10-blend",
      "brief": "V10 posterior fed to the slow price and toxicity signal, copy {{copy}}: tune seeds {{tune}}, confirm block {{cstart}}..{{cstop}}.\nSetup: clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in the workspace (not /tmp); save this as scratch/setup.sh, run `sh scratch/setup.sh` once at the checkout root, prefix later commands `. scratch/env.sh && `; on failure return blocked={step,error}, n 0.\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncommand -v uv >/dev/null||{ curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz|tar --no-same-owner -xz -C $R/tmp;cp $R/tmp/uv-*/uv $R/bin/;}\nW=amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl;curl -LsSf https://github.com/gtmcknight/amm-sim/releases/download/sim-6b6921f8/$W -o $R/$W\necho \"aedb68280aca34c110968f00148387c95885207913fb2cf19a1ab4c5cfd6887a  $R/$W\"|sha256sum -c -\nuv venv --python 3.12 .venv;uv pip install $R/$W numpy py-solc-x==2.1.0 pyrevm==0.3.7;uv pip install --no-deps -e .\npython -c \"import solcx;solcx.install_solc('0.8.24')\"\namm-match validate contracts/src/StarterStrategy.sol\nV10 = `code` of https://api.imdnotdead.fun/artifacts/33f54e81f3372088e9eced52c0174f310ac348af98ef5727b73785c088679194 (sha256 cd9bdb45ab0537ad25c4fd90ca8618898cef6386de3df65f192eaef65fbca245); STACK = `code` of https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1 (sha256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719). Verify hashes.\nMethod: each strategy alone vs VanillaStrategy, run_batch(X, Vanilla, configs, 8), configs per MatchRunner._build_configs; paired d per seed, se=sd/sqrt(n), no seed dropped; gas_stats per arm, any OOG/halt invalidates; arb edge rebuilt from prior spot+fees and fair price, retail=total-arb.\nV10's posterior (fastHat, slot 14) enters only staleHat = 0.7*pHat + 0.3*fastHat; toxicity uses the slow pHat (tox=|spot-pHat|/pHat); staleShift = STALE_DIR_COEF*staleTox. Replacing pHat or the stale signal by the posterior lost 6-7 per seed, so search partial weights, one axis at a time from V10 on the first 128 tuning seeds: (A) tox price (1-wt)*pHat+wt*fastHat, wt {0.15,0.3,0.5}; (B) staleHat fastHat weight {0.5,0.7}; (C) STALE_DIR_COEF x {0.8,1.25,1.5}. Combine the best of each axis that beat V10 into one combo; combo + best 2 singles on the next 384; freeze the best (V10 settings must reproduce V10 exactly on 16 seeds; amm-match validate); frozen and STACK once each on the confirm block.\nReturn JSON: {item, blocked, code, sha256, settings, screen[{axis,value,n,mean_diff,se}], shortlist, confirm{seeds, vs_stack{n,mean_diff,se,worst}, vs_v10, retail_edge_delta, arb_edge_delta, gas{max_ok,oog}}, notes}.",
      "items": [
        {
          "key": "a",
          "vars": {
            "copy": "a",
            "tune": "440000..440511",
            "cstart": "5016000",
            "cstop": "5018000"
          }
        },
        {
          "key": "b",
          "vars": {
            "copy": "b",
            "tune": "460000..460511",
            "cstart": "5018000",
            "cstop": "5020000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 48000
      }
    },
    {
      "name": "e03-v10-retail",
      "brief": "V10 with a cheaper attracting side, copy {{copy}}: tune seeds {{tune}}, confirm block {{cstart}}..{{cstop}}.\nSetup: clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in the workspace (not /tmp); save this as scratch/setup.sh, run `sh scratch/setup.sh` once at the checkout root, prefix later commands `. scratch/env.sh && `; on failure return blocked={step,error}, n 0.\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncommand -v uv >/dev/null||{ curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz|tar --no-same-owner -xz -C $R/tmp;cp $R/tmp/uv-*/uv $R/bin/;}\nW=amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl;curl -LsSf https://github.com/gtmcknight/amm-sim/releases/download/sim-6b6921f8/$W -o $R/$W\necho \"aedb68280aca34c110968f00148387c95885207913fb2cf19a1ab4c5cfd6887a  $R/$W\"|sha256sum -c -\nuv venv --python 3.12 .venv;uv pip install $R/$W numpy py-solc-x==2.1.0 pyrevm==0.3.7;uv pip install --no-deps -e .\npython -c \"import solcx;solcx.install_solc('0.8.24')\"\namm-match validate contracts/src/StarterStrategy.sol\nV10 = `code` of https://api.imdnotdead.fun/artifacts/33f54e81f3372088e9eced52c0174f310ac348af98ef5727b73785c088679194 (sha256 cd9bdb45ab0537ad25c4fd90ca8618898cef6386de3df65f192eaef65fbca245); STACK = `code` of https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1 (sha256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719). Verify hashes.\nMethod: each strategy alone vs VanillaStrategy, run_batch(X, Vanilla, configs, 8), configs per MatchRunner._build_configs; paired d per seed, se=sd/sqrt(n), no seed dropped; gas_stats per arm, any OOG/halt invalidates; arb edge rebuilt from prior spot+fees and fair price, retail=total-arb.\nV10 beats STACK by +0.137 on the arb side (arb +1.27, retail -1.14); hypothesis: the better estimate makes a cheaper attracting side safe (undercutting on plain STACK lost). In V10's stale block the attracting side gets fee -= staleShift*STALE_ATTRACT_FRAC (1.05), then tail compression and the 30/36 bps caps. One axis at a time from V10 on the first 128 tuning seeds: (A) STALE_ATTRACT_FRAC {1.3,1.6,2.0}; (B) lower fee after the stale block x r {0.85,0.9,0.95}; (C) first-in-step lower-side cap 30 -> {26,28} bps. Combine the best of each axis that beat V10 into one combo; combo + best 2 singles on the next 384; freeze the best (amm-match validate); frozen and STACK once each on the confirm block; report retail and arb deltas.\nReturn JSON: {item, blocked, code, sha256, settings, screen[{axis,value,n,mean_diff,se}], shortlist, confirm{seeds, vs_stack{n,mean_diff,se,worst}, vs_v10, retail_edge_delta, arb_edge_delta, gas{max_ok,oog}}, notes}.",
      "items": [
        {
          "key": "a",
          "vars": {
            "copy": "a",
            "tune": "480000..480511",
            "cstart": "5020000",
            "cstop": "5022000"
          }
        },
        {
          "key": "b",
          "vars": {
            "copy": "b",
            "tune": "500000..500511",
            "cstart": "5022000",
            "cstop": "5024000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 48000
      }
    },
    {
      "name": "e03-restable",
      "brief": "STACK + residual table, CMA seed {{cma}}: CRN {{crn}}, re-check {{recheck}}, held-out {{hold}}.\nSetup: clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in the workspace (not /tmp); save this as scratch/setup.sh, run `sh scratch/setup.sh` once at the checkout root, prefix later commands `. scratch/env.sh && `; on failure return blocked={step,error}, n 0.\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncommand -v uv >/dev/null||{ curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz|tar --no-same-owner -xz -C $R/tmp;cp $R/tmp/uv-*/uv $R/bin/;}\nW=amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl;curl -LsSf https://github.com/gtmcknight/amm-sim/releases/download/sim-6b6921f8/$W -o $R/$W\necho \"aedb68280aca34c110968f00148387c95885207913fb2cf19a1ab4c5cfd6887a  $R/$W\"|sha256sum -c -\nuv venv --python 3.12 .venv;uv pip install $R/$W numpy py-solc-x==2.1.0 pyrevm==0.3.7;uv pip install --no-deps -e .\npython -c \"import solcx;solcx.install_solc('0.8.24')\"\namm-match validate contracts/src/StarterStrategy.sol\nSTACK = `code` of https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1 (sha256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719). Verify the hash.\nMethod: each strategy alone vs VanillaStrategy, run_batch(X, Vanilla, configs, 8), configs per MatchRunner._build_configs; paired d per seed, se=sd/sqrt(n), no seed dropped; gas_stats per arm, any OOG/halt invalidates; arb edge rebuilt from prior spot+fees and fair price, retail=total-arb.\nMechanism: STACK verbatim; after bid/ask are composed (before tail compression/caps) add Db[cell], Da[cell] (0.5-bps int8 units); cell = ig*4 + (firstInStep?2:0) + (elapsed>1?1:0), ig = bucket of g/sigmaHat (g=(spot-fastHat)/fastHat; edges -2,-0.75,0.75,2); 20 cells as `bytes constant`, no slots; antisymmetric Da[ig,.]=Db[4-ig,.]: 20 params, init 0, sigma 4 units. T=0 must equal STACK exactly on 32 seeds. Held-out controls: cell-permuted table; all cells = mean. Search: numpy CMA-ES pop 12 mu 6 on the CRN block (64 seeds), fitness = mean paired d vs STACK, 30 min wall; re-check top 3 on the re-check block; freeze the best, amm-match validate, run once on the held-out block vs STACK. Confirm only if held-out gain > 2 se and >= +0.05: frozen and STACK once on fresh seeds {{cstart}}..{{cstop}} (half-open, never reused or used for selection); else leave the block untouched.\nReturn JSON: {item, blocked, code, sha256, params, evaluations, log, recheck, held_out{seeds,paired{n,mean_diff,se,worst}}, retail_edge_delta, arb_edge_delta, gas{max_ok,oog}, confirm (null or same fields), controls{shuffled,level}, table, notes}.",
      "items": [
        {
          "key": "a",
          "vars": {
            "cma": "1",
            "crn": "520000..520063",
            "recheck": "521000..521255",
            "hold": "530000..530511",
            "cstart": "5024000",
            "cstop": "5026000"
          }
        },
        {
          "key": "b",
          "vars": {
            "cma": "2",
            "crn": "540000..540063",
            "recheck": "541000..541255",
            "hold": "550000..550511",
            "cstart": "5026000",
            "cstop": "5028000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 48000
      }
    },
    {
      "name": "e03-horizon",
      "brief": "STACK + horizon-hazard fee, CMA seed {{cma}}: CRN {{crn}}, re-check {{recheck}}, held-out {{hold}}.\nSetup: clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in the workspace (not /tmp); save this as scratch/setup.sh, run `sh scratch/setup.sh` once at the checkout root, prefix later commands `. scratch/env.sh && `; on failure return blocked={step,error}, n 0.\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncommand -v uv >/dev/null||{ curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz|tar --no-same-owner -xz -C $R/tmp;cp $R/tmp/uv-*/uv $R/bin/;}\nW=amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl;curl -LsSf https://github.com/gtmcknight/amm-sim/releases/download/sim-6b6921f8/$W -o $R/$W\necho \"aedb68280aca34c110968f00148387c95885207913fb2cf19a1ab4c5cfd6887a  $R/$W\"|sha256sum -c -\nuv venv --python 3.12 .venv;uv pip install $R/$W numpy py-solc-x==2.1.0 pyrevm==0.3.7;uv pip install --no-deps -e .\npython -c \"import solcx;solcx.install_solc('0.8.24')\"\namm-match validate contracts/src/StarterStrategy.sol\nSTACK = `code` of https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1 (sha256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719). Verify the hash.\nMethod: each strategy alone vs VanillaStrategy, run_batch(X, Vanilla, configs, 8), configs per MatchRunner._build_configs; paired d per seed, se=sd/sqrt(n), no seed dropped; gas_stats per arm, any OOG/halt invalidates; arb edge rebuilt from prior spot+fees and fair price, retail=total-arb.\nMechanism: fees persist through silent steps whose arb hazard grows with sigma*sqrt(steps). STACK verbatim; after its stale block, before tail compression/caps: H=clamp(WAD/lambdaHat,1,8); protect side (the one STACK raised) += c1*sigmaHat*H^e*(1+c2*probArb) (STACK's first-in-step arb probability; e in {0.5,1}); attract side -= min(c3*|g|,c4), g=(spot-fastHat)/fastHat; add-ons x m_first on first prints, x m_later otherwise. 7 params; c1=c3=0 must equal STACK exactly on 32 seeds. Search: numpy CMA-ES pop 10 mu 5 on the CRN block (64 seeds), fitness = mean paired d vs STACK, 30 min wall; re-check top 3 on the re-check block; freeze the best, amm-match validate, run once on the held-out block vs STACK. Confirm only if held-out gain > 2 se and >= +0.05: frozen and STACK once on fresh seeds {{cstart}}..{{cstop}} (half-open, never reused or used for selection); else leave the block untouched.\nReturn JSON: {item, blocked, code, sha256, params, evaluations, log, recheck, held_out{seeds,paired{n,mean_diff,se,worst}}, retail_edge_delta, arb_edge_delta, gas{max_ok,oog}, confirm (null or same fields), notes}.",
      "items": [
        {
          "key": "a",
          "vars": {
            "cma": "1",
            "crn": "560000..560063",
            "recheck": "561000..561255",
            "hold": "570000..570511",
            "cstart": "5028000",
            "cstop": "5030000"
          }
        },
        {
          "key": "b",
          "vars": {
            "cma": "2",
            "crn": "580000..580063",
            "recheck": "581000..581255",
            "hold": "590000..590511",
            "cstart": "5030000",
            "cstop": "5032000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 48000
      }
    },
    {
      "name": "e03-shadow",
      "brief": "STACK + shadow-value objective, CMA seed {{cma}}: CRN {{crn}}, recheck {{recheck}}, held-out {{hold}}.\nSetup: clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in the workspace (not /tmp); save this as scratch/setup.sh, run `sh scratch/setup.sh` once at the checkout root, prefix later commands `. scratch/env.sh && `; on failure return blocked={step,error}, n 0.\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncommand -v uv >/dev/null||{ curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz|tar --no-same-owner -xz -C $R/tmp;cp $R/tmp/uv-*/uv $R/bin/;}\nW=amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl;curl -LsSf https://github.com/gtmcknight/amm-sim/releases/download/sim-6b6921f8/$W -o $R/$W\necho \"aedb68280aca34c110968f00148387c95885207913fb2cf19a1ab4c5cfd6887a  $R/$W\"|sha256sum -c -\nuv venv --python 3.12 .venv;uv pip install $R/$W numpy py-solc-x==2.1.0 pyrevm==0.3.7;uv pip install --no-deps -e .\npython -c \"import solcx;solcx.install_solc('0.8.24')\"\namm-match validate contracts/src/StarterStrategy.sol\nSTACK = `code` of https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1 (sha256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719). Verify the hash.\nMethod: each strategy alone vs VanillaStrategy, run_batch(X, Vanilla, configs, 8), configs per MatchRunner._build_configs; paired d per seed, se=sd/sqrt(n), no seed dropped; gas_stats per arm, any OOG/halt invalidates; arb edge rebuilt from prior spot+fees and fair price, retail=total-arb.\nRule: g~N(ghat,s2), ghat=(pHat-spot)/spot, s2=sm*(sigmaHat^2+slot13); tau=E clip(g,-fb,fa); Va=fa-tau; Vb=fb+tau; share_s=clip(1/2+k*(30bps-V_s),0,1), k=km/(4*sizeHat); J=lambdaHat*sizeHat/2*(share_a*Va+share_b*Vb) - wa*(y/4)*(E(g-fa)+^2+E(-g-fb)+^2). STACK verbatim; after tradeBoost take its pair (b0,a0), (bj,aj) = argmax J over it and 4 one-side +/-3bp neighbours, return b0+kap*(bj-b0), a0+kap*(aj-a0) then its caps. Params kap,km,sm,wa; kap=0 must match STACK on 32 seeds; if max_ok>240k, 3 pairs. Search: numpy CMA-ES pop 10 mu 5 on the CRN block (64 seeds), fitness = mean paired d vs STACK, 30 min wall; re-check top 3 on the re-check block; freeze the best, amm-match validate, run once on the held-out block vs STACK. Confirm only if held-out gain > 2 se and >= +0.05: frozen and STACK once on fresh seeds {{cstart}}..{{cstop}} (half-open, never reused or used for selection); else leave the block untouched.\nReturn JSON: {item, blocked, code, sha256, params, evaluations, log, recheck, held_out{seeds,paired{n,mean_diff,se,worst}}, retail_edge_delta, arb_edge_delta, gas{max_ok,oog}, confirm (null or same fields), notes}.",
      "items": [
        {
          "key": "a",
          "vars": {
            "cma": "1",
            "crn": "600000..600063",
            "recheck": "601000..601255",
            "hold": "610000..610511",
            "cstart": "5032000",
            "cstop": "5034000"
          }
        },
        {
          "key": "b",
          "vars": {
            "cma": "2",
            "crn": "620000..620063",
            "recheck": "621000..621255",
            "hold": "630000..630511",
            "cstart": "5034000",
            "cstop": "5036000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 48000
      }
    }
  ],
  "read": [
    "e01-mechanism-pilots/normalizer-state",
    "e02-search-regime/a",
    "e02-search-regime/b",
    "e03-confirm-v10/a",
    "e03-confirm-v10/b",
    "e03-v10-floor/a",
    "e03-v10-floor/b",
    "e03-v10-blend/a",
    "e03-v10-blend/b",
    "e03-v10-retail/a",
    "e03-v10-retail/b",
    "e03-restable/a",
    "e03-restable/b",
    "e03-horizon/a",
    "e03-horizon/b",
    "e03-shadow/a",
    "e03-shadow/b"
  ],
  "cancel": [],
  "wake": {
    "batches": [
      "e03-confirm-v10",
      "e03-v10-floor",
      "e03-v10-blend",
      "e03-v10-retail",
      "e03-restable",
      "e03-horizon",
      "e03-shadow"
    ],
    "afterMinutes": 120
  },
  "finish": false
}