{
  "notes": "Episode 2: all 11 episode-1 items settled and were accepted; no refusals, failed items, pending effects, requester additions or running batches. e01-engine-audit/calibrate alone has sources.flagged=1; no reason is supplied. Acceptance is not scientific qualification. Checked all input SHA256s, audit bundle hashes, and recomputed rounded per-seed reductions for the six filters, finite-state/rival restarts and native calibration/baseline. No new strategy simulations were performed by this orchestrator.\n\nEvidence, on common replica validation 10000..10255 (256 seeds, 10000 steps; edge is submission edge):\ne01-filter-grid64/rep-a: edge413.2518866480023, oracle deficit121.96509949722385 (SE2.50824), pooled RMS42.3360bps, severe clipped mass. Do not carry this implementation forward.\ne01-filter-grid64/rep-b: edge528.7263, deficit6.4899 (SE.0927; CI6.3083..6.6715), RMS16.598bps. True-p/inferred-flag deficit.4945. Router on-off=-.4591 (SE.0877), 64 seeds. 64-vs256-bin shadow means differ only .272bps RMS on16 seeds: more bins is not the main opportunity. The A/B disagreement is implementation evidence, not two replications.\ne01-filter-moments/rep-a: edge527.5894144662582, deficit7.6275716789680175 (SE.0847808), RMS16.0251; flag-only deficit.168247. Router on-off+.08403 (SE.06105), 64 seeds.\ne01-filter-moments/rep-b: edge528.6008375, deficit6.61614861 (SE.0862074), RMS16.1384; flag-only deficit.216740. Router on-off+.015794 (SE.154937); inferred sigma hit .000882 in every validation run, so selected-pin sigma bias remains unresolved.\ne01-filter-mixture/rep-a: edge527.54, deficit7.6773 (SE.2603), RMS16.748; router-off improves1.3612 (SE.608), 64 seeds.\ne01-filter-mixture/rep-b: strongest original filter edge528.94 (rounded), deficit6.273 (SE.082; CI6.112..6.433), RMS15.206; flag-only deficit.323. Router on-off=-.044 (SE.069), 64 seeds. Four components; two components worsened training deficit8.63 vs6.55. Keep four as starting point, not a certified candidate.\n\nAll four clean-room restarts completed without RS2 source: e01-restarts/analytic edge524.357956, deficit10.858532, RMS17.0248; its estimated-table diagnostic edge526.755502/deficit8.460985. e01-restarts/recurrent edge481.042389, deficit54.174099, RMS32.4746, 95% coverage only41.7479%; history helps7.7157 on64 seeds but this fixed reservoir is a dead end, not evidence against all neural policies. e01-restarts/finite-state edge527.263503, deficit7.952985, RMS19.5192. Hard first-trade-as-arb loses117.033 points there and138.236 in analytic: never use first timestamp as a true arb flag. e01-restarts/rival-model edge528.65, deficit6.567 (SE.083), reported RMS14.899 is a mean of per-seed RMS, NOT pooled. Rival/router channel contributes only+.387 (SE.092),64 seeds; its80x80 state is unportable as built. Do not fund tuning that channel for tenths.\n\nNo filter meets <=2 oracle deficit. Most remaining loss is price error, not the table's arb-flag bump; flag uncertainty still affects price inference. First observed own retail need not be first retail of the timestamp; absence of own retail and hidden rival-only fills were approximated or omitted across implementations. This motivates one focused likelihood-repair pair. In parallel, fitting actions to posterior uncertainty is a distinct structural hypothesis: the table was optimized for true price, and naive widening already failed in analytic (training476.802 vs510.947). Four policy items test this with frozen mixture-B inference, not RS2 overlays. These are provisional screens, not promotion despite a failed filter gate.\n\nEngine evidence from e01-engine-audit/calibrate is provisional pending independent recheck: reported CH0..999=525.5258821780834 exactly; decoded RS2 source SHA256 f24b6ca198b744c380842c3a17964a6dc21f311bb04984b26733afa3fee8eaf2. RS2 native10000..10255 edge523.5786885775232, retail551.7619814509503, arb-28.183292873427057. RS2 measured init/swap maxima243099/200268, zero reported failure counters. Rows are rounded, so recomputing CH gives525.525882164, not an independent1e-9 reproduction. Native16-seed instrumented/unmodified edge check reportedly exact. Retail is computed as total-minus-reconstructed-arb; reconciliation is partly algebraic. Fixed-fee parity on256 seeds of256 steps is only a smoke test, NOT stateful/full-length parity. Native gas aggregates contain measured max/sum/calls and failures; Python executor gas_used is a half-limit estimate. Per-event gas traces and offline engine dependencies are absent. Do not infer gas certification from a successfully returned batch: failures can silently preserve old fees.\n\nCritical protocol: run_batch(candidate_bytecode,VanillaStrategy_bytecode,configs,8), then RS2 separately with the same global-seed configs. MatchRunner sampler uses numpy.default_rng(global_seed), draws size/rate/sigma in that order; chunking must not reset the RNG index. Replica uses different configs/RNG and oracle-only arguments. NEVER subtract native RS2 from a replica candidate, or convert replica absolute scores to board gains. Inference gets initial reserves and six TradeInfo fields only. Pins use OLD fees and require latent uncapped arb; t=0 diffuses once; silence diffuses then conditions each missing timestamp, repeats do not diffuse. Engine callbacks run own pool before rival; replica's rival snapshot is future information. Observation timing/censored likelihoods must respect this.\n\nDecision: spawn8 items in5 small research batches: e02-filter-censoring A/B; e02-policy-table A/B; e02-policy-net A/B; e02-native-bridge/mixture-b; e02-audit-recheck/calibration. Budget11->19 of60, leaving41 and six later episodes: reserve20 for final200-seed shards, at least4 for selected-model port/parity/offline packaging,17 adaptive seats. Native bridge is a preliminary fixed-model portability/transfer experiment, not a new search or final port. All tasks are independent, under one hour, commands<480s with checkpoints. No cancellations because previous batches already settled. No canaries/merges needed at these sizes. Wake after all five settle,90-minute scheduling fallback; no local wait.\n\nNew fitting seeds: A30000..30255, B31000..31255, shared frozen validation32000..32255; bridge native screen32000..32127, preliminary parity33000..33015. Retain10000..10255 for reproduction only. All final5148000..5151999 remain quarantined. Future selected-model256-seed parity and native development must use additional untouched development seeds. No retuning on validation/confirmation. API artifact response bytes were independently fetched and hash-verified for grid-B dc0668530543dd28209fa9455aecad526ee3d19db53e391b9f6850f053d89f3e, mixture-B827590bb235808bd3789c89ad42e5038d2733d133c744455327a3e4275089b26, and audit939d954a3de669ad66c90951fe406a6f2b799fa8d4771978ba9d4d6a6d517e27 at https://api.imd.fun/artifacts/<hash>. These durable JSONs contain source; .imd inputs and scratch do not survive.\n\nNext episode: read all8 new individual results. Resolve audit discrepancies first; compare repaired filters on common seeds and check leakage/approximation costs. Evaluate uncertainty-policy gains and engine bridge to decide the next port; no native score from a failed/altered port may rank the original Python model. Recombine a successful repaired estimator with policy only in a newly frozen experiment. Require later256 full-length-seed Python/Solidity fee parity<=1e-6, init AND swap<245000, zero OOG/revert/decoder/other errors, exact source/bytecode/config hashes and an offline handoff with actual dependency files (not URLs), using a scoped code wave if needed. Only then freeze ONE candidate for20 table-backed200-seed confirmation shards:5148000..5151999,4000 total, both arms' per-seed edge/delta/retail/arb and raw gas counters. Enter only if unrounded real-engine paired mean>=+4.6; report CI and all failures. No entry or finish now; do not exhaust confirmation reserves polishing a subthreshold family.",
  "spawn": [
    {
      "name": "e02-filter-censoring",
      "mode": "research",
      "brief": "One item: independently repair the observable event likelihood of grid64-B, replicate {{rep}}; one frozen filter, no policy tuning or RS2 code.\nRead https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/filter-brief.md and sibling oracle_table.json/replica.py. Clone https://github.com/benedictbrady/amm-challenge at 6b6921f8d463314aa7c96234e1be25a25245f704 into scratch; at checkout root fetch/run setup.sh from that research directory, then prefix commands with '. scratch/env.sh && '. Setup failure: blocked={step,error}. Finish within 60 minutes; each command <480s, checkpoint/resume under scratch. Never use seeds 5148000..5151999.\nStarting result: https://api.imd.fun/artifacts/dc0668530543dd28209fa9455aecad526ee3d19db53e391b9f6850f053d89f3e; verify response SHA256 equals URL id and extract source. Its oracle deficit is 6.4899, RMS16.598bps; 64-vs256 grid mean discrepancy only .272bps. Target structural likelihood error, not more bins.\nReplace ad hoc first-fill prior with a normalized likelihood for the FIRST OBSERVED own fill: earlier retail may route wholly to the rival. Fully silent steps convey both no own arb AND no own retail. Marginalize unseen retail count/size and rival evolution, including remaining retail after the previous own callback; disclose quadrature/Poisson-tail approximations. Treat interior splits and full routing separately, using consistent density measures/Jacobians. Preserve latent arb/retail alternatives, old-fee pin signs, t=0 diffusion and repeated-timestamp rules. Never impose a rival 30bps band after arbitrary retail. Keep the original table and volatility estimator fixed except documented correctness repairs.\nTrain/tune only {{train}}; freeze before 32000..32255, 10000 steps each. Run repaired and original grid-B closed-loop, true-p/true-flag oracle and true-p/inferred-flag diagnostic on identical replica seeds. First64 evaluation seeds: disable the new observation likelihood without retuning. Test mass normalization, censoring, both pin signs, gaps, repeated callbacks and hidden-input poisoning. Inference receives only initial reserves and six afterSwap fields/history; truth is evaluator-only.\nJSON result: complete source/constants and stdlib runnable evaluator (optional acceleration must have fallback), source hashes, exact configs/seeds, training/search log, 256 per-seed edges/gaps and retail/arb components, squared log-error sums/callback counts for pooled RMS, coverage, paired mean/SE/95% CI, ablation, approximation/fallback counters, tests/commands/times, state/compute bound and numeric dead ends. Count completed seeds honestly; <=2 oracle deficit is the filter gate. No board conversion. Include all handoff code in the result, not ephemeral paths.",
      "items": [
        {
          "key": "rep-a",
          "vars": {
            "rep": "A",
            "train": "30000..30255"
          }
        },
        {
          "key": "rep-b",
          "vars": {
            "rep": "B",
            "train": "31000..31255"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep each item's source, hashes, seed ranges, paired results, failures and limitations separately. Do not average different models or treat independent implementations on common seeds as new statistical samples."
      }
    },
    {
      "name": "e02-policy-table",
      "mode": "research",
      "brief": "One item: fit one uncertainty-conditioned displacement TABLE policy, replicate {{rep}}.\nRead https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/filter-brief.md and sibling oracle_table.json/replica.py. Clone https://github.com/benedictbrady/amm-challenge at 6b6921f8d463314aa7c96234e1be25a25245f704 into scratch; at checkout root fetch/run setup.sh from that research directory, then prefix commands with '. scratch/env.sh && '. Setup failure: blocked={step,error}. Finish within 60 minutes; each command <480s, checkpoint/resume under scratch. Never use seeds 5148000..5151999.\nFrozen estimator: https://api.imd.fun/artifacts/827590bb235808bd3789c89ad42e5038d2733d133c744455327a3e4275089b26, source mf.py, SHA256 response=URL id; extract and verify embedded hashes. This four-component mixture scored528.94, oracle deficit6.273 (SE.082), RMS15.206bps on old validation. Freeze its inference/constants; policy outputs must feed its stored fee history. No RS2 code or overlays.\nUse only observable posterior mean, sd, own displacement and inferred arb probability; document units/redundancy. No true price, label, rival state or sampled parameters at inference.\nWarm-start from oracle_table.json's 17 ask+17 bid knots plus arb offset. Add a small, explicitly bounded interaction with posterior sd and arb probability; this is policy adaptation to estimation error, not another filter. Preserve fees in [0,.1]. Optimize closed-loop edge, comparing against the frozen table; select parameters on training only.\nFit only {{train}} with common random numbers and checkpointed CMA-ES; freeze before evaluating 32000..32255, 10000 steps. Pair new policy, unchanged mixture-B/table and true-p oracle on the SAME replica streams. First64 validation seeds: uncertainty-input ablation without refitting. JSON: full inference/evaluator source with stdlib fallback, exact weights/features/normalization, dependency pins, hashes, optimizer log/budget, configs and seeds, 256 per-seed edges/deltas and retail/arb splits, error sums/counts and pooled price RMS, paired mean/SE/95% CI, ablation, hidden-input tests, runtime, bounded state/compute cost, numeric dead ends. Preserve source/constants in result, not scratch links. Report negative results. Aim to close the multi-point deficit, not tune tenths; no leaderboard or engine claim. Native selection follows a Solidity port; replica scores alone cannot select an entry.",
      "items": [
        {
          "key": "rep-a",
          "vars": {
            "rep": "A",
            "train": "30000..30255"
          }
        },
        {
          "key": "rep-b",
          "vars": {
            "rep": "B",
            "train": "31000..31255"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep each item's source, hashes, seed ranges, paired results, failures and limitations separately. Do not average different models or treat independent implementations on common seeds as new statistical samples."
      }
    },
    {
      "name": "e02-policy-net",
      "mode": "research",
      "brief": "One item: fit one SMALL NEURAL displacement policy, replicate {{rep}}.\nRead https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/filter-brief.md and sibling oracle_table.json/replica.py. Clone https://github.com/benedictbrady/amm-challenge at 6b6921f8d463314aa7c96234e1be25a25245f704 into scratch; at checkout root fetch/run setup.sh from that research directory, then prefix commands with '. scratch/env.sh && '. Setup failure: blocked={step,error}. Finish within 60 minutes; each command <480s, checkpoint/resume under scratch. Never use seeds 5148000..5151999.\nFrozen estimator: https://api.imd.fun/artifacts/827590bb235808bd3789c89ad42e5038d2733d133c744455327a3e4275089b26, source mf.py, SHA256 response=URL id; extract and verify embedded hashes. This four-component mixture scored528.94, oracle deficit6.273 (SE.082), RMS15.206bps on old validation. Freeze its inference/constants; policy outputs must feed its stored fee history. No RS2 code or overlays.\nUse only observable posterior mean, sd, own displacement and inferred arb probability; document units/redundancy. No true price, label, rival state or sampled parameters at inference.\nUse a feed-forward net with at most eight hidden units. Warm-start by distilling the supplied oracle table, then CMA-ES its weights for closed-loop edge. State activation and clipping exactly; keep fees in [0,.1]. Include distillation error and initial/final training scores. This tests nonlinear uncertainty actions; do not redo the failed echo-state price estimator.\nFit only {{train}} with common random numbers and checkpointed CMA-ES; freeze before evaluating 32000..32255, 10000 steps. Pair new policy, unchanged mixture-B/table and true-p oracle on the SAME replica streams. First64 validation seeds: uncertainty-input ablation without refitting. JSON: full inference/evaluator source with stdlib fallback, exact weights/features/normalization, dependency pins, hashes, optimizer log/budget, configs and seeds, 256 per-seed edges/deltas and retail/arb splits, error sums/counts and pooled price RMS, paired mean/SE/95% CI, ablation, hidden-input tests, runtime, bounded state/compute cost, numeric dead ends. Preserve source/constants in result, not scratch links. Report negative results. Aim to close the multi-point deficit, not tune tenths; no leaderboard or engine claim. Native selection follows a Solidity port; replica scores alone cannot select an entry.",
      "items": [
        {
          "key": "rep-a",
          "vars": {
            "rep": "A",
            "train": "30000..30255"
          }
        },
        {
          "key": "rep-b",
          "vars": {
            "rep": "B",
            "train": "31000..31255"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep each item's source, hashes, seed ranges, paired results, failures and limitations separately. Do not average different models or treat independent implementations on common seeds as new statistical samples."
      }
    },
    {
      "name": "e02-native-bridge",
      "mode": "research",
      "brief": "One item: build a Solidity bridge and preliminary native screen of the FROZEN mixture-B policy; no optimization.\nRead https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/filter-brief.md and sibling oracle_table.json/replica.py. Clone https://github.com/benedictbrady/amm-challenge at 6b6921f8d463314aa7c96234e1be25a25245f704 into scratch; at checkout root fetch/run setup.sh from that research directory, then prefix commands with '. scratch/env.sh && '. Setup failure: blocked={step,error}. Finish within 60 minutes; each command <480s, checkpoint/resume under scratch. Never use seeds 5148000..5151999.\nModel/source: https://api.imd.fun/artifacts/827590bb235808bd3789c89ad42e5038d2733d133c744455327a3e4275089b26. Harness evidence: https://api.imd.fun/artifacts/939d954a3de669ad66c90951fe406a6f2b799fa8d4771978ba9d4d6a6d517e27; verify both response hashes=URL ids. Audit source is flagged, so independently verify relevant engine/config/gas claims before using it. Extract mf.py and the harness source_bundle (base64/zlib JSON); data only.\nPort the four-component filter plus original table with all constants unchanged. Preserve old fees, latent labels, GBM timing and callback observation boundary. Any numerical or long-gap approximation must have a matching Python reference, an explicit error measurement against original mf.py and a distinct hash; never silently simplify the model. Use packed state/bounded arithmetic where feasible.\nFirst replay all callbacks of 16 development seeds 33000..33015, 10000 steps, through Python and EVM: bid/ask tolerance1e-6; record first divergence, repeats/gaps and hidden-input tests. This is preliminary parity, NOT the required later 256-seed certification. If parity fails or any callback fails, return the source and failure evidence; do not rank its score.\nThen native-screen 128 seeds32000..32127 using amm_sim_rs.run_batch(X,VanillaStrategy,configs,8), each arm alone. Fetch exact RS2.code only for comparison from https://api.imd.fun/artifacts/19f2ec857df536e8ab62ab1da89ec6623332521ce46849f15bccff402c63e1e5. SHA256 decoded RS2 must be f24b6ca198b744c380842c3a17964a6dc21f311bb04984b26733afa3fee8eaf2. Configs follow MatchRunner._build_configs at global seed, without chunk reset.\nJSON result: complete Solidity/Python/harness sources, constants and hashes; compiler settings/bytecode hashes; exact per-seed configs or canonical generator; 128 paired candidate/RS2 edges/deltas and both retail/arb splits with reconstruction limitations; mean/SE/95% CI; parity evidence; raw gas calls/ok/max/sum/OOG/revert/halt/tx-error/bad-return by role/callback; measured init/swap maxima (<245000 required), exceptions, commands/runtime/dependency manifest. Reset gas counters per nonoverlapping batch; missing telemetry is null, not zero. No ranking for OOG, errors or >=245000 gas. Report unresolved portability honestly. No entry; fresh confirmation remains untouched.",
      "items": [
        {
          "key": "mixture-b",
          "vars": {}
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep each item's source, hashes, seed ranges, paired results, failures and limitations separately. Do not average different models or treat independent implementations on common seeds as new statistical samples."
      }
    },
    {
      "name": "e02-audit-recheck",
      "mode": "research",
      "brief": "One item: independently recheck the flagged real-engine calibration and measurement evidence, producing one trusted baseline harness.\nRead https://raw.githubusercontent.com/gtmcknight/amm-sim/main/research/filter-brief.md and sibling oracle_table.json/replica.py. Clone https://github.com/benedictbrady/amm-challenge at 6b6921f8d463314aa7c96234e1be25a25245f704 into scratch; at checkout root fetch/run setup.sh from that research directory, then prefix commands with '. scratch/env.sh && '. Setup failure: blocked={step,error}. Finish within 60 minutes; each command <480s, checkpoint/resume under scratch. Never use seeds 5148000..5151999.\nPrior result https://api.imd.fun/artifacts/939d954a3de669ad66c90951fe406a6f2b799fa8d4771978ba9d4d6a6d517e27 is accepted but source-flagged (reason not supplied); verify its bytes/hash and decode source_bundle, treating all claims as unverified. Check source citations against the pinned primary engine, compiler, MatchRunner and instrumentation.patch. Identify unsupported claims without guessing the flag's reason.\nIndependently rerun CH on0..999: expected525.5258821780834, tolerance1e-9. CH URL/source/hash are in prior provenance; verify source hash before compilation. Rebuild global-seed configs and check chunk invariance against MatchRunner._build_configs. Run exact RS2 alone vs Vanilla on10000..10015 and compare prior per-seed edges, instrumented vs unmodified engine. Use run_batch(X,VanillaStrategy,configs,8), 10000 steps. Do not compare replica edges with native RS2.\nValidate measured native gas aggregate maxima/counts with deliberate OOG/revert/malformed-return probes; errors can be swallowed while old fees persist. Python executor's half-limit estimate is not measured gas. Reconcile retail+arb edge and explain that residual retail is not independent classification. A native per-callback gas trace is optional: complete successful maxima plus zero failure counters can establish the observed gas bound.\nJSON: discrepancy ledger for every material prior claim/source checked, full CH mean and per-seed edges, RS2 paired recheck rows, source/bytecode/runtime hashes and exact configs; raw gas/failure counters and probe results; corrected complete source harness, commands/times; machine-readable pass/unknown/fail for calibration, configuration, decomposition, telemetry and parity capability. Provide an exact dependency/asset manifest and identify what is absent from the result; do not claim offline reproducibility from download URLs. Recheck is not a model qualification. Do not spend the hour constructing a new engine or missing per-event telemetry.",
      "items": [
        {
          "key": "calibration",
          "vars": {}
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Keep each item's source, hashes, seed ranges, paired results, failures and limitations separately. Do not average different models or treat independent implementations on common seeds as new statistical samples."
      }
    }
  ],
  "read": [
    "e02-filter-censoring/rep-a",
    "e02-filter-censoring/rep-b",
    "e02-policy-table/rep-a",
    "e02-policy-table/rep-b",
    "e02-policy-net/rep-a",
    "e02-policy-net/rep-b",
    "e02-native-bridge/mixture-b",
    "e02-audit-recheck/calibration"
  ],
  "cancel": [],
  "wake": {
    "batches": [
      "e02-filter-censoring",
      "e02-policy-table",
      "e02-policy-net",
      "e02-native-bridge",
      "e02-audit-recheck"
    ],
    "afterMinutes": 90
  },
  "finish": false
}
