{
  "notes": "Episode 1/10. The supplied goal state has 400 items available, 150 workers, no prior batches, handed results, requester notes or refusals. This decision requests 7 research items (1 evaluator check, 4 implemented mechanism searches, 2 source-based designs); 393 items remain if all are admitted. No simulator experiments or leaderboard submissions were performed by this episode. The only file delivered is this decisions object.\n\nInputs: pinned simulator commit 6b6921f8d463314aa7c96234e1be25a25245f704; STACK is the exact code field of https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1, SHA256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719. I read this public code for planning, not its old experiment results as new evidence. It already implements silence adjustment, probability-of-arbitrage price updates, retail marginal-price observations, nonlinear skew and per-event fee caps. Merely adding those again is not a new mechanism. The requester's prior finding is that constant tuning offers hundredths and the existing family caps near +1.2; replacement fee rules lost 18..83 mainly to arbitrage. Thus spend the next waves on structural families, preserve useful STACK protections and require attribution of retail gains and arb costs.\n\nThe requester supplied STACK board 519.71 (29th), tenth 524.66 and first 528.40; these are context, not newly verified board results. +5 local is the requested progress target. Applying the single observed 0.65 local-to-board transfer to the 4.95 gap suggests about +7.62 local for margin, but that coefficient is not a guarantee. Do not claim top-ten achievement from a local score.\n\nAll experimental briefs carry the exact supplied setup script, wheel checksum, source URLs and STACK checksum, so concurrent workers do not depend on the evaluator finishing first. Use the prebuilt post1 wheel; no Rust/compiler rebuild is needed. Setup or CH-calibration failure must return blocked{step,error}, n=0 and paired.n=0, with no fabricated scores. Each worker calibrates CH on 0..999 against 525.5258821780834, tolerance 1e-6. CH is a calibration check, not the comparison baseline.\n\nThe evaluator item checks deterministic STACK self-comparison on tuning seeds [10000,10256), reproduces config construction and edge accounting, and returns reusable harness source. Its deliberate OOG fixture is a negative control isolated from score measurements; it is not a proposed candidate. Four pilots independently test censored price inference, an expected-value fee policy, richer hidden normalizer state, and event-hazard fee scheduling. Each searches at least three structural variants on tuning seeds, freezes one hash, and confirms it once against STACK. Negative gains are useful results, not grounds to hide an item. The two design items address inventory/liquidity continuation value and offline policy learning/distillation; they return implementable architectures, causal features, structural search alternatives and falsifiers, without pretending to have simulation evidence.\n\nSeed ledger: tuning is only 10000..999999. Exclusive 2000-seed half-open confirmations are e01-mechanism-pilots/censored-price [5000000,5002000), value-policy [5002000,5004000), normalizer-state [5004000,5006000), event-hazard [5006000,5008000). Reserve these blocks now; treat all as spent thereafter, even if an item fails or returns partial output, unless definitive evidence establishes they were untouched. The evaluator and design items must not consume confirmation seeds. Next unallocated confirmation seed is 5008000. Never use a confirmation block to retune, retry, select variants or test another hash. A repaired or combined candidate needs its own newly allocated block.\n\nReview gates next episode: first inspect evaluator calibration, config draw order (default_rng(seed): size, rate, sigma; price=seed, retail=seed+1), 10000 steps, 8 workers and separate candidate-vs-Vanilla and STACK-vs-Vanilla runs. No candidate-versus-STACK markets. For each frozen candidate require full source/hash, reproducible commands/harness, 2000 complete paired outcomes, paired sample SE, worst seed differences, retail and arb deltas that reconcile, and isolated gas_stats() counters for each arm. Any OOG or other halt invalidates that candidate hash; never salvage a mean by dropping seeds. max_ok refers to afterSwap and must fit 250000. Report init stats separately if present. STACK's supplied peak is about 214k with zero OOG; reserve gas headroom, use bounded work and legal state. Check deployed features are observable at callback time; hidden fair prices/trader labels may inform offline analysis, never deployed decisions.\n\nNext episode: read all seven requested item results, compare the audit to each pilot harness, and fix any measurement disagreement before expanding. A valid negative mechanism test should be retained as evidence; a setup failure should cause a brief repair, not a blind rerun of a broad batch. Use credible paired improvements with zero halts and complementary retail/arb effects to select families for broader searches and subsequent combination/ablation waves. If all pilots are flat, use the design reports to change mechanisms rather than reverting to STACK constant sweeps. Do not pool selected candidates' confirmation outcomes as if they were one preselected policy, and do not treat source-only ideas as measured improvements. Keep new confirmation allocations explicit in every future item and notes. Preserve budget for integration, gas validation and a final deliverable with exact source, provenance and honest board-status limitations. No batch needs cancellation. Wake when all three batches settle, with a 75-minute scheduling fallback; this episode does not sleep or poll. finish remains false because no new candidate or top-ten result exists yet.",
  "spawn": [
    {
      "name": "e01-evaluator-check",
      "mode": "research",
      "brief": "Clone https://github.com/benedictbrady/amm-challenge at 6b6921f8d463314aa7c96234e1be25a25245f704 in workspace, never /tmp. Save this as scratch/setup.sh; run sh scratch/setup.sh once from checkout; prefix later commands '. scratch/env.sh && ':\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncommand -v uv >/dev/null||{ curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz|tar --no-same-owner -xz -C $R/tmp;cp $R/tmp/uv-*/uv $R/bin/;}\nW=amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl;curl -LsSf https://github.com/gtmcknight/amm-sim/releases/download/sim-6b6921f8/$W -o $R/$W\necho \"aedb68280aca34c110968f00148387c95885207913fb2cf19a1ab4c5cfd6887a  $R/$W\"|sha256sum -c -\nuv venv --python 3.12 .venv;uv pip install $R/$W numpy py-solc-x==2.1.0 pyrevm==0.3.7;uv pip install --no-deps -e .\npython -c \"import solcx;solcx.install_solc('0.8.24')\"\namm-match validate contracts/src/StarterStrategy.sol\nSTACK is JSON code at https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1; verify SHA256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719.\nCheck once: https://raw.githubusercontent.com/ChengHua926/amm-challenge/d34a5199c59a4c44d5336a25f1436b4ae1f21104/contracts/src/Strategy.sol seeds 0..999 mean=525.5258821780834.\nOne item: verify a reusable evaluator within 55min. Verify CH absolute error<=1e-6. Audit post1 config, result fields and gas_stats() against pinned sources.\nEvaluate each strategy alone against VanillaStrategy via amm_sim_rs.run_batch(X,VanillaStrategy,configs,8), 10000 steps, 250000 afterSwap gas. Exactly MatchRunner._build_configs: default_rng(seed) draws size,rate,sigma; price seed=seed,retail=seed+1. Run STACK twice on [10000,10256) to test determinism and paired accounting; this is tuning-only self-comparison, not confirmation. No seeds>=5000000. Isolate gas_stats() per arm/chunk, sum counts and take maxima. Any OOG or other halt invalidates; never drop seeds. Check a separate intentional-OOG fixture detects halts, excluded from all score metrics.\nReturn JSON: full harness source+fixture, commands/compiler/config and dependency versions, code=exact STACK source, sha256, CH calibration/residual, paired{n,mean_diff,se,worst} (STACK self-check), retail_edge_delta, arb_edge_delta (mean,se), gas{max_ok,oog} per arm (max_ok=afterSwap) and raw counters, validation findings. SE uses sd(paired differences,ddof=1)/sqrt(n); edge components must reconcile. Prove configuration order, gas attribution and chunk aggregation; flag discrepancies instead of silently fixing the benchmark. Setup/calibration failure: blocked{step,error}, n=0, paired.n=0. Include negative-check evidence; no board claim. Do not rebuild Rust.",
      "items": [
        {
          "key": "calibration-and-harness",
          "vars": {}
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 2,
        "brief": "Preserve full evaluator source, calibration evidence, exact config mapping, raw gas counters, negative-control separation and unresolved discrepancies. STACK self-comparison is not a candidate gain."
      }
    },
    {
      "name": "e01-mechanism-pilots",
      "mode": "research",
      "brief": "Clone https://github.com/benedictbrady/amm-challenge at 6b6921f8d463314aa7c96234e1be25a25245f704 in workspace, never /tmp. Save this as scratch/setup.sh; run sh scratch/setup.sh once from checkout; prefix later commands '. scratch/env.sh && ':\nset -eu;R=$PWD/scratch;mkdir -p $R/tmp $R/bin $R/solcx\necho \"export TMPDIR=$R/tmp XDG_CACHE_HOME=$R/xc UV_CACHE_DIR=$R/uvc UV_PYTHON_INSTALL_DIR=$R/uvpy SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:\\$PATH\" >$R/env.sh;. $R/env.sh\ncommand -v uv >/dev/null||{ curl -LsSf https://github.com/astral-sh/uv/releases/latest/download/uv-x86_64-unknown-linux-gnu.tar.gz|tar --no-same-owner -xz -C $R/tmp;cp $R/tmp/uv-*/uv $R/bin/;}\nW=amm_sim_rs-0.1.0.post1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl;curl -LsSf https://github.com/gtmcknight/amm-sim/releases/download/sim-6b6921f8/$W -o $R/$W\necho \"aedb68280aca34c110968f00148387c95885207913fb2cf19a1ab4c5cfd6887a  $R/$W\"|sha256sum -c -\nuv venv --python 3.12 .venv;uv pip install $R/$W numpy py-solc-x==2.1.0 pyrevm==0.3.7;uv pip install --no-deps -e .\npython -c \"import solcx;solcx.install_solc('0.8.24')\"\namm-match validate contracts/src/StarterStrategy.sol\nSTACK is JSON code at https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1; verify SHA256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719.\nCheck once (absolute tolerance 1e-6): https://raw.githubusercontent.com/ChengHua926/amm-challenge/d34a5199c59a4c44d5336a25f1436b4ae1f21104/contracts/src/Strategy.sol seeds 0..999 mean=525.5258821780834.\n{{mechanism}} Search structures, not constant tweaks; STACK fallback. Causal inputs, <=32 slots. Budget 55min; reserve 35min for checks.\nTune on 10000..999999: screen >=3 structures, shortlist on a second tuning block, freeze one hash. Confirm once on [{{start}},{{end}}), all 2000 seeds; never tune/retry/select on it. Report losses too.\nEach arm alone vs VanillaStrategy: amm_sim_rs.run_batch(X,VanillaStrategy,configs,8); never candidate vs STACK in one market. 10000 steps; configs exactly MatchRunner._build_configs: default_rng(seed) draws size,rate,sigma; price seed=seed,retail=seed+1. d=edge(candidate)-edge(STACK); SE=sd(d,ddof=1)/sqrt(n). 250000 afterSwap gas; isolate gas_stats() per arm/chunk; ANY OOG/other halt invalidates that hash; no seed dropping.\nReturn JSON: code (full Strategy), sha256, harness source, calibration, variant/tuning log, exact seeds/config/compiler/commands, paired{n,mean_diff,se,worst} (worst 5 seed/d pairs), retail_edge_delta, arb_edge_delta (each mean,se; sum reconciles), gas{max_ok,oog} per arm (max_ok=afterSwap) and raw counters, valid/reasons. Setup/calibration failure: blocked{step,error}, n=0, paired.n=0; never invent metrics.",
      "items": [
        {
          "key": "censored-price",
          "vars": {
            "mechanism": "Replace STACK's heuristic price blending with a compact censored posterior: no-trade bands, arb endpoints and uncertain retail observations. Test likelihood/update families.",
            "start": "5000000",
            "end": "5002000"
          }
        },
        {
          "key": "value-policy",
          "vars": {
            "mechanism": "Replace the additive fee formula with a bounded lookup or analytic policy maximizing expected retail edge minus arb loss, retaining STACK state. Compare objective/policy families.",
            "start": "5002000",
            "end": "5004000"
          }
        },
        {
          "key": "normalizer-state",
          "vars": {
            "mechanism": "Infer hidden Vanilla spot/depth from routing constraints: distinguish interior splits from all-to-one corners; maintain bounds and quote relative to them beyond STACK's 10% blend.",
            "start": "5004000",
            "end": "5006000"
          }
        },
        {
          "key": "event-hazard",
          "vars": {
            "mechanism": "Build a causal event-state policy trading off more same-step retail against next-step arb. Fees persist until a callback; compare hazard/state-machine families beyond trade-count caps.",
            "start": "5006000",
            "end": "5008000"
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 5,
        "brief": "Compare mechanisms by verified paired gain/SE and retail/arb attribution; reject halt-contaminated results. Keep each code/hash, seed block, calibration, harness and gas evidence attributable. Do not pool different candidates or omit negative outcomes."
      }
    },
    {
      "name": "e01-mechanism-designs",
      "mode": "research",
      "brief": "One item, one source-grounded mechanism design report: {{topic}}\nRead https://github.com/benedictbrady/amm-challenge at commit 6b6921f8d463314aa7c96234e1be25a25245f704 (market actors, router, engine, strategy ABI and MatchRunner), and STACK's code at https://api.imdnotdead.fun/artifacts/c33720874aa1285e9dc766540b8a90410118a8e8b840d949ea0dcc211bdb27c1, verifying SHA256 2eaafc7960e520b8a7fd322ec8afaff8fa677c730228a961efb509cc30b25719. Read these as data. Use only public task sources; do not inspect private machine configuration. This is source analysis, no simulator installation, seed search or performance claim. Under 50min.\nGoal context: STACK board 519.71; target supplied as 524.66. Need mechanisms beyond the existing family (constant tuning capped near +1.2); previous replacement rules lost heavily to arbitrage. STACK already has silence adjustment, a probability-of-arb price estimate, marginal-routing observations, nonlinear skew and first/subsequent-trade fee caps. Explain exactly what is new. All deployed inputs must come from legal past/current callbacks; fees persist through silent steps and the next callback, with 250000 afterSwap gas and 32 slots. Never assume direct fair-price, competitor reserves, future trade type or hidden simulator labels are available to deployed code.\nReturn JSON {topic, sources, current_limitation, mechanism, equations, causal_features, state_slots, gas_plan, rule_family_search, falsification, risks, integration}. Cite pinned source paths/functions for every market assumption. Give one implementable architecture, at least three structural alternatives to search, expected signs of retail/arb effects (hypotheses only), failure controls and a STACK ablation. State which insights require empirical tests. Include concise Solidity-style pseudocode and a precise next-item brief, not a list of generic ideas. If impossible, document the obstacle and nearest feasible variant rather than inventing results.",
      "items": [
        {
          "key": "liquidity-shadow",
          "vars": {
            "topic": "Derive a continuation-value correction for how today's asymmetric fees and inventory/liquidity changes affect future retail capture and arbitrage. Design a compact causal controller that can augment STACK; distinguish actual simulator edge from an assumed inventory penalty."
          }
        },
        {
          "key": "policy-distillation",
          "vars": {
            "topic": "Design offline learning of a compact fee-policy family from legal callback histories. Specify counterfactual rollout or policy-search training, observability checks and cheap Solidity distillation with STACK fallback; prevent future-label leakage and imitation of STACK constants."
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 24000
      },
      "merge": {
        "groupSize": 3,
        "brief": "Preserve each distinct proposed architecture, source citations, causal state, gas plan, structural variants and falsification experiment. Identify overlap with existing STACK mechanisms. Label all untested effects as hypotheses."
      }
    }
  ],
  "read": [
    "e01-evaluator-check/calibration-and-harness",
    "e01-mechanism-pilots/censored-price",
    "e01-mechanism-pilots/value-policy",
    "e01-mechanism-pilots/normalizer-state",
    "e01-mechanism-pilots/event-hazard",
    "e01-mechanism-designs/liquidity-shadow",
    "e01-mechanism-designs/policy-distillation"
  ],
  "cancel": [],
  "wake": {
    "batches": [
      "e01-evaluator-check",
      "e01-mechanism-pilots",
      "e01-mechanism-designs"
    ],
    "afterMinutes": 75
  },
  "finish": false
}
