LLog — Matheo-b16-extra: one model line, two voices, four figure builds#

Note

LLog header

Paper designation: Matheo-b16 (RiskyMAD waiting-time study), b16-extra spin-off and its companion code
Topic: figure release v1r5p0 of riskymad-forecast-of-nuclear-death-probability-x3.py — one shared model line measured to the column, an audience-dependent title, a contrasting close to the public caption, 2 mm of added air in two places, a 100 % rule on the public build, and a fourth -public-full build built to be A/B tested against -public
Date: 2026m09d10_15h40
Effort: Max (from .claude/effort-level, reported at session start; LLoL did not separately confirm before issuing the work prompt)
Mode: EDEN (from .claude/mode, reported at session start; not separately confirmed)
Model: Claude Opus 5, max effort
VVN: b16-extra-figure-variants-llog-dv_ClaOp50Max_MMv1r0p0_2026m09d10_15h40
Files touched: source/matheology/hell/mm/b/16/extra/code/riskymad-forecast-of-nuclear-death-probability-x3.py, source/matheology/hell/mm/b/16/extra/b16-extra-waiting-time-derivation_mmv1_2026m09d07.rst
Files written (generated): eight files under source/_file/pdf/hell/mm/b/16/fig/ — .pdf and .webp for each of -fig, -fig-plain, -fig-public, -fig-public-full, all stamped iv_LLoL_MMv1r5p0_2026m09d10
Branch: b16-revision-for-expert-review
Status at time of writing: all four builds render; 52 of 52 HELD, 0 BREACH; rstcheck clean on the edited page; check-paths clean; section PDF rebuilt and opened. No commits made — LLoL commits.

Continuity

Follows the figure work committed at b5f2a39 (vector figures in LaTeX, plus a public variant of Figure 1) and f75ff18 (the linear-then-log figure adopted over the retired 3-segment one). The standing b16 revision context still holds: b16 is a two-part paper (jargon-free general part + expert SIAs), every revision runs through EDEN, and Claude’s specific standing assignment is to surface the profound BABL traps rather than the cosmetic ones.

Prompt 1#

Continue b16-extra figure work, release v1r5p0. Script: source/matheology/hell/mm/b/16/extra/code/riskymad-forecast-of-nuclear-death-probability-x3.py. The VVN constant near the top drives both the printed stamp and every output filename; build_loglin(with_caption, public) emits three variants. Tree clean at b5f2a39. Run with <repo>/.venv/bin/python riskymad-forecast-of-nuclear-death-probability-x3.py from that directory. Tasks:

1. Replace both MODEL_LINE and MODEL_LINE_PUBLIC with one shared line (measured to fit at 6.59 in of a 6.73 in column): The RiskyMAD model (Risky ⇌ MAD crisis → Dead) asks how long before the crocodile of nuclear roulette kills civilizations. Keep ⇌ in the source so ARROW_MATH still fires. Check the parentheses don't crowd the slow/fast labels.
2. Keep the mid-caption "like prey watching a motionless crocodile, we mistake stillness for safety" — it encodes the §14.1 identifiability result (crocodile lethality = p_{M→D}, prey wandering = r_{R→M}, only the product identified). Change the closing sentence so it contrasts rather than echoes: end on the crocodile striking fast/suddenly against the earlier motionless.
3. Make the title audience-dependent: keep the present plain title for the technical/plain builds; for public=True use
        "Quiet looks safe. But how long until the crocodile of nuclear roulette strikes?""

        Runner ups, please store in code as comments in case I'd like to revise;
        store the original dry title there too:
        ( A crocodile title on the technical figure would read as advocacy to the sceptical reader.)

        4. "How long can we keep walking past the crocodile of nuclear roulette?" — puts the agency on us, which matches the policy point.
        1. "Every quiet year looks safe. How long until the crocodile strikes?" — strongest for a flyer: names the reader's own belief, then puts the question. Two short sentences survive being set large.
        2. "The crocodile waits: how long until accidental nuclear winter?" — best balance; keeps the searchable phrase after the colon.
        3. "Quiet water, waiting crocodile: how long until accidental nuclear winter?" — most evocative; "quiet water" smuggles in the stillness that is the mechanism.
        5. "Nuclear roulette: how long before the crocodile catches us?" — punchiest, but it fuses roulette and crocodile in the most prominent slot on the figure, which is where I'd least want them blurred.

        LLoL Combo: "Quiet looks safe. But how long until the crocodile of nuclear roulette strikes?""

4. Add ~1–3 mm between the x-axis labels and the legend, and again above the model line.
5. In the public variant only, add a 100 % rule (the technical one uses the 99 % rule to close the box).
6. Build a fourth variant -fig-public-full: public caption, title and two-column legend, but keeping the 99 % rule, percentile numerals and run table — for an A/B test with a real lay reader. Whether the drops help is unestablished; this is the test.
7. Bump VVN to iv_LLoL_MMv1r5p0_2026m09d10, update the .. figure:: reference in b16-extra-waiting-time-derivation_mmv1_2026m09d07.rst (it uses a …-fig-plain.* wildcard so LaTeX gets vector PDF, HTML gets webp), rebuild with make pdf SECTION=…, and open the PDFs.

Check after: python3 reproduce_tables.py must print 52 of 52 HELD, plus rstcheck and check-paths. Render every figure and look at it before declaring done — label collisions are the recurring failure here, and measure text widths with a matplotlib renderer rather than estimating from character counts. Don't commit unless asked.

Response 1 — what was done, in order#

Task 1 — one shared model line, and what measuring it exposed#

MODEL_LINE and MODEL_LINE_PUBLIC are now a single MODEL_LINE, drawn on every build. Measured with the matplotlib renderer under the figure’s own rcParams (Fira Sans Light, 8.6 pt) rather than estimated from character count:

Rendered widths against the 6.734 in text column#

