Files
Vijay Janapa Reddi 64c940c363 chore(framework): add periodic-table paper, figures, and iteration archive
Companion commit to c5f90022b (the YAML migration). Pulls in the rest of
the periodic-table work that was sitting in the working tree.

- periodic-table/paper/: LaTeX paper draft (paper.tex, references.bib),
  Makefile with hero-figure and SVG->PDF rules (uses rsvg-convert), the
  Puppeteer capture_table.js script used to screenshot the table for the
  paper, generate_periodic_svg.py which builds the hero SVG from
  table.yml (the same source of truth used by the React app), and the
  figure sources (SVGs) + derived outputs (PDFs/PNGs) + compiled paper.pdf.
- root .gitignore gains two entries following the existing convention
  (cf. the !interviews/paper/fig-*.pdf line just above) so the
  periodic-table paper PDF + figure PDFs are not swept up by the blanket
  *.pdf LaTeX-artifact rule.
- periodic-table/paper/.gitignore excludes the LaTeX build artifacts
  (aux, bbl, blg, log, out, fdb_latexmk, synctex, toc) that make paper
  regenerates.
- periodic-table/{iteration,refinement,debate}-log.md: research
  provenance from the 100-round LLM iteration loop and the 5-expert
  debate simulations that produced v0.2 of the table.
- periodic-table/scripts/archive/: historical iteration scripts
  (iterate.sh, debate.sh, debate-continue.sh, run_100_rounds.sh, plus
  the Python helpers append_log.py, get_elements.py, patch_informal.py,
  patch_website.py, run_claude_loop.py, run_iterations{,_13,_16_20}.py,
  update_log.py) moved out of the repo root into an archive subdirectory
  with a README documenting their provenance and caveats. These scripts
  are preserved for reproducibility and are not part of the active build
  pipeline -- the source of truth is now periodic-table/table.yml.
- root package.json + package-lock.json pin puppeteer ^24 for
  capture_table.js.
2026-04-07 09:30:21 -04:00

2.1 KiB

Iteration Archive

These scripts were used during the 100-round LLM-driven iteration loop that produced v0.2 of the Periodic Table of ML Systems. They are preserved here for reproducibility and research provenance — they are not part of the active build pipeline.

The current source of truth is periodic-table/table.yml. Both the standalone index.html and the StaffML React data file are regenerated from it via make all (see ../../Makefile).

Shell scripts

  • iterate.sh — autonomous improvement loop. Each iteration asks Claude to pick one improvement from a priority list (fix misplacement, add missing element, fix broken bond, improve a whyHere, etc.) and edit index.html.
  • debate.sh / debate-continue.sh / run_100_rounds.sh — panel-debate scripts that ask Gemini to simulate a 5-expert debate (Patterson, Lattner, Dean, Shannon, Mendeleev) about the table's structure. Output lands in debate-log.md.

Python helpers

  • append_log.py, update_log.py — append entries to iteration-log.md.
  • get_elements.py — extract the const elements = [...] array from index.html for inspection.
  • patch_informal.py, patch_website.py — one-shot find-and-replace scripts to apply a batch of changes to index.html.
  • run_claude_loop.py — subprocess-driven iteration loop that writes to refinement-log.md.
  • run_iterations.py, run_iterations_13.py, run_iterations_16_20.py — one-shot scripts that hardcode a 69-element snapshot of the table and perform a full re.sub replacement. These are stale (the current table has 90 elements) and are preserved only as a historical reference.

Important caveats

The hardcoded paths in these scripts are relative to the repo root, not to this archive directory. If you want to re-run any of them, run from the repo root:

python3 periodic-table/scripts/archive/get_elements.py

Or copy the script back to where it originally lived and run from there. The scripts are verbatim historical artifacts — they have not been modified to work from their archived location.