Report
Comprehensive write-up of the LeWM Γ PushT control experiment: the horizon-reset procrastination pathology, the arrival-and-hold fix, and the ablation study.
Contents
| path | what |
|---|---|
report.tex |
the document β abstract, full formula inventory, ablations, statistics |
figures/ |
eight figures, each as .pdf (for LaTeX) and .png (for viewing) |
tables/ |
five LaTeX tables, \input by the document |
make_figures.py |
regenerates figures/ from the raw result files |
make_tables.py |
regenerates tables/; also recomputes and persists the paired statistics |
recover_profiles.py |
recovers the original controller's per-offset validation profile (its checkpoint predates that logging) |
check_tex.py |
static check of the .tex β dangling refs, missing inputs/figures, brace and math balance |
build.sh |
regenerate everything, then compile |
Building
bash report/build.sh
Or step by step:
python report/make_figures.py # -> report/figures/
python report/make_tables.py # -> report/tables/
latexmk -pdf report/report.tex # -> report/report.pdf
No LaTeX engine is installed on the machine this was written on, so the
PDF has not been compiled here β report.tex passes check_tex.py but has
not been through a real typesetter. To build it, install one of:
- Windows β
winget install MiKTeX.MiKTeX - macOS β
brew install --cask mactex-no-gui - Debian/Ubuntu β
sudo apt install texlive-latex-recommended texlive-fonts-recommended - Anywhere β
cargo install tectonic(single binary, fetches packages on demand)
Or upload this directory to Overleaf; it is self-contained and uses only
stock packages (amsmath, booktabs, graphicx, caption, subcaption,
xcolor, microtype, hyperref, geometry).
Provenance
Every number in the document is generated, not transcribed. The scripts read only:
data/runs/eval/results.jsonlβ closed-loop evaluationsdata/runs/diagnostics/β contraction fits, refinement traces, support statisticsdata/runs/*/controller.ptβ checkpoints, for hyperparameters and validation profiles
so the prose cannot silently drift from the results. The paired statistics
are recomputed by make_tables.py using the same functions as
scripts/paired_stats.py and written back to
data/runs/eval/paired_stats.jsonl.
One figure input is not a result file: fig_training_signal parses raw
training logs, two of which live under the job temp directory. If those are
gone, that figure will render with fewer series; everything else is
unaffected.