* Labelled weight hashes correctly: 18 files recorded as sha256 held the Hub's Xet hash, so the README's check failed on the right weights; every weights record now carries the true sha256 and, for Xet-stored files, xet_hash, checked against the Hub paths-info API * Made run/weights.py hash every file itself instead of trusting the cache blob name, and added --check to compare a rerun's meta with the committed one by sha256 * Put DECIDER_MODEL and HF_HUB_OFFLINE=1 into the decider-2b command, since its server reads the model from the environment, and had drive.py record the model-selecting variables as server_env * Shipped scenarios/cells-sample.json (324 stratified v1 cells) with its generator, documented --cells, and said plainly that --limit takes the first cells of one scenario and wording * No answer, count, statistic or page file changed; step 1 of the README still rebuilds every derived file byte for byte
4.4 KiB
Packaging notes
This repository was packaged on 2026-09-29 from the benchmark's working copy, which was not under version control. This file records everything that differs from that working copy, so a reader can tell what the committed evidence is and is not.
Left out
From inside the benchmark folder:
| Path | Why |
|---|---|
site/b.html |
A retired page variant: site/build.py no longer writes it, so it could not be regenerated and no longer matched the data story |
analysis/__pycache__/, site/__pycache__/ |
Python bytecode caches |
scripts/ |
An empty folder, which git cannot hold |
The working copy's neighbouring folders were never copied. They held the private share copy of the page and its build script, the share's access credentials, the operators' task briefs, handoff and resume notes, the working log, screenshots, story and style drafts, a paper draft, the popularity survey's scratch files, a local preview-server log, a backup snapshot, and the author's draft text files. None of them is needed to rerun or check the benchmark, and several hold access details or unpublished drafts.
Rewritten
Absolute paths from the run machine were replaced in the files below, and nothing else in them was changed:
<scratch>replaces the run's temporary work directory, matching the convention the other meta files already used;.replaces the absolute path of the benchmark folder itself.
Files: results/meta/nimble-9b-extra.json, results/meta/winnow-12b-extra.json, results/raw/nimble-9b-extra.summary.json, results/raw/winnow-12b-extra.summary.json, results/raw/winnow-12b-extra.server.log, results/no-stranger/{nimble-9b,winnow-12b}-nostranger.{json,summary.json}, results/no-stranger/winnow-12b-nostranger.server.log, and results/contrastive-lm/clm-8b{,-extra,-nostranger}.{json,summary.json,server.log}.
No analysis reads these fields; step 1 of the README rebuilds every derived file byte for byte after the change.
Changed code
analysis/build_models_yaml.pyskips meta files from reruns on other cell sets (nimble-9b-extra.json,winnow-12b-extra.json). Before, it listed those models twice; the reruns pin the same code commit and weight revisions as the v1 runs (checked), and the regeneratedmodels.yamlis identical to the one written before the reruns.run/run-jev.mjsreads the TypeSafe key fromTYPESAFE_API_KEYas well as from the file named byTYPESAFE_ENV_FILE(the original way), and imports decision-gate frompackage.jsonwhenDECISION_GATE_LIBis unset. The npm package decision-gate 0.1.0 has the samelib/as the git commit (ff7271f) the original run imported, file for file.run/cleanup.shmeasures free space on the repository's own volume instead of/Users, so it runs off macOS.- Added
package.jsonandpackage-lock.json(decision-gate 0.1.0, @typesafe-ai/sdk 0.6.0),.gitignore,analysis/compare_rerun.py, this file, and a README rewritten for a reader with no other context.
Changed after packaging (2026-09-29)
A blind reproduction found three gaps that stopped or misled a reader following this README, and these changes close them:
- The weight hashes recorded as
sha256were, for 18 of the 102 distinct files recorded, the Hugging Face Xet hash rather than the SHA-256, becauserun/weights.pytook the Hub cache's blob name as the SHA-256. Everyweightsrecord underresults/(the meta files, the no-stranger and CLM-8B meta files, and the copies inside the run summaries) now gives each file's true SHA-256 assha256and, for files the Hub stores in Xet, the Xet hash asxet_hash, both checked against the Hugging Face API (paths-info) for each pinned revision; every old value matched one of the two, and no byte count, revision or answer changed.run/weights.pynow hashes every file itself and gained--check, andanalysis/build_models_yaml.pywrites both values intomodels.yaml. run/drive.pyrecords the server variables that choose its weights (server_env), because decider reads its model fromDECIDER_MODEL; the README's decider command now sets it.scenarios/sample.mjswritesscenarios/cells-sample.json, a stratified 324-cell cut of v1 for reduced reruns, because--limit Ntakes the first N cells, which are one scenario and wording;analysis/compare_rerun.pycompares sample rows with the committed v1 rows.
The committed results were produced by the scripts before these changes; none of the changes alters a request, a prompt or an analysis.