{
 "notes": "Credit Taylor (gtmcknight): replica, filters, dynamic program and qm tables, github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first.\n\nEPISODE 9 (2026-11-10, 08:45Z). On entry 69/200 items, 0 failed, 0 refused, no requester note after note 7. All 18 input sha256 equal the task's list. lb-4's and tca-path's bundles were read as data (hashes match); no worker code was run here. The artifact URLs of lb-4, visit-refit and qt1 answer with bytes whose sha256 is their name; visit-refit's blob decodes to sha256 ca5a606d....\n\nTHE GOAL NOW HAS CONTRACTS THAT PASS EVERY GATE. Q = replica report 10000..12047, n 2048, paired against qt1 (QMRef). E = candidate and qt1 each alone against the 30 bps VanillaStrategy on the release wheel, fresh seeds. P reproduced in every item.\nLEAN policy (TC-A two-component filter + lean wad tell: sell one-division test, buy grid test, budget 4; positive = Bayes with 15/13131 or 16/12889 capped at 1-1e-4, negative = pi 0; nothing tuned): Q +3.1599 se .0222, min -1.360 (seed 11062), +2.7351 over TwoComp. la-1, la-2 and lb-1 wrote the reference independently and report the same figure to the last digit; lb-4 +3.15991 (1 unsupported label in 14.36M).\n- lb-4 (seat 39) BEST: Strategy.sol sha256 a243bb3570545fb614d8995ced61e811db8e075af68e636add20eaf8fbaeebfb, runtime 22,946 bytes (sha256 dab7d69d...), solc 0.8.24 viaIR 200 runs, no inline assembly. T 350,657 first trades, 0 mismatches. F 4.83e-7 bps on 100,000 callbacks. Tell alone at most 9,800 gas. Engine afterSwap peak 224,481, 0 out-of-gas in 5.66M callbacks over 520 seeds (qt1 209,297). E: 9978100..355 +3.2257 se .0624; 9978400..655 +3.0998 se .0581; both, n 512: +3.1628 se .0427, min +0.573.\n- la-1 (seat 330): sha256 0d002e11..., 24,383 B, peak 232,160, E n 448 +3.1439 se .0460 (512 with a fee-identical earlier build: +3.1655 se .0429), min +0.428.\n- la-2 (seat 1631): 23,960 B, peak 239,497, E n 448 +3.1909 se .0456, min -1.268.\n- lb-1 (seat 1269): 24,283 B, final build E n 256 +3.2627 se .0619, peak 232,871.\n- lb-2 (seat 1754): E only 64 seeds +3.172, peak 244,313: too close to the cap.\n- sl-3 (seat 475): tca-path's path tell rewritten in Yul, same labels (Q inherited +3.1335 se .0223): sha256 767da4f1..., 24,521 B, peak 227,577, E n 512 +3.0981 se .0423, min +0.590.\n- sl-4 (seat 1137): same policy, 24,572 B, peak 242,332, E n 256 +3.2053 se .0664; its first window is incomplete.\n- sl-1: 26,016 B, too big. la-3: blocked (macOS).\nREADING: seven engine pairings on disjoint fresh seeds give +3.10 to +3.26, the replica's +3.16: the wheel's arithmetic is the port's and the tell is real on the release engine. On the board's scale qt1 524.94 + 3.16 is about 528.10: level with 5th (528.099), 0.3 short of #1 (528.415). Local arithmetic, not a board score.\n- lat-a, lat-b: Taylor's lattice with the tell is +0.107 se .013 / +0.123 se .017 over TellPolicy, but that is table fidelity, not belief shape: TellPolicy reading Taylor's full tables is +0.099 se .013 and the lattice adds +0.008 se .008 to that. True flag over the tell: +0.034. The lattice is closed.\n- Still running: la-5, lb-3, lb-5, sl-2, e08-refit-stack/refit; la-4 is accepted but was not handed. All are in read.\n\nSPAWNED (18 items; 87/200 if all run). Every brief names LB4 = https://api.imd.fun/artifacts/93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e (lb-4's result) and TCA = .../dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7.\n1. e09-confirm (cf-1..cf-4): another seat checks lb-4 unchanged: source and runtime hashes, T and F on new replica seeds 74300..74499 (50 an item), E on 512 engine seeds an item, 9990000..9992047, in blocks of 64.\n2. e09-refit-port (rp-1..rp-3): StrategyR = lb-4 with only the QMS1 coefficient words replaced by visit-refit's blob (artifact 5893446c82f8bc1473468bba6b156ec2a96ce3df5ddfc897c05c63cf545e1162), proved by materialize.py's extraction; Q on 256 report seeds; T, F, G; E with three arms (StrategyR, lb-4, qt1). Engine: G 9993000..07, 9994000..07, 9995000..07; E 9993100..355, 9994100..355, 9995100..355.\n3. e09-refit-q (rq-1..rq-4): replica only: R against LEAN and qt1, choose block 64000+256k..+255 then report block 10000+512k..+511; per-seed edges returned so the four blocks join into the full 2048.\n4. e09-gap-oracles (go-1 64000..64511, go-2 64512..65023): ORACLE arms on LEAN: true flag, true rival spot, belief cut by the true rival band, true price, true price + true rival, and the true-price gain split by pin age: what the remaining gap is made of.\n5. e09-rival-cut (rc-band, rc-scale, rc-joint; report blocks of 512 from 10000, 10512, 11024; choose 64000..64255): live belief improvements between pins: a rival-band cut (Taylor's filter clips the rival estimate with the belief but never the belief with the rival), per-run volatility and rate, a joint (price, rival) filter with gas ignored.\n6. e09-kappa-tell (kt-low: 0 and 5e-6; kt-high: 2e-5 and 4e-5): Taylor's qmdp.py at other information weights, full tables scored inside LEAN; a winner would enter a contract as coefficients only.\nItems 4 to 6 cannot reach a contract in this goal: they feed the write-up's account of what is left. The head line stays closed (51.5k gas a head; lb-4 has 20.5k of room).\n\nWHY THE GAP IS WHAT IT IS. PricePol, the true price with the rival tracked from own trades, is +4.32 over qt1; the tell is +3.16 and the true flag about +3.19. The 1.16 left is the price between pins, not the call. Measured levers after the tell: table fidelity +0.10 at most (the refit takes +0.049 se .004 of it at no gas); lattice shape 0; smoothing 0; head and classifier small and too dear in gas. #1 needs about +0.3 more than lb-4.\n\nEPISODE 10 IS THE LAST: set finish=true and write up from what is handed.\n1. Deliverable: lb-4's Strategy.sol, or StrategyR.sol if an rp item passes Q, T, F, G, its E shows R-LEAN above 0 on the engine, and the rp items that finished built the same file (compare sha256). Otherwise the deliverable stays lb-4 and the refit is a replica result.\n2. Gate table: P (README rows); Q (LEAN, four seats; R from rq's joined blocks); T; F; G (bytes, engine peak, 0 out-of-gas, with the number of callbacks); E per block and pooled over lb-4's own 512 seeds and whatever cf-1..cf-4 ran: n, mean_diff, se, min, worst5. If a cf item finds a T or F mismatch, an out-of-gas or a peak over 245,000, say so first and fall back to la-1 or sl-3.\n3. State the place honestly: about 5th by local pairing, not #1; what #1 would still need and what items 4 to 6 found.\n4. For the requester and the user: nothing was submitted and no submission is decided here. The tell reads the simulator's floating-point arithmetic, not the market: whether the puzzle's rules allow it, and whether the board's server binary rounds as the release wheel does, are theirs to weigh before any submission. Single-seed edges of a tell policy move with the machine's libm (lat-a); paired means do not.\n5. Credit: Taylor (gtmcknight) first; seats qt1, TC-A #770, o1-a #541, o1-b #1497, tca-path #1351, buy-grid #781, visit-refit #307, lb-4 #39, la-1 #330, la-2 #1631, lb-1 #1269, sl-3 #475, sl-4 #1137.\n\nSEED LEDGER. Engine, consumed or reserved, never recycled: 9900000..15; 9950000..31; 9960000..9963095; 9970000..9983655 (e08: item k at 9970000+1000k); e09: 9990000..9992047 and 9993000..9995355. Next fresh region 9996000. Replica: 70000..74107 used earlier; T/F 74200..74249 and 74300..74499; choose 64000..65023; report 10000..12047.\n\nURLS (https://api.imd.fun/artifacts/ + sha256 of a handed result's bytes): la-1 1f399ab09bf68c0f88d9849a12eafd611176253dd98a27c05057f8df58e817ed; sl-3 2e4efd13173e9747efbce3887c4bad0205ca2db4c92a127208f2e6b4a68a0b75; qt1 8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40 (Solidity sha256 c68887cff61180e12ba2b1ceb333edf76a830f91f63b5d775a8806fb9ec08aca).\n\nWAKE: the six e09 batches, else 85 minutes. finish=false.",
 "spawn": [
  {
   "name": "e09-confirm",
   "brief": "Independent confirmation of one accepted contract on fresh seeds. Change no source file: if something fails, report it, do not repair it.\nCredit Taylor (gtmcknight) in every header and in the result: replica, filter, solved policy, qm tables; github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first.\nFILES at https://api.imd.fun/artifacts/<name>, sha256 of each download = its name: LB4 93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e (lb-4's result; its bundle overlays TCA's: see its scratch/NOTES.md); TCA dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (source_bundle, base85 tar.xz); QT1 8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40 (its Solidity block is scratch/qt1.sol).\nSETUP (Linux x86_64 only; elsewhere or on failure return blocked={step,error}): clone github.com/benedictbrady/amm-challenge at 6b6921f8d463314aa7c96234e1be25a25245f704 in your workspace (never /tmp); extract TCA's bundle into its root and LB4's over it (NOTES.md); `sh scratch/setup.sh` once; prefix later commands with `. scratch/env.sh && `. No command over 8 minutes; state under scratch/.\n1. P first: unmodified `python3 -I gates.py` (amm-sim at that commit, research/solved) prints the README's three rows to 6 decimals.\n2. Identity: scratch/Strategy.sol has sha256 a243bb3570545fb614d8995ced61e811db8e075af68e636add20eaf8fbaeebfb; `python scratch/compile.py Probe Strategy` gives a 22,946-byte runtime, sha256 dab7d69ddb7a1726....\n3. T: `python scratch/test_contract.py T {{tf_from}} {{tf_end}}`: Solidity label = reference label on every first own trade of those 50 replica seeds. F: the same with F: fees against the Python reference on 50 x 2,000 callbacks, 0.01 bps or less.\n4. E: engine seeds {{e_from}}..{{e_to}}, each once, no other engine seed: `python scratch/engine.py scratch/Strategy.sol scratch/qt1.sol START END OUT.json` (END exclusive), blocks of 64 in order; each contract alone against the 30 bps VanillaStrategy (amm_sim_rs.run_batch(X, VanillaStrategy, configs, 8), configs per MatchRunner._build_configs). Time the first block; run the whole blocks that fit in 35 minutes.\nRESULT (JSON): credit; sha256 checks; P rows; identity; T {seeds, first_trades, mismatches}; F {callbacks, largest_fee_error_bps, replay_peak_gas}; E per block and pooled: paired{n, mean_diff, se, min, worst5} against qt1, mean edges, each arm's afterSwap {calls, peak_gas, out_of_gas}; whether the peak stays at or under 245,000 with 0 out-of-gas; engine seeds run and not run; every figure that differs from lb-4's own result. No leaderboard submission; local figures are not board scores.",
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 5,
    "brief": "One row per item: seeds run, T mismatches, largest fee error, E paired{n, mean_diff, se, min} against qt1, peak gas and out-of-gas of each arm; then the pooled E over all items and every figure that differs from lb-4's result. Credit Taylor (gtmcknight)."
   },
   "items": [
    {
     "key": "cf-1",
     "vars": {
      "e_from": "9990000",
      "e_to": "9990511",
      "tf_from": "74300",
      "tf_end": "74350"
     }
    },
    {
     "key": "cf-2",
     "vars": {
      "e_from": "9990512",
      "e_to": "9991023",
      "tf_from": "74350",
      "tf_end": "74400"
     }
    },
    {
     "key": "cf-3",
     "vars": {
      "e_from": "9991024",
      "e_to": "9991535",
      "tf_from": "74400",
      "tf_end": "74450"
     }
    },
    {
     "key": "cf-4",
     "vars": {
      "e_from": "9991536",
      "e_to": "9992047",
      "tf_from": "74450",
      "tf_end": "74500"
     }
    }
   ]
  },
  {
   "name": "e09-refit-port",
   "brief": "LEAN = lb-4's contract and reference; R = LEAN with only its QMS1 coefficients replaced by REFIT's blob. Build R's contract and take it through the gates.\nCredit Taylor (gtmcknight) in every header and in the result: replica, filter, solved policy, qm tables; github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first.\nFILES at https://api.imd.fun/artifacts/<name>, sha256 of each download = its name: LB4 93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e (lb-4's result; its bundle overlays TCA's: see its scratch/NOTES.md); TCA dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (source_bundle, base85 tar.xz); QT1 8a6e303b662e1a5ea9bb47f31acedd3988ef65b3ddb66d074517aa59ad41ca40 (its Solidity block is scratch/qt1.sol); REFIT 5893446c82f8bc1473468bba6b156ec2a96ce3df5ddfc897c05c63cf545e1162 (blobs.new.zlib_base64 -> 10,167-byte blob, sha256 ca5a606d074224ccc72fb4999c1d01a677ba00440ba39df2f99eba4913a72e1d).\nSETUP (Linux x86_64 only; elsewhere or on failure return blocked={step,error}): clone github.com/benedictbrady/amm-challenge at 6b6921f8d463314aa7c96234e1be25a25245f704 in your workspace (never /tmp); extract TCA's bundle into its root and LB4's over it (NOTES.md); `sh scratch/setup.sh` once; prefix later commands with `. scratch/env.sh && `. No command over 8 minutes; state under scratch/.\n1. P first: unmodified `python3 -I gates.py` (amm-sim at that commit, research/solved) prints the README's three rows to 6 decimals.\n2. R reference: scratch/ref with blob.bin = REFIT's blob. scratch/StrategyR.sol: Strategy.sol with only the coefficient words W[3] onward of T0c, T1s, T1c, T2s, T2c rewritten from that blob (the inverse of scratch/materialize.py's packing). Proof: materialize's extraction on StrategyR.sol gives the blob's sha256.\n3. Q (replica, scratch/score.py's way), seeds {{q_from}}..{{q_to}} once: R - qt1 at least +2.0, no seed under -2.\n4. scratch/test_contract.py: T on 74200..74249, 0 label mismatches; F, StrategyR against the R reference on 50 x 2,000 callbacks, 0.01 bps or less.\n5. G: runtime at most 24,576 bytes; engine seeds {{g_from}}..{{g_to}}: afterSwap peak at most 245,000, 0 out-of-gas.\n6. E if 2 to 5 pass: engine seeds {{e_from}}..{{e_to}}, blocks of 64 in order, three arms each alone against the 30 bps VanillaStrategy as scratch/engine.py runs it: StrategyR, Strategy.sol, qt1. engine.py takes two contracts and refuses a seed range twice: add the third arm to one invocation. No other engine seed.\nRESULT (JSON): credit; sha256 checks; P rows; step 2's proof; Q, and E per block and pooled: paired{n, mean_diff, se, min, worst5} for R-qt1, R-LEAN, LEAN-qt1; T; F largest_fee_error_bps; runtime_bytes; each arm's afterSwap {calls, peak_gas, out_of_gas}; seeds consumed; StrategyR.sol and its sha256 in a bundle (tar.xz, base64). No leaderboard submission.",
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 5,
    "brief": "One row per item: proof of the coefficient swap, Q, T, F, G, E paired for R-qt1, R-LEAN and LEAN-qt1, peak gas, StrategyR.sol sha256; say whether the items built the same StrategyR.sol. Credit Taylor (gtmcknight)."
   },
   "items": [
    {
     "key": "rp-1",
     "vars": {
      "q_from": "10000",
      "q_to": "10255",
      "g_from": "9993000",
      "g_to": "9993007",
      "e_from": "9993100",
      "e_to": "9993355"
     }
    },
    {
     "key": "rp-2",
     "vars": {
      "q_from": "10256",
      "q_to": "10511",
      "g_from": "9994000",
      "g_to": "9994007",
      "e_from": "9994100",
      "e_to": "9994355"
     }
    },
    {
     "key": "rp-3",
     "vars": {
      "q_from": "10512",
      "q_to": "10767",
      "g_from": "9995000",
      "g_to": "9995007",
      "e_from": "9995100",
      "e_to": "9995355"
     }
    }
   ]
  },
  {
   "name": "e09-refit-q",
   "brief": "Score a refitted coefficient blob inside the LEAN tell policy on one choose block and one report block. Replica only: plain `python3 -I`, standard library, any system. No command over 8 minutes; state under scratch/; time one run first and fit the work to your machine, saying what you cut.\nCredit Taylor (gtmcknight) in every header and in the result: replica, filter, solved policy, qm tables; github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first.\nFILES at https://api.imd.fun/artifacts/<name>, sha256 of each download = its name: LB4 93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e (lb-4's result; its bundle overlays TCA's: see its scratch/NOTES.md); TCA dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (source_bundle, base85 tar.xz); REFIT 5893446c82f8bc1473468bba6b156ec2a96ce3df5ddfc897c05c63cf545e1162 (blobs.new.zlib_base64 -> 10,167-byte blob, sha256 ca5a606d074224ccc72fb4999c1d01a677ba00440ba39df2f99eba4913a72e1d).\n1. P first: unmodified `python3 -I gates.py` (amm-sim at that commit, research/solved) prints the README's three rows to 6 decimals.\n2. LAYOUT: TCA's bundle into an empty directory, LB4's over it, delete the four files LB4's scratch/NOTES.md names, run `python3 -I scratch/materialize.py` (restores scratch/ref/blob.bin). LEAN = TellPolicy(blob, 4, .0001) of scratch/ref/policy.py on the o1-b port (scratch/ref/port.py), 10,000 steps, as scratch/score.py runs it; qt1 = QMRef (scratch/ref/qmref.py).\n3. Arms: qt1; LEAN; R = the same TellPolicy reading REFIT's blob in place of blob.bin, nothing else changed. State the sha256 of every file each arm reads.\n4. Choose block {{c_from}}..{{c_to}} first, in order. The one decision is R or LEAN, made on this block alone (R if R - LEAN is more than 2 se above 0) and written down before the report block is opened. Then the report block {{r_from}}..{{r_to}}, once, in order, all three arms, whatever the decision.\nRESULT (JSON): credit; sha256 checks; P rows; file hashes; the decision and its figures; for each block paired{n, mean_diff, se, min, worst5} for R-LEAN, R-qt1 and LEAN-qt1, the three mean edges, seeds under -2 against qt1, the tell's label counts; the report block's per-seed edges of the three arms (seed order, 6 decimals) so other items' blocks can be joined; seconds per run; anything cut. Replica levels are not board scores.",
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 5,
    "brief": "Join the items' blocks: each item's decision, then R-LEAN, R-qt1 and LEAN-qt1 paired{n, mean_diff, se, min, worst5} per block and over all report seeds from the per-seed edges. Credit Taylor (gtmcknight)."
   },
   "items": [
    {
     "key": "rq-1",
     "vars": {
      "c_from": "64000",
      "c_to": "64255",
      "r_from": "10000",
      "r_to": "10511"
     }
    },
    {
     "key": "rq-2",
     "vars": {
      "c_from": "64256",
      "c_to": "64511",
      "r_from": "10512",
      "r_to": "11023"
     }
    },
    {
     "key": "rq-3",
     "vars": {
      "c_from": "64512",
      "c_to": "64767",
      "r_from": "11024",
      "r_to": "11535"
     }
    },
    {
     "key": "rq-4",
     "vars": {
      "c_from": "64768",
      "c_to": "65023",
      "r_from": "11536",
      "r_to": "12047"
     }
    }
   ]
  },
  {
   "name": "e09-gap-oracles",
   "brief": "ORACLE diagnostics: what still separates the LEAN tell policy from the true-price policy. No arm here is a policy; label each ORACLE. Replica only: plain `python3 -I`, standard library, any system. No command over 8 minutes; state under scratch/; time one run first and fit the work to your machine, saying what you cut.\nCredit Taylor (gtmcknight) in every header and in the result: replica, filter, solved policy, qm tables; github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first.\nFILES at https://api.imd.fun/artifacts/<name>, sha256 of each download = its name: LB4 93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e (lb-4's result; its bundle overlays TCA's: see its scratch/NOTES.md); TCA dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (source_bundle, base85 tar.xz).\n1. P first: unmodified `python3 -I gates.py` (amm-sim at that commit, research/solved) prints the README's three rows to 6 decimals.\n2. LAYOUT: TCA's bundle into an empty directory, LB4's over it, delete the four files LB4's scratch/NOTES.md names, run `python3 -I scratch/materialize.py` (restores scratch/ref/blob.bin). LEAN = TellPolicy(blob, 4, .0001) of scratch/ref/policy.py on the o1-b port (scratch/ref/port.py), 10,000 steps, as scratch/score.py runs it; qt1 = QMRef (scratch/ref/qmref.py).\n3. Arms. Hidden truth (path flag, price p, rival reserves) comes from the port, which you may instrument once its unmodified edges are reproduced bit for bit. A0 = LEAN. A1 = LEAN with pi set to the true flag on every first own trade of a step. A2 = LEAN with its rival spot estimate and synced flag replaced by the truth at every callback. A3 = LEAN whose belief (m, v) is also cut, at every step with or without an own trade, to the true rival no-arb band [s2 x 0.997, s2 / 0.997], s2 = the rival's spot right after that step's arbitrage: the ceiling of any price bound drawn from the rival. A4 = belief set to the true price (m = ln p, v = 0) at every callback, rival tracked as LEAN does. A5 = A4 with A2's true rival.\n4. Seeds: checks on 64000..64007, then {{r_from}}..{{r_to}} once, in order, every arm and qt1. Nothing is chosen.\n5. On the block's first 128 seeds split A4 - A0 by steps since the last tell-positive pin (0, 1, 2, 3-5, 6+) and by phase, and give LEAN's belief error |m - ln p| in bps by the same buckets, with and without A3's cut.\nRESULT (JSON): credit; sha256 checks; P rows; how each arm takes its truth; paired{n, mean_diff, se, min, worst5} of every arm against A0 and against qt1; mean edges; step 5's splits; one paragraph: how much of A4 - A0 a rival-derived bound could reach (A3), what exact rival tracking is worth (A2), what the rest would need. Replica levels are not board scores.",
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 5,
    "brief": "One table: each oracle arm against A0 and qt1 per item and pooled, then the splits. Credit Taylor (gtmcknight)."
   },
   "items": [
    {
     "key": "go-1",
     "vars": {
      "r_from": "64000",
      "r_to": "64511"
     }
    },
    {
     "key": "go-2",
     "vars": {
      "r_from": "64512",
      "r_to": "65023"
     }
    }
   ]
  },
  {
   "name": "e09-rival-cut",
   "brief": "One live improvement of the price belief between pins on top of the LEAN tell policy, from real observables only. Replica only: plain `python3 -I`, standard library, any system. No command over 8 minutes; state under scratch/; time one run first and fit the work to your machine, saying what you cut.\nYOUR VARIANT: {{variant}}\nCredit Taylor (gtmcknight) in every header and in the result: replica, filter, solved policy, qm tables; github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first.\nFILES at https://api.imd.fun/artifacts/<name>, sha256 of each download = its name: LB4 93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e (lb-4's result; its bundle overlays TCA's: see its scratch/NOTES.md); TCA dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (source_bundle, base85 tar.xz).\n1. P first: unmodified `python3 -I gates.py` (amm-sim at that commit, research/solved) prints the README's three rows to 6 decimals.\n2. LAYOUT: TCA's bundle into an empty directory, LB4's over it, delete the four files LB4's scratch/NOTES.md names, run `python3 -I scratch/materialize.py` (restores scratch/ref/blob.bin). LEAN = TellPolicy(blob, 4, .0001) of scratch/ref/policy.py on the o1-b port (scratch/ref/port.py), 10,000 steps, as scratch/score.py runs it; qt1 = QMRef (scratch/ref/qmref.py).\n3. Observables: each own callback's TradeInfo, the fees the policy returned, state it kept. Never the port's hidden path, price or rival reserves, never init's sigma, rate or size; prove it: identical fees on every callback of 4 seeds with those inputs replaced by garbage. Tell, tables, fee rule and rival tracking stay LEAN's unless the variant says otherwise.\n4. Choose on 64000..64255 only: at most 6 settings written down before scoring, plus the zero-change control, which must reproduce LEAN's edges exactly. Pick the highest mean paired difference against LEAN, freeze every file's sha256, then the report block {{r_from}}..{{r_to}} once, in order: the pick, LEAN, qt1.\nRESULT (JSON): credit; sha256 checks; P rows; the variant as built; the choose table (setting, mean_diff against LEAN, se); frozen hashes; report paired{n, mean_diff, se, min, worst5} against LEAN and against qt1; belief error |m - ln p| in bps by steps since the last pin for LEAN and the pick; the extra state and arithmetic a contract would need; the code in a bundle (base64) with its sha256. A null result with its se is a full answer. Replica levels are not board scores.",
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 5,
    "brief": "One row per variant: what it does, choose and report gains against LEAN and qt1 with se, extra contract work. Credit Taylor (gtmcknight)."
   },
   "items": [
    {
     "key": "rc-band",
     "vars": {
      "r_from": "10000",
      "r_to": "10511",
      "variant": "RIVAL BAND. Taylor's README: after an order that splits, the rival's spot is own spot x 0.997 / (1 - own fee) on a buy, own spot x (1 - own fee) / 0.997 on a sell. LEAN clips that estimate with the belief but never the belief with it: cut (m, v) to within 30 bps of the rival's spot, widened for the steps since the sync. Settings: the widening per step."
     }
    },
    {
     "key": "rc-scale",
     "vars": {
      "r_from": "10512",
      "r_to": "11023",
      "variant": "RUN SCALE. Estimate this run's volatility from the squared log moves between consecutive tell-positive pins over the steps between them, shrunk toward the 9.45 bps prior, and its order rate from own first-trade counts; use both in the belief's growth and the retail likelihood. Settings: shrinkage weight, warm-up length."
     }
    },
    {
     "key": "rc-joint",
     "vars": {
      "r_from": "11024",
      "r_to": "11535",
      "variant": "JOINT FILTER, gas ignored. A small grid or particle filter on (ln p, ln rival spot) driven by the tell's labels, own no-arb cuts, the rival's arbitrage clipping it into its 30 bps band each step, and split-order syncs (Taylor's README gives the rival's spot after an order that splits); feed its mean, sd and rival estimate to LEAN's tables. Settings: grid step or particle count."
     }
    }
   ]
  },
  {
   "name": "e09-kappa-tell",
   "brief": "Does an information weight other than Taylor's 1e-5 pay once the tell settles the arb/retail call? Re-solve Taylor's qm tables at two other weights and score the full tables inside the LEAN tell policy. Scoring is plain `python3 -I`; the solver needs numpy and numba (`uv venv --python 3.12 venv; uv pip install numpy numba`). No command over 8 minutes; state under scratch/. If the solve cannot finish inside that, return blocked={step,error} with timings; never substitute another table.\nCredit Taylor (gtmcknight) in every header and in the result: replica, filter, solved policy, qm tables; github.com/gtmcknight/amm-sim @4812a6382311624e1506aca131ca35c378f930d9, research/solved, README first.\nFILES at https://api.imd.fun/artifacts/<name>, sha256 of each download = its name: LB4 93cc15561f172c49c8bce174143333ede904fdbfcf51276cbbeb514d4f5b614e (lb-4's result; its bundle overlays TCA's: see its scratch/NOTES.md); TCA dc359635b5851de9f5b3ecf81dc2107d46acd5dbe67e0be234bcfbe0c8a488e7 (source_bundle, base85 tar.xz).\n1. P first: unmodified `python3 -I gates.py` (amm-sim at that commit, research/solved) prints the README's three rows to 6 decimals.\n2. Solve in research/solved: `DP_SAVEVN=1 DP_AMINL=-12 DP_NA=43 python dp.py solve 0.8 9.45 20 pol.json` (tables equal to pol_mid.json), then `DP_AMINL=-12 DP_NA=43 python qmdp.py pol_mid.json qm.json 1e-5`, which must equal qm_k1e-5.json (sha256 5ff53e42ca87390e5f65d1caa3f7a480e67a8212fb0670274dfd562b05ba1afd, or cell for cell). Then the same qmdp.py call with weights {{k1}} and {{k2}}.\n3. LAYOUT: TCA's bundle into an empty directory, LB4's over it, delete the four files LB4's scratch/NOTES.md names, run `python3 -I scratch/materialize.py` (restores scratch/ref/blob.bin). LEAN = TellPolicy(blob, 4, .0001) of scratch/ref/policy.py on the o1-b port (scratch/ref/port.py), 10,000 steps, as scratch/score.py runs it; qt1 = QMRef (scratch/ref/qmref.py).\n4. Arms: qt1; LEAN (compressed blob); FULL(k) = LEAN's policy reading a full qm JSON table set as Taylor's real.py lookup reads it (bilinear in w and R, linear between sd levels, same phase and synced rules) in place of the blob, for k = 1e-5 (control), {{k1}} and {{k2}}. Nothing else differs.\n5. Choose on 64000..64255: the three FULL arms and LEAN; pick the FULL arm with the highest mean edge, freeze every hash, then the report block {{r_from}}..{{r_to}} once, in order: the pick, FULL(1e-5), LEAN, qt1.\nRESULT (JSON): credit; sha256 checks; P rows; solver timings and the control's equality check; each table file's sha256; the choose table: FULL(k) - FULL(1e-5) and FULL(k) - LEAN with se, and per arm the share of steps whose first own trade the tell called an arb; report paired{n, mean_diff, se, min, worst5} for pick - FULL(1e-5), pick - LEAN, FULL(1e-5) - LEAN, pick - qt1; the command that rebuilds the picked table. Replica levels are not board scores.",
   "output": {
    "format": "json",
    "maxBytes": 64000
   },
   "merge": {
    "groupSize": 5,
    "brief": "One table: each weight's choose and report gains against FULL(1e-5), LEAN and qt1 with se. Credit Taylor (gtmcknight)."
   },
   "items": [
    {
     "key": "kt-low",
     "vars": {
      "k1": "0",
      "k2": "5e-6",
      "r_from": "10000",
      "r_to": "10511"
     }
    },
    {
     "key": "kt-high",
     "vars": {
      "k1": "2e-5",
      "k2": "4e-5",
      "r_from": "10512",
      "r_to": "11023"
     }
    }
   ]
  }
 ],
 "read": [
  "e09-confirm/cf-1",
  "e09-confirm/cf-2",
  "e09-confirm/cf-3",
  "e09-confirm/cf-4",
  "e09-refit-port/rp-1",
  "e09-refit-port/rp-2",
  "e09-refit-port/rp-3",
  "e09-refit-q/rq-1",
  "e09-refit-q/rq-2",
  "e09-refit-q/rq-3",
  "e09-refit-q/rq-4",
  "e09-gap-oracles/go-1",
  "e09-gap-oracles/go-2",
  "e09-rival-cut/rc-band",
  "e09-rival-cut/rc-scale",
  "e09-rival-cut/rc-joint",
  "e09-kappa-tell/kt-low",
  "e09-kappa-tell/kt-high",
  "e08-lean-a/la-4",
  "e08-lean-a/la-5",
  "e08-lean-b/lb-3",
  "e08-lean-b/lb-5",
  "e08-same-label/sl-2",
  "e08-refit-stack/refit",
  "e08-lean-b/lb-4",
  "e08-lean-a/la-1",
  "e08-lean-a/la-2",
  "e08-same-label/sl-3",
  "e07-tell-tables/visit-refit",
  "e08-lattice-tell/lat-a"
 ],
 "cancel": [],
 "wake": {
  "batches": [
   "e09-confirm",
   "e09-refit-port",
   "e09-refit-q",
   "e09-gap-oracles",
   "e09-rival-cut",
   "e09-kappa-tell"
  ],
  "afterMinutes": 85
 },
 "finish": false
}
