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
Space: "information is passed on, but not easily stored: it fades with the
conversation". Time: "information is inherited, evolutionarily selected, and
passed on again — from parent model to child model — where population
genetics applies". The contrast that justifies the transfer, stated where the
reader's eye lands.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
Per GG: the "a society in time" label no longer collides with the gen-2
agent's capability dots (taller canvas, pedigree spread), the "inherit" label
clears the timeline (shortened; the caption carries "training on output"),
the cryptic "..." bubble now reads "hi!", and every text element is one to
two points larger.
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
Each filled cell now carries, in its bottom-right corner, the figure or table
where that result is reported (Fig. 2A ... Figs. 7E-F, 3C-D); the caption says
so. Building the mapping surfaced one imprecise citation: the bred-and-screened
seed-replication claim cited Fig. 3A, whose panel shows the soup/ties bars -
that result lives in SI Appendix Table S2, and the citation now says so.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
The old label read as an omission; the skipped middle-tier cells were a design
decision (the tier would replicate the exact theory, not test it), and the new
wording matches the fill principle the caption states.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
Category separation per GG: population genetics stays blue, both AI tiers move
to shades of orange, with a wider gutter between the theory column and the AI
pair. The grounding x LLM cell is upgraded from "not tested" to "established
at LLM scale in prior work (21, 30); not re-run here" (Shumailov's Nature
collapse result; Gerstgrasser's real-data rescue) - it was never a gap, it was
already settled. The caption now states the fill principle: each claim is
tested at the cheapest tier that can falsify it; a costlier tier is entered
only where it adds a discriminating test, and the LLM society is the one
genuinely open cell.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
"Model" is reserved for AI models in this paper, so a tier named "Exact
model" read as a kind of AI model; the tier is the Wright-Fisher theory run
exactly. Caption and Introduction adjusted to match ("three tiers" rather
than "three tiers of model architecture"; "an exact population-genetic
simulator").
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
Row labels now teach the vocabulary (grounding = immigration, recombination =
sex, epistasis, the composed society, speciation = reproductive isolation),
each with a two-to-three-line definition in the left margin, replacing the
question taglines. The in-figure title/arrow is removed (the caption carries
it); the tier header row is now solid-colour with white text so the
model-nature band reads as a header rather than a content row.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
Replaces the results table with a pipeline figure: five questions x three
architecture tiers (exact Wright-Fisher simulator, trained networks, language
models), filled cells naming the experiments, dashed cells the honest gaps.
Table 1 (the dictionary) stays; Table 2 moves to SI Appendix Table S2. The
renumber surfaced a pre-existing citation-order violation (the LLM figure was
cited in the recombination section before Figs. 3-6), so figures are renumbered
to strict first-citation order (LLM tier is now Fig. 3). Fig. 2B: the montage's
baked-in raster labels are cropped away and replaced with vector row numbers
under a rotated "generation" header.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
paper/pnas/main.md — the manuscript restructured as a research article
(~5.6k words main text): significance statement, abstract, introduction
(diagnosis conceded; the management thesis; the interpretation/
explanation/prediction ladder with the prediction rung stated as a
bounded controlled test), the minimal model with its exactness boundary
(learning kernel cited against ourselves), Table 1 dictionary with
per-row support levels, a five-step results ladder (grounding floor;
conservation law + operator boundaries + Fisher-Muller + directed sex +
mating structure; the jointly-necessary society; speciation across three
tiers with the emergent null; the controlled predictive test at
second-review calibration), discussion (design rules, borrowed-vs-ours
ledger, limits with the reviewer's generalisation-before-scale ordering,
what biology gets back), brief methods, 30 references.
build.py composes 6 figures by stacking committed vector PDFs (bespoke
unified re-plots deferred to submission polish); builds clean under
tectonic (15 pp incl. 6 full-page figures). si.md: SI skeleton
(propositions, claims ledger, per-tier methods, statistics, figure
list). Manifesto sections of v6 (institutions, timescales, re-minting)
compressed into Discussion per the plan; v6 remains the long-form
perspective document.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v