- paper/pnas -> paper/manuscript (venue-neutral)
- configs/layer1 -> configs/inheritance, src/knowledge -> src/inheritance
(imported as `inheritance`), make layer1 -> make inheritance; layer2 alias dropped
- inheritance and trained-network bundles named after the manuscript figure
they feed (fig2_grounding_sweep, figS3_rebaselining, ...), or descriptively
where they feed none; configs keep their `experiment:` value so parquet
hashes are unchanged, only output.dir moves
- figure scripts, SI figure sources, notebooks, REPRODUCING.md, README and the
SI Methods/tables updated; make clean no longer deletes tracked manifests;
reproduce.sh hashes the s{seed}/ layouts too
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
Clarity pass over the main text (36-item audit), Discussion rewrite and cut,
acknowledgements, Souly et al. as ref 62, lettered SI panels, model section
moved under Results; plus the untracked curriculum/society/compose/smol
configs, runners, figures, stats and tests that the SI already cites.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
An audit of the figure pipeline found real sync gaps, now closed:
- `paper/pnas/make_figs.py` (which draws every manuscript figure) was invoked
by NO Makefile target or script - a manual step. Added `make paper-figures`.
- `configs/llm/epistasis{,_compat}.yaml` were reachable from nothing at all,
despite producing Fig. 3C-D. Added `make llm-epistasis` (+ its statistics).
- `make figures` never regenerated the MNIST montage that Fig. 2B embeds;
it now runs with the `mnist` target (it needs torch - it re-simulates).
- Added `make llm-society`, `env-notebooks`, `notebooks`.
New REPRODUCING.md is the authoritative map: every manuscript panel -> the
artifact it plots -> the config that produced it -> that config's seed, plus
the determinism policy (biological tier bitwise; GPU tiers statistical), the
seed-provenance statement, and an artifact-hash verification snippet. All 44
committed bundles currently hash-match their manifests, and figure
regeneration is pixel-identical (verified by comparison).
reproduce.sh delivers the one-command reproduction the paper's Methods
promises, writing REPRODUCED.md with recomputed hashes per bundle.
Two executed notebooks: 01 builds the Wright-Fisher model from scratch and
checks both closed forms interactively (runs in ~1 min on a laptop); 02
verifies artifact hashes then regenerates and displays all seven manuscript
figures. Both execute end-to-end (`make notebooks`).
Also pins `.python-version` to 3.14: the interpreter was previously
unpinned, and a `uv sync` silently switched it to 3.11 mid-session (see
tasks/lessons.md). README rewritten - it still described a Layer-1-only repo
of E1-E6 and pointed at a figure_manifest.md that does not exist.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
Cells lose their borders (pastel fills float; not-tested/literature/open cells
go light gray, headers keep their frame); Fig. 1B's hand-drawn robots are
replaced by the same licensed Flaticon robot as the 1A headers, embedded
unsampled, with the capability dots kept. Both panels visually inspected
post-render (text visible, no overlaps) per the new standing rule in the
global CLAUDE.md: never ship a figure you have not seen.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
"RNN · MLP · VAE on a synthetic oracle;" and "LoRA specialists on Qwen 0.5B &
7B;" overflowed the box edge once the text column shifted left of the larger
icons; both now wrap to three short centred lines, with the block nudged up
so the guarantee line keeps its separation.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
The OffsetImage path composites at figure dpi, so the icons were going into
the PDF as 39x39 bitmaps regardless of source resolution (pdfimages-verified;
this is why the SVG switch changed nothing visually). Placing them as
AxesImage with interpolation="none" embeds the full 1024 px rasterisation
with a scaling transform: 4719 ppi at the placed size, print-crisp.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
The two Flaticon icons (licensed via GG's paid subscription) are now committed
as SVG source and rasterised at 2048 px by make_figs.py via rsvg-convert
(~6000 DPI at the placed size - print-lossless), keeping every figure a pure
function of the script plus committed sources. The 512 px CDN PNGs are gone;
a clear error names the librsvg dependency if rsvg-convert is missing.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
Per GG: the biological model goes pastel green (nature), the two AI tiers
light and darker pastel blue; header text switches from white to the dark
shade of each hue (white is unreadable on pastel). A green-pea icon honours
Mendel in the biology header; a friendly robot marks the two AI headers.
Icons are Flaticon #2347052 and #10479785, used under GG's paid Flaticon
licence (noted in make_figs.py); header text is centred slightly left of a
dedicated icon slot so nothing collides. Caption colour sentence updated
(green vs blues).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
"Model" now means an AI model everywhere; the Wright-Fisher construct is "the
biological model" throughout (19 occurrences): tier header, section title (now
"The biological model, and where trained learners depart from it"), Table 1
support column ("Exact" -> "Closed form"; "Analytic model" -> "Biological
model"), Results, Discussion, Methods ("Biological-model tier"), and all
figure captions. "Exact" survives only in technical noun phrases (exact-match
verifier, exact oracle, exact equilibrium, exact recovery); the abstract's
"exactly Wright-Fisher" is now "literally Wright-Fisher".
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
The paper's key move drawn as a two-panel partner to the programme grid (now
Fig. 1A): on the left, the usual picture — contemporaries exchanging messages
(multi-agent systems, one moment on the clock); on the right, the same
ecosystem seen along its time axis — a pedigree in which a rare capability
(gold dot) is lost under single-parent inheritance, reassembled by merging
complementary parents, and re-supplied by grounding from a reality that can
say no (the globe). Friendly-robot glyphs, colour-coded capability dots;
build.py now stacks multiple PDFs per figure; the Introduction cites 1A and
1B in panel order.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v