{
 "notes": "Credit Taylor (gtmcknight): replica, filters, dynamic program and qm tables, github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first.\n\nEPISODE 8 (2026-11-10, about 07:00Z). On entry: 52/200 items used, 25 batches, 0 failed, 0 refused, no requester note after note 7. Nine items of seven e02/e03 batches still showed running since episodes 2 and 3; their lines were closed by notes 4 and later evidence, so those batches are cancelled. All 15 input sha256 equal the task's list. The bundles of tca-path, tca-short and qtr2-path were unpacked and read as data (compressed hashes match); no worker code was run here.\n\nE07 RESULTS (report = 10000..12047, n 2048, paired vs qt1's QMRef unless said; P reproduced in each).\n- tca-path: TC-A + bounded tell (cap 2, floor 1e-4; both sell paths redone, 13-step buy scan). Q full: choose +3.0777 se .0307 (min +.129); report +3.1335 se .0223, min -1.396 (seed 11062), +2.7085 se .0206 vs TC-A. T pass: 350,662 first trades, 0 mismatches. F pass: 100,000 callbacks, max 4.8e-7 bps (at a 2,000,000 gas test limit). G FAIL: 24,552 bytes fits, but replay peak 298,073 gas (131 callbacks over 245k; TC-A alone 174,243 on seed 64000) and on engine seeds 9963072..79 2,579 of 83,962 callbacks ran out of gas (mean 172k vs qt1 138k; qt1 max 206,459). Its pilot pairing, -1.50 se 1.20, is driven by those failures and says nothing about the tell. E not run. Cause, read in TellCore.sol: generic Solidity soft-float (an 8-branch msb in every pack), up to 16 full redos per sell and 26 scan steps per buy; I estimate about 700 gas an operation.\n- tca-short: Python only, no contract, no engine seed. Report +3.1578 se .0225 but min -2.383 (seed 10481) fails min >= -2: it treats arb_only as decisive even when the retail redo was unsupported. Lesson: a positive must never be decisive.\n- qtr2-path: qtr2 tables + two-component posterior + tell (cap 8, floor 1e-4, budget 128). Q full: choose +3.0914, report +3.1499 se .0224, min -1.397. Solidity 25,564 bytes, 988 over the limit, never deployed: no T, F, G or E, no engine seed. A budget of 128 redos cannot fit gas; not pursued.\n- buy-grid: source-built engine, qt1, seeds 9950024..31, 93,187 callbacks, 0 replay mismatches. The buy grid survives the compiled engine: first buys, arb 16,441 with 0 misses, retail 19/13,128 positive. First sells, one-division test: arb 15,100 with 0 misses, retail 20/13,338 positive. The arb-only functions at budget 4 had 0 fallbacks and the complete search's answers; at budget 2 they fall back on 26% of arbs. Source build, not the release wheel.\n- o2-a: engine 9950000..07, 84,954 trades all replayed to the wad; first sells arb[3024,0,12014,0], retail[0,12680,18,0] (arb-only, retail-only, both, neither).\n- visit-refit: QMS1 coefficients refitted under tell visitation, same 10,167-byte layout (sha256 ca5a606d074224ccc72fb4999c1d01a677ba00440ba39df2f99eba4913a72e1d, in blobs.new.zlib_base64). C-BASE report +0.0491 se .0037; C-qt1 +3.2055 se .0224; its BASE (TwoComp + tell, floor 1e-3, cap 64) +3.1565. Full 5 bps tables would give +0.108 (se .013, 512 choose seeds). No gas, no bytes: a drop-in once a contract passes.\n- numba-rng: parity PASS (384/384 within 1.2e-11, head hook too), about 20x CPython, 12.4 runs/s on a throttled machine. The head line stays closed: a head costs 51.5k gas (cost8), no room beside a tell.\n- net-head: NET+HEAD on COMBO, report +0.1490 se .0104 over COMBO, +0.7464 over qt1: additive, small.\n\nWHERE IT STANDS. Three independent tell references reach +3.13 to +3.16 over qt1 on the replica (true flag: +3.17). What is missing is a contract inside 245,000 gas. No contract has yet run the tell on the release wheel without gas failures, so the compiled-engine check (E) is still open.\n\nSPAWNED: 17 items (69/200 if all run).\n- e08-lean-a (la-1..la-5) and e08-lean-b (lb-1..lb-5), one brief, two batches of five so that no canary holds items. TC-A + LEAN tell: arb-only tests (sell one-division, buy grid, budget 4). Positive: Bayes with L 15/13131 (sell) or 16/12889 (buy), capped at 1 - 1e-4, mixture kept. Negative: pi 0. Fallback: pi unchanged. New Python reference and new Solidity from tca-path's bundle; gates P, Q (at least 512 report seeds in the item), T, F, G, then E on 256 engine seeds and 256 more if time. My estimate, not measured: about 12 float operations a call, +10k to 15k gas on TC-A's 205-209k. qt1.sol is not in tca-path's bundle; the briefs point to qt1's artifact.\n- e08-same-label (sl-1..sl-4): tca-path's reference byte-identical, so its Q stands; only the Solidity is rewritten for gas. Gates T, F, G, E as above. If one passes, its chain P, Q, T, F, G is complete.\n- e08-refit-stack (refit): visit-refit's blob inside tca-path's frozen policy on the report seeds, nothing chosen.\n- e08-lattice-tell (lat-a 10000..10511, lat-b 10512..11023): Taylor's lattice filter with the tell's labels against TellPolicy: what the belief's shape is still worth. For the write-up's account of what is missing, not for a contract.\n\nSEEDS. Engine, new region. Item k (la-1..5 = 0..4, lb-1..5 = 5..9, sl-1..4 = 10..13), base = 9970000 + 1000k: pilot base..base+7; spare pilots base+8..base+63; E1 base+100..base+355; E2 base+400..base+655. In episode 9 treat every one as consumed unless an item's ledger says otherwise; next fresh region 9990000. Earlier: 9900000..15, 9950000..31 and 9963072..79 consumed; 9960000..9963071 and 9963080..95 were reserved in e07 and never run: do not recycle. Replica: T/F 74200..74249 (reuse is fine); debug 64000..64063; choose 64000..65023; report 10000..12047.\n\nEPISODE 9 (the last that can spawn and still be read; 10 writes up).\n1. Rank the contracts that pass T, F and G (peak <= 245,000, 0 out-of-gas, <= 24,576 bytes): full gate chain first, then lowest peak, then the E mean. If E is near 0 while Q is near +3, the wheel's arithmetic differs from the port: say so; that ends the tell on this engine.\n2. For the best one or two (hand the bundle by artifact URL, https://api.imdnotdead.fun/artifacts/<sha256 of the result's bytes>): independent confirmation on fresh seeds from 9990000: E 2 x 512 vs qt1 split 256 an item, each strategy alone vs VanillaStrategy; for a lean reference the full Q on 10000..12047 in blocks of 512 by file hash; T and F rerun by another seat. A dataset table with replicas only if it is cheap.\n3. If refit-stack holds (about +0.05): one or two items swap the coefficient words into the passing contract (same code, same gas), rerun F and a short E, Q paired.\n4. If nothing passes G: one more build round is still possible in 9, but 10 can only read it. Write up the replica result, the gas figures and what is left; claim no contract.\nEpisode 10: finish=true. The write-up needs the code hash, each gate's evidence, the paired engine result and the gap: tell about +3.15 (+0.05 with the refit) against about +3.6 for #1 by the requester's 0.97 ratio (a planning heuristic, not a conversion), so about 5th or 6th unless E surprises.\n\nFOR THE REQUESTER. Nothing was submitted and no submission is decided here. The tell reads the simulator's arithmetic, not the market: whether the puzzle's rules allow it, and whether the board's server binary rounds as the wheel does, are for the user to weigh before any submission.\n\nURLS (https://api.imdnotdead.fun/artifacts/ + sha256): tca-path dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7; buy-grid a162a591237e25c49d30b98c30c1c1fdc23746ead5ff3371a460a77357825624; visit-refit 5893446c82f8bc1473468bba6b156ec2a96ce3df5ddfc897c05c63cf545e1162; qtr2-path f969ac56c8b0adc16ff7598a9340c4f5aab9a8304f892bd9d7fbad7c2037fbbd; tca-short 27b1249d19af14698bccada40f75fe3fbd2b34f7fcae89a291b046392935a9d1; qt1 8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40 (Solidity sha256 c68887cff61180e12ba2b1ceb333edf76a830f91f63b5d775a8806fb9ec08aca).\n\nWAKE: the five e08 batches, else 75 minutes. finish=false.",
 "spawn": [
  {
   "name": "e08-lean-a",
   "brief": "Credit Taylor (gtmcknight): replica, filter, qm tables (github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved); seats qt1, TC-A #770, o1-a #541, o1-b #1497, tca-path, buy-grid. No leaderboard submission.\nSTART: result tca-path, https://api.imdnotdead.fun/artifacts/dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (its sha256 names it; check). Its source_bundle.data is base85 tar.xz: read scratch/NOTES.md, run scratch/materialize.py. It holds TC-A + a wad tell: scratch/ref, Strategy.sol and each gate's harness (score.py, test_contract.py, engine.py; setup.sh: run it once from the root of github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704, then prefix `. scratch/env.sh && `). qt1.sol: the Solidity block of https://api.imdnotdead.fun/artifacts/8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40. Its contract passes T and F but peaks at 298,073 gas.\nTASK: replace that tell, in reference and Solidity, by the LEAN TELL. On a step's first own trade, from the previous callback's reserve wads, the fee wads returned then and this TradeInfo; a wad's doubles are all binary64 d with trunc(d*1e18) = wad; g = 1 - feeWad/1e18. Pool sells X: positive if doubles py, cy of the previous and new reserveY give d = cy - py > 0 and trunc((d/g)*1e18) = amountY. Pool buys X: positive if a double rx of the previous reserveX and a double xv > rx give trunc(((xv - rx)/g)*1e18) = amountX. They are the bounded sell_one_division and buy_grid tests, budget 4, of result buy-grid (code.zlib_base64), https://api.imdnotdead.fun/artifacts/a162a591237e25c49d30b98c30c1c1fdc23746ead5ff3371a460a77357825624. Positive: pi := pi/(pi + (1-pi)*L), L = 15/13131 sell, 16/12889 buy, capped at 1 - 1e-4, mixture kept as policy.py does after buy_pass. Negative: pi := 0. Over budget or unsupported: pi unchanged. Tune nothing.\nGATES in order: (P) gates.py unmodified reproduces the README; (Q) reference vs QMRef (qt1) and TwoComp: debug on 64000..64063, freeze hashes, then 10000..12047 once, in order, at least 512 seeds; pass: >= +2.0 over qt1, no seed under -2; (T) Solidity label = reference label on every first trade of seeds 74200..74249; (F) fees within 0.01 bps on 50 x 2,000 callbacks; (G) <= 24,576 bytes; engine seeds {{pilot}}: afterSwap peak <= 245,000, 0 out-of-gas, candidate and qt1 each vs VanillaStrategy as engine.py runs them; after a Solidity change take the next 8 of {{spare}}; (E) once G passes: same pairing on {{e1}}, then {{e2}} if time allows. No engine seed twice or outside these ranges; no command over 8 minutes.\nRESULT (JSON): status and figures per gate (Q and E as paired {n, mean_diff, se, min, worst5} vs qt1; T and F counts and largest fee error; bytes; peak gas and out-of-gas for candidate and qt1; the tell's gas alone); seeds consumed; a bundle (base64 tar.xz, sha256, file hashes) with the full Strategy.sol, credit header, and each file you changed.",
   "items": [
    {
     "key": "la-1",
     "vars": {
      "pilot": "9970000..9970007",
      "spare": "9970008..9970063",
      "e1": "9970100..9970355",
      "e2": "9970400..9970655"
     }
    },
    {
     "key": "la-2",
     "vars": {
      "pilot": "9971000..9971007",
      "spare": "9971008..9971063",
      "e1": "9971100..9971355",
      "e2": "9971400..9971655"
     }
    },
    {
     "key": "la-3",
     "vars": {
      "pilot": "9972000..9972007",
      "spare": "9972008..9972063",
      "e1": "9972100..9972355",
      "e2": "9972400..9972655"
     }
    },
    {
     "key": "la-4",
     "vars": {
      "pilot": "9973000..9973007",
      "spare": "9973008..9973063",
      "e1": "9973100..9973355",
      "e2": "9973400..9973655"
     }
    },
    {
     "key": "la-5",
     "vars": {
      "pilot": "9974000..9974007",
      "spare": "9974008..9974063",
      "e1": "9974100..9974355",
      "e2": "9974400..9974655"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   }
  },
  {
   "name": "e08-lean-b",
   "brief": "Credit Taylor (gtmcknight): replica, filter, qm tables (github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved); seats qt1, TC-A #770, o1-a #541, o1-b #1497, tca-path, buy-grid. No leaderboard submission.\nSTART: result tca-path, https://api.imdnotdead.fun/artifacts/dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (its sha256 names it; check). Its source_bundle.data is base85 tar.xz: read scratch/NOTES.md, run scratch/materialize.py. It holds TC-A + a wad tell: scratch/ref, Strategy.sol and each gate's harness (score.py, test_contract.py, engine.py; setup.sh: run it once from the root of github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704, then prefix `. scratch/env.sh && `). qt1.sol: the Solidity block of https://api.imdnotdead.fun/artifacts/8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40. Its contract passes T and F but peaks at 298,073 gas.\nTASK: replace that tell, in reference and Solidity, by the LEAN TELL. On a step's first own trade, from the previous callback's reserve wads, the fee wads returned then and this TradeInfo; a wad's doubles are all binary64 d with trunc(d*1e18) = wad; g = 1 - feeWad/1e18. Pool sells X: positive if doubles py, cy of the previous and new reserveY give d = cy - py > 0 and trunc((d/g)*1e18) = amountY. Pool buys X: positive if a double rx of the previous reserveX and a double xv > rx give trunc(((xv - rx)/g)*1e18) = amountX. They are the bounded sell_one_division and buy_grid tests, budget 4, of result buy-grid (code.zlib_base64), https://api.imdnotdead.fun/artifacts/a162a591237e25c49d30b98c30c1c1fdc23746ead5ff3371a460a77357825624. Positive: pi := pi/(pi + (1-pi)*L), L = 15/13131 sell, 16/12889 buy, capped at 1 - 1e-4, mixture kept as policy.py does after buy_pass. Negative: pi := 0. Over budget or unsupported: pi unchanged. Tune nothing.\nGATES in order: (P) gates.py unmodified reproduces the README; (Q) reference vs QMRef (qt1) and TwoComp: debug on 64000..64063, freeze hashes, then 10000..12047 once, in order, at least 512 seeds; pass: >= +2.0 over qt1, no seed under -2; (T) Solidity label = reference label on every first trade of seeds 74200..74249; (F) fees within 0.01 bps on 50 x 2,000 callbacks; (G) <= 24,576 bytes; engine seeds {{pilot}}: afterSwap peak <= 245,000, 0 out-of-gas, candidate and qt1 each vs VanillaStrategy as engine.py runs them; after a Solidity change take the next 8 of {{spare}}; (E) once G passes: same pairing on {{e1}}, then {{e2}} if time allows. No engine seed twice or outside these ranges; no command over 8 minutes.\nRESULT (JSON): status and figures per gate (Q and E as paired {n, mean_diff, se, min, worst5} vs qt1; T and F counts and largest fee error; bytes; peak gas and out-of-gas for candidate and qt1; the tell's gas alone); seeds consumed; a bundle (base64 tar.xz, sha256, file hashes) with the full Strategy.sol, credit header, and each file you changed.",
   "items": [
    {
     "key": "lb-1",
     "vars": {
      "pilot": "9975000..9975007",
      "spare": "9975008..9975063",
      "e1": "9975100..9975355",
      "e2": "9975400..9975655"
     }
    },
    {
     "key": "lb-2",
     "vars": {
      "pilot": "9976000..9976007",
      "spare": "9976008..9976063",
      "e1": "9976100..9976355",
      "e2": "9976400..9976655"
     }
    },
    {
     "key": "lb-3",
     "vars": {
      "pilot": "9977000..9977007",
      "spare": "9977008..9977063",
      "e1": "9977100..9977355",
      "e2": "9977400..9977655"
     }
    },
    {
     "key": "lb-4",
     "vars": {
      "pilot": "9978000..9978007",
      "spare": "9978008..9978063",
      "e1": "9978100..9978355",
      "e2": "9978400..9978655"
     }
    },
    {
     "key": "lb-5",
     "vars": {
      "pilot": "9979000..9979007",
      "spare": "9979008..9979063",
      "e1": "9979100..9979355",
      "e2": "9979400..9979655"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   }
  },
  {
   "name": "e08-same-label",
   "brief": "Credit Taylor (gtmcknight): replica, filter, qm tables (github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved); seats qt1, TC-A #770, o1-a #541, o1-b #1497, tca-path. One contract build; no leaderboard submission.\nSTART: result tca-path, https://api.imdnotdead.fun/artifacts/dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (check its sha256, the URL's name). Its source_bundle.data is base85 tar.xz: read scratch/NOTES.md, run scratch/materialize.py. It holds TC-A + a wad tell: scratch/ref (reference, hashes in scratch/frozen.json), Strategy.sol and each gate's harness (test_contract.py, engine.py; setup.sh: run it once from the root of github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704, then prefix `. scratch/env.sh && `). qt1.sol: the Solidity block of https://api.imdnotdead.fun/artifacts/8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40. That reference passed Q (+3.1335 se 0.0223 over qt1 on 10000..12047, minimum -1.396); the contract passed T and F at 24,552 bytes. It fails G: afterSwap peaks at 298,073 gas in replay and 2,579 of 83,962 engine callbacks ran out of gas; TC-A alone peaks near 174k in replay, 205-209k on the engine. TellCore.sol spends it: generic soft-float, up to 16 full path redos on a sell, 26 scan steps on a buy.\nTASK: keep scratch/ref byte-identical, so Q stands, and rewrite only the Solidity so that every label and every fee is unchanged and afterSwap fits. The means are yours: Yul with unpacked mantissa and exponent and one rounding routine; reject a candidate at its first wrong wad (the new reserveX costs one subtraction); compute k, gamma and each wad's doubles once; replace the 13-step buy scan by the few doubles that can match; previous wads in one storage slot. Measure the tell's gas alone first.\nGATES in order: (P) gates.py unmodified reproduces the README; (T) Solidity label = reference label on every first trade of seeds 74200..74249; (F) fees within 0.01 bps of the reference on 50 x 2,000 callbacks; (G) <= 24,576 bytes; engine seeds {{pilot}}: afterSwap peak <= 245,000, 0 out-of-gas, candidate and qt1 each alone vs VanillaStrategy as engine.py runs them; after a Solidity change take the next 8 of {{spare}}; (E) once G passes: same pairing on {{e1}}, then {{e2}} if time allows. No engine seed twice or outside these ranges; no command over 8 minutes.\nRESULT (JSON, <= 64,000 bytes): status and figures per gate (that scratch/ref equals frozen.json; T and F counts and largest fee error; bytes; replay and engine peak gas and out-of-gas for candidate and qt1; the tell's gas alone, typical and worst; E as paired {n, mean_diff, se, worst5} vs qt1 per window); seeds consumed; what is left if a gate fails; a bundle (base64 tar.xz, sha256, file hashes) with the full Strategy.sol, credit header, and each file you changed.",
   "items": [
    {
     "key": "sl-1",
     "vars": {
      "pilot": "9980000..9980007",
      "spare": "9980008..9980063",
      "e1": "9980100..9980355",
      "e2": "9980400..9980655"
     }
    },
    {
     "key": "sl-2",
     "vars": {
      "pilot": "9981000..9981007",
      "spare": "9981008..9981063",
      "e1": "9981100..9981355",
      "e2": "9981400..9981655"
     }
    },
    {
     "key": "sl-3",
     "vars": {
      "pilot": "9982000..9982007",
      "spare": "9982008..9982063",
      "e1": "9982100..9982355",
      "e2": "9982400..9982655"
     }
    },
    {
     "key": "sl-4",
     "vars": {
      "pilot": "9983000..9983007",
      "spare": "9983008..9983063",
      "e1": "9983100..9983355",
      "e2": "9983400..9983655"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   }
  },
  {
   "name": "e08-refit-stack",
   "brief": "Credit Taylor (gtmcknight): replica, filter, qm tables (github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first); seats qt1, TC-A #770, o1-b #1497, tca-path, visit-refit. Replica only: plain python3 -I (CPython 3.12), no contract, no engine.\nQUESTION: does the refitted table blob still gain inside the tell policy that passed the replica gate?\nINPUTS (each URL names its sha256; check). tca-path, https://api.imdnotdead.fun/artifacts/dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7: source_bundle.data is base85 tar.xz; read scratch/NOTES.md, run scratch/materialize.py; scratch/ref holds the frozen TellPolicy (parameters and hashes in scratch/frozen.json: cap 2, floor 1e-4), TwoComp, QMRef, the o1-b port and blob.bin; scratch/score.py shows how each is run. visit-refit, https://api.imdnotdead.fun/artifacts/5893446c82f8bc1473468bba6b156ec2a96ce3df5ddfc897c05c63cf545e1162: blobs.new.zlib_base64 is the refitted blob, 10,167 bytes, sha256 ca5a606d074224ccc72fb4999c1d01a677ba00440ba39df2f99eba4913a72e1d, same layout, coefficients only.\nWORK: (P) Taylor's gates.py, unmodified, reproduces the README rows. Change no reference file. Per seed, on the port, score three arms: qt1 = QMRef with blob.bin; BASE = TellPolicy(blob.bin, 2, 0.0001); C = TellPolicy(the new blob, 2, 0.0001). Nothing is chosen: blob and parameters are frozen. Check first on 64000..64063, then run the report seeds 10000..12047 once, in order, resumable, no command over 8 minutes; benchmark first and, if all 2,048 do not fit in 40 minutes, stop at a multiple of 256 and say so.\nRESULT (JSON) must contain: P output; the hashes checked; for each window n and paired {mean_diff, se, min, worst5} for C-BASE, C-qt1 and BASE-qt1; whether BASE-qt1 reproduces +3.1335 (se 0.0223) on the full report window, and if not by how much; how many seeds have C-qt1 under -2; the tell's label counts for BASE and C; the sha256 of the per-seed rows; commands with seconds; and one sentence on whether the blob is worth swapping into a contract built on this policy.",
   "items": [
    {
     "key": "refit",
     "vars": {}
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 32000
   }
  },
  {
   "name": "e08-lattice-tell",
   "brief": "Credit Taylor (gtmcknight): replica, filters, qm tables (github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first); seats qt1, TC-A #770, o1-b #1497, tca-path. Replica only: plain python3 -I (CPython 3.12), no contract, no engine.\nQUESTION: with the arb/retail call settled by the wad tell, what is the shape of the belief still worth? Taylor's gates.py scores a lattice filter (4th column, lattice+qm) beside the Gaussian one (3rd).\nINPUTS: Taylor's research/solved at the commit above; tca-path, https://api.imdnotdead.fun/artifacts/dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (the URL names its sha256; check): source_bundle.data is base85 tar.xz; read scratch/NOTES.md, run scratch/materialize.py; scratch/ref holds the frozen TellPolicy (TwoComp + tell, cap 2, floor 1e-4, hashes in scratch/frozen.json), tca_tell.py, QMRef and the o1-b engine-order port; scratch/score.py shows how they are run.\nWORK: (P) gates.py, unmodified, reproduces the README rows before any change. Build on the port: LatticeTell = Taylor's lattice filter and tables as gates.py runs them, with its arb probability on a step's first own trade updated by Tell(2).classify exactly as TellPolicy does (same likelihoods, the 1e-4 retail floor after a positive, the lattice's own probability on cap, unsupported or neither); LatticeFlag = the same with the true flag, an oracle ceiling and labelled so. Only the callback's wads enter LatticeTell. Any choice is made on 64000..64255; then score seeds {{report}} once, in order, paired per seed with TellPolicy and QMRef; benchmark first, resumable, no command over 8 minutes, and if the block does not fit in 35 minutes stop at a multiple of 64 and say so.\nRESULT (JSON) must contain: P output; how the lattice takes the label, in words; for each window n and paired {mean_diff, se, min, worst5} for LatticeTell-TellPolicy, LatticeTell-qt1, LatticeFlag-TellPolicy and TellPolicy-qt1; seconds per run of each arm; the lattice's work per callback (bins, steps) with a short estimate of whether it could fit 245,000 gas in Solidity; the sha256 of the per-seed rows; commands with seconds; a code bundle (base64 tar.xz with its sha256) of the files you wrote, headers crediting Taylor.",
   "items": [
    {
     "key": "lat-a",
     "vars": {
      "report": "10000..10511"
     }
    },
    {
     "key": "lat-b",
     "vars": {
      "report": "10512..11023"
     }
    }
   ],
   "output": {
    "format": "json",
    "maxBytes": 64000
   }
  }
 ],
 "read": [
  "e08-lean-a/la-1",
  "e08-lean-a/la-2",
  "e08-lean-a/la-3",
  "e08-lean-a/la-4",
  "e08-lean-a/la-5",
  "e08-lean-b/lb-1",
  "e08-lean-b/lb-2",
  "e08-lean-b/lb-3",
  "e08-lean-b/lb-4",
  "e08-lean-b/lb-5",
  "e08-same-label/sl-1",
  "e08-same-label/sl-2",
  "e08-same-label/sl-3",
  "e08-same-label/sl-4",
  "e08-refit-stack/refit",
  "e08-lattice-tell/lat-a",
  "e08-lattice-tell/lat-b",
  "e07-tell-build/tca-path",
  "e07-tell-build/qtr2-path",
  "e07-tell-build/tca-short",
  "e07-buy-grid-check/buy-grid",
  "e07-tell-tables/visit-refit"
 ],
 "cancel": [
  "e02-baselines",
  "e02-observable-data",
  "e02-classifier",
  "e02-probability-tables",
  "e02-flag-ceilings",
  "e03-full-posterior",
  "e03-smoothing"
 ],
 "wake": {
  "batches": [
   "e08-lean-a",
   "e08-lean-b",
   "e08-same-label",
   "e08-refit-stack",
   "e08-lattice-tell"
  ],
  "afterMinutes": 75
 },
 "finish": false
}
