LLog — Matheo-b16-extra: one model line, two voices, four figure builds#
Note
LLog header
b16-extra
spin-off and its companion coderiskymad-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.claude/effort-level, reported at session start; LLoL did
not separately confirm before issuing the work prompt).claude/mode, reported at session start; not separately
confirmed)b16-extra-figure-variants-llog-dv_ClaOp50Max_MMv1r0p0_2026m09d10_15h40source/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.rstsource/_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_2026m09d10b16-revision-for-expert-reviewrstcheck 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 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:
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_IN0.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):
build |
x-labels → legend |
footer → model line |
|---|---|---|
|
4.51 mm |
2.98 mm |
|
1.43 mm |
7.15 mm |
|
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 |
|---|---|
|
the voice — which title, which caption prose, and the legend layout (centred two-column under the plot, rather than single-column beside the table) |
|
the furniture — the 99 % rule, the percentile numerals, the forty-run
table. Defaults to |
build |
public |
full |
size |
use |
|---|---|---|---|---|
|
no |
yes |
7.40 × 6.72 in |
expert voice, caption printed in, for sending alone |
|
no |
yes |
7.40 × 5.14 in |
the one the page uses; the page captions it |
|
yes |
no |
7.40 × 6.32 in |
public voice, furniture dropped |
|
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 |
|---|---|
|
52 of 52 published figures HELD; 0 BREACH — unchanged, as expected: no
number on the figure changed, and |
|
Success! No issues detected |
|
616 lines of findings, none in |
|
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 ( |
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 —
crocodilein the title, in the model line, and twice in the caption, plusprey.
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:
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.
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:
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.
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.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:
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.
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.
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-fullplot 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.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.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.mdstill namesClaOp47Maxas the current default assessor while recent llogs correctly useClaOp50Max.
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:
Two builds of one figure must not carry a rule at a different height with a different meaning. The
-public/-public-fullpair 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.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.
It tightens the A/B test.
-publicand-public-fullnow differ in two things (percentile markers/numerals, run table) instead of three. One of the three confounds listed in Grey Edge #1 is gone.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.
It deletes an unrequested decision of mine. The
100 % of worldslabel 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:
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.
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.
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#
“Ambush predators” needs no hyphen. Standard unhyphenated compound noun; a hyphen only if it modified a further noun.
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.
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.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:
n = 1. One lay reader’s reaction is compatible with the drops helping, hurting, or doing nothing.
An unfixable size confound.
-publicwas 6.32 in tall and-public-full7.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.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
-publicone 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 |
r5p0 |
8 |
never committed. Removed outright, and copied first to the session
scratchpad ( |
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
|
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 |
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
-publicalone and ask an open question (recommended above).Print
-figand-fig-publicside by side — coarser, varies voice and furniture together, but free and already built.Rebuild
-public-fullfrom 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#
Agreed, and ``-public-full`` is gone, together with the
fullswitch, 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.What is given up is the clean factorial cell; what remains is the coarser
-figvs-fig-publicpair, free and already built. A cheaper real test is offered: one lay reader,-publicalone, an open question rather than a forced choice.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.
v1r6p0 built, inspected and opened: three figures plus the section PDF. 52 of 52 HELD; rstcheck, check-paths clean; no collisions; CID TrueType only.
Fourteen superseded figure files cleared — 6 tracked r4p1 (recoverable from
b5f2a39), 8 untracked r5p0 (copied to the session scratchpad first). Not routed throughHH/becauseHHis 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.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 |
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.
check |
result |
|---|---|
|
52 of 52 HELD; 0 BREACH |
|
Success! No issues detected |
|
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:
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.
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.
“validated” → “checked”. Zero banned words remain in the script.
The orphaned “The” is fixed with a no-break space — the only tool that works, since no wrap width avoids the break.
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.mdstill namesClaOp47Maxas the current assessor, andsource/matheology/hell/ll/study/index.rststill 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.