{
  "notes": "Episode 8/10. Read all24 handed results, goal history, requester corrections and reference; checked every artifact digest and non-null code hash. Re-read prior write-up sections2/3/6 and simulator rules. No decisions refused. 45/400 items used; add10 research items (55 used,345 left). Three older items still run: e03-pilot-rerun/corridor, e06-continuation/h2, e07-hyb-flowcap/c2. Keep them; no cancellation for latency. No qualifying finalist, submission, new board score or trunk. Targets remain +5/+8.7 vs V2.\n\nREQUESTER RULES: latest direction is hybrids preserving V2 mapping, one piece at a time on G; no estimator redesign, next-mix or zero-skew stack. Every brief includes the verbatim OOG override: candidate OOG<=exact V2 on identical seeds is valid experimentally; all other errors invalidate. Submission requires candidate OOG0 and gain>=.3 AND >2SE on4000 fresh seeds of ONE frozen file. The requester submits. Each strategy separately against30bps Vanilla, identical configs,10000 steps,250000 gas. No latent/future/seed access in Solidity. First print need not be arb; final print is unobservable. Source flags are not independent certification of measurements.\n\nVERIFIED BASE/HARNESS: b19-verify=e06-g-base/verify, artifact206a4888de6fa1bda53cd2c9bad1632ccdbb63d32e7f09b6a332746b7a3ac3c3 at https://api.imd.fun/artifacts/206a4888de6fa1bda53cd2c9bad1632ccdbb63d32e7f09b6a332746b7a3ac3c3. Fetched exact digest again. code=G sha610c1905e7dd5559b84e40a3b2d6f8e0b53a7b0ac7574ae33b6c1770a28367cb. reusable_sources_bundle.data is base64(gzip(JSON filename->source)), NOT source_files: setup.sh (Rust fallback),instrumentation.patch,strengthened harness.py/tests.py,exact V2.sol sha28417e116f57f1029fdd1803832e852574902c1ae7253c05657f317db76da4ab. Use this bundle, no GN reconstruction or slim comparator. V2 calibration0..999=526.9433475904315,18 OOG,repeated bit-identically. G training10000..10511 n512:+.0015018653 SE.0014330476; swap max211186/init220944/OOG0 versus V2 swap243701/OOG13. All503 non-OOG seeds match; only9 V2-OOG seeds differ. Diagnostic1M gas128 seeds exactly equal, cap restored. sqrt20727 cases and packing checks pass. Harness gates counter agreement and abs(retail+arb-total)<1e-8. G is gas headroom, not an economic discovery. Record afterSwap max separately from init/all-callback max.\n\nNEW RESULTS (mean_diff,SE;n2000 unless marked;C/V=OOG candidate/reference):\nAfterfirst f1 cap32:+.0118247,.0021182 C/V0/23; f2 cap29:+.0127512,.0037618 0/32; f3 cap30:+.0148699,.0031977 0/33. All G-based,frozen before holdout,full training/confirmation. f3 code e98d8a0ff00f19785d801b00220eba9864fb3e44cbc1d591745c1d976f7df941,result9e7b66123809118f02298d3f6e0be318fbb32b2074c7fce724a8e41e0b6bdd35. f1 retail+.017634/arb-.005809; low/mid/high total+.00850/.01286/.01411. Cuts2/4bps lose, unlike caps.\nFlowcap c1 scale.75:-.655234,.012980 0/44; c3 scale.7:-.926395,.013118 0/39. Both retail and arb worsen (c1 retail-.407697,arb-.247537); retire unconditional damping. c2 pending.\nFloor s1/s2/s3 selected CAPS,not floors: cap36 all calls +.0080459,.0025382 0/31; cap35 +.0141,.0024 0/20; cap36 +.0131444,.0022447 0/31. Removing stale adjustment and flooring26..36 lost about24..30 on training; active-only equals always for tested states. s2 shortened screen/skipped512 stage; not evidence of a winning floor. s3 cap36 code306923bb87fab79947a5dc83b92c1040baba83b42bbbbc945c66016e0ea196ea,result483c7c8541535ef703a0661f2d1cc8c235f21a0d149a60cf394f0d984d886d8f. These caps overlap with afterfirst caps,not independent additive improvements. Tiny positives include G's OOG removal; never sum them or call them submission-ready.\n\nOlder landed: phase -5.876323,.039502 37/37; position a3 -33.42837,.933741 n256(partial),p1 -39.8193,.8006 n256(partial),p2 -2.077110,.035235 n2000 0/31(v2 max missing). Threshold t1 -4.385827,.085417 n450(partial)20/20;t2 -8.426040,.068608 n2000 41/41. Pos-scale s1 attracting-only+.0091279,.0019666 n2000 0/50; trim-only control+.0021564,.0007250 on SAME holdout,not independent confirmation. Both-side s2 -18.201639,.178220 n2000 27/27. e04 recovery a1 six256-seed screens,best -6.645463,.125371; runtime block before512/freeze/holdout: negative training evidence,not untried. b1 and p3 setup failures have n0,not economic losses. Do not spend more copies of already-losing sister designs.\nClosed-form b2 -60.820340,.238149 n2000 0/26,BUT used4200000..4201999 instead of4150000; aborted4150000/4160000 runs,overlapping pos-scale s1/p1 allocations. Mark seed-protocol deviation,not independent confirmation; no promotion at issue. Workers must never choose a replacement fresh block themselves.\nH4 -23.680272,.098613 0/45: retail-34.726342,arb+11.046070. H1/H4 chose identical policy/edges,no observed horizon benefit. H8 offset hybrid -.505686,.009258 0/34: retail-1.181078,arb+.675392; rough uncalibrated model,not a bound on all tables. Retire these implementations. Earlier routing-61.87,edge-table-83.43,interaction-13.67 remain negative. Flat30..40 loses181.119..166.388 on256; extended75bps still about145.5 below V2. Board API gives no retail/arb edge split; step-end mean fee is not realised retail margin.\n\nDECISION: final bounded TRAINING wave,three hybrids x three gate variants(firstInStep,later,all),plus diagnostic. e08-small-floor retains G stale adjustment,floors final lower fee at1/2/4/8bps,capped at unchanged higher fee; distinct from failed remove-stale floors. e08-boost-cap saturates aligned tradeBoost at4/8/16/32bps,testing large-trade protection without flow cuts. e08-protect-hinge changes only protecting stale addition beyond50/150bps gap to half/1.5x slope; original attraction preserved. Hypotheses,not gains. Each item screens4 variants+G control on256,tests best single variant on512,freezes exact source. No stacking losers/overlapping caps. Separate search from confirmation to avoid partial holdouts. e08-quote-audit traces G/V2 on256 training seeds: fee-use distribution,exposure/phase,quote survival,cap activation,actual retail/arb edge. Labels stay offline; trace parity required. It interprets searches,not a new policy or future-event signal.\n\nSEEDS: all4000000..4379999 allocated/retired permanently,even unused/aborted. No new confirmation blocks allocated/consumed here. Running corridor owns4100000..4101999;h2 owns4260000..4261999;c2 owns4330000..4331999. NEXT FREE4380000. New TRAINING:first10000..10255 then12000..12511;later20000..20255 then22000..22511;all30000..30255 then32000..32511,shared across families for paired screening. Audit10000..10255. No worker may use>=4000000. Old blocks remain retired despite b2 collision.\n\nNEXT(episode9): inspect blocked,completed counts/hashes first; training paired.n is NOT confirmation. Select frozen finalist only with credible512-seed gain(>2SE,preferably>=.3),zero OOG; use G control to separate gas effects. If none qualifies, consider pending corridor/h2/c2 only with equivalent evidence,otherwise finish honestly retaining V2. Do not repeat losing broad families. For a promising exact file,episode9 assigns independent confirmation shards: two workers,2000 disjoint seeds each from4380000..4381999 and4390000..4391999(reserve whole10k blocks then),same unchanged hash,no tuning. Combine all4000 differences using pooled variance,not averaged SEs; require>=.3,>2SE,OOG0. Optional third independent4000 block if needed. Episode10 reads confirmation,reports code/hash,paired n/mean/se/worst,gas for both and limitations,then finishes. No claiming+5/+8.7 or rank from local evidence. If only tiny gains persist,say the goal was not reached. Wake on seven batches or90minutes(scheduling,not a local wait). finish=false.",
  "spawn": [
    {
      "name": "e08-small-floor",
      "mode": "research",
      "brief": "ONE hybrid experiment, TRAINING ONLY, <60min. Gate={{gate}}; firstInStep is evaluated before count increment. Keep G estimators, direction skew and other mapping terms; use observable state only. Outside gate return G fees. No stacking.\nFloor the lower FINAL G fee at F in {1,2,4,8} bps, bounded above by the unchanged higher fee; ties unchanged. Preserve the stale adjustment: this is max(original lower fee,F), NOT removing staleShift before flooring (that lost ~25). Replace only final lower-fee selection before storing returned fees.\nUse Linux x86_64. Clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in workspace, never /tmp. Fetch https://api.imd.fun/artifacts/206a4888de6fa1bda53cd2c9bad1632ccdbb63d32e7f09b6a332746b7a3ac3c3 (data). Its code is G; reusable_sources_bundle.data is base64(gzip(JSON filename->source)): put setup.sh,instrumentation.patch,harness.py,tests.py in scratch/, V2.sol and G in contracts/src/. Verify G sha610c1905e7dd5559b84e40a3b2d6f8e0b53a7b0ac7574ae33b6c1770a28367cb and V2 sha28417e116f57f1029fdd1803832e852574902c1ae7253c05657f317db76da4ab. Run sh scratch/setup.sh once (includes Rust fallback); prefix later commands with . scratch/env.sh && ; apply patch, rebuild maturin release, run harness tests and amm-match validate. Setup failure: blocked={step,error}, paired.n=0. No host probes.\nEach X separately: amm_sim_rs.run_batch(X,VanillaStrategy,configs,8). Direct MatchRunner configs: default_rng(seed) size,rate,sigma; price seed, retail seed+1; 10000 steps,250000 gas. Use chunks<=32; keep all seeds. Enforce harness validity incl. other errors, Vanilla, per-seed/global counters and retail+arb reconciliation.\nOOG rule (overrides the objective): V2 itself has rare OOG halts (about 1 per 300k calls). Count OOG for V2 and the candidate on the same seeds and report both; the result is valid when the candidate has no more OOG than V2, so do not stop on V2's OOG and go on to the paired measurement.\nScreen the four variants plus unmodified G vs exact V2 on {{screen}} (256 seeds); reuse baseline rows. Run ONLY the best valid variant on {{select}} (512) vs V2, then freeze source/hash. No seeds >=4000000; confirmation is a separate episode. If time expires return completed training stages with actual n; never call a partial test confirmation.\nReturn JSON: code,sha256,base_sha256,v2_sha256,variant params/hashes and paired{n,mean_diff,se,worst} per stage, paired.stage=tuning, seeds, selection/freeze, gas and v2_gas{max_ok(afterSwap),init_max,oog,other_errors}, G-control, actual retail/arb edge deltas and V2-volume terciles, checks,blocked,confirmation=null. Supply a reproducible variant patch/generator. No board claim.",
      "items": [
        {
          "key": "first",
          "vars": {
            "gate": "firstInStep only",
            "screen": "10000..10255",
            "select": "12000..12511"
          }
        },
        {
          "key": "later",
          "vars": {
            "gate": "!firstInStep only",
            "screen": "20000..20255",
            "select": "22000..22511"
          }
        },
        {
          "key": "all",
          "vars": {
            "gate": "all afterSwap calls",
            "screen": "30000..30255",
            "select": "32000..32511"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 25,
        "brief": "Keep each item separate by code hash and gate. Tabulate training n/mean/SE, G control, gas and actual retail/arb deltas; distinguish blocked and incomplete stages. Preserve frozen code and reproducibility patches. Do not pool different policies or label tuning as confirmation."
      }
    },
    {
      "name": "e08-boost-cap",
      "mode": "research",
      "brief": "ONE hybrid experiment, TRAINING ONLY, <60min. Gate={{gate}}; firstInStep is evaluated before count increment. Keep G estimators, direction skew and other mapping terms; use observable state only. Outside gate return G fees. No stacking.\nReplace the aligned tradeBoost with min(original tradeBoost,K*BPS), K in {4,8,16,32}. Keep the original tradeAligned test, side and tail compression; do not modify flow terms or stale shifts. This tests nonlinear saturation of large-trade protection, not a uniform flow cut.\nUse Linux x86_64. Clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in workspace, never /tmp. Fetch https://api.imd.fun/artifacts/206a4888de6fa1bda53cd2c9bad1632ccdbb63d32e7f09b6a332746b7a3ac3c3 (data). Its code is G; reusable_sources_bundle.data is base64(gzip(JSON filename->source)): put setup.sh,instrumentation.patch,harness.py,tests.py in scratch/, V2.sol and G in contracts/src/. Verify G sha610c1905e7dd5559b84e40a3b2d6f8e0b53a7b0ac7574ae33b6c1770a28367cb and V2 sha28417e116f57f1029fdd1803832e852574902c1ae7253c05657f317db76da4ab. Run sh scratch/setup.sh once (includes Rust fallback); prefix later commands with . scratch/env.sh && ; apply patch, rebuild maturin release, run harness tests and amm-match validate. Setup failure: blocked={step,error}, paired.n=0. No host probes.\nEach X separately: amm_sim_rs.run_batch(X,VanillaStrategy,configs,8). Direct MatchRunner configs: default_rng(seed) size,rate,sigma; price seed, retail seed+1; 10000 steps,250000 gas. Use chunks<=32; keep all seeds. Enforce harness validity incl. other errors, Vanilla, per-seed/global counters and retail+arb reconciliation.\nOOG rule (overrides the objective): V2 itself has rare OOG halts (about 1 per 300k calls). Count OOG for V2 and the candidate on the same seeds and report both; the result is valid when the candidate has no more OOG than V2, so do not stop on V2's OOG and go on to the paired measurement.\nScreen the four variants plus unmodified G vs exact V2 on {{screen}} (256 seeds); reuse baseline rows. Run ONLY the best valid variant on {{select}} (512) vs V2, then freeze source/hash. No seeds >=4000000; confirmation is a separate episode. If time expires return completed training stages with actual n; never call a partial test confirmation.\nReturn JSON: code,sha256,base_sha256,v2_sha256,variant params/hashes and paired{n,mean_diff,se,worst} per stage, paired.stage=tuning, seeds, selection/freeze, gas and v2_gas{max_ok(afterSwap),init_max,oog,other_errors}, G-control, actual retail/arb edge deltas and V2-volume terciles, checks,blocked,confirmation=null. Supply a reproducible variant patch/generator. No board claim.",
      "items": [
        {
          "key": "first",
          "vars": {
            "gate": "firstInStep only",
            "screen": "10000..10255",
            "select": "12000..12511"
          }
        },
        {
          "key": "later",
          "vars": {
            "gate": "!firstInStep only",
            "screen": "20000..20255",
            "select": "22000..22511"
          }
        },
        {
          "key": "all",
          "vars": {
            "gate": "all afterSwap calls",
            "screen": "30000..30255",
            "select": "32000..32511"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 25,
        "brief": "Keep each item separate by code hash and gate. Tabulate training n/mean/SE, G control, gas and actual retail/arb deltas; distinguish blocked and incomplete stages. Preserve frozen code and reproducibility patches. Do not pool different policies or label tuning as confirmation."
      }
    },
    {
      "name": "e08-protect-hinge",
      "mode": "research",
      "brief": "ONE hybrid experiment, TRAINING ONLY, <60min. Gate={{gate}}; firstInStep is evaluated before count increment. Keep G estimators, direction skew and other mapping terms; use observable state only. Outside gate return G fees. No stacking.\nChange only the protecting staleShift addition. Let d=G's capped staleTox, x=original staleShift. Use STALE_DIR_COEF*min(d,K)+m*STALE_DIR_COEF*max(d-K,0), WAD arithmetic, K in {50,150} bps and m in {0.5,1.5} (four variants). Preserve attractShift computed from ORIGINAL x. Keep side selection, boost and clamps unchanged.\nUse Linux x86_64. Clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in workspace, never /tmp. Fetch https://api.imd.fun/artifacts/206a4888de6fa1bda53cd2c9bad1632ccdbb63d32e7f09b6a332746b7a3ac3c3 (data). Its code is G; reusable_sources_bundle.data is base64(gzip(JSON filename->source)): put setup.sh,instrumentation.patch,harness.py,tests.py in scratch/, V2.sol and G in contracts/src/. Verify G sha610c1905e7dd5559b84e40a3b2d6f8e0b53a7b0ac7574ae33b6c1770a28367cb and V2 sha28417e116f57f1029fdd1803832e852574902c1ae7253c05657f317db76da4ab. Run sh scratch/setup.sh once (includes Rust fallback); prefix later commands with . scratch/env.sh && ; apply patch, rebuild maturin release, run harness tests and amm-match validate. Setup failure: blocked={step,error}, paired.n=0. No host probes.\nEach X separately: amm_sim_rs.run_batch(X,VanillaStrategy,configs,8). Direct MatchRunner configs: default_rng(seed) size,rate,sigma; price seed, retail seed+1; 10000 steps,250000 gas. Use chunks<=32; keep all seeds. Enforce harness validity incl. other errors, Vanilla, per-seed/global counters and retail+arb reconciliation.\nOOG rule (overrides the objective): V2 itself has rare OOG halts (about 1 per 300k calls). Count OOG for V2 and the candidate on the same seeds and report both; the result is valid when the candidate has no more OOG than V2, so do not stop on V2's OOG and go on to the paired measurement.\nScreen the four variants plus unmodified G vs exact V2 on {{screen}} (256 seeds); reuse baseline rows. Run ONLY the best valid variant on {{select}} (512) vs V2, then freeze source/hash. No seeds >=4000000; confirmation is a separate episode. If time expires return completed training stages with actual n; never call a partial test confirmation.\nReturn JSON: code,sha256,base_sha256,v2_sha256,variant params/hashes and paired{n,mean_diff,se,worst} per stage, paired.stage=tuning, seeds, selection/freeze, gas and v2_gas{max_ok(afterSwap),init_max,oog,other_errors}, G-control, actual retail/arb edge deltas and V2-volume terciles, checks,blocked,confirmation=null. Supply a reproducible variant patch/generator. No board claim.",
      "items": [
        {
          "key": "first",
          "vars": {
            "gate": "firstInStep only",
            "screen": "10000..10255",
            "select": "12000..12511"
          }
        },
        {
          "key": "later",
          "vars": {
            "gate": "!firstInStep only",
            "screen": "20000..20255",
            "select": "22000..22511"
          }
        },
        {
          "key": "all",
          "vars": {
            "gate": "all afterSwap calls",
            "screen": "30000..30255",
            "select": "32000..32511"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 25,
        "brief": "Keep each item separate by code hash and gate. Tabulate training n/mean/SE, G control, gas and actual retail/arb deltas; distinguish blocked and incomplete stages. Preserve frozen code and reproducibility patches. Do not pool different policies or label tuning as confirmation."
      }
    },
    {
      "name": "e08-quote-audit",
      "mode": "research",
      "brief": "ONE quote-activation audit, <60min, no new policy, tuning or holdout. On 10000..10255 measure exact G and V2. V2 must reproduce mean523.2153137188661 and7 OOG (tolerance1e-8); report discrepancy if not.\nTrace G quotes and subsequent executed trades with offline engine labels: first/later callback, final lower/higher fee, quote age/next trade same-step retail versus later arb/retail. Include quotes carried through empty steps; first print need not be arb. Aggregate per-seed fee histograms, used-fee/volume-weighted summaries and actual retail/arb execution edge by phase and quoted side. Measure how often lower-fee caps30bps on first calls and36bps on all calls WOULD change G quotes, and mean cut; these are activation diagnostics, not counterfactual profits. Also report original tradeBoost and staleTox distributions to interpret the new hybrids. Never expose event labels or true price to Solidity. Trace instrumentation must preserve G's scores and gas counters: check exact parity on first16 seeds against trace-disabled runs.\nUse Linux x86_64. Clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in workspace, never /tmp. Fetch https://api.imd.fun/artifacts/206a4888de6fa1bda53cd2c9bad1632ccdbb63d32e7f09b6a332746b7a3ac3c3 (data). Its code is G; reusable_sources_bundle.data is base64(gzip(JSON filename->source)): put setup.sh,instrumentation.patch,harness.py,tests.py in scratch/, V2.sol and G in contracts/src/. Verify G sha610c1905e7dd5559b84e40a3b2d6f8e0b53a7b0ac7574ae33b6c1770a28367cb and V2 sha28417e116f57f1029fdd1803832e852574902c1ae7253c05657f317db76da4ab. Run sh scratch/setup.sh once (includes Rust fallback); prefix later commands with . scratch/env.sh && ; apply patch, rebuild maturin release, run harness tests and amm-match validate. Setup failure: blocked={step,error}, paired.n=0. No host probes.\nEach X separately: amm_sim_rs.run_batch(X,VanillaStrategy,configs,8). Direct MatchRunner configs: default_rng(seed) size,rate,sigma; price seed, retail seed+1; 10000 steps,250000 gas. Use chunks<=32; keep all seeds. Enforce harness validity incl. other errors, Vanilla, per-seed/global counters and retail+arb reconciliation.\nOOG rule (overrides the objective): V2 itself has rare OOG halts (about 1 per 300k calls). Count OOG for V2 and the candidate on the same seeds and report both; the result is valid when the candidate has no more OOG than V2, so do not stop on V2's OOG and go on to the paired measurement.\nReturn JSON: code(G),sha256,v2_sha256,paired{n,mean_diff,se,worst,stage:diagnostic},seeds,gas,v2_gas{max_ok(afterSwap),init_max,oog,other_errors},calibration,trace_parity,aggregated tables with denominators,actual retail/arb deltas,V2-volume terciles,interpretation,source patch/script,checks,blocked. No raw multi-million-row trace or fee*volume proxy for arb edge. No seeds>=4000000. Failed setup: n0; incomplete measurement: exact n and reason. No board claim.",
      "items": [
        {
          "key": "audit",
          "vars": {}
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 25,
        "brief": "Preserve the one diagnostic report and trace-parity evidence. Do not turn activation rates into measured candidate gains."
      }
    }
  ],
  "read": [
    "e08-small-floor/first",
    "e08-small-floor/later",
    "e08-small-floor/all",
    "e08-boost-cap/first",
    "e08-boost-cap/later",
    "e08-boost-cap/all",
    "e08-protect-hinge/first",
    "e08-protect-hinge/later",
    "e08-protect-hinge/all",
    "e08-quote-audit/audit",
    "e03-pilot-rerun/corridor",
    "e06-continuation/h2",
    "e07-hyb-flowcap/c2",
    "e06-g-base/verify",
    "e07-hyb-afterfirst/f1",
    "e07-hyb-afterfirst/f2",
    "e07-hyb-afterfirst/f3",
    "e07-hyb-floor/s1",
    "e07-hyb-floor/s3",
    "e07-hyb-flowcap/c1",
    "e07-hyb-flowcap/c3",
    "e06-continuation/h4",
    "e06-continuation/h8",
    "e03-pos-scale/s1",
    "e03-pilot-rerun/phase",
    "e05-flat-control/flat",
    "e03-design-b-edge/b2",
    "e05-position-rerun/p2",
    "e05-threshold-rerun/t2",
    "e05-pos-scale-copy/s2"
  ],
  "cancel": [],
  "wake": {
    "batches": [
      "e08-small-floor",
      "e08-boost-cap",
      "e08-protect-hinge",
      "e08-quote-audit",
      "e03-pilot-rerun",
      "e06-continuation",
      "e07-hyb-flowcap"
    ],
    "afterMinutes": 90
  },
  "finish": false
}
