{
  "notes": "EPISODE 7 (goal: lift NP2 on Paradigm AMM fee challenge; need paired +5.8 for top 10, +9.6 for 1st vs NP2 526.1156 on seeds 0..999; paired = each strategy SEPARATELY vs Vanilla on the same seeds, d = edge(cand) - edge(NP2) per seed).\nSTATE AT START (~18:25Z): handed ep4-flow/flat-a, ep4-lean/cap-b, ep5-err/err-b (see below). Running: ep5-mech canary 5 (arbfirst-a, silence-a, kalman-a, prespot-a, evfee-a) + 7 held; ep6-oracle 4 (ceil-a/b, ev-a/b); ep6-mech 4 (shrink-a/b, sitshift-a/b); ep5-err/err-a; ep3-base/decomp; ep4-flow x2, ep4-lean x1; stragglers of cancelled ep1-mech/ep3-mech/ep5-oracle. No refusals. A first attempt at this episode's decisions was rejected as invalid_output (spawn.0 and spawn.1 \"Invalid input\"); this one was generated and checked mechanically (names new and lowercase, every placeholder has a string var, filled briefs <=3000 chars, output 1000..64000, read <=30). Items: 54 used before this episode, +10 = 64 of 400; 3 episodes left after this (8, 9, 10). Throughput (~10 results per 2 h), not items, is the constraint: batches stay <=5 items (no canary).\nWHAT WAS LEARNED:\n1. ep4-flow/flat-a: flattening the fee's flow slope (slow-EMA anchor at 15.85 bps, weight 0.575, decay 0.995; mid slope 1.78 -> 1.10 bps per 10k retail Y) scores -0.093 se 0.014 vanilla-paired on 1,024 tuning seeds; every hinge/normalisation variant in its grid is <= +0.01. Its +13.0 confirm was head-to-head (invalid). Flow-slope flattening is DEAD as a lever (matches both-b, ep5).\n2. ep4-lean/cap-b: a 12 bps bid-ask cap with stuck-side pull is -47 (head-to-head; its own tuning grid is -48 to -57 at every cap). DEAD, with cap-a. The bid-ask spread is the strategy.\n3. ep5-err/err-b (200 seeds, 2.1M prints, instrumentation verified neutral): an arb print is ALWAYS first in its step and its pImplied equals the true price exactly (RMS 1e-12 bps), yet NP2's alpha 0.27 leaves 23.1 bps RMS after it (31.6 before). A retail first print's pImplied is 67 bps RMS noise and updating on it RAISES error 16.3 -> 22.1 bps; later retail prints are 75 bps noise and the update raises error 21.5 -> 23.6 (opposite-direction second) and 22.8 -> 24.1 (third+), only same-direction seconds improve (23.1 -> 22.8). First prints are 54.7% arb. Silence: RMS 16 bps after 1 silent step, 19 after 3-5, 35 after 6+ (signed mean -4.6). Steps with >30 bps pre-step error are 19.4% of steps and 63.3% of arb loss. Best single-feature arb classifier for first prints: |pImplied/pHat-1|/sigmaHat <= 1.22 -> 92% recall, 66% precision (stable across seed halves); g=0 (no silent step before) 89%/65%; tradeRatio <= 21.7 bps 98%/57%. The requester (18:18Z) makes this the top priority: two items per variant, separate-vs-Vanilla, confirm on >=2,000 fresh seeds; after each variant re-tune the stale/attract shift (NP2's shift is tuned to the laggy pHat; oracle-price lost because the shift over-reacted to a correct gap).\nDECIDED (10 items, three batches, no cancel, no pause):\n- ep7-mix (4): mix-a/b = mixture first-print update, P(arb) from relative deviation, g and tradeRatio, w = P*wA + (1-P)*wR, wA 0.5..1, wR 0..0.1, later prints unchanged, then re-tune STALE_DIR_COEF/STALE_ATTRACT_FRAC; hard-a/b = the same with a hard cutoff T (0.8..2) on the relative deviation.\n- ep7-late (4): later-a/b = later prints (never arb): no update / same-direction-only / clipped innovation, with and without NP's 10% normalizer blend; unc-a/b = variance state grown by q*sigmaHat^2*elapsed through silence, Kalman-style gain with small R for arb-like first prints and R ~ (67 bps)^2 for retail-like ones.\n- ep7-stack (2): stack-a/b = (1)+(later)+(unc) together with a joint re-tune of the shift, reporting each part's ablation.\n- Not spawned: the re-tuned ceiling mapping applied to NP2's own pHat (requester 17:57Z item 2a) still waits on ep6-oracle/ceil-a/b's constants; ep8 spawns it (two items) as soon as ceil reports a mapping with a large true-price gain and retail preserved. ep5-mech's arbfirst/silence overlap the new variants but are already running; keep them as independent copies.\nTEMPLATE (every brief, word for word in artifacts/goal/episodes/007/decisions.json): NP2 definition; SETUP with the requester's 1159-char no-gate script (\"this script, not the objective's\"); MEASURE (default_rng draws, build_config, Vanilla compiled from contracts/src/VanillaStrategy.sol, run_batch(cand,vanilla) and run_batch(np2,vanilla) SEPARATELY 20 seeds per call, NEVER run_batch(cand,np2); tune on 10000..99999 <=256 per point; confirm once on {{block}}..{{block}}+1999); TASK on NP2: {{mech}}; RETURN delta, code, sha256, tuning, paired{n,mean_diff,se,worst 5}, split{arb,retail edge}, blocked, next. The template without mech is ~2580 chars, so a mechanism text may be <=410 chars; the longest filled brief this episode is 2,987. Vars are strings; no merge on batches of <=5.\nCONFIRM SEED BLOCKS (never reuse): ep1-mech 2000000..2229999 (cancelled, may have run); harness calibration ep1 2900000..2909999; ep2-oracle 2230000..2249999; ep3-base 2250000..2253999 and 2260000..2263999; ep3-oracle 2270000..2289999; ep3-mech 2300000..2459999 (cancelled, canary may have run); ep4-flow 2460000..2499999; ep4-lean 2500000..2539999; ep5-oracle 2540000..2551999 (cancelled); ep5-mech item i (order arbfirst-a, silence-a, kalman-a, prespot-a, evfee-a, nextmix-a, arbfirst-b, silence-b, kalman-b, prespot-b, evfee-b, nextmix-b) 2560000+i*10000..+1999 (to 2679999); ep6-oracle ceil-a 2680000, ceil-b 2690000, ev-a 2700000, ev-b 2710000; ep6-mech shrink-a 2720000, shrink-b 2730000, sitshift-a 2740000, sitshift-b 2750000; ep7-mix mix-a 2760000, mix-b 2770000, hard-a 2780000, hard-b 2790000; ep7-late later-a 2800000, later-b 2810000, unc-a 2820000, unc-b 2830000; ep7-stack stack-a 2840000, stack-b 2850000 (each ..+1999). NEXT FREE BLOCK: 2860000 (allocate 10000 per item; skip 2900000..2909999). Tuning seeds: 10000..99999 (ep5-err used 10000..10399).\nREADS REQUESTED for ep8 (26): ep5-err/err-a; ep5-mech/arbfirst-a, silence-a, kalman-a, prespot-a, evfee-a, merge-01; ep6-oracle/ceil-a, ceil-b, ev-a, ev-b; ep6-mech/shrink-a, shrink-b, sitshift-a, sitshift-b; all 10 ep7 items; ep3-base/decomp.\nEP8 PLAN: (a) For every result check the method first: separate-vs-Vanilla counts, head-to-head does not; read `blocked` before counting an idea as tried. (b) Rank ep5-mech, ep6-mech and ep7 items by t = mean_diff/se on their confirm blocks (se on 2,000 seeds is ~0.01-0.03 for small edits, ~0.1 for large ones): both copies at mean_diff >= 2se = winner; one positive copy = one retune from the better copy's delta; both t < 1 = drop. (c) From ceil-a/b: if the true price plus re-tuned mapping is >= +5 with retail preserved, spawn two items applying those constants to NP2's own pHat and two combining them with the best ep7 tracking fix; from ev-a/b read the ceiling's shape and brief a legal pHat/sigmaHat-driven version if it beats ceil. If the ceiling is < +3, tracking cannot carry the goal: weight fee-policy mechanisms (evfee, nextmix) and say so in the write-up. (d) ep8 also stacks the winners (each stacking item = NP2 + the winners' deltas copied from their results, plus dropping the dirState skew, +0.06), two machines each, fresh blocks from 2860000. (e) ep9: final 4,000-seed confirmation of the best stack (two machines, two blocks), then finish in ep10; the requester submits any file >= +1.0 over NP2 on 4,000 fresh seeds and reports the board score as a note. Finish when a candidate shows mean_diff - 2se >= 5.8 vs NP2 or the budget nears exhaustion; the write-up gives final code, sha256, paired{n,mean_diff,se,worst}, and the ceiling figures (ep3-oracle: true price alone -5.39 se 0.057 with arb +15.6/retail -21.0; gap+g fees -33.5) as what is missing if no legal candidate reaches +5.8.",
  "spawn": [
    {
      "name": "ep7-mix",
      "brief": "NP2 = `code` at https://api.imdnotdead.fun/artifacts/528a6da78583c6142644a552c86670f9d25c20e39e92f4de44deae05ddc8cecd with `code` at https://api.imdnotdead.fun/artifacts/da313379a2e69e9286668865e06b18dfcae25732c82b934b0fd9c2ef0d8c2ff5 from `// Interior retail routing` to (excl.) `uint256 tradeRatio =` inserted before its `uint256 tradeRatio =`; 526.1156 on 0..999.\nSETUP (this script, not the objective's): clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in your workspace, not /tmp; save as scratch/setup.sh; `sh scratch/setup.sh` once at the root; prefix commands with `. scratch/env.sh && `; on failure return blocked={step,error}.\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 RUSTUP_HOME=$R/rustup CARGO_HOME=$R/cargo SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:$R/cargo/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/;}\ncc --version >/dev/null 2>&1||{ curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest -o $R/tmp/mm.tbz;python3 -c \"import sys,tarfile;tarfile.open(sys.argv[1]).extract('bin/micromamba',sys.argv[2])\" $R/tmp/mm.tbz $R;MAMBA_ROOT_PREFIX=$R/mamba $R/bin/micromamba create -yq -p $R/cenv -c conda-forge gcc;ln -sf $(ls $R/cenv/bin/*gcc|head -n1) $R/bin/cc;}\ncommand -v cargo >/dev/null||{ curl -sSf https://sh.rustup.rs|sh -s -- -y --profile minimal --no-modify-path;}\nuv venv --python 3.12 .venv;uv pip install -e . maturin\nmaturin develop --release --uv --manifest-path amm_sim_rs/Cargo.toml\namm-match validate contracts/src/StarterStrategy.sol\nMEASURE: seed s: g=default_rng(s); size=g.uniform(19,21); rate=g.uniform(.6,1); sigma=g.uniform(.000882,.001008); build_config(seed=s,gbm_sigma=sigma,retail_arrival_rate=rate,retail_mean_size=size). vanilla = compiled VanillaStrategy.sol. d_s = submission edge of run_batch(cand,vanilla,cfgs) minus that of run_batch(np2,vanilla,cfgs), SEPARATE calls of 20 seeds (NEVER run_batch(cand,np2)); se=sd/sqrt(n). Tune on 10000..99999 (<=256 seeds a point); confirm the frozen candidate once on {{block}}..{{block}}+1999.\nTASK on NP2: {{mech}}\nRETURN: delta (the exact edit), code (full Strategy.sol), sha256 (code block incl. final LF), tuning (point, n, mean_diff, se), paired {n,mean_diff,se,worst 5} (confirm block), split (arb/retail edge, cand and NP2), blocked, next.",
      "items": [
        {
          "key": "mix-a",
          "vars": {
            "mech": "Mixture first-print update. err-b: arb pImplied = true price exactly, retail first prints 67 bps RMS noise; |pImplied/pHat-1|/sigmaHat<=1.22 flags arb. Fit P(arb) on tuning seeds from that ratio, silent steps before (0 is arb-heavy) and tradeRatio; first print: pHat += (P*wA+(1-P)*wR)*(pImplied-pHat), wA 0.5..1, wR 0..0.1; later prints unchanged; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC.",
            "block": "2760000"
          }
        },
        {
          "key": "mix-b",
          "vars": {
            "mech": "Mixture first-print update. err-b: arb pImplied = true price exactly, retail first prints 67 bps RMS noise; |pImplied/pHat-1|/sigmaHat<=1.22 flags arb. Fit P(arb) on tuning seeds from that ratio, silent steps before (0 is arb-heavy) and tradeRatio; first print: pHat += (P*wA+(1-P)*wR)*(pImplied-pHat), wA 0.5..1, wR 0..0.1; later prints unchanged; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC.",
            "block": "2770000"
          }
        },
        {
          "key": "hard-a",
          "vars": {
            "mech": "Hard-cutoff first-print update. err-b: arb pImplied = true price exactly, retail first prints 67 bps RMS noise; |pImplied/pHat-1|/sigmaHat<=1.22 flags arb (92% recall, 66% precision); 0 silent steps before is arb-heavy. First print: ratio<=T (optionally also g==0) -> pHat += wA*(pImplied-pHat), else wR; sweep T 0.8..2, wA 0.5..1, wR 0..0.1; later prints unchanged; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC.",
            "block": "2780000"
          }
        },
        {
          "key": "hard-b",
          "vars": {
            "mech": "Hard-cutoff first-print update. err-b: arb pImplied = true price exactly, retail first prints 67 bps RMS noise; |pImplied/pHat-1|/sigmaHat<=1.22 flags arb (92% recall, 66% precision); 0 silent steps before is arb-heavy. First print: ratio<=T (optionally also g==0) -> pHat += wA*(pImplied-pHat), else wR; sweep T 0.8..2, wA 0.5..1, wR 0..0.1; later prints unchanged; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC.",
            "block": "2790000"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      }
    },
    {
      "name": "ep7-late",
      "brief": "NP2 = `code` at https://api.imdnotdead.fun/artifacts/528a6da78583c6142644a552c86670f9d25c20e39e92f4de44deae05ddc8cecd with `code` at https://api.imdnotdead.fun/artifacts/da313379a2e69e9286668865e06b18dfcae25732c82b934b0fd9c2ef0d8c2ff5 from `// Interior retail routing` to (excl.) `uint256 tradeRatio =` inserted before its `uint256 tradeRatio =`; 526.1156 on 0..999.\nSETUP (this script, not the objective's): clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in your workspace, not /tmp; save as scratch/setup.sh; `sh scratch/setup.sh` once at the root; prefix commands with `. scratch/env.sh && `; on failure return blocked={step,error}.\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 RUSTUP_HOME=$R/rustup CARGO_HOME=$R/cargo SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:$R/cargo/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/;}\ncc --version >/dev/null 2>&1||{ curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest -o $R/tmp/mm.tbz;python3 -c \"import sys,tarfile;tarfile.open(sys.argv[1]).extract('bin/micromamba',sys.argv[2])\" $R/tmp/mm.tbz $R;MAMBA_ROOT_PREFIX=$R/mamba $R/bin/micromamba create -yq -p $R/cenv -c conda-forge gcc;ln -sf $(ls $R/cenv/bin/*gcc|head -n1) $R/bin/cc;}\ncommand -v cargo >/dev/null||{ curl -sSf https://sh.rustup.rs|sh -s -- -y --profile minimal --no-modify-path;}\nuv venv --python 3.12 .venv;uv pip install -e . maturin\nmaturin develop --release --uv --manifest-path amm_sim_rs/Cargo.toml\namm-match validate contracts/src/StarterStrategy.sol\nMEASURE: seed s: g=default_rng(s); size=g.uniform(19,21); rate=g.uniform(.6,1); sigma=g.uniform(.000882,.001008); build_config(seed=s,gbm_sigma=sigma,retail_arrival_rate=rate,retail_mean_size=size). vanilla = compiled VanillaStrategy.sol. d_s = submission edge of run_batch(cand,vanilla,cfgs) minus that of run_batch(np2,vanilla,cfgs), SEPARATE calls of 20 seeds (NEVER run_batch(cand,np2)); se=sd/sqrt(n). Tune on 10000..99999 (<=256 seeds a point); confirm the frozen candidate once on {{block}}..{{block}}+1999.\nTASK on NP2: {{mech}}\nRETURN: delta (the exact edit), code (full Strategy.sol), sha256 (code block incl. final LF), tuning (point, n, mean_diff, se), paired {n,mean_diff,se,worst 5} (confirm block), split (arb/retail edge, cand and NP2), blocked, next.",
      "items": [
        {
          "key": "later-a",
          "vars": {
            "mech": "Later-print filter. err-b: later prints are never arb; NP2's update on them worsens pHat on opposite-direction seconds (21.5->23.6 bps RMS) and third+ (22.8->24.1), helps same-direction seconds. Test (i) no update on later prints, with/without NP's 10% normalizer blend; (ii) same-direction-only update; sweep both later alphas 0..0.12, blend 0..0.1; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC.",
            "block": "2800000"
          }
        },
        {
          "key": "later-b",
          "vars": {
            "mech": "Later-print filter. err-b: later prints are never arb; NP2's update on them worsens pHat on opposite-direction seconds (21.5->23.6 bps RMS) and third+ (22.8->24.1), helps same-direction seconds. Test (i) no update on later prints, with/without NP's 10% normalizer blend; (ii) same-direction-only update; sweep both later alphas 0..0.12, blend 0..0.1; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC.",
            "block": "2810000"
          }
        },
        {
          "key": "unc-a",
          "vars": {
            "mech": "Uncertainty through silence. err-b: pHat RMS error 16 bps after 1 silent step, 19 after 3-5, 35 after 6+. Variance v in a spare slot: new step v += q*sigmaHat^2*elapsed; on a print gain w=v/(v+R), R small for arb-like first prints (|pImplied/pHat-1|/sigmaHat<=1.22), R near (67 bps)^2 for retail-like; v *= 1-w; sweep q, both R; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC.",
            "block": "2820000"
          }
        },
        {
          "key": "unc-b",
          "vars": {
            "mech": "Uncertainty through silence. err-b: pHat RMS error 16 bps after 1 silent step, 19 after 3-5, 35 after 6+. Variance v in a spare slot: new step v += q*sigmaHat^2*elapsed; on a print gain w=v/(v+R), R small for arb-like first prints (|pImplied/pHat-1|/sigmaHat<=1.22), R near (67 bps)^2 for retail-like; v *= 1-w; sweep q, both R; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC.",
            "block": "2830000"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      }
    },
    {
      "name": "ep7-stack",
      "brief": "NP2 = `code` at https://api.imdnotdead.fun/artifacts/528a6da78583c6142644a552c86670f9d25c20e39e92f4de44deae05ddc8cecd with `code` at https://api.imdnotdead.fun/artifacts/da313379a2e69e9286668865e06b18dfcae25732c82b934b0fd9c2ef0d8c2ff5 from `// Interior retail routing` to (excl.) `uint256 tradeRatio =` inserted before its `uint256 tradeRatio =`; 526.1156 on 0..999.\nSETUP (this script, not the objective's): clone github.com/benedictbrady/amm-challenge @6b6921f8d463314aa7c96234e1be25a25245f704 in your workspace, not /tmp; save as scratch/setup.sh; `sh scratch/setup.sh` once at the root; prefix commands with `. scratch/env.sh && `; on failure return blocked={step,error}.\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 RUSTUP_HOME=$R/rustup CARGO_HOME=$R/cargo SOLCX_BINARY_PATH=$R/solcx VIRTUAL_ENV=$PWD/.venv PATH=$PWD/.venv/bin:$R/bin:$R/cargo/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/;}\ncc --version >/dev/null 2>&1||{ curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest -o $R/tmp/mm.tbz;python3 -c \"import sys,tarfile;tarfile.open(sys.argv[1]).extract('bin/micromamba',sys.argv[2])\" $R/tmp/mm.tbz $R;MAMBA_ROOT_PREFIX=$R/mamba $R/bin/micromamba create -yq -p $R/cenv -c conda-forge gcc;ln -sf $(ls $R/cenv/bin/*gcc|head -n1) $R/bin/cc;}\ncommand -v cargo >/dev/null||{ curl -sSf https://sh.rustup.rs|sh -s -- -y --profile minimal --no-modify-path;}\nuv venv --python 3.12 .venv;uv pip install -e . maturin\nmaturin develop --release --uv --manifest-path amm_sim_rs/Cargo.toml\namm-match validate contracts/src/StarterStrategy.sol\nMEASURE: seed s: g=default_rng(s); size=g.uniform(19,21); rate=g.uniform(.6,1); sigma=g.uniform(.000882,.001008); build_config(seed=s,gbm_sigma=sigma,retail_arrival_rate=rate,retail_mean_size=size). vanilla = compiled VanillaStrategy.sol. d_s = submission edge of run_batch(cand,vanilla,cfgs) minus that of run_batch(np2,vanilla,cfgs), SEPARATE calls of 20 seeds (NEVER run_batch(cand,np2)); se=sd/sqrt(n). Tune on 10000..99999 (<=256 seeds a point); confirm the frozen candidate once on {{block}}..{{block}}+1999.\nTASK on NP2: {{mech}}\nRETURN: delta (the exact edit), code (full Strategy.sol), sha256 (code block incl. final LF), tuning (point, n, mean_diff, se), paired {n,mean_diff,se,worst 5} (confirm block), split (arb/retail edge, cand and NP2), blocked, next.",
      "items": [
        {
          "key": "stack-a",
          "vars": {
            "mech": "Combine: (1) first print: P(arb) from |pImplied/pHat-1|/sigmaHat (<=1.22 flags arb; arb pImplied is exact, retail first prints 67 bps noise), silent steps before, tradeRatio; pHat += (P*wA+(1-P)*wR)*(pImplied-pHat), wA 0.5..1, wR 0..0.1; (2) later prints are never arb: no update / same-direction-only; (3) variance += sigmaHat^2*elapsed over silence; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC; ablate parts.",
            "block": "2840000"
          }
        },
        {
          "key": "stack-b",
          "vars": {
            "mech": "Combine: (1) first print: P(arb) from |pImplied/pHat-1|/sigmaHat (<=1.22 flags arb; arb pImplied is exact, retail first prints 67 bps noise), silent steps before, tradeRatio; pHat += (P*wA+(1-P)*wR)*(pImplied-pHat), wA 0.5..1, wR 0..0.1; (2) later prints are never arb: no update / same-direction-only; (3) variance += sigmaHat^2*elapsed over silence; re-tune STALE_DIR_COEF, STALE_ATTRACT_FRAC; ablate parts.",
            "block": "2850000"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      }
    }
  ],
  "read": [
    "ep5-err/err-a",
    "ep5-mech/arbfirst-a",
    "ep5-mech/silence-a",
    "ep5-mech/kalman-a",
    "ep5-mech/prespot-a",
    "ep5-mech/evfee-a",
    "ep5-mech/merge-01",
    "ep6-oracle/ceil-a",
    "ep6-oracle/ceil-b",
    "ep6-oracle/ev-a",
    "ep6-oracle/ev-b",
    "ep6-mech/shrink-a",
    "ep6-mech/shrink-b",
    "ep6-mech/sitshift-a",
    "ep6-mech/sitshift-b",
    "ep7-mix/mix-a",
    "ep7-mix/mix-b",
    "ep7-mix/hard-a",
    "ep7-mix/hard-b",
    "ep7-late/later-a",
    "ep7-late/later-b",
    "ep7-late/unc-a",
    "ep7-late/unc-b",
    "ep7-stack/stack-a",
    "ep7-stack/stack-b",
    "ep3-base/decomp"
  ],
  "cancel": [],
  "wake": {
    "batches": [
      "ep7-mix",
      "ep7-late",
      "ep7-stack",
      "ep6-oracle",
      "ep6-mech"
    ],
    "afterMinutes": 240
  },
  "finish": false
}