line

width

slack

result

old MODEL_LINE (expert)

6.986 in

−0.252 in

overflowed, unnoticed

old MODEL_LINE_PUBLIC

3.067 in

+3.667 in

fitted

new shared MODEL_LINE

6.588 in

+0.146 in

fits; matches LLoL’s 6.59 in

The finding worth recording is the first row: the line being replaced had been running past the column edge, on every expert build shipped so far. Nothing reported it, because the column width had only ever been estimated in characters. The text column is now a named constant, TEXT_COL_IN = (TEXT_RIGHT - TEXT_X) * FIG_W_IN = 6.734 in, so the three width claims in the file (model line, titles, caption wrap) are checkable against one number instead of three prose assertions.

Parentheses against the harpoon labels: checked, HELD. ⇌ is kept in the source so ARROW_MATH still substitutes the stacked slow/fast harpoon. The ( sits six characters before the harpoon and the ) twelve after, with spaces on both sides of the glyph; inspected at 2.6× on the rendered PNG, there is clear air between Risky and slow, and between fast and MAD.

Task 2 — the closing sentence now contrasts instead of echoing#

The mid-caption sentence is untouched, as instructed. The close changed:

sentence

was

“Every scenario here ends the same way. They differ only in when the crocodile of accidental nuclear winter will strike.”

is

“Every scenario here ends the same way; they differ only in when. Stillness buys nothing: the crocodile that has not moved in decades strikes in a single lunge.”

“Stillness buys nothing” negates the earlier “we mistake stillness for safety” directly rather than restating the image, and the sentence lands on the sudden strike set against the earlier motionless, as asked.

One wording was drafted and rejected before it was written to the file. The first draft closed “…the strike, when it comes, is as sudden as the stillness was long.” It is the better sentence to read and the worse sentence to publish: a chiasmus that couples suddenness to the length of the quiet implies the model has a memory, which is precisely what the caption’s own first sentence denies (“this model has no memory”). Rejected on that ground. The reasoning is recorded in a comment beside CAPTION_TEXT_PUBLIC so the next editor does not re-derive it.

The same comment now records why the mid-caption sentence must not be edited casually: it carries the §14.1 identifiability result — crocodile lethality is \(p_{M \rightarrow D}\), prey wandering is \(r_{R \rightarrow M}\), and only their product is identified, so a patient crocodile among careless prey and a quick one among careful prey give the same forecast.

Task 3 — audience-dependent title, runner-ups stored, and a fitting guard#

TITLE (the original dry line) is live on the expert builds; TITLE_PUBLIC (LLoL’s combination of runner-ups 1 and 4) is live on both public builds. All five runner-ups are stored as comments in LLoL’s own ranking with LLoL’s own notes, each carrying its measured width at 13 pt Fira Sans Bold so a swap can be made without re-measuring:

Titles measured at 13 pt Fira Sans Bold (column 6.734 in)#

rank

title

width

adopted

Quiet looks safe. But how long until the crocodile of nuclear roulette strikes?

6.36 in

dry

How long until accidental nuclear winter begins

3.92 in

1

Every quiet year looks safe. How long until the crocodile strikes?

5.33 in

2

The crocodile waits: how long until accidental nuclear winter?

5.08 in

3

Quiet water, waiting crocodile: how long until accidental nuclear winter?

5.96 in

4

How long can we keep walking past the crocodile of nuclear roulette?

5.73 in

5

Nuclear roulette: how long before the crocodile catches us?

4.91 in

Every one of them fits on one line at full size, so nothing was shrunk. A new _title_fontsize() measures the title against the column and steps the size down only if it would run past — added because the runner-ups are kept for swapping, and because this file has now demonstrated once (Task 1) that a line can run off the canvas without anybody noticing.

Task 4 — 2 mm of added air, in the two named places#

Both gaps are opened by one constant each, so neither can be widened in one place and forgotten in the other.

  • X-axis labels to legend. The axes bottom moved up by 0.018 of the base layout = 0.081 in = 2.06 mm. Moving the axes rather than the legend is deliberate: pushing the legend down would have moved the gap onto the caption band instead of creating it.

  • Above the model line. _MODEL_LINE_GAP_IN 0.20 → 0.28 in = 2.03 mm, and the band height is now computed from the same constant.

Measured on the rendered figures afterwards (ink box to ink box, so the legend’s own padding is extra):

Gaps after the change#

build

x-labels → legend

footer → model line

-fig / -fig-plain

4.51 mm

2.98 mm

-fig-public

1.43 mm

7.15 mm

-fig-public-full

1.43 mm

7.17 mm

The public builds were the tight ones before this change — at 1.43 mm now, they had been at roughly −0.6 mm, i.e. the x-label ink box and the legend box were touching.

Task 5 — a 100 % rule where the 99 % rule used to close the box#

The rule is drawn wherever the 99 % rule is not — expressed as if full: axhline(99) else: axhline(100), so the reason is visible in the code: the top of the plot is closed either way and never twice. clip_on=False, because a line drawn exactly on the axis limit is otherwise half cut away.

Beyond the instruction, and flagged as such: the rule was given a matching 100 % of worlds label, because the other two rules on the same plot are labelled (99 % of worlds, 50 % of worlds) and an unlabelled dotted line at the top invites “what is that?”. See the EDEN section below — this addition carries a real over-claim risk and is offered for LLoL to keep, reword, or drop.

Task 6 — the fourth build, and what had to change for a fair A/B test#

build_loglin() now has two switches instead of one, because the fourth build needs one without the other:

switch

what it decides

public

the voice — which title, which caption prose, and the legend layout (centred two-column under the plot, rather than single-column beside the table)

full

the furniture — the 99 % rule, the percentile numerals, the forty-run table. Defaults to not public; -public-full overrides it

The four builds#

build

public

full

size

use

-fig

no

yes

7.40 × 6.72 in

expert voice, caption printed in, for sending alone

-fig-plain

no

yes

7.40 × 5.14 in

the one the page uses; the page captions it

-fig-public

yes

no

7.40 × 6.32 in

public voice, furniture dropped

-fig-public-full

yes

yes

7.40 × 7.41 in

public voice, furniture kept — the A/B partner

The layout problem, and why the figure grows rather than the plot shrinking. A centred two-column legend takes the full width, so nothing can sit beside it; the forty-run table therefore has to go underneath. Fitting both inside the existing 4.5 in design would have cut the plot to about 1.5 in tall — which would have made the two public builds differ in how big the curves look, not only in what furniture is present. That is a confound, and it would have contaminated exactly the comparison the build exists to support. So the table was given its own strip in the foot band, sized in inches, and the figure grows to hold it. The plot is untouched.

A second confound, found and removed by measurement. The first attempt left 10.2 mm of air under the table against -public’s 7.15 mm, because the strip was sized with four row steps where it needed three steps and one row of ink. A lay reader shown both builds would have been reacting partly to spacing. Corrected: 7.17 mm against 7.15 mm.

A third confound remains, and is not removable inside the figure — see the EDEN section.

Task 7 — version, page reference, rebuild#

VVN → iv_LLoL_MMv1r5p0_2026m09d10; the stamp on the figure and the version in all eight filenames come from that one constant, so they cannot drift. The page’s .. figure:: wildcard was repointed to the r5p0 -fig-plain.*, and the figure caption in the page was rewritten from “three versions” to four, naming what -public-full is for in the paper’s own voice.

make pdf SECTION=matheology/hell/mm/b/16/extra/b16-extra-waiting-time-derivation_mmv1_2026m09d07.rst rebuilt cleanly; page 41 carries the new vector figure and the new caption; the section PDF and all four figure PDFs were opened.

Checks#

check

result

reproduce_tables.py

52 of 52 published figures HELD; 0 BREACH — unchanged, as expected: no number on the figure changed, and …-numbers.txt came back byte-identical

rstcheck (edited page)

Success! No issues detected

rstcheck --recursive source

616 lines of findings, none in hell/mm/b/16/extra/; all pre-existing, in b12/b14/b15 papers, older b16 llogs and AA files

check-paths

clean (Checks A–D)

embedded fonts

all four PDFs: CID TrueType only, no Type 3 — the fault that crashed Preview on 2026m09d08 has not returned

label collisions

a renderer-based checker was written for this: it walks every text artist in every build, flags anything off-canvas, any foot text past the column, and every pairwise ink-box overlap. No real collisions in any of the four builds. Three classes of false positive were each confirmed by eye at 2.6× zoom: out-of-view tick labels (−1, 120) that exist but are never drawn; the 500 tick at the right spine, which legitimately sits outside the text column; and the 47 / 139 percentile numerals against the rotated curve labels, whose axis-aligned bounding boxes are far larger than their ink

Every build was rendered to PNG and looked at, not merely produced.

EDEN analysis#

BABL Danger: metaphor saturation on an audit-first figure

Counted, not impressionistic. Predator references now standing on each build, across title + model line + caption:

  • expert builds (-fig, -fig-plain): 4 — crocodile (model line), prey, crocodiles, ambush predators (caption). Before v1r5 it was 3.

  • public builds: 5 — crocodile in the title, in the model line, and twice in the caption, plus prey.

Each individual step was reasonable and each was asked for. The cumulative direction is the concern, and it is the invisible kind CLAUDE.md names: form looks right while substance drifts. Every number on this figure is exact, reproducible and audited — and the figure is increasingly moving the reader by an image of a predator rather than by the arithmetic. On a page whose own footer reads #AuditTheMath — offered not to be believed, but to be checked, that is the drift most worth catching early.

Two specific edges:

  1. The metaphor now stands on the expert build too. Task 3’s own reasoning — “a crocodile title on the technical figure would read as advocacy to the sceptical reader” — is right, and task 1 puts a crocodile on that same figure through the shared model line. The mitigation is real (8.6 pt grey, at the foot, under a dry title, not the most prominent slot) and I judge it HELD. But the model line is the one line whose job is to say what the figure is of; it used to answer that (“exact waiting time distributions to first disaster for a risky 3-state world”) and now answers it partly in metaphor.

  2. The model line fuses roulette and crocodile — the precise objection LLoL raised against runner-up 5 for the title. At the foot it carries far less weight than in the title, but the objection does not disappear; it only gets quieter.

Neither is a reason to undo what was asked. Both are reasons to decide the next step knowingly rather than by momentum: the natural next move is a crocodile somewhere else, and there is no natural place left where it costs nothing.

Green Meadow #1 — the shared model line. count = 4 at least; 3 given. Wordings that satisfy both constraints (one line for every audience and no advocacy in the expert build’s most prominent slot) are plentiful; the constraint pair does not bind. Three alternatives to the adopted line:

  • “The RiskyMAD model (Risky ⇌ MAD crisis → Dead): how long before a nuclear crisis runs all the way?” — no metaphor anywhere, question preserved.

  • “The RiskyMAD model (Risky ⇌ MAD crisis → Dead) asks how long civilizations survive nuclear roulette.” — keeps the roulette, drops the crocodile, so title and caption carry the metaphor and the model line states the model.

  • The adopted line. It is the most metaphor-forward of the set, and it is the one LLoL chose and measured.

It holds because all three say what the figure is of, all three fit the column, and none of them claims anything the closed form does not.

Knife Edge #1 — the -public-full layout. Once the two public builds must be comparable, exactly one arrangement survives: grow the figure, do not shrink the plot. Every alternative fails a constraint that matters. Shrinking the plot to fit the existing height changes the apparent size of the curves, which is the very thing the A/B test must hold constant. Setting the legend beside the table needs about 5.8 in of width in a 3.3 in half. Dropping to a single-column legend abandons the “two-column legend” the build is defined by. Putting the table above the legend separates the legend from the plot it labels. It holds because the foot band is already sized in inches and added to the figure height, so a strip could be added there without touching a single one of the layout fractions the plot depends on.

Grey Edge #1 — the A/B test itself. The test is worth running and its result may lead to ZION, but it is impossible to tell in advance whether it will. Three reasons, in order of how badly they could mislead:

  1. n = 1. “A real lay reader” is one reader. A single reaction is compatible with the drops helping, hurting, or doing nothing. The BABL move here is not running the test — it is reporting the result as “tested” afterwards. If this is to settle anything, the number of readers and what counts as a difference should be written down before the first one sees a figure.

  2. A confound remains that the figure cannot remove. The two builds are 6.32 in and 7.41 in tall. Shown at the same page width, -public-full’s plot is about 15 % smaller on the page. Some of any reaction will be to size, not to furniture. It can only be controlled outside the figure — show both at the same plot size and let the page lengths differ.

  3. The two builds differ in more than one thing at once — 99 % rule, percentile numerals and the run table all move together. A result cannot say which of the three mattered.

Best current bet: run it anyway, record the three caveats with the result, and let the outcome move a prior rather than close a question.

Grey Edge #2 — the “100 % of worlds” label (my addition, beyond the instruction). The rule was asked for; the label was not. It may be the right call and it may be a quiet over-claim, and I cannot tell which from here.

  • For: the other two rules are labelled, so an unlabelled line is a question the reader cannot answer. The paper’s own certainty result (What none of this establishes) is that every scenario reaches self-destruction with probability 1, so “100 % of worlds” is the paper’s established claim, not a new one. Visually it teaches the right thing — the curves approach the line and never touch it.

  • Against: at the top of a finite axis, “100 % of worlds” can be read as “all worlds, by 500 years”, which is false at any finite time. The 99 % label is anchored by three real markers at 47, 139 and 462 years; the 100 % label has no marker and no time, so nothing on the figure stops the misreading.

Three ways out, LLoL’s call: keep as is; reword to “100 % of worlds — eventually”; or drop the label and keep the bare rule, which is exactly what was asked for.

No Empty Set, no Red Edge, no Final Cliff was found in this work.

Summary and recommendations#

Done, all seven tasks. One shared MODEL_LINE measured at 6.588 in against the 6.734 in column (the line it replaced was 6.986 in and had been overflowing unnoticed); harpoon parentheses checked clear; the public caption’s close now contrasts instead of echoing, with the memory-implying first draft rejected on the record; the title is audience-dependent with all five runner-ups and the dry title stored as comments with measured widths; 2.06 mm added between x-labels and legend and 2.03 mm above the model line, each from a single constant; a 100 % rule closes the box wherever the 99 % rule is dropped; -fig-public-full built; VVN at iv_LLoL_MMv1r5p0_2026m09d10, page reference and figure caption updated, section PDF rebuilt and everything opened. 52 of 52 HELD, rstcheck and check-paths clean, no label collisions in any build. No commits.

Five things for LLoL to decide or know:

  1. BABL Danger — metaphor saturation (4 predator references on the expert build, 5 on the public ones). Not a reason to undo anything asked for; a reason to make the next crocodile a deliberate decision rather than momentum. Detail in the EDEN section above.

  2. The “100 % of worlds” label is mine, not LLoL’s instruction — keep, reword to “— eventually”, or drop to the bare rule. It carries a finite-axis misreading risk.

  3. The A/B test has a confound the figure cannot fix: the two public builds are 6.32 in and 7.41 in tall, so at equal page width the -public-full plot is ~15 % smaller. Show them at equal plot size, and write down n and the decision rule before the first reader sees anything — otherwise the result will be quotable as “tested” without being informative.

  4. The r4p1 figure files are now stale but still on disk (six files under source/_file/pdf/hell/mm/b/16/fig/, tracked in git, nothing points at them). Not deleted — File Safety. They want a decision: HH/ or removal by LLoL.

  5. Two small pre-existing items, flagged not changed: line 304 of the figure script says “the validated categorical palette”, which Language Rule 4 forbids (“checked” would do); and AHA/vvn-composition.md still names ClaOp47Max as the current default assessor while recent llogs correctly use ClaOp50Max.

Also worth one line: the public caption now wraps to five even lines of ~107 characters rather than filling the 126-character column, because the wrap optimiser prefers a full last line over a full column and the shortened prose gave it room to even out. That is the optimiser working as designed, not a regression, but the public caption block is visibly narrower than the model line above it. Say the word if the fuller column is wanted instead.

Jonah License, CC-BY 4.0. Balospe.com — #AuditTheMath. Offered not to be believed, but to be checked.

Prompt 2#

What about the figure title of "How long until accidental nuclear winter strikes like a crocodile?" for the professional version? (to still put the dynamics there, which is then discussed in the caption)? --- Is it really worth using 100% vs 99% in the two figures? why not make both 99%?
Does "ambush
predators" need a hyphen?

Response 2a — the hyphen: no#

No hyphen. Ambush predator is a standard unhyphenated compound noun in ecology: an attributive noun modifying a noun, like police officer. English does not hyphenate that pattern unless ambiguity forces it. The caption’s These ambush predators wait motionless... is correct as written.

A hyphen would be right only if the pair modified a further noun — ambush-predator strategy. Contrast sit-and-wait predator, which is hyphenated, because there the modifier is a phrase rather than a single noun.

No change made.

Response 2b — 100 % vs 99 %: LLoL is right; both are now 99 %#

Accepted, and implemented. The 100 % rule introduced in v1r5p0 is withdrawn. The 99 % rule and its 99 % of worlds label now stand on all four builds; only the percentile markers and numerals and the forty-run table remain behind the full switch. build_loglin’s docstring was corrected to say so, because “the 99 % rule” was listed there as furniture and no longer is.

Five reasons it is better, in order of weight:

  1. Two builds of one figure must not carry a rule at a different height with a different meaning. The -public / -public-full pair exists to be put side by side in front of the same reader. A line that moves between them is the worst possible thing to put in a comparison, and I had put one there.

  2. The 99 % rule says something a finite axis can support. “99 % of futures have ended by somewhere along here” is readable straight off the plot. “100 % of worlds” at the top of a 500-year axis invites “all of them, by year 500”, which is false at any finite time — the Grey Edge #2 risk recorded above, now removed rather than caveated.

  3. It tightens the A/B test. -public and -public-full now differ in two things (percentile markers/numerals, run table) instead of three. One of the three confounds listed in Grey Edge #1 is gone.

  4. It closes the box just as well. That was the whole job of the 100 % rule, and the 99 % rule was already doing it on the expert builds.

  5. It deletes an unrequested decision of mine. The 100 % of worlds label was my addition beyond the instruction and the thing I flagged for LLoL to rule on. This ruling removes it rather than wording around it.

It also renders better, which was not the argument but is worth recording: the curves cross the 99 % rule and continue, where against the 100 % rule they only ever approached it. Crossing is the truer picture — worlds do run out past the 99th percentile, and the eye now sees that happen.

Checked: the collision sweep over all four builds is unchanged (same three known false-positive classes, no new ones); all four figure sizes are unchanged.

Response 2c — the title: yes to the dynamics, no to the simile#

Recommendation: put the dynamics in, leave the simile out. Change one word — How long until accidental nuclear winter strikes? — rather than adding the clause.

Why LLoL’s instinct is right, and stronger than it looks. The figure draws the waiting and cannot draw the strike. Once a crisis begins, the mean time to the end is \(1/(r_{M \rightarrow R} + r_{M \rightarrow D}) = 1/9\) yr = 40.6 days, against a mean total wait of 30.33 yr at Best Data — a ratio of 273 : 1. On this figure that phase is 0.37 % of the wait and 2.2 % of the linear block: a hair wide, invisible. So a reader who takes the CDF at face value can come away believing the whole process is slow. Restoring “strikes” to the title is not decoration — it repairs a genuine omission of the axis.

Why the simile should not be the device that does it. Three reasons:

  1. It is the slot the dry title was protecting. LLoL’s own v1r5 reasoning — “a crocodile title on the technical figure would read as advocacy to the sceptical reader” — applies with full force here, and more so than to the model line, because the title is the most prominent slot on the figure.

  2. A simile is the one thing on a technical figure that cannot be checked. A referee can check “how long until accidental nuclear winter begins”. Nobody can check “like a crocodile”. A figure whose footer reads #AuditTheMath should not open with its only uncheckable claim.

  3. It re-opens an ambiguity the caption then has to close. “Strikes like a crocodile” can be read as from stillness, suddenly (what LLoL means) or as because something is hunting us (agency). The model has no agent. On the public build that ambiguity is a feature; on the expert build it is a debt the caption must pay.

Measured widths, all fitting the 6.734 in column at 13 pt Fira Sans Bold:

candidate

title

width

verdict

current

How long until accidental nuclear winter begins

3.92 in

no dynamics

recommended

How long until accidental nuclear winter strikes?

4.03 in

dynamics, checkable

LLoL’s proposal

How long until accidental nuclear winter strikes like a crocodile?

5.33 in

dynamics + simile

alt A

How long until accidental nuclear winter begins — and how suddenly?

5.81 in

names both phases

alt B

How long until accidental nuclear winter begins, in a world with no memory

6.20 in

names the mechanism

alt C

How long until accidental nuclear winter begins — when, not whether

5.76 in

the paper’s headline

The recommended one-word change also makes the two titles rhyme — expert “…winter strikes?” against public “…roulette strikes?” — so the pair reads as one figure in two voices, with the crocodile living only in the public title and (quietly, at 8.6 pt) in the shared model line. It carries the dynamics into the title exactly as LLoL asked, at zero cost with a sceptical reader, and the caption’s crocodile paragraph then explains why “strikes” is the right verb, which is the structure LLoL described.

Not implemented — awaiting LLoL’s word, because it is LLoL’s voice and LLoL’s call, and because bumping the VVN twice would scatter another eight superseded files beside the six r4p1 ones already standing.

Release state after Prompt 2#

Warning

Code and disk are deliberately out of step, for one exchange.

The 99 % change is in the script but the figures under source/_file/pdf/hell/mm/b/16/fig/ are still the v1r5p0 ones with the 100 % rule. Nothing was written there and no VVN was bumped, so nothing on disk is mislabelled. Previews were rendered to the session scratchpad with the side stamp overwritten as PREVIEW -- NOT RELEASED so they cannot be mistaken for a release.

The moment the title is settled, one bump covers both changes — proposed iv_LLoL_MMv1r6p0_2026m09d10 (r, not p: what the figures draw has changed) — followed by one rebuild of all four builds and the section PDF.

Summary of Prompt 2#

  1. “Ambush predators” needs no hyphen. Standard unhyphenated compound noun; a hyphen only if it modified a further noun.

  2. Both figures are now 99 %. LLoL was right; the 100 % rule and its label are withdrawn. Five reasons recorded above, the first being that a rule which moves between two builds is the worst thing to put in a comparison the reader is asked to make. This also removes the one unrequested addition of v1r5p0 and shrinks the A/B test from three confounded differences to two.

  3. On the professional title: the dynamics belong there, the simile does not. Recommended: How long until accidental nuclear winter strikes? — one word, 4.03 in, checkable, rhymes with the public title. The supporting fact is that the strike phase is 273 : 1 shorter than the wait and therefore invisible on this axis, so “strikes” repairs a real omission rather than decorating one.

  4. Held for one exchange: no VVN bump, no rebuild, so both changes ship under a single version.

Jonah License, CC-BY 4.0. Balospe.com — #AuditTheMath. Offered not to be believed, but to be checked.

Prompt 3#

I think you can safely remove the "public-full" variant of the  figure (i.e. with the table of first and last simulation results ut back in). It looks clunky and doesn't offer THAT much more info than the "public" figure. Would you agree? - If so, drop the "-full" and bumb to v1r6p0 and build (and open) all latest figures for inspection and printing. --- Anything left to do for these figures? (Please clear out all older ones, so they don't get committed).

Response 3a — agreed, and for a stronger reason than clunkiness#

Agreed. But “clunky” is the second reason, not the first, and the first one matters because it is the one that decides whether removing the build is honest.

The first reason: the build could not have settled the question anyway. Three defects were already on the record from Prompt 1, and together they make it a non-instrument rather than an instrument:

  1. n = 1. One lay reader’s reaction is compatible with the drops helping, hurting, or doing nothing.

  2. An unfixable size confound. -public was 6.32 in tall and -public-full 7.41 in. Shown at the same page width, the full build’s plot is about 15 % smaller, so part of any reaction is to size rather than to furniture.

  3. Two things moved together — percentile markers/numerals and the run table — so no outcome could say which mattered.

Removing an instrument that cannot discriminate is not the same as removing an instrument. The second reason is LLoL’s, and it is sound: a centred two-column legend takes the full width, which forces the table into a strip of its own, which is what made the figure a fifth taller than its partner — the clunkiness and the confound have the same cause.

What is given up, said plainly: the clean factorial cell. -public-full was the only build that held the voice constant and varied the furniture. What remains is the coarser pair -fig (expert voice + full furniture) against -fig-public (public voice + none), which varies both at once. That pair costs nothing extra and already exists.

A cheaper test, if the question is ever worth settling: show one lay reader the -public build alone and ask an open question — is anything missing, is anything in the way? — rather than forcing a choice between two figures. At n = 1 an open question is more informative than a forced A/B, and it needs no second build.

Response 3b — what was done#

The variant is gone, and so is the machinery it needed. build_loglin is back to one switch: public picks the voice and everything that follows from it. The full parameter, the stacked_table branch and the four _TABLE_* strip constants are removed rather than left standing as dead generality — an unused parameter is an invitation to over-Complicate. _draw_run_table() stays: it has one caller again, but it is better than the inline block it replaced.

The retirement is recorded where the next reader will meet it, in the script’s own WHAT IT WRITES header: what the fourth build was, that it was retired on 2026m09d10, why (the layout forced the confound), and — in capitals — that what is left behind is a guess and should keep being called one.

The page says the same thing in its own voice. The figure caption changed from “four versions” to three, and the sentence that used to justify the fourth build now states the guess instead:

“…a -public one for a general audience that drops the percentile markers and numerals and the forty-run table. That a lay reader is better served without them is a stated guess, not a tested finding — said here rather than left implied, so that anyone who thinks it wrong knows there is nothing to overturn but an assumption.”

Version and build. VVN → iv_LLoL_MMv1r6p0_2026m09d10 (r, not p: what the figures draw has changed — the 99 % rule now stands on every build and the fourth build is gone). Three builds emitted as .pdf + .webp; the page’s .. figure:: wildcard repointed; section PDF rebuilt and all four PDFs opened.

Older figures cleared. Fourteen files removed from the tree:

version

files

state and what git will show

r4p1

6

tracked, committed at b5f2a39. Removed from the working tree; git shows six D entries. Fully recoverable from history, so no backup was made.

r5p0

8

never committed. Removed outright, and copied first to the session scratchpad (superseded-figs/) because they exist nowhere else. The scratchpad is deletable — say so if they are wanted somewhere durable.

They were not moved to an HH/ HistoryHeap, contrary to the usual File Safety route, for a checked reason: HH is not in .gitignore (git check-ignore HH returns nothing), so an HH/ inside source/ would still be committable and would not have met the instruction “so they don’t get committed”.

Warning

Commit the deletions together with the two edited files.

At HEAD the page still points at the r4p1 figure. The six deletions and the changes to b16-extra-waiting-time-derivation_mmv1_2026m09d07.rst and riskymad-forecast-of-nuclear-death-probability-x3.py are one consistent change set. Committing the deletions on their own would leave the page pointing at a figure that is no longer there.

Checks after the change: 52 of 52 HELD, 0 BREACH; rstcheck clean on the page; check-paths clean; all three PDFs CID TrueType only, no Type 3; the collision sweep over all three builds shows only the three known false-positive classes and no new ones; no stale r4p1 or r5p0 reference survives anywhere in source/ except the two deliberate retirement notes in the script and this append-only llog.

Response 3c — what is left to do for these figures#

#

item

state

1

The professional title. Response 2c recommended How long until accidental nuclear winter strikes?

Still open — LLoL has not ruled. Built at r6p0 with the existing dry title. A one-word change plus one bump whenever wanted.

2

The side stamp crosses the 50 % rule. The comment at line 468 claims “0.92 keeps the tops clear of the 50 % rule rather than touching it”

Measured, and the comment is wrong. The three stamp lines reach 50.1 %, 50.6 % and 50.8 %. Factors tried: 0.90 clears by 0.2 pp, 0.88 clears by 1.4 pp, 0.86 by 2.0 pp. Two-character fix; not applied.

3

“the validated categorical palette”, line 304

Language Rule 4 forbids “validated”; “checked” would do. Pre-existing, flagged at r5p0, still standing. Not changed — it is a wording call.

4

The public caption block is narrower than its column (five even ~107-char lines against a 126-char column)

The wrap optimiser working as designed — it prefers a full last line over a full column. Cosmetic; LLoL’s call.

5

``-fig`` and ``-fig-public`` are hand-pickup assets

Nothing on the site links to them; only -fig-plain is referenced. Recorded so a future path sweep does not read them as orphans to be cleaned away.

Two adjacent items, outside the figures but found while doing them: AHA/vvn-composition.md still names ClaOp47Max as the current default assessor while recent llogs correctly use ClaOp50Max; and source/matheology/hell/ll/study/index.rst still reads “(No study-specific llogs yet. Paper a2 will produce the first one.)” while about twenty study llogs stand in that directory, this one included.

EDEN analysis — Prompt 3#

Knife Edge #2 — dropping a test without dropping the honesty. There is exactly one way this decision stays in ZION, and it is narrow: the guess must keep being called a guess in the shipped artifact. Remove the build and keep the label, and nothing has been lost but a non-instrument. Remove the build and let the label go — which is the easy, invisible next step, because “That a lay reader is better served without them is a stated guess, not a tested finding” reads like verbiage to anyone later tightening the caption — and the drop-the-furniture choice silently becomes a finding nobody ever established. That is precisely the form looks right, substance has drifted pattern, and it would be invisible, because the figure would look exactly the same.

It holds today because the label is written in two places that a single edit cannot both remove: the page’s figure caption, and the script’s own header in capitals. Anyone deleting one meets the other.

Green Meadow #2 — cheap ways to test the guess later. count = 3; all three given. The question is not closed by removing the build:

  • Show one lay reader -public alone and ask an open question (recommended above).

  • Print -fig and -fig-public side by side — coarser, varies voice and furniture together, but free and already built.

  • Rebuild -public-full from git if a proper comparison is ever wanted, with the size confound fixed by matching plot heights rather than page widths.

No BABL Danger flag is raised for Prompt 3. The metaphor-saturation flag from Prompt 1 still stands unchanged — 4 predator references on the expert build, 5 on the public one — and the open title question in Response 3c is the next place it will either grow or stop.

Summary of Prompt 3#

  1. Agreed, and ``-public-full`` is gone, together with the full switch, the stacked-table branch and four now-dead layout constants. The stronger reason is that the build could not have discriminated (n = 1, a 15 % size confound, two variables moving at once), not that it looked clunky — though the clunkiness and the confound had the same cause.

  2. What is given up is the clean factorial cell; what remains is the coarser -fig vs -fig-public pair, free and already built. A cheaper real test is offered: one lay reader, -public alone, an open question rather than a forced choice.

  3. The guess is now labelled a guess in two places — the page caption and the script header — because removing the test must not promote the assumption. This is Knife Edge #2 and the narrowest thing to protect in later edits.

  4. v1r6p0 built, inspected and opened: three figures plus the section PDF. 52 of 52 HELD; rstcheck, check-paths clean; no collisions; CID TrueType only.

  5. Fourteen superseded figure files cleared — 6 tracked r4p1 (recoverable from b5f2a39), 8 untracked r5p0 (copied to the session scratchpad first). Not routed through HH/ because HH is not gitignored and so would not have met the instruction. Commit the six deletions together with the two edited files — at HEAD the page still points at the r4p1 figure.

  6. Five open items for these figures, listed in Response 3c; the first is the professional title, still unanswered.

Jonah License, CC-BY 4.0. Balospe.com — #AuditTheMath. Offered not to be believed, but to be checked.

Prompt 4#

1. change the title. 2. Clean up the stay below the 50% rule, make sure the 500 year line stays free.  3. do "checked. 4. OK. (on the expert variant, there is a "The" that starts a new sentence at the very end of one of the last lines, which would look better if moved to the next. 5. OK. -- Does that conclude all work on this figure for today, so I can print the latest? (bumb Version to v1r6p1)

Response 4 — all five, at v1r6p1#

1 — the expert title now carries the dynamics#

TITLE is now “How long until accidental nuclear winter strikes?” (4.03 in against the 6.734 in column, up from 3.92 in). One word. The reasoning is written into the code beside it so it is not lost: the figure cannot draw the strike, and a reader taking the curves at face value can therefore come away believing the whole process is slow. Once a crisis begins the mean time to the end is \(1/(r_{M \rightarrow R} + r_{M \rightarrow D})\) = 40.6 days against a mean wait of 30.33 yr — 273 : 1, which is 2.2 % of the linear block and invisible on the logarithmic one. The word restores the two-phase structure the axis leaves out.

Both titles now end on the same verb — expert “…winter strikes?”, public “…roulette strikes?” — so the pair reads as one figure in two voices, and the metaphor stays in the public title and (at 8.6 pt, at the foot) in the shared model line. The predator count is unchanged: 4 references on the expert build, 5 on the public one. The title carried the dynamics in without carrying the metaphor in.

Two earlier expert titles are kept in the code as comments: the dry “How long until accidental nuclear winter begins” (3.92 in), live until now; and the metaphor-carrying “How long until accidental nuclear winter strikes like a crocodile?” (5.33 in), considered and not adopted, with the reason recorded — it would have put the figure’s one uncheckable claim into its largest type.

2 — the side stamp: under the 50 % rule and off the 500-year line#

Both ends were wrong, and both are now measured rather than asserted.

v1r6p0

v1r6p1

stamp tops

50.1 / 50.6 / 50.8 % — crossing the 50 % rule

47.6 / 47.8 / 48.2 % — clear by 1.8 pp

gap to the 500-yr spine

1.6 px (0.4 mm) — reads as sitting on the line

6.5 px (1.65 mm)

bottom vs the 500 tick

4.2 px above the axis; label 9.0 px below it

unchanged — no vertical overlap either way

Two constants moved: the scale factor 0.92 → 0.88 (0.90 clears by only 0.2 pp, 0.86 by 2.0 pp; 0.88 taken), and the x offset −3.0 pt → −6.5 pt.

The comment that stood there was wrong and is now corrected. It claimed “0.92 keeps the tops clear of the 50 % rule rather than touching it” while the render had them crossing it. That is the failure mode this file keeps producing — a measured-sounding claim in a comment that nobody re-measured — and it is the third instance found in two days, after the model line that overflowed its column and the table strip that carried 5 mm of stray air. The new comment records the measurements at all three factors so the next reader can check rather than trust.

3 — Language Rule 4#

Line 304, “the validated categorical palette” → “the checked categorical palette”. The script now contains zero occurrences of validate / verify / correctness in any form.

4 — the orphaned “The”#

Fixed, and it needed a different tool than expected. No wrap width in the search range 100–126 avoids that break — checked exhaustively: four widths give the minimum seven lines, and every one of them ends a line on a word that opens a sentence. So the fix cannot live in the algorithm; it has to live in the text.

The device is a no-break space (`` ) between ``The and Pessimistic. Checked first that textwrap respects it — it does; the pair is treated as one 15-character token — and the line now ends cleanly at “…world history/scenario.” with “The Pessimistic to Optimistic…” starting the next. Still seven lines, and the device is documented in a comment beside it as reusable anywhere else a break lands badly.

Two more of the same species are left standing, and were not asked about:

  • line 3 ends “…drawn at 3”, splitting the numeral from “credible readings” on line 4;

  • line 6 ends “…certain self-” with “destruction.” opening line 7, splitting the paper’s own key term.

Each is the same one-character fix (at 3, or break_on_hyphens=False for the second). Reported rather than applied.

5 — hand-pickup assets#

Acknowledged, no change. -fig and -fig-public are referenced by nothing on the site; only -fig-plain is. Recorded so a future path sweep does not read them as orphans to clean away.

Release state at v1r6p1#

VVN → iv_LLoL_MMv1r6p1_2026m09d10 (p: four wording and placement fixes, nothing added or removed). Three builds emitted, all three rendered and looked at, page reference repointed, section PDF rebuilt — page 41 carries the new title — and all four PDFs opened.

Checks#

check

result

reproduce_tables.py

52 of 52 HELD; 0 BREACH

rstcheck (page + this llog)

Success! No issues detected

check-paths

clean

embedded fonts, all three PDFs

CID TrueType only, no Type 3

collision sweep, all three builds

only the three known false-positive classes; no new ones

banned words in the script

zero

stamp clearances

1.8 pp under the 50 % rule; 1.65 mm off the 500-year spine

The six superseded r6p0 files were removed as they were written (untracked, never committed). The working tree now holds exactly the six r6p1 files.

Warning

Still true, and still the one thing that can break the page: the six D entries for the r4p1 figures must be committed together with b16-extra-waiting-time-derivation_mmv1_2026m09d07.rst and riskymad-forecast-of-nuclear-death-probability-x3.py. At HEAD the page still points at the r4p1 figure.

EDEN analysis — Prompt 4#

Green Meadow #3 — the expert title. count = 6 measured; 3 named above. Titles that carry the dynamics without carrying the simile are plentiful, and the constraint pair does not bind: the adopted one-word change, “…begins — and how suddenly?” (5.81 in), “…begins, in a world with no memory” (6.20 in), and “…begins — when, not whether” (5.76 in) all qualify. It holds because each states something a reader can check against the model’s own rates, and none puts an image where the figure’s subject belongs.

Knife Edge #3 — the comment that measured nothing. The 0.92 comment is the third case in two days of a claim in this file that sounded measured and was not, and it is the most instructive because the words were exactly right (“keeps the tops clear … rather than touching it”) while the render disagreed. There is one way to stay in ZION here and it is narrow: every placement claim in this file must carry the number it was measured at. A comment saying “0.88 clears it” is checkable in thirty seconds; a comment saying “0.88 keeps it clear” is a claim that will quietly rot the next time a font, a figure height or a string length changes. The three fixed today were all found by measuring, none by reading.

No BABL Danger flag is raised for Prompt 4. The metaphor-saturation flag from Prompt 1 stands unchanged and is not made worse by this round: the expert title gained the dynamics without gaining a crocodile, and the counts are the same as they were.

Summary of Prompt 4 — and does this conclude the figure work?#

All five items done at v1r6p1, built, inspected and opened:

  1. Expert title → “How long until accidental nuclear winter strikes?” One word; restores the 273 : 1 two-phase structure the axis cannot draw; adds no metaphor.

  2. Side stamp 1.8 pp clear under the 50 % rule (was crossing it) and 1.65 mm off the 500-year spine (was 0.4 mm). The comment that claimed otherwise is corrected and now carries its measurements.

  3. “validated” → “checked”. Zero banned words remain in the script.

  4. The orphaned “The” is fixed with a no-break space — the only tool that works, since no wrap width avoids the break.

  5. Hand-pickup assets acknowledged; no change.

Yes — this concludes the figure work for today. It is ready to print. 52 of 52 HELD, rstcheck and check-paths clean, no collisions, CID TrueType only, and the tree holds exactly the six current files.

Three things are open but none of them blocks printing:

  • two more bad line breaks in the expert caption (“drawn at 3”, “self-/destruction”), same one-character fix as the “The”, reported in Response 4 above and not applied;

  • the standing metaphor-saturation observation from Prompt 1 — a judgment to keep in view, not a task;

  • two items outside the figures: AHA/vvn-composition.md still names ClaOp47Max as the current assessor, and source/matheology/hell/ll/study/index.rst still says no study llogs exist while about twenty do.

And one thing that does need care before committing: the six r4p1 deletions belong in the same commit as the two edited files.

Jonah License, CC-BY 4.0. Balospe.com — #AuditTheMath. Offered not to be believed, but to be checked.