{
  "sources": [
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/README.md",
      "quote": "A policy sees what afterSwap sees. `run.py` enforces it; a result from any other harness needs the same blindness."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/run.py",
      "quote": "Score a policy on a range of replica seeds, showing it only what afterSwap shows a contract."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/replica2.py",
      "quote": "Pure-Python replica of benedictbrady/amm-challenge @6b6921f8 (engine.rs, cfmm.rs,\narbitrageur.rs, router.rs, retail.rs), written from the source for ceiling experiments.\nRNG streams differ from the Rust engine, so absolute scores move by the seed set;\ncompare policies paired on the same seeds."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/latt.py",
      "quote": "Exact Bayes on a price lattice, real observables only."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/real.py",
      "quote": "Solved policy driven ONLY by what afterSwap sees (side, amounts, timestamp, reserves)."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/pair.py",
      "quote": "Pair two sets of run.py results on their common seeds."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/evalpol.py",
      "quote": "Run a solved (dp.py) perfect-information policy on the pure-Python replica.\nusage: python3 -I evalpol.py <pol.json>[,<pol2.json>...] hold        seeds 10000..12047, paired vs the stored HA / old oracle table rows\n       python3 -I evalpol.py <pol.json> mid [n]                      midpoint parameters (lam .8, sigma 9.45, size 20) vs the DP's own value\n\"\"\"\nimport sys, os, math, json, time\nHERE = os.path.dirname(os.path.abspath(__file__))\nsys.path."
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/par.py",
      "quote": "Run tasks across processes; fall back to one process where a pool cannot start.\nPROCS=<n> sets the process count (default: every CPU; 1 = no pool).\"\"\"\nimport os"
    },
    {
      "url": "https://raw.githubusercontent.com/gtmcknight/amm-sim/e65314f88de945f6d055bfc2aab01c482ab6570e/research/solved/fetch.sh",
      "quote": "# Fetch this whole folder and check every file's sha256."
    },
    {
      "url": "https://api.imdnotdead.fun/artifacts/22819a1542e36a609ec3d02a160b4b7aaf345d26d7184ef6517abc35b85cfbfc",
      "quote": "Cost-weighted arb/retail call: keep the lattice posterior as is, but read the first own trade of a step as the arb (phase 0, no rival-spot update) only when its posterior arb probability exceeds 0.9 instead of 0.5, because mistaking a retail fill for the arb costs more than the reverse."
    }
  ]
}
