# readme result — e04-seal Rewrote only tracked `README.md` as the evaluation kit front page. This result is an untracked named output, not a source change. Starting HEAD was `79f068cef81dadee171531f3381e207c193c959a` (P). Read docs and implementation before running setup. No pins, configuration, banks, simulator or tests were changed; no submodule was created. Runtime state stayed under scratch. No Rust, tuning, RPC use, home inspection or host discovery was performed. Only Linux x86_64 was executed. Work stayed within the 50-minute item budget; all instrumented commands used an external 465-second timeout and completed below it. ## README bytes and sections SHA256: `b432f1aa8ac15cfba1f78227780c233427cc4564c758efbab258cc92871b5827`. Size: 38432 bytes. - Shared AMM evaluation kit - Setup and runtime - Reference originals and Gate P - ammfast: run, batch and residual head - Baseline banks - Paired scoring - Engine adapter and resumable generation - Validation and tests - Raw file inventory at P - Seven files addressed by the final trunk commit - Upstream sources and required pins The page preserves Taylor's upstream links and both required digests, explains all pieces and actual command outcomes, includes setup cold/cached timing lines, records 18-weight COMBO head semantics, gate/speed evidence, bank coverage, real replica and engine scoring, safe engine validation output and final-commit URL shapes. Every obsolete “pending” entry was removed. The final trunk hash is not invented: the seven specified changing files have no hash and use `` as explicitly required by the brief. ## Observed checks and failures - Full and cached setup, separate replica-only setup, materialization of 35 originals, executed and cached Gate P, API/head smoke, bank-specific checks, live scoring and scratch-only engine generation all exited 0. - Replica evidence check: nine banks, 12288 rows, 384 gate records and 576 spot records; maximum recorded error 1.1937117960769683e-11. CPython checked only the first 64 seeds of each bank; 384 of the 576 spot pairs overlap the gate. - Fresh 384-pair gate here: all three policies, 10000..10063 and 64000..64063, maximum error 1.6825651982799172e-11, below 1e-9; exit 0, 31.147 s. - Rates quoted from `baselines/replica/validation.json`, not rebranded as new measurements: qt1-ref 102.2938399544792, TwoComp 88.4128707888032, COMBO 77.85565121419603 runs/s/core; cold JIT 13.85819065431133 s. - HA: exact canonical import check of all 2048 rows passed. - Engine validation: all 512 bank/audit rows checked; fresh exact edge-and-gas agreement at 9700000, 9700128, 9700256, 9700383 and 9700511. Used explicit `--output scratch/engine-validation.json`; committed timing fields unchanged. - Real replica scoring: COMBO versus qt1-ref/60000, n=128, mean_diff 0.752858348279358, se 0.05573079715178375, above_bar 0.1, 1.907 s. - Real engine scoring: attributed Vanilla smoke contract versus qt1 bank, n=128 on 9700000..9700127, mean_diff -181.35840023233058, se 3.8938152969370132, worse, 11.985 s. Screening only. - Offline `--rows`: 1024 rows, eight rounds, exhausted, mean_diff 0.6379020156249982, se 0.01962762671565725. - Initial benchmark: COMBO first call 5.284517741994932 s, eight warm runs 0.045819832012057304 s; the zero head equaled COMBO. Engine Vanilla seed 9700000 took 0.2697367559885606 s, conservative 128-call projection 34.52630476653576 s. This preceded larger live batches. - Engine CLI smoke produced one qt1 row and an explicitly incomplete scratch bank/checkpoint, not a replacement committed bank. `validate_kit.py` at P exited **1**, with **one** finding, `bad-validation` at `baselines/replica/validation.json`: `gates must be a list`. It counted 2560/14848 verified rows. `validate_kit.py:600` reads `gates`; line 601 reads `spots`, while the evidence uses `gates384`/`spots576`. The repair is due in this README's commit and PASS 14848/14848 is expected after it. The companion repair was invisible and was neither changed nor certified here. Structural PASS would not resolve the separate live-bank failures below. Initial test invocation exited **1** in 0.044 s with 11 import errors: `tests.test_ammfast`, `tests.test_engine_eval`, `tests.test_gatep`, `tests.test_ha`, `tests.test_score`, `tests.test_setup_deadline`, `tests.test_setup_fast`, `tests.test_validate_kit`, and three requested classes under `tests.test_replica_banks`. The trace named the pinned interpreter's `python/lib/python3.12/unittest/loader.py:137` (`__import__(module_name)`), not a repository source line. Corrected the invocation to use `PYTHONPATH=tests` and module names without the `tests.` prefix. No source fix was needed for importing tests. Corrected suite: **exit 1, 78.081 s, 223 tests: 212 passed, 3 failed, 8 skipped**. All three optional real-engine integration tests passed, including live128, three qt1 reruns and offline bar-boundary replay. All failures were in `tests/test_replica_banks.py`: | Test | Line | Failure | |---|---:|---| | `test_cli_live_candidate_reproduces_published_pairing` | 252 | 0.44524373541763534 != 0.445421 within 1e-5; difference 0.0001772645823646668 | | `test_cli_zero_head_file_matches_the_combo_bank_to_rounding` | 269 | abs(mean) 0.00015475572275436278 > 5.0001e-7 | | `test_in_process_live_candidate_and_unknown_policy` | 283 | '618.240984' != '618.266729' | Follow-up, first 128 seeds of each selected bank: COMBO/60000 had 2 discrepancies beyond rounding, COMBO/64000 had 3, TwoComp/60000 had 2. At each sample's first mismatch, fresh ammfast and fresh CPython agreed exactly: | Policy / seed | Bank | Fresh ammfast = CPython | Fresh minus bank | |---|---:|---:|---:| | COMBO / 60035 | 618.266729 | 618.2409840405087 | -0.02574495949136235 | | COMBO / 64013 | 427.035477 | 427.0324335194603 | -0.003043480539702159 | | TwoComp / 60016 | 409.736570 | 409.73952654643557 | 0.002956546435598284 | These exceed the up-to-5e-7 rounding-only difference. Cause and full-bank extent remain unverified. The README reports them prominently and does not claim all tests passed. No out-of-scope simulator, bank or test repair was attempted. Eight skips: seven opt-in Linux setup tests (Linux setup was separately run) and the macOS setup test. Five `test_replica_banks.CheckpointTests` were not selected: their runtime-binding test calls host architecture inspection, which this task disallows. No claim about those five tests is made. ## Exact execution commands, exits and wall seconds Each command below was executed from the checkout root by `python3 -B scratch/readme/run.py LABEL COMMAND`, whose subprocess invocation was `timeout 465 bash -c COMMAND`. Its per-command combined log and JSON record stay under scratch. The measured seconds include that wrapper's subprocess; setup's own stage timings are separately preserved in README. No credentials, absolute machine paths or host details are copied into this result. **setup-cold** — exit 0, 20.045 s. ```sh bash setup_fast.sh --platform linux-x86_64 --cache "$PWD/scratch/cache" --scratch "$PWD/scratch" ``` **fetch** — exit 0, 2.237 s. ```sh python3 -B scratch/readme/fetch.py ``` **setup-cached** — exit 0, 0.670 s. ```sh bash setup_fast.sh --platform linux-x86_64 --cache "$PWD/scratch/cache" --scratch "$PWD/scratch" ``` **materialize** — exit 0, 0.338 s. ```sh . scratch/env.sh && python3 -B reference/materialize.py --out scratch/reference ``` **validate-kit** — exit 1, 0.175 s. ```sh . scratch/env.sh && python3 -B validate_kit.py --out scratch/readme/kit-validation.json --timing ``` **gate-cold** — exit 0, 2.449 s. ```sh . scratch/env.sh && python3 -B gatep.py --reference scratch/reference/taylor --cache scratch/cache/gatep ``` **benchmark** — exit 0, 5.820 s. ```sh . scratch/env.sh && python3 -B scratch/readme/benchmark.py ``` **setup-replica** — exit 0, 3.002 s. ```sh bash setup_fast.sh --platform linux-x86_64 --replica-only --cache "$PWD/scratch/cache" --scratch "$PWD/scratch/replica-only" ``` **replica-validate** — exit 0, 0.044 s. ```sh . scratch/env.sh && python3 -B baselines/replica/validate.py ``` **ha-check** — exit 0, 0.063 s. ```sh . scratch/env.sh && python3 -B baselines/ha/export.py --source scratch/reference/taylor/calib_out_2048.json --check baselines/ha/HA-10000-12047.json ``` **score-replica** — exit 0, 1.907 s. ```sh . scratch/env.sh && python3 -B score.py --baseline baselines/replica/qt1-ref-60000-61023.json --replica --policy COMBO --bar 0.1 ``` **score-rows** — exit 0, 0.045 s. ```sh . scratch/env.sh && python3 -B score.py --baseline baselines/replica/qt1-ref-60000-61023.json --rows baselines/replica/COMBO-60000-61023.json ``` **gate-cached** — exit 0, 0.064 s. ```sh . scratch/env.sh && python3 -B gatep.py --reference scratch/reference/taylor --cache scratch/cache/gatep ``` **engine-validate** — exit 0, 9.860 s. ```sh . scratch/env.sh && python3 -B baselines/engine/validate.py --output scratch/engine-validation.json ``` **score-engine** — exit 0, 11.985 s. ```sh . scratch/env.sh && python3 -B score.py --baseline baselines/engine/qt1-9700000-9700511.json --engine --policy vanilla-smoke --strategy-path scratch/readme/Strategy.sol ``` **tests** — exit 1, 0.044 s. ```sh . scratch/env.sh && python3 -B -m unittest tests.test_ammfast tests.test_engine_eval tests.test_gatep tests.test_ha tests.test_score tests.test_setup_deadline tests.test_setup_fast tests.test_validate_kit tests.test_replica_banks.BankTests tests.test_replica_banks.ValidationTests tests.test_replica_banks.LiveScorerTests -v ``` **ammfast-api** — exit 0, 1.086 s. ```sh . scratch/env.sh && python3 -B -c 'import ammfast; print(ammfast.run(10000, "COMBO")); print(ammfast.run_batch([10000, 10001], "COMBO")); print(ammfast.run(10000, "COMBO", head_params=[0.0] * 18))' ``` **engine-cli** — exit 0, 3.412 s. ```sh . scratch/env.sh && python3 -B engine_eval.py --max-seeds 1 --budget 30 --checkpoint scratch/readme/engine-progress.json --output scratch/readme/engine-bank.json ``` **candidate-prep** — exit 0, 0.021 s. ```sh . scratch/env.sh && python3 -B - <<'PY' # Credit: Taylor (gtmcknight), amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved. from pathlib import Path source = Path("scratch/engine/amm-challenge/contracts/src/VanillaStrategy.sol").read_text() assert source.count("contract VanillaStrategy") == 1 credit = "// Credit: Taylor (gtmcknight), amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved.\n" Path("scratch/readme").mkdir(exist_ok=True) Path("scratch/readme/Strategy.sol").write_text(credit + source.replace("contract VanillaStrategy", "contract Strategy")) PY ``` **parity** — exit 0, 31.147 s. ```sh . scratch/env.sh && python3 -B scratch/readme/parity.py ``` **tests-fixed** — exit 1, 78.081 s. ```sh . scratch/env.sh && PYTHONPATH=tests IMD_SCORE_ENGINE=1 python3 -B -m unittest test_ammfast test_engine_eval test_gatep test_ha test_score test_score_integration test_setup_deadline test_setup_fast test_validate_kit test_replica_banks.BankTests test_replica_banks.ValidationTests test_replica_banks.LiveScorerTests -v ``` **write-readme** — exit 0, 0.030 s. ```sh python3 -B scratch/readme/write_readme.py ``` **diagnose** — exit 0, 4.117 s. ```sh . scratch/env.sh && python3 -B scratch/readme/diagnose.py ``` **finalize-readme** — exit 0, 0.019 s. ```sh python3 -B scratch/readme/finalize_readme.py ``` **check-readme** — exit 0, 0.060 s. ```sh python3 -B scratch/readme/check_readme.py ``` **check-readme-final** — exit 0, 0.062 s. ```sh python3 -B scratch/readme/check_readme.py ``` **write-result** — exit 0, 0.036 s. ```sh python3 -B scratch/readme/write_result.py ``` **final-check** — exit 0, 0.062 s. ```sh python3 -B scratch/readme/final_check.py ``` Scratch helper contents are not delivered source. Their complete responsibilities: `benchmark.py` called one COMBO run, an eight-seed batch, a zero-head equality check, created the credited Vanilla candidate, then benchmarked engine seed 9700000 and asserted projected128 < 400 s. `parity.py` looped the exact 384 (policy, seed) pairs, calling `ammfast.run` and `ammfast.reference_run`, asserting absolute difference <= 1e-9. `diagnose.py` computed the three 128-seed samples above, selected the first discrepancy per sample and reran it through CPython. `fetch.py` took `git ls-files`, hashed tracked bytes, fetched the 17 URLs below with four concurrent curl workers and asserted hash equality. README generation and finalization scripts wrote only README; the checker verified the table, pins, preserved links, fences, local link targets and allowed-path diff. Repository inspection was read-only: `pwd`, `git status --short`, `git rev-parse HEAD`, `git ls-files`, `git diff --stat`, `git show P:README.md`, `rg --files`, targeted `rg -n`, `cat`, `sed -n`, `head`, `tail`, and `nl -ba` over README, .gitignore, docs, reference/materialize.py, setup/bootstrap, gatep.py, ammfast, score.py, engine_eval.py, validate_kit.py, bank validation code/evidence, tests and the generated scratch logs. All inspection shell calls exited 0; their tool-reported command durations were below 0.1 s each. Initial inspection was not wrapped in the later per-command timing logger. Inline Python inspections parsed the saved evidence/command JSON and counted test outcomes, and also exited 0 in below 0.1 s. Scratch helper file creation used shell heredocs (exit 0); generated helper edits used Python (exit 0). ## URL fetches and SHA256 comparison For each row, curl's exact argument form was: ```sh curl --fail --silent --show-error --location --connect-timeout 15 --max-time 60 URL --output scratch/readme/downloads/NAME ``` `URL` is the full link in that row; `NAME` is the repository path with every `/` replaced by `__`. Every SHA256 in this table is both the fetched-byte SHA256 and the independently computed checkout SHA256: **equal** in all 17 cases. | Fetched URL | Download SHA256 = checkout SHA256 | Comparison | Exit | Seconds | |---|---|---|---:|---:| | [baselines/engine/qt1-9700000-9700511.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/engine/qt1-9700000-9700511.json) | `f1031aae649d2ad8e871ee1cc055770a4c6b329ff3e71afb4500fca3c8621f90` | equal | 0 | 0.519 | | [baselines/ha/HA-10000-12047.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/ha/HA-10000-12047.json) | `09719da22be28598e9c1d0bb1eb935d7b0b4eeafef3321e0fabe4f3ec9e2b7a9` | equal | 0 | 0.480 | | [baselines/replica/COMBO-10000-12047.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/replica/COMBO-10000-12047.json) | `f707434285c5a067fee11cac983bfcb7b1301e47bf5a2c1f55e4984207d6739b` | equal | 0 | 0.470 | | [baselines/replica/COMBO-60000-61023.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/replica/COMBO-60000-61023.json) | `8256bba9edd0b5696c850f81447edd0ee24b1783c4f3b9d2390a90eaa0ef8cc1` | equal | 0 | 0.425 | | [baselines/replica/COMBO-64000-65023.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/replica/COMBO-64000-65023.json) | `9d59118d213f1f7a811b91a27ab625a6c732789d53b215f6226e58acec8aad95` | equal | 0 | 0.410 | | [baselines/replica/TwoComp-10000-12047.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/replica/TwoComp-10000-12047.json) | `2fde9032094837e6c32728b0a160d25e78e382f31ebd67318ab8f5efad629b25` | equal | 0 | 0.449 | | [baselines/replica/TwoComp-60000-61023.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/replica/TwoComp-60000-61023.json) | `03723f9a1e827ff615d48b001c3181312618a9d31c52ff2109fdc4f0398dcb88` | equal | 0 | 0.443 | | [baselines/replica/TwoComp-64000-65023.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/replica/TwoComp-64000-65023.json) | `7c37b73ac7f16c4276f673c8ecfb326ab4421cab3ae9ab2f87db4f27e7d319f2` | equal | 0 | 0.403 | | [baselines/replica/qt1-ref-10000-12047.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/replica/qt1-ref-10000-12047.json) | `6687dab88e27f2f6c37511d6328164eafd371fa640d85be353b74c47b98f511c` | equal | 0 | 0.717 | | [baselines/replica/qt1-ref-60000-61023.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/replica/qt1-ref-60000-61023.json) | `e98ecaa2c9a7ee36307971d28d6c3de845f5a10c034aea7d152288536e6fe72e` | equal | 0 | 0.452 | | [baselines/replica/qt1-ref-64000-65023.json](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/baselines/replica/qt1-ref-64000-65023.json) | `89675529770b1bc2e8ba584067d7ce776cd6ab88e79b58b3000852aa3d333f37` | equal | 0 | 0.417 | | [setup_fast.sh](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/setup_fast.sh) | `48e150d165ea3b385fb92e0e3a7aefbbe0d97c38c53efa737a587ed62c308d20` | equal | 0 | 0.433 | | [reference/materialize.py](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/reference/materialize.py) | `79e316706e8b4a84ee29e261c817476120d7a502f9017ec2f7f76f8f4444aaad` | equal | 0 | 0.408 | | [gatep.py](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/gatep.py) | `1d1d65bc18647530037cf3cff73fd8d4448f353d61b4494dd2ee7d556be122db` | equal | 0 | 0.400 | | [ammfast/__init__.py](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/ammfast/__init__.py) | `5ce5b00b96ca7da11f37010d234803eca0e92adb2eebec18a35cb6d81c645b6c` | equal | 0 | 0.441 | | [score.py](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/score.py) | `7b9fa5e37695a5d1b048efe91a8b6c45d31bd4245a733261774c871fe9105a43` | equal | 0 | 0.404 | | [engine_eval.py](https://raw.githubusercontent.com/identity-md-launches/goal-3178-build-shared-evaluation-kit/79f068cef81dadee171531f3381e207c193c959a/engine_eval.py) | `0a3ed61457cb66c85a292c82acbb9657b5e5544a98c7aa04c7a6a5dccdc1d3b2` | equal | 0 | 0.443 | ## Table reconciliation against git ls-files At P, `git ls-files` returned **95** tracked files. The README inventory has **53** exact path/hash/P-URL file rows; all 53 hashes were recomputed and all URLs compared to the literal requested P prefix. Its **one directory row** represents exactly **35** `reference/envelopes/` members. The digest of the specified sorted ` \n` member manifest is `21a5688aa2a1d0d7940ea69d3f667f612f76f6b6c89f53539ca29ef1c95f078a`. The directory link is explicitly a raw URL prefix, not a fetchable directory. Individual envelope hashes and member names remain in `reference/sources.json`. The separate **seven** no-hash rows are exactly README.md, validate_kit.py, tests/test_validate_kit.py, docs/validation.md, docs/contracts.md, docs/reference.md, docs/score.md. Thus **53 + 35 + 7 = 95**, with no missing, extra or duplicate file rows. Expanded hash-row paths equal `set(git ls-files) - envelopes - seven_changed_paths`. The directory row itself is not miscounted as a tracked file. All 11 bank fetches and six code fetches were checked again against current checkout hashes. Source links from the old README, both mandatory digests, all local Markdown link targets and balanced fences passed. `git diff --check` exited 0; `git diff --name-only` was README.md. ## Statements not independently verified - The final trunk commit and the six companion files' changes, including the aggregate-validator repair and its expected PASS, were not visible here. - macOS arm64 was never executed; Windows/other platforms were not tested. - The committed rates/cold-JIT figures are evidence read from validation.json, not newly remeasured on the original bank-generation machine. - Full regeneration of all 12288 replica rows, all 576 CPython spot comparisons and all 512 engine rows was not performed. Fresh parity covered 384 pairs; the additional CPython diagnostic covered only the three named mismatches. - The cause/full extent of the live-bank discrepancies remains unresolved. Expected aggregate-validator PASS is structural and does not settle this. - The remaining 36 individually hashed file URLs and 35 envelope member URLs were not fetched here; only the explicitly listed 17 were fetched. - Engine seeds are screening only. No independent final/board result is claimed. - The default home cache path is documented from source; it was not used. ## git status --short ```text M README.md ``` The named result remains untracked. Only README.md is a modified tracked file.