{
  "notes": "Credit Taylor (gtmcknight): replica, Gaussian/lattice filters, dynamic program and qm tables; pinned github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved/README.md first.\n\nEPISODE 4 (2026-11-10 about 04:15Z). State on entry: 26/200 items used, 11 batches all unsettled, 4 results handed (hashes verified), 0 refused, 0 failed, effects.pending 0. Requester note 4 (04:12Z) arrived after episode 3 decided and is followed here: no more classifier items; spend on (c+) residual heads x6, (k) belief-state solve x2, (l) loss map vs the perfect-price policy x1. The COMBO contract port is being done in goal 5b196d0a: do not duplicate it; port only a stacked policy beyond COMBO here, and only after it is >=+0.5 vs qt1 on report.\n\nEVIDENCE READ.\ndata-b (seeds 71000..71255, 192 train/64 test seeds, histogram GBT 160 rounds on 41 first-trade observables): held-out error 0.15964 vs COMBO's own pi 0.16164, paired delta -0.0020 (95% CI -0.0024..-0.0016); no_history 0.16055, no_rival 0.15967, pi_only 0.16183 (no gain). Logloss 0.3455 vs 0.3568.\ndata-c (seeds 72000..72255, 52 features, GBDT 192 trees): full 0.158719 vs original 0.161723, delta -0.0030 (CI -0.0035..-0.0024); belief_size_timing 0.16044; dropping history costs +0.0008, dropping fees/rival +0.0003; pi_only gives no error gain (CI includes 0). Net 1352 rows corrected of 450109. Both copies: the first-trade call is at its information limit (0.2-0.3 points), worth about +0.03-0.05 edge. Classifier line closed.\ndata-c re-measured the references and they equal combo-flag's exactly: choose COMBO-TwoComp +0.2012 se .0153, COMBO-qt1 +0.6096 se .0194, TwoComp-qt1 +0.4084 se .0172; report COMBO-TwoComp +0.1726 se .0108, COMBO-qt1 +0.5974 se .0134, TwoComp-qt1 +0.4248 se .0122; report mean edges COMBO 533.860222, TwoComp 533.687634, qt1 533.262831. Reference numbers are now corroborated by two independent workers; gate P output matched the README in both.\ncombo-flag (re-handed): unchanged from episode 3's notes (flag-COMBO report +2.570119 se .020763; flag-qt1 +3.167510 se .022386; flag-HA +6.872907; qt1-HA +3.705396; COMBO error 16.1%, qt1 17.3%).\nsmoothing-b: BLOCKED on the worker's network (connection reset cloning amm-sim and fetching artifacts). Not a brief failure; it counts as accepted with no evidence. Re-spawned as e04-smoothing-b2 with a retry instruction.\n\nSPAWNED (10 items; if all accepted 36/200 used, 164 left):\ne04-residual-a (res-a, res-b, res-c) and e04-residual-b (res-d, res-e, res-f): residual fee head on COMBO (zero-initialized, offsets in bps on fb,fa after COMBO's lookup), sep-CMA-ES on block 64000..64511 with rotating minibatches, validation on 64512..64767, checkpoint selected on validation (choose seeds only), then full choose 1024 at 10000 steps, then report. Variants: a 8 units base inputs 10000-step minibatch 64 pop 8; b 8u base 2000-step mb256 pop12; c 16u +both components' moments 2000-step mb256; d 8u +components 10000-step mb64; e 8u +components 2000-step whole 512 block each generation; f 16u +components+history 2000-step mb256 amp 5 bps. Split 3+3 so the canary does not hold item 6. Expect few generations in 35 min of pure Python; the training curves tell whether this line needs more compute or a smaller head.\ne04-belief-solve (bs-a, bs-b): dp.py state extended with belief sd level (4) and arb-probability level (3), transitions estimated from unchanged COMBO's filter on 64000..64063, relative value iteration with per-sweep checkpoints (w coarsened to 10 bps if needed), qmdp tables, collapsed-axes control that must reproduce COMBO. a: sd levels 0 + terciles of nonzero sd, pi levels .005/.995 cuts; b: sd quartiles incl. zeros, pi levels .25/.75 cuts.\ne04-price-loss (loss-a): PricePol oracle (true log price as belief, rival and phase tracked from own trades as COMBO does), instrumented replica copy checked bit-for-bit, loss attribution on 64000..64255 by phase x silent steps x order size x call correctness x belief error; PricePol paired vs HA/COMBO/qt1 on report (requester expects about +8.50 vs HA).\ne04-smoothing-b2 (smoothing-b2): the (h) variant b smoother, tau grid on choose, live and flagged scores.\n\nSEEDS USED SO FAR: data copies 70000..72255; classifiers 73000..73511; choose 64000..65023 (residual train 64000..64511, validation 64512..64767; belief-solve transitions 64000..64063; loss map 64000..64255); report 10000..12047. Engine seeds: none consumed, next free 9900000.\n\nKEYS KNOWN: e02-baselines/references; e02-observable-data/data-a,data-b,data-c; e02-flag-ceilings/combo-flag; e03-smoothing/smoothing-a,smoothing-b; e04 keys above. Other e02/e03 item keys are unknown: small batches hand their accepted items automatically (this episode received data-b, data-c, smoothing-b unrequested), so do not guess keys in read; a bad reference can refuse the whole decision.\n\nWAKE: on the seven e02 and four e03 batches settling, else 75 minutes. e04 batches run meanwhile and should be handed by episode 6.\n\nEPISODE 5 SHOULD: (1) read the e02 classifier, residual-head, probability-tables, flag-localization and baselines results and the e03 finer-solve, full-posterior, information and smoothing-a results; check gate P and the reference numbers above; discard any item whose choose gain does not survive on report; treat a blocked result as no evidence and re-spawn it once if the cause was transient. (2) Rank live observable-only improvements by report mean_diff vs COMBO with se. (3) Spawn one stack per item combining the 2-3 compatible winners, pasting exact source from the results' bundles (hashes), choose then report, paired vs COMBO and qt1; keep each stack's brief under 3000 chars by naming bundle files rather than quoting code. (4) e04 results land by episode 6; stack the residual head or belief-state tables on top if they help. (5) Contracts only for a frozen observable policy >=+0.5 vs qt1 on report AND beyond COMBO: objective's Linux setup once at amm-challenge 6b6921f8d463314aa7c96234e1be25a25245f704 (scratch/setup.sh, then '. scratch/env.sh && '), gate F (fees within 0.01 bps on 50x2000 replica callbacks), deployed <=24576 B, afterSwap peak <=245000 gas, 0 OOG, run_batch(X, VanillaStrategy, configs, 8) with configs per MatchRunner._build_configs, fresh engine seeds from 9900000 in disjoint blocks, paired {n,mean_diff,se,worst5} vs qt1; setup failure -> blocked={step,error}. (6) Budget: keep >=40 items for ports and final checks; 164 left after this episode; 6 episodes (5..10) remain. (7) Board arithmetic (note 3): #1 needs about +3.6 over qt1 on the replica; the perfect flag on COMBO gives +3.17, so the price-between-pins line (finer solve, full posterior, belief-state solve, residual head) must supply about +0.4 beyond flag level plus whatever share of the +2.57 flag value a better belief recovers. No public submission until the requester asks the user. Goal unfinished. WAKE NOTE (e04): the wake list holds 10 batches at most, so e02-observable-data (2 of 3 accepted, data-a still running and requested in read) is not in it; the 75-minute timer and the other batches cover it, and data-a is handed over through read when it lands.",
  "spawn": [
    {
      "name": "e04-residual-a",
      "brief": "Credit Taylor (gtmcknight) in every header. One replica item {{copy}}, <1h; python3 -I, stdlib, state under scratch/, commands <8min (checkpoint+resume), no contract/engine/submission. curl --retry 5; if a source stays unreachable return blocked={step,error}.\nSOURCES: github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9 research/solved (README first), verify with git rev-parse. Artifacts https://api.imdnotdead.fun/artifacts/<h>, byte sha256 must equal h: qt1 8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40; TC d3c849db2ac31e567b57e52b80b86e8c24c842e5b4125b9d75c78e3cb07115b9; COMBO (publishes the extracted files' sha256s; verify them) d360bea6c8c982717b7b43a8069a87013169c89ee3e4da25622db4d880b936d4; QMS1 17d249ab0c33fc44931d9b105cf3f9e3846a560bd518b67310c2a56defacdecc.\nGATE P: gates.py unmodified first; all 12 values equal the README table at 6dp; qt1=QMRef edges 443.101741 571.454483 525.908441, COMBO 444.195330 572.172682 526.274760 on seeds 10000..10002; else stop, report blocked.\nGATE Q: a live policy reads only own callbacks and retained history, never arb/p/s2/j or init's sigma/lam/size (prove: randomize them on fixed callbacks, fees bit-identical). Choose/train/select only on 64000..65023; freeze code+params (sha256); run 10000..12047 once, replica2.run defaults, paired vs COMBO and vs qt1 on identical seeds; never tune or select on report.\nRESULT (json <=64000B): gates_output verbatim; hashes; frozen_spec; choose and report, each pair {n,mean_diff,se=sd/sqrt(n),worst5[[seed,diff]],wins,sum_d,sum_d2}; findings; limitations; your source bundled as earlier items did (json {path:text}, zlib, text-safe encoded) with sha256s and regeneration commands. Missing coverage is reported as such, never as a pass.\nTASK (c+): residual fee head on COMBO, variant {{copy}}: {{units}} tanh units; inputs {{inputs}}, each standardized by a fixed scale set from 16 choose seeds. Outputs 2 offsets in bps (tanh x {{amp}}) added to COMBO's fb,fa after its lookup, clipped to the replica's fee bounds; output weights start at 0 so the head equals COMBO bit-for-bit (assert on 4 seeds). Train by sep-CMA-ES (diagonal, sigma0 0.3, popsize {{pop}}) on 64000..64511: each generation scores the population on one rotating minibatch of {{mb}} seeds at n_steps={{steps}}, fitness = mean paired gain vs COMBO's cached edge on the same (seed,n_steps); every 4 generations evaluate the CMA mean on 64512..64767 at that n_steps (validation); checkpoint each generation; stop at 35min wall. Select the checkpoint with best validation, score it on the full choose 1024 at 10000 steps, freeze, report. Result adds: training_curve [gen,train_fit,validation], generations, wall seconds, parameter count, frozen weights, zero-head identity check, seconds per 1000 steps, C-COMBO and C-qt1 on both windows.",
      "items": [
        {
          "key": "res-a",
          "vars": {
            "copy": "a",
            "units": "8",
            "inputs": "pi, belief mean minus mid (bps), belief sd (bps), w, R, phase, own trade size over the size law, silent steps",
            "amp": "3",
            "pop": "8",
            "mb": "64",
            "steps": "10000"
          }
        },
        {
          "key": "res-b",
          "vars": {
            "copy": "b",
            "units": "8",
            "inputs": "pi, belief mean minus mid (bps), belief sd (bps), w, R, phase, own trade size over the size law, silent steps",
            "amp": "3",
            "pop": "12",
            "mb": "256",
            "steps": "2000"
          }
        },
        {
          "key": "res-c",
          "vars": {
            "copy": "c",
            "units": "16",
            "inputs": "pi, belief mean minus mid (bps), belief sd (bps), w, R, phase, own trade size over the size law, silent steps, both components' means, sds and weights",
            "amp": "3",
            "pop": "12",
            "mb": "256",
            "steps": "2000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep every item's result as it is; list each item's status, gate P/Q outcome, choose and report paired numbers vs COMBO and qt1, and any blocked step, one row per item. Credit Taylor (gtmcknight)."
      }
    },
    {
      "name": "e04-residual-b",
      "brief": "Credit Taylor (gtmcknight) in every header. One replica item {{copy}}, <1h; python3 -I, stdlib, state under scratch/, commands <8min (checkpoint+resume), no contract/engine/submission. curl --retry 5; if a source stays unreachable return blocked={step,error}.\nSOURCES: github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9 research/solved (README first), verify with git rev-parse. Artifacts https://api.imdnotdead.fun/artifacts/<h>, byte sha256 must equal h: qt1 8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40; TC d3c849db2ac31e567b57e52b80b86e8c24c842e5b4125b9d75c78e3cb07115b9; COMBO (publishes the extracted files' sha256s; verify them) d360bea6c8c982717b7b43a8069a87013169c89ee3e4da25622db4d880b936d4; QMS1 17d249ab0c33fc44931d9b105cf3f9e3846a560bd518b67310c2a56defacdecc.\nGATE P: gates.py unmodified first; all 12 values equal the README table at 6dp; qt1=QMRef edges 443.101741 571.454483 525.908441, COMBO 444.195330 572.172682 526.274760 on seeds 10000..10002; else stop, report blocked.\nGATE Q: a live policy reads only own callbacks and retained history, never arb/p/s2/j or init's sigma/lam/size (prove: randomize them on fixed callbacks, fees bit-identical). Choose/train/select only on 64000..65023; freeze code+params (sha256); run 10000..12047 once, replica2.run defaults, paired vs COMBO and vs qt1 on identical seeds; never tune or select on report.\nRESULT (json <=64000B): gates_output verbatim; hashes; frozen_spec; choose and report, each pair {n,mean_diff,se=sd/sqrt(n),worst5[[seed,diff]],wins,sum_d,sum_d2}; findings; limitations; your source bundled as earlier items did (json {path:text}, zlib, text-safe encoded) with sha256s and regeneration commands. Missing coverage is reported as such, never as a pass.\nTASK (c+): residual fee head on COMBO, variant {{copy}}: {{units}} tanh units; inputs {{inputs}}, each standardized by a fixed scale set from 16 choose seeds. Outputs 2 offsets in bps (tanh x {{amp}}) added to COMBO's fb,fa after its lookup, clipped to the replica's fee bounds; output weights start at 0 so the head equals COMBO bit-for-bit (assert on 4 seeds). Train by sep-CMA-ES (diagonal, sigma0 0.3, popsize {{pop}}) on 64000..64511: each generation scores the population on one rotating minibatch of {{mb}} seeds at n_steps={{steps}}, fitness = mean paired gain vs COMBO's cached edge on the same (seed,n_steps); every 4 generations evaluate the CMA mean on 64512..64767 at that n_steps (validation); checkpoint each generation; stop at 35min wall. Select the checkpoint with best validation, score it on the full choose 1024 at 10000 steps, freeze, report. Result adds: training_curve [gen,train_fit,validation], generations, wall seconds, parameter count, frozen weights, zero-head identity check, seconds per 1000 steps, C-COMBO and C-qt1 on both windows.",
      "items": [
        {
          "key": "res-d",
          "vars": {
            "copy": "d",
            "units": "8",
            "inputs": "pi, belief mean minus mid (bps), belief sd (bps), w, R, phase, own trade size over the size law, silent steps, both components' means, sds and weights",
            "amp": "3",
            "pop": "8",
            "mb": "64",
            "steps": "10000"
          }
        },
        {
          "key": "res-e",
          "vars": {
            "copy": "e",
            "units": "8",
            "inputs": "pi, belief mean minus mid (bps), belief sd (bps), w, R, phase, own trade size over the size law, silent steps, both components' means, sds and weights",
            "amp": "3",
            "pop": "8",
            "mb": "512 (whole block)",
            "steps": "2000"
          }
        },
        {
          "key": "res-f",
          "vars": {
            "copy": "f",
            "units": "16",
            "inputs": "pi, belief mean minus mid (bps), belief sd (bps), w, R, phase, own trade size over the size law, silent steps, both components' means, sds and weights, steps since last pin, last fill side/size, ew own fill size",
            "amp": "5",
            "pop": "12",
            "mb": "256",
            "steps": "2000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep every item's result as it is; list each item's status, gate P/Q outcome, choose and report paired numbers vs COMBO and qt1, and any blocked step, one row per item. Credit Taylor (gtmcknight)."
      }
    },
    {
      "name": "e04-belief-solve",
      "brief": "Credit Taylor (gtmcknight) in every header. One replica item {{copy}}, <1h; python3 -I, stdlib, state under scratch/, commands <8min (checkpoint+resume), no contract/engine/submission. curl --retry 5; if a source stays unreachable return blocked={step,error}.\nSOURCES: github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9 research/solved (README first), verify with git rev-parse. Artifacts https://api.imdnotdead.fun/artifacts/<h>, byte sha256 must equal h: qt1 8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40; TC d3c849db2ac31e567b57e52b80b86e8c24c842e5b4125b9d75c78e3cb07115b9; COMBO (publishes the extracted files' sha256s; verify them) d360bea6c8c982717b7b43a8069a87013169c89ee3e4da25622db4d880b936d4; QMS1 17d249ab0c33fc44931d9b105cf3f9e3846a560bd518b67310c2a56defacdecc.\nGATE P: gates.py unmodified first; all 12 values equal the README table at 6dp; qt1=QMRef edges 443.101741 571.454483 525.908441, COMBO 444.195330 572.172682 526.274760 on seeds 10000..10002; else stop, report blocked.\nGATE Q: a live policy reads only own callbacks and retained history, never arb/p/s2/j or init's sigma/lam/size (prove: randomize them on fixed callbacks, fees bit-identical). Choose/train/select only on 64000..65023; freeze code+params (sha256); run 10000..12047 once, replica2.run defaults, paired vs COMBO and vs qt1 on identical seeds; never tune or select on report.\nRESULT (json <=64000B): gates_output verbatim; hashes; frozen_spec; choose and report, each pair {n,mean_diff,se=sd/sqrt(n),worst5[[seed,diff]],wins,sum_d,sum_d2}; findings; limitations; your source bundled as earlier items did (json {path:text}, zlib, text-safe encoded) with sha256s and regeneration commands. Missing coverage is reported as such, never as a pass.\nTASK (k): belief-state solve, variant {{copy}}. Read dp.py, qmdp.py and COMBO's lookup. Extend dp.py's state with two observable axes, COMBO's own filter outputs at the quote: belief sd level (4 levels: {{sdlevels}}) and arb-probability level (3 levels: {{pilevels}}). Transitions from the filter's own updates: run unchanged COMBO on 64000..64063, record (sd level, pi level, phase, fill bucket) before and after every update, estimate the conditional transition matrix alongside dp.py's existing transition; weight the arb/retail hypothesis in the reward by the level's mean pi. Solve by relative value iteration (average reward), one sweep per command with checkpoint/resume; coarsen w to 10bps first if a sweep would not fit 8min. Build tables through qmdp.py from the saved values, kappa 1e-5, and plug the extended lookup into a copy of COMBO (filter unchanged). Control: the same pipeline with both axes collapsed to one level must reproduce COMBO within se (report whether). Nothing tuned beyond the levels; choose then report. Result adds: state size, sweeps, convergence span, solve wall time, transition counts, control comparison, C-COMBO, C-qt1 both windows.",
      "items": [
        {
          "key": "bs-a",
          "vars": {
            "copy": "a",
            "sdlevels": "0 (hard call) plus terciles of COMBO's nonzero sd on 64000..64063",
            "pilevels": "pi<=.005, .005<pi<.995, pi>=.995"
          }
        },
        {
          "key": "bs-b",
          "vars": {
            "copy": "b",
            "sdlevels": "quartiles of COMBO's sd on 64000..64063 including zeros",
            "pilevels": "pi<.25, .25<=pi<=.75, pi>.75"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep every item's result as it is; list each item's status, gate P/Q outcome, choose and report paired numbers vs COMBO and qt1, and any blocked step, one row per item. Credit Taylor (gtmcknight)."
      }
    },
    {
      "name": "e04-price-loss",
      "brief": "Credit Taylor (gtmcknight) in every header. One replica item {{copy}}, <1h; python3 -I, stdlib, state under scratch/, commands <8min (checkpoint+resume), no contract/engine/submission. curl --retry 5; if a source stays unreachable return blocked={step,error}.\nSOURCES: github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9 research/solved (README first), verify with git rev-parse. Artifacts https://api.imdnotdead.fun/artifacts/<h>, byte sha256 must equal h: qt1 8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40; TC d3c849db2ac31e567b57e52b80b86e8c24c842e5b4125b9d75c78e3cb07115b9; COMBO (publishes the extracted files' sha256s; verify them) d360bea6c8c982717b7b43a8069a87013169c89ee3e4da25622db4d880b936d4; QMS1 17d249ab0c33fc44931d9b105cf3f9e3846a560bd518b67310c2a56defacdecc.\nGATE P: gates.py unmodified first; all 12 values equal the README table at 6dp; qt1=QMRef edges 443.101741 571.454483 525.908441, COMBO 444.195330 572.172682 526.274760 on seeds 10000..10002; else stop, report blocked.\nGATE Q: a live policy reads only own callbacks and retained history, never arb/p/s2/j or init's sigma/lam/size (prove: randomize them on fixed callbacks, fees bit-identical). Choose/train/select only on 64000..65023; freeze code+params (sha256); run 10000..12047 once, replica2.run defaults, paired vs COMBO and vs qt1 on identical seeds; never tune or select on report.\nRESULT (json <=64000B): gates_output verbatim; hashes; frozen_spec; choose and report, each pair {n,mean_diff,se=sd/sqrt(n),worst5[[seed,diff]],wins,sum_d,sum_d2}; findings; limitations; your source bundled as earlier items did (json {path:text}, zlib, text-safe encoded) with sha256s and regeneration commands. Missing coverage is reported as such, never as a pass.\nTASK (l): where COMBO loses to the perfect-price policy. Build PricePol (oracle-only): a copy of COMBO whose belief is replaced at every callback by the true log price (mean=ln p, sd=0) while rival and phase are tracked from own trades exactly as COMBO does, quoting through COMBO's table. Score it paired vs HA (calib_out_2048.json), COMBO and qt1 on the report seeds (requester expects about +8.50 vs HA; report measured). Instrument a copy of replica2.py to record per-step edge contributions (own fills, arb losses, fees); assert its totals equal unmodified replica2 bit-for-bit on 64000..64007. On 64000..64255 run COMBO and PricePol and attribute the per-step edge gap to buckets: COMBO's phase at the quote (hard arb, hard retail, ambiguous); silent steps before the step (0,1,2-3,4-9,10+); first own trade size vs the retail size law (|z|<1,1-2,>2); COMBO's first-trade call (right, wrong, none); belief error |mean-ln p| in bps (0-2.5,2.5-5,5-10,10+). Per bucket: count, mean gap per step, share of the total gap; plus the joint phase x silent-steps table, the gap share in wrong-call vs right-call steps, and the top 5 buckets by share. No tuning: choose seeds serve the diagnostic, report seeds only the paired scores.",
      "items": [
        {
          "key": "loss-a",
          "vars": {
            "copy": "a"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep every item's result as it is; list each item's status, gate P/Q outcome, choose and report paired numbers vs COMBO and qt1, and any blocked step, one row per item. Credit Taylor (gtmcknight)."
      }
    },
    {
      "name": "e04-smoothing-b2",
      "brief": "Credit Taylor (gtmcknight) in every header. One replica item {{copy}}, <1h; python3 -I, stdlib, state under scratch/, commands <8min (checkpoint+resume), no contract/engine/submission. curl --retry 5; if a source stays unreachable return blocked={step,error}.\nSOURCES: github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9 research/solved (README first), verify with git rev-parse. Artifacts https://api.imdnotdead.fun/artifacts/<h>, byte sha256 must equal h: qt1 8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40; TC d3c849db2ac31e567b57e52b80b86e8c24c842e5b4125b9d75c78e3cb07115b9; COMBO (publishes the extracted files' sha256s; verify them) d360bea6c8c982717b7b43a8069a87013169c89ee3e4da25622db4d880b936d4; QMS1 17d249ab0c33fc44931d9b105cf3f9e3846a560bd518b67310c2a56defacdecc.\nGATE P: gates.py unmodified first; all 12 values equal the README table at 6dp; qt1=QMRef edges 443.101741 571.454483 525.908441, COMBO 444.195330 572.172682 526.274760 on seeds 10000..10002; else stop, report blocked.\nGATE Q: a live policy reads only own callbacks and retained history, never arb/p/s2/j or init's sigma/lam/size (prove: randomize them on fixed callbacks, fees bit-identical). Choose/train/select only on 64000..65023; freeze code+params (sha256); run 10000..12047 once, replica2.run defaults, paired vs COMBO and vs qt1 on identical seeds; never tune or select on report.\nRESULT (json <=64000B): gates_output verbatim; hashes; frozen_spec; choose and report, each pair {n,mean_diff,se=sd/sqrt(n),worst5[[seed,diff]],wins,sum_d,sum_d2}; findings; limitations; your source bundled as earlier items did (json {path:text}, zlib, text-safe encoded) with sha256s and regeneration commands. Missing coverage is reported as such, never as a pass.\nTASK (h, variant b; a first run was blocked by a network failure, so retry fetches): causal smoother inside COMBO. Carry the previous step's arb and retail hypotheses into the next step as components (at most 4; variant b prunes components whose weight is below tau and records the lost mass per step), propagate them with COMBO's no-arb cuts and step dynamics, compute pi from the mixture on the first own trade, and reweight pi with later same-step fills only when they arrive (fees in force are not revised). Choose tau from {1e-3,1e-2,3e-2,0.1} on choose by live gain vs COMBO; freeze; report. Also run the flag intervention (pi=float(true arb) right after pi is computed on dt>=1 first trades, before is_arb, MIX, posterior, rival, phase and quote; oracle-only) on your policy (Cflag) and on COMBO (ComboFlag); report Cflag-ComboFlag, Cflag-COMBO, Cflag-qt1 with C-COMBO and C-qt1. Result adds: first-call and delayed (after same-step fills) error rates for COMBO and C on both windows, mean components kept, lost-mass histogram, tau grid gains with se, and the ComboFlag check (report flag-COMBO +2.570119 se .020763, flag-qt1 +3.167510 se .022386).",
      "items": [
        {
          "key": "smoothing-b2",
          "vars": {
            "copy": "b2"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep every item's result as it is; list each item's status, gate P/Q outcome, choose and report paired numbers vs COMBO and qt1, and any blocked step, one row per item. Credit Taylor (gtmcknight)."
      }
    }
  ],
  "read": [
    "e02-baselines/references",
    "e02-observable-data/data-a",
    "e03-smoothing/smoothing-a",
    "e04-residual-a/res-a",
    "e04-residual-a/res-b",
    "e04-residual-a/res-c",
    "e04-residual-b/res-d",
    "e04-residual-b/res-e",
    "e04-residual-b/res-f",
    "e04-belief-solve/bs-a",
    "e04-belief-solve/bs-b",
    "e04-price-loss/loss-a",
    "e04-smoothing-b2/smoothing-b2"
  ],
  "cancel": [],
  "wake": {
    "batches": [
      "e02-baselines",
      "e02-classifier",
      "e02-residual-head",
      "e02-probability-tables",
      "e02-flag-localization",
      "e02-flag-ceilings",
      "e03-finer-solve",
      "e03-full-posterior",
      "e03-smoothing",
      "e03-information"
    ],
    "afterMinutes": 75
  },
  "finish": false
}