Repository navigation
Expand file tree
/
Copy pathproblem-graph.html
More file actions
356 lines (340 loc) · 282 KB
/
Copy pathproblem-graph.html
File metadata and controls
356 lines (340 loc) · 282 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Problem Graph — Project Delphi</title>
<meta name="description" content="Every problem attempted in Project Delphi, with branching paths, probabilistic timestamps, per-agent edge colours, and a double-click Bayesian Delphi inspector. Posterior shades run amber to red below 70%; light green only over 70%, dark green over 80%.">
<style>
:root{--bg:#f7f7f5;--panel:#fff;--ink:#1c1c1e;--mut:#5c5c60;--line:#d8d8d3;--acc:#2563eb;--green:#1F8A65;--orange:#C06028}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink)}
main{max-width:1460px;margin:0 auto;padding:18px}h1{font-size:24px;margin:2px 0 6px}h2{font-size:17px;margin:14px 0 6px}h3{font-size:14px;margin:10px 0 4px}
p,li{font-size:13.5px;line-height:1.45}.mut{color:var(--mut)}.small{font-size:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:12px 14px;margin:12px 0}
button{font:inherit;font-size:12.5px;padding:5px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer}
button.on{background:var(--acc);color:#fff;border-color:var(--acc)}button:hover{border-color:var(--acc)}
.row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.sw{display:inline-block;width:18px;height:4px;margin-right:6px;vertical-align:middle}
#graphwrap{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:9px;position:relative}
#graph{cursor:grab;touch-action:none;display:block;width:100%;height:auto}
#graph:active{cursor:grabbing}
.zoomctl{position:absolute;top:10px;right:10px;z-index:20;display:flex;gap:4px;align-items:center;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:8px;padding:4px}
.zoomctl button{font-size:15px;font-weight:700;line-height:1;padding:5px 10px}
.zoomctl .zlab{font-size:11.5px;padding:5px 7px}
#zoompct{font-size:12px;font-weight:700;min-width:44px;text-align:center;color:var(--acc)}
.predgrid{display:grid;grid-template-columns:minmax(300px,44%) 1fr;gap:12px}@media(max-width:900px){.predgrid{grid-template-columns:1fr}}
.prow{cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:7px 9px;margin:5px 0;background:#fff}
.prow:hover{border-color:var(--acc)}.prow.sel{border-color:var(--acc);background:#f3f6ff}
.dot{display:inline-block;width:10px;height:10px;clip-path:polygon(0 0,100% 0,0 100%);margin-right:6px;vertical-align:middle}
.tri{display:inline-block;width:11px;height:11px;clip-path:polygon(0 0,100% 0,0 100%);margin-right:4px;vertical-align:middle}
.pchip{display:inline-block;color:#fff;font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:3px;margin-right:2px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:900px){.grid2{grid-template-columns:1fr}}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:900px){.grid3{grid-template-columns:1fr}}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media(max-width:900px){.grid4{grid-template-columns:repeat(2,1fr)}}
.stat{font-size:22px;font-weight:700}.badge{display:inline-block;color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;white-space:nowrap}
#drawer{position:fixed;top:14px;right:14px;width:660px;max-width:calc(100vw - 28px);max-height:calc(100vh - 28px);overflow-y:auto;z-index:60;background:#fff;border:2px solid var(--acc);border-radius:10px;padding:16px;display:none;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.clickable{cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:7px 9px;margin:5px 0;background:#fff}
.clickable.sel{border-color:var(--acc);background:#f3f6ff}.bar{ display:inline-block;width:110px;height:8px;background:#eee;vertical-align:middle}.bar>i{display:block;height:8px}
.agglist{max-height:430px;overflow-y:auto;padding-right:2px}.agglist .clickable{text-align:left;width:100%}
#drawer .agglist{max-height:46vh}.agghead{font-size:12px;font-weight:700;color:var(--acc);margin:12px 0 2px;text-transform:uppercase}
.agglist{max-height:430px;overflow-y:auto;padding-right:2px}.agglist .clickable{text-align:left;width:100%}
#drawer .agglist{max-height:46vh}.agghead{font-size:12px;font-weight:700;color:var(--acc);margin:12px 0 2px;text-transform:uppercase}
a{color:var(--acc)}
.navrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}
#nodepicker{flex:1;min-width:200px;font:inherit;font-size:14px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.viewbtn{padding:10px 14px;font-size:14px}
.nlfam{font-size:11px;font-weight:700;color:#888;text-transform:uppercase;margin:12px 0 4px}
.nlrow{display:flex;width:100%;text-align:left;gap:8px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;margin:5px 0;cursor:pointer;font-size:14px;min-height:48px}
.nlrow:active{border-color:var(--acc)}
@media(max-width:760px){
main{padding:10px}h1{font-size:19px;line-height:1.25}p,li{font-size:14px}
.card{padding:10px 11px;margin:8px 0}.stat{font-size:19px}
#graphwrap{height:62vh}#graph{height:100%;width:100%}
#drawer{top:0;right:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:none;padding:14px}
#drawer .grid4{grid-template-columns:repeat(2,1fr)}#drawer .grid2{grid-template-columns:1fr}
.zoomctl{top:auto;bottom:10px;right:10px}.zoomctl button{padding:10px 12px}
button,.clickable{min-height:44px}.clickable{display:flex;align-items:center}
.bar{width:70px}a{word-break:break-word}#agentbtns button{flex:1 1 40%}
}
</style></head><body><main>
<h1>Problem graph — every problem attempted, including the branches that failed</h1>
<p class="mut">Source: the <a href="https://github.com/fractastical/morpholib">morpholib</a> repo itself (chatlogs, audits, pre-registrations, Delphi assessment, portfolio status), snapshot 2026-10-26. Upper-left corner triangle = outcome. <b>Edge colour = the agent that attempted that step.</b> Dashed / fuzzy nodes have <b>probabilistic, not recorded</b> timing — most importantly the “≈15 h into Rule 30” reckoning. <b>Click any node to open its inspector right here</b> — hub/count nodes (registered predictions, Thompson claims) list every item behind the count in the inspector, and clicking an item there reads it in full; <b>double-click a node with downstream nodes to collapse/expand everything below it</b> (categories act as folders) — the Bayesian Delphi panel and Rule 30 prizes open the full per-agent, per-subgoal Delphi ledger. <b>Agents looking for work: <a href="morphoswarm.html">MorphoSwarm — open problems</a></b> (<a href="open-problems.json">JSON feed</a>).</p>
<figure style="margin:12px 0"><img src="media/problem_graph_discovery.gif" alt="Animated tour of the discovery problem graph: problems build up lane by lane, outcomes are tallied (solved, partial, open, refuted-kept), then the camera zooms to the scored registered predictions" style="width:100%;height:auto;border:1px solid var(--line);border-radius:9px" loading="lazy"><figcaption class="small mut" style="margin-top:6px">The graph in ~11 seconds — build-up, outcome tally, the scored registered predictions, and finally the scientific claims shown definitively, positively or negatively (audit, infrastructure and agent-process points excluded from that roll). Still poster: <a href="media/problem_graph_discovery_poster.png">problem_graph_discovery_poster.png</a> · Regenerate: <code>python3 docs/media/make_problem_graph_animation.py</code> (numbers recomputed from this page's data).</figcaption></figure>
<div class="grid4" style="margin-top:10px">
<div class="card"><div class="small mut">Problems attempted</div><div class="stat">39</div><div class="small mut">graph nodes, umbrella root excluded</div></div>
<div class="card"><div class="small mut">Solution attempts tried</div><div class="stat">60</div><div class="small mut">recorded agent attempts (edges) by 10 agents</div></div>
<div class="card"><div class="small mut">Shown definitively</div><div class="stat" style="color:var(--green)">13</div><div class="small mut">status solved / proved in the graph</div></div>
<div class="card"><div class="small mut">Definitively refuted</div><div class="stat" style="color:#C04848">7</div><div class="small mut">pruned branches, kept not deleted · 19 partial / open / registered</div></div>
</div>
<div class="card"><b>How to read “shown definitively”.</b> <span class="small">The core graph records no calibrated per-node confidence, so the 13 above is its <i>solved / proved</i> status bucket — proof-grade or hash-locked-score-grade resolution as documented per node — not a 90% posterior, and no such number is invented here.</span><p class="small" style="margin-top:8px"><b>Literal ≥90%:</b> 3 of 14 registered predictions were confirmed at a registered resolvability confidence ≥0.90 — DM-DPP-01 (0.95), DM-CLK-NEG-01 (0.90), XT-DQ-01 (0.99) (9 confirmed overall). That confidence grades whether current data could <i>decide</i> the prediction, not the biology itself.</p><p class="small" style="margin-top:8px"><b>Edge-probability coverage:</b> 5 of 60 recorded attempts carry a probability scored before the fact; 18 routes are <b>pending Delphi</b> (score before further work) and 37 are historical attempts completed before the 2026-10-26 recording rule — their priors were never recorded and are not reconstructed. Full ledger: <a href="edge-probabilities.json"><code>edge-probabilities.json</code></a>. From now on the builder <b>refuses</b> any edge with neither a recorded probability nor an explicit status.</p></div>
<div class="card"><b>Agent legend — who attempted what</b> <span class="badge" style="background:var(--acc)">edge colour = agent</span>
<div class="row" id="agentbtns" style="margin-top:8px"></div>
<p class="mut small" id="agentnote"></p></div>
<div class="navrow"><select id="nodepicker" aria-label="Find a problem" onchange="if(this.value)pickNode(this.value)"></select><button id="vgraph" class="viewbtn on" onclick="setView('graph')">Graph</button><button id="vlist" class="viewbtn" onclick="setView('list')">☰ List</button></div>
<div id="nodelist" hidden></div>
<div id="graphwrap"><svg id="graph" width="1420" height="2175" aria-label="Problem graph (zoomable)"></svg>
<div class="zoomctl" role="group" aria-label="Graph zoom controls">
<button onclick="zoomStep(0.8)" title="Zoom out (− key)" aria-label="Zoom out">−</button>
<span id="zoompct">100%</span>
<button onclick="zoomStep(1.25)" title="Zoom in (+ key)" aria-label="Zoom in">+</button>
<button class="zlab" onclick="fitView()" title="Fit whole graph in view (F key)">Fit</button>
<button class="zlab" onclick="resetView()" title="Reset to 100% (0 key)">Reset</button>
</div></div>
<p class="mut small" style="margin:4px 0 0">Zoom & pan: mouse-wheel over the graph zooms to the cursor · drag to pan · pinch on touch screens · <b>+</b>/<b>−</b> keys zoom, <b>F</b> fits, <b>0</b> resets · double-click empty graph space zooms in. <b>Collapse / expand: double-click any node that has downstream nodes to hide or reveal everything downstream of it</b> — category nodes (the project root, organism hubs, Thompson chapter hubs) therefore work as folders; a collapsed node (hollow blue top-right corner triangle, dashed outline) shows <b>+N hidden</b>. Leaf nodes still double-click to their inspector, and every node's detail card has Collapse/Expand and Inspect buttons. <b>On phones:</b> the List view is the primary navigation (tap any problem to inspect); in Graph view a single tap on a node opens its inspector full-screen.</p>
<div class="row" style="margin:6px 0"><button onclick="expandAll()">Expand all</button><button onclick="collapseCategories()">Collapse to categories</button><span class="small mut">Categories = the root's direct children, the prediction organism hubs, and the Thompson claims hub — double-click any of them (or Expand all) to drill back in.</span></div>
<div class="row small" style="margin:8px 0">
<span><i class="tri" style="background:#178A5F"></i>solved / proved</span><span><i class="tri" style="background:#E79A28"></i>partial</span><span><i class="tri" style="background:#D64545"></i>still open</span><span><i class="tri" style="background:#7E2A3A"></i>refuted / pruned</span><span><i class="tri" style="background:#3E7FB8"></i>registered, unscored</span><span><i class="tri" style="background:#4B3FA0"></i>umbrella</span>
<span>–– dashed halo = probabilistic timestamp</span>
<span><b>Upper-left corner triangle = outcome</b> (colour above; a triangle, not a dot, so it never sits on top of the title text)</span>
<span><b>Delphi posterior shades (range of opinion, not just pass/fail):</b> <span class="pchip" style="background:#0B6E3F">>80% · dark green</span><span class="pchip" style="background:#69B86F">70–80% · light green</span><span class="pchip" style="background:#C9A227">50–70%</span><span class="pchip" style="background:#D98E2B">30–50%</span><span class="pchip" style="background:#C45A24">15–30%</span><span class="pchip" style="background:#B03A2E">5–15%</span><span class="pchip" style="background:#7E1F2B"><5%</span> — <b>green is reserved for >70%</b>: a posterior in the teens is weak (burnt orange), not a green light; 15% survives only as the recorded “possible pathway” classification, not as a colour</span>
<span><b>Prize-node bottom strip = the 3 per-agent posteriors side by side</b>, each shaded on the same scale — the spread between segments is the panel's range of opinion; the border/“bridge” label is the pooled value</span>
<span><b>Edge % = Delphi path-success posterior</b> (pooled panel, where a panel has scored that route, shaded on the same scale) — edges with no panel show <span class="badge" style="background:#888">NOT SCORED</span> in the inspector, never an invented number</span></div>
<h2>Registered predictions — outcome <i>and</i> resolvability, scored</h2>
<div class="card" id="predpanel"></div>
<h2>Thompson 1917 — browse all 59 claims</h2>
<div class="card" id="claimpanel"></div>
<div class="grid2">
<div class="card" id="detail"></div>
<div><h2>Rule 30 elapsed-time axis — recorded vs probabilistic</h2>
<p class="mut small">X-axis: active hours into the Rule 30 attempt. Solid blocks are phase durations summed in the chatlog (8h 13m at Milestone 18). The dashed band after that is <b>not logged</b>: Turns 35–66 carry no timestamps, so the “≈15 h” reckoning is a probability band (~11–19h, median ≈15h; wall-clock fixed 2026-10-20 18:26 PT), not a point.</p>
<div style="overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px"><svg width="1280" height="170">
<g font-size="10" fill="#888"><line x1="70" y1="20" x2="70" y2="130" stroke="#ddd"/><line x1="338" y1="20" x2="338" y2="130" stroke="#ddd"/><line x1="607" y1="20" x2="607" y2="130" stroke="#ddd"/><line x1="875" y1="20" x2="875" y2="130" stroke="#ddd"/><line x1="1144" y1="20" x2="1144" y2="130" stroke="#ddd"/>
<text x="70" y="148">0h</text><text x="338" y="148">5h</text><text x="607" y="148">10h</text><text x="875" y="148">15h</text><text x="1144" y="148">20h</text></g>
<rect x="70" y="45" width="142" height="34" fill="#2E79B5" opacity=".75"/><rect x="212" y="45" width="120" height="34" fill="#2E79B5" opacity=".65"/><rect x="332" y="45" width="83" height="34" fill="#2E79B5" opacity=".55"/><rect x="415" y="45" width="96" height="34" fill="#2E79B5" opacity=".45"/>
<g font-size="9" font-weight="700"><text x="141" y="66" text-anchor="middle">Phase I · 2.65h</text><text x="272" y="66" text-anchor="middle">Phase II · 2.23h</text><text x="373" y="66" text-anchor="middle">III · 1.55h</text><text x="463" y="66" text-anchor="middle">IV · 1.78h</text></g>
<rect x="511" y="45" width="633" height="34" fill="#eee" stroke="#888" stroke-dasharray="5 4"/>
<text x="827" y="60" text-anchor="middle" font-size="9.5" font-weight="700" fill="#555">Turns 35–66: NO timestamps — elapsed position inferred (Thm 20–47)</text>
<text x="827" y="73" text-anchor="middle" font-size="8.5" fill="#888">8h13m logged at Milestone 18 → next dated turn is Turn 67</text>
<rect x="661" y="92" width="429" height="15" fill="#E8C030" opacity=".55"/><line x1="875" y1="88" x2="875" y2="112" stroke="#F0A040" stroke-width="2.5"/>
<text x="875" y="124" text-anchor="middle" font-size="10" font-weight="700">≈15 h · Turn 67 honest reckoning + Delphi (band ~11–19h)</text>
</svg></div>
<div class="card" style="border-color:#E8C030"><b>How to read the ≈15 h marker.</b> <span class="small">The wall-clock moment is exact; the elapsed-active-time coordinate is not in the record. Anyone quoting “15 hours in” should quote the band, not the point.</span></div>
</div></div>
<h2>What the graph says at a glance</h2>
<div class="grid3">
<div class="card"><b>Closed</b><p class="small">Thompson outline paradox and its ~50 Myr horizon; Rule 30 off-centre theory (lim P<sub>k</sub> = ∞, k₅ = 87,867, crystal density, ANF degree); Zhang sorting replication; KG / nanopub infrastructure.</p></div>
<div class="card"><b>Honestly negative</b><p class="small">Box-stretch shortcut, Xenopus neighbour prediction (AUC 0.484), pixel Task B, causal emergence as a practical tool, the overnight Rule 30 loop (true lemmas, wrong boundary object), the BMP pair-equivalence claim (Compara: bmp2b→bmp2 not bmp4, chd→chrd not nog; size prior 0.759 vs 1.283), and the Holstein Turing claim (static RD rejected 6.46 vs ~3.3; growing RD vs melanoblast colonisation indistinguishable, p=0.91 — claim + assessment published as production nanopublications) — kept as pruned branches, not deleted.</p></div>
<div class="card"><b>Still open</b><p class="small">All three Wolfram prizes (Delphi bridge: 11.5% / 2.0% / 0.04%, all in the red/orange bands — even the most optimistic single agent, GPT on Prize 1 at 21.8%, sits far below the 70% green line), diagonal-sample decorrelation, fixed-seed complexity transfer, within-species bee P-matrix, growing-domain Turing, autonomous Meinhardt.</p></div></div>
<p class="mut small">Attribution honesty note: early Rule 30 turns and several pipeline edges are not attributed to a named model anywhere in the repo, so they use the grey “unattributed” colour instead of a guessed agent. Named attributions come from THOMPSON_METHODS.md §1.13, the Delphi panel list, the flagship Pass N+1 referee split, and the causal-emergence guide. Generated by <code>docs/build_problem_graph_html.py</code> from the repo snapshot; underlying claims live in the linked repo documents.</p>
</main>
<div id="drawer"></div>
<script>
const DATA = {"AGENTS": {"human": {"name": "Joel Dietz (human PI)", "role": "Direction, challenges, stop / prune decisions"}, "fable": {"name": "Claude Fable 5.1 Thinking High", "role": "Primary builder + strictest referee / auditor"}, "gemini": {"name": "Gemini 4 Argon", "role": "Blinded 2nd assessor, 43-turn Thompson dialogue, referee subsets"}, "gpt": {"name": "GPT 5.6 Sol Medium", "role": "Delphi panellist, flagship referee subset"}, "sonnet": {"name": "Claude Sonnet 5.5 High", "role": "Referee: Thompson / Turing, causal-emergence sceptic"}, "grok": {"name": "Grok (unversioned in record)", "role": "Flagship referee: Cervera / Zhang / Odonata + montage"}, "wainwright": {"name": "Prof. P. Wainwright (external)", "role": "Domain-expert feedback, 600-pt TPS / EFD challenge"}, "wonder": {"name": "Muse Wonder", "role": "Protein-state pilot, prediction registry, resolution scoring (this branch of work)"}, "panel": {"name": "Multi-agent panel", "role": "Joint / pooled attempt \u2014 no single agent owns this edge"}, "unattributed": {"name": "Unattributed in record", "role": "Chatlog assistant work with no model named in the repo"}}, "NODES": [{"id": "root", "label": "PROJECT DELPHI", "sub": "Is biological form law-like, predictable & machine-checkable?", "family": "Root", "status": "root", "x": 610, "y": 8, "time": "2026-10-13 \u2192 2026-10-26", "timeKind": "recorded", "detail": "Umbrella question. Every branch below is an attempted route at it, including the branches that were refuted, pruned, or left open \u2014 those are kept in the graph, not erased.", "source": "README.md \u00b7 morphoeval/kg/2026-10-13-morphology-audit"}, {"id": "t1", "label": "Thompson 1917 paradox", "sub": "17 landmarks fail, outlines obey the grid?", "family": "Thompson", "status": "solved", "x": 20, "y": 110, "time": "2026-10-16 \u2192 10-20", "timeKind": "recorded", "detail": "9/17 landmarks (53%) sit in the head, 0 on fin margins. Fitting the 17 makes the whole-body silhouette worse (Scarus\u2192Pomacanthus 40.6% \u2192 56.2% non-overlap) \u2014 even an exact 34p TPS does.", "source": "docs/KEY_DISCOVERIES.md \u00a71.1 \u00b7 2026-10-17-thompson-audit", "nanopubs": [{"label": "MorphoEval Thompson claim \u2014 Scarus\u2192Pomacanthus (live)", "uri": "https://w3id.org/np/RAh-a_vTrQkNvVyHJMY7nu8wmqCAUdepB0ZNG_jQBhD-M"}]}, {"id": "t2", "label": "600-point outline fit", "sub": "Direct Chamfer fit recovers all 6 pairs", "family": "Thompson", "status": "solved", "x": 20, "y": 205, "time": "2026-10-20", "timeKind": "recorded", "detail": "Same 5\u20138p Thompson families fitted to 600 semilandmarks (Bookstein 2-anchor only): all 6 pairs recovered, 100% diffeomorphic (det D\u03a6 > 0), reversible. Scarus\u2192Pomacanthus 28.5%, IoU 0.749.", "source": "KEY_DISCOVERIES.md \u00a71.2", "nanopubs": [{"label": "Prediction nanopub \u2014 MRCA Scarus ghobban \u00d7 Pomacanthus (live)", "uri": "https://w3id.org/morpholib/thompson/np/pred-mrca-Scarus-ghobban-Pomacanthus-semicirculatus/RAyHc5V42gCnp49U38gjmq_jmv7Ik4z9HP-jP7aliPHNo"}]}, {"id": "t3", "label": "Box-stretch illusion", "sub": "4p box explains the unlabeled shadow", "family": "Thompson", "status": "refuted", "x": 20, "y": 300, "time": "2026-10-20", "timeKind": "recorded", "detail": "PRUNED BRANCH: a trivial 4p rectangular box stretch (zero skew / curve) explains 81\u2013100% of the unlabeled-shadow gain on 5/6 pairs by stretching belly onto fins. It fails on homologous perimeter + fin-apex landmarks, where Thompson warps gain +11 to +48 pts. Kept as the falsified shortcut.", "source": "KEY_DISCOVERIES.md \u00a71.8 \u00b7 thompson_box_vs_warping_audit.json"}, {"id": "t4", "label": "~50 Myr horizon", "sub": "Grids hold <50 Myr, modularity breaks them above", "family": "Thompson", "status": "solved", "x": 20, "y": 395, "time": "2026-10-20", "timeKind": "recorded", "detail": "791 spp / 4,334 dated pairs: below 50 Myr residuals fall inside intrageneric disparity (\u03c3\u22480.0110); above, median residual jumps 2.5\u20133.3\u00d7. Node-disjoint control: inflection t* = 45.8 Myr.", "source": "KEY_DISCOVERIES.md \u00a71.3\u20131.4"}, {"id": "t5", "label": "Prediction engine", "sub": "Pagel \u03bb=0.959 wins; skill to ~50 Myr only", "family": "Thompson", "status": "partial", "x": 20, "y": 490, "time": "2026-10-21", "timeKind": "recorded", "detail": "7 linearised Thompson modes + GLS on Rabosky tree. Beats nearest-relative copy to 50 Myr, then collapses to a clade prior. Monte Bolca fossil test: null result vs stasis (6/16 in interval), reported as null. Eoplatax stem prediction falsified.", "source": "KEY_DISCOVERIES.md \u00a71.11 \u00b7 THOMPSON_PHYLOGENETIC_PREDICTIONS.md", "nanopubs": [{"label": "Engine-validation summary (live)", "uri": "https://w3id.org/morpholib/thompson/np/engine-validation-summary/RAIjcpW8vcGOXffncM7xpY9ZOAC-Uq3KfKPjMRj3OXGHA"}, {"label": "Fossil test \u2014 Eoplatax papilio, falsified stem prediction (live)", "uri": "https://w3id.org/morpholib/thompson/np/fossiltest-Eoplatax-papilio/RAT6mCR8CAuDGlp_3C4F7Bh5FNXlGMzZ1HjEehFQTn638"}]}, {"id": "t6", "label": "FishShapes blind test", "sub": "5,180 unseen spp, hash-locked before unblinding", "family": "Thompson", "status": "partial", "x": 20, "y": 585, "time": "Registered dac08493 \u2192 scored 2026-10-22", "timeKind": "recorded", "detail": "H1 \u2713 (error ratio 0.41, p=1e-103), H2 \u2717 (only +4% over nearest-relative copy), H3 \u2713 (92.6% coverage), H4 \u2717 (phrasing wrong: degrades to clade prior, not consensus), H5 \u2717, H6 \u2713, H7 \u2713. The ~50 Myr horizon survived; its description did not.", "source": "THOMPSON_BLIND_TEST_RESULTS.md \u00b7 nanopubs RAilN4nb\u2026 / RAJancwG\u2026", "nanopubs": [{"label": "Blind-test pre-registration, hash-locked 2026-10-22 (live)", "uri": "https://w3id.org/morpholib/thompson/np/blind-preregistration-2026-10-22/RAilN4nbRHp3e3ZHqlbIgeL3UGPRV_KtQHtJD3gzVVdqw"}, {"label": "Blind-test outcome 2026-10-22 (live)", "uri": "https://w3id.org/morpholib/thompson/np/blind-test-outcome-2026-10-22/RAJancwGOPEkHzBoZXGv_vu_snW0Lff2FktE85Me1P-fI"}]}, {"id": "t7", "label": "Multi-clade portfolio", "sub": "15 clades, 45/90 registered hyps held", "family": "Thompson", "status": "partial", "x": 20, "y": 680, "time": "2026-10-22 \u2192 10-24", "timeKind": "recorded", "detail": "Same engine re-trained per clade: fish, bivalves, frogs, lizards, birds, mammals, flowers, ants, butterflies, flies. Thompson-7 variance share ranges 38.8% (hornet wings) to 91.1% (waterfowl beaks). Fish claims Brier 0.174; multi-clade 45/90.", "source": "docs/portfolio/PORTFOLIO_STATUS.md", "nanopubs": [{"label": "Multi-clade pre-registration manifest 2026-10-23 (live)", "uri": "https://w3id.org/morpholib/thompson/np/multiclade-preregistration-manifest-2026-10-23/RAQ_Giwd735IPhYg-cOMyPE6t4K9WPM9XlijGkNC6_eJ4"}, {"label": "Dataset portfolio 2026-10-22 (live)", "uri": "https://w3id.org/morpholib/thompson/np/dataset-portfolio-2026-10-22/RA9ZKlSDsa68lEKRo7JR0Px5woGoCMUHRlSK_bHKag4EA"}, {"label": "Cross-kingdom synthesis 2026-10-23 (live)", "uri": "https://w3id.org/morpholib/thompson/np/cross-kingdom-synthesis-2026-10-23/RAOvI_PZUXLZtKjyVfq4ILVoIxqVCsTXmLXd0J7ZujfEo"}]}, {"id": "t8", "label": "Why wings? (causal)", "sub": "P-drift: global grid = deep-time channel", "family": "Thompson", "status": "partial", "x": 20, "y": 775, "time": "Priors 1da6218f \u2192 2026-10-22", "timeKind": "recorded", "detail": "Hornet (30 spp, ~30 Myr): grid carries 39%, no predictive skill, divergence below P-drift band and orthogonal to p_max (80\u00b0). Bee (42 tribes, ~110 Myr): 56\u201358%, aligned with P (38\u00b0), prediction beats nearest relative for the first time. 5/13 claims held, Brier 0.25. Caveat: bee P is within-tribe, not within-species.", "source": "docs/portfolio/why_wings.md \u00b7 bee_wings.md \u00b7 vespinae_wings.md", "nanopubs": [{"label": "Why-wings clade nanopub (live)", "uri": "https://w3id.org/morpholib/thompson/np/clade-gm-why-wings/RAoaWzMonIIj6ZAbEkO6pBC7BRTyPzYT-uVXJ9vv1eZ9s"}, {"label": "Bee-wings clade nanopub (live)", "uri": "https://w3id.org/morpholib/thompson/np/clade-gm-bee-wings/RAM0hghia4RyO9UTsqHaidVyxsXIictWSPgKTtovw3HWI"}, {"label": "Vespinae-wings clade nanopub (live)", "uri": "https://w3id.org/morpholib/thompson/np/clade-gm-vespinae-wings/RAmGG9qcPLiG4oBGjQxmYhYkg07adB8vEqnRPk_hu8QwU"}]}, {"id": "t9", "label": "1917 Crabs & Ant Castes", "sub": "Scholtz f\u2081<0 confirmed; Antscan Fig. 359 F=54.2", "family": "Thompson", "status": "solved", "x": 20, "y": 870, "time": "2026-10-22 \u2192 10-27 (Fable refereed)", "timeKind": "recorded", "detail": "Referee-audited synthesis across 100% of Thompson's 1917 arthropods (Figs. 367\u2013370) + Antscan (2026) / Zenodo ant castes: (1) Crabs (Fig. 369 vs Scholtz et al. 2020): confirms Thompson inverted the spider-crab fan sign (Pisa c, Leptomithrax f, and carcinized anomuran Lithodes d all share anteriorly converging f\u2081 < 0: \u22120.43, \u22121.14, \u22122.01), while adding 6 post-orbital lateral semilandmarks lifts Pisa TPS IoU 0.745 \u2192 0.884 and Leptomithrax 0.810 \u2192 0.912; (2) Ant Soldier Castes (634 Camponotus, 42 spp, 82 frontal head LMs): LOO-CV displacement R\u00b2 jumps from 8.2% (4p Box) to 61.6% (8p Bilobed-Fan, nested F=54.2, 42/42 diffeomorphic) and 74.4% (Fig. 359 Radial-Cordate, vs 73.2% 12p quadratic control), whereas pronotum fan F=0.3 (n.s.); (3) Copepods (Figs. 367\u2013368, 42 grid nodes): LOO-CV 58.6% \u2192 92.5%; Fig. 370 pixel-segmented amphipods: 63.5% \u2192 71.6%.", "source": "KEY_DISCOVERIES.md \u00a71.14 \u00b7 thompson/run_crab_carapace_paradox_audit.py \u00b7 thompson/run_antscan_caste_allometry_tests.py"}, {"id": "f1", "label": "Flagship models 1917\u20132021", "sub": "15 animated classics reproduced in code", "family": "MorphoEval", "status": "partial", "x": 255, "y": 110, "time": "2026-10-13 \u2192 10-18", "timeKind": "recorded", "detail": "Thompson, Murray, Turing, Raup, Vogel, Wolfram/Meinhardt, Runions, Farhadifar, Planform, Cervera\u2013Levin\u2013Maf\u00e9, Bressloff, Petroff, Chindapol, Hoffmann, Kahng, Zhang, Odonata. Each scored on the 7-axis MorphoEval rubric with Lean 4 theorems where claimed.", "source": "README.md \u00b7 morphoeval/audits/", "nanopubs": [{"label": "MorphoEval rubric \u2014 2026-10-13 audit KG (live)", "uri": "https://w3id.org/np/RAjd9dIu9uNVgvT4npxJgWwL6cbp8GCsy3gK86Qkj-iH4"}, {"label": "Example flagship claim \u2014 Hoffmann wing venation (live)", "uri": "https://w3id.org/np/RAmQJvSRGIzY4N-XKGnlVAkOSnCBWYJ9uOggfb5U3cowI"}]}, {"id": "f2", "label": "116-model closed loop", "sub": "12-step remediation, KG + nanopubs", "family": "MorphoEval", "status": "partial", "x": 255, "y": 205, "time": "2026-10-19", "timeKind": "recorded", "detail": "57 genera \u00d7 10 mechanisms scouted as datasets (3,000+ dataset folders in repo), audited v1\u2192v3, second-assessor audits, Lean laws. Example gains: Runions 40.9\u219291.3, Turing 38.0\u219285.5, Vogel 64.3\u219285.9 at their audited peaks.", "source": "KEY_DISCOVERIES.md Discovery III \u00b7 ARISTOTELIAN_MORPHOSPACE_CATEGORIES.md", "nanopubs": [{"label": "MorphoEval rubric \u2014 2026-10-13 audit KG (live)", "uri": "https://w3id.org/np/RAjd9dIu9uNVgvT4npxJgWwL6cbp8GCsy3gK86Qkj-iH4"}, {"label": "Example loop claim \u2014 Turing Gray\u2013Scott (live)", "uri": "https://w3id.org/np/RAVVad88Z1m5lxKDvvYYCpeZ2zG2vDrb56cg4Sgof-T7Q"}]}, {"id": "f3", "label": "Pass N+1 honest re-score", "sub": "Mean 68.6 \u2192 69.9; several scores fell", "family": "MorphoEval", "status": "solved", "x": 255, "y": 300, "time": "2026-10-26", "timeKind": "recorded", "detail": "Dual cross-provider referees found counterfeit/contaminated GIFs (Chindapol, Petroff, Turing) and circular validation. Turing 85.5\u219268.8, Conus 87.3\u219272.9, Zhang 94.0\u219282.2 \u2014 lower numbers are the honest ones. Still open: 2D growing-domain Turing, autonomous Meinhardt params, true voxel calibration for C. elegans.", "source": "morphoeval/runs/2026-10-26-flagship15-loop-passN.md", "nanopubs": [{"label": "Example re-scored flagship claim \u2014 Murray Bos taurus Turing, audit v7 (live)", "uri": "https://w3id.org/np/RAtXAz-snj7Cj_FaWUUMcagskmw5GaJa2biZxCtyVyp5c"}]}, {"id": "la06", "label": "LA-06 Dpp scaling \u2014 scored", "sub": "Partially resolved: kinetics + Pent both real, slope ratio unextracted", "family": "MorphoEval", "status": "partial", "x": 255, "y": 585, "time": "Registered 2026-10-26 \u2192 scored same night", "timeKind": "recorded", "detail": "LA06-01 was written into predictions/round2_live_arguments.json and committed BEFORE scoring (commit order is the timestamp; exposure disclosed in-file: camp abstracts read, pent slope values deliberately not looked up). Scored against Wartlick et al. 2011 (lambda/L = 0.112 constant, degradation k ~ 1/A, production/diffusion near-constant), PLoS Biol 2011 (pent null P-Mad domain stops scaling) and Nature 2021 (pent2 scaling regressions differ at p<0.00001): kinetics signature CONFIRMED inside the registered band, Pent necessity CONFIRMED qualitatively by two groups, but the decisive pent2/control slope ratio <0.50 exists only in figure/source data and was not extracted -- so the verdict is partially_resolved, not confirmed. Single-assessor provisional Delphi gave 86.3% for confirmation (prior 50, net +8 dB); the miss is a data-extraction limit, recorded as such. Next step: extract Romanova-Michaelides Source Data slopes and re-score only the ratio.", "source": "predictions/round2_live_arguments.json \u00b7 predictions/live_arguments.json LA-06"}, {"id": "f5", "label": "Cow Turing claim \u2014 tested", "sub": "Holstein spots \u2260 Murray RD prepattern (published negative)", "family": "MorphoEval", "status": "refuted", "x": 255, "y": 490, "time": "2026-10-26 (9 passes)", "timeKind": "recorded", "detail": "CLAIM TESTED: Holstein-Friesian spotting is a Turing reaction-diffusion pre-pattern with a characteristic wavelength (Murray 1981). 9-pass loop on 10 coat-masked specimens: static single-wavelength Turing REJECTED (held-out morphometric distance 6.46 vs ~3.3; ~125 uniform spots vs 3 body-scale patches, 99.2% of pigment in one); growing-domain RD indistinguishable from stochastic melanoblast colonisation (Eden control) at matched measurement scale (3.29 vs 3.43, paired Wilcoxon p=0.91), so adult patch statistics are not evidence for a Turing mechanism here \u2014 agreeing with causal KIT/MITF genetics (Jivanji 2019/2025; Mort 2016). Two blinded Fable audits (54.4, 57.7) overturned two builder conclusions en route. Claim + assessment published as production nanopublications (claim RAtXAz-sn\u2026, overall RA2v_h4z\u2026); package scored 74.6/100 \u2014 the score rates the simulation package, not the hypothesis. Builder-assessor: Muse Wonder 1.0 (named in the audit, not in this legend's edge colours; edges use the pooled panel colour).", "source": "datasets/bos_taurus_turing_wavelength/README.md \u00b7 morphoeval/audits/2026-10-26-bos-taurus-turing-wavelength-audit-v7.yaml \u00b7 morphoeval/kg/2026-10-26-bos-taurus-turing-wavelength-audit-v7/published.json"}, {"id": "f4", "label": "BMP pair-equivalence test", "sub": "Ortholog-pair claim REFUTED (Compara + size prior)", "family": "MorphoEval", "status": "refuted", "x": 255, "y": 395, "time": "2026-10-26", "timeKind": "recorded", "detail": "PRUNED CLAIM: Xenopus bmp4/nog are NOT orthologs of the zebrafish bmp2b/chd pair. Ensembl Compara: bmp2b\u2192frog bmp2 (not bmp4, paralog), chd\u2192frog chrd (not nog, non-homologous antagonist). Size prior on the 17 SHA-256-verified pinned proteins also splits them: D_chd/D_bmp2b = 0.759 < 1 (fails faster-inhibitor Turing ordering; BMP/Chordin shuttles in vivo) vs D_nog/D_bmp4 = 1.283 > 1 (passes). Corrected: functionally analogous pairs only. Checker exit 1 = REFUTED by design; 4-test hermetic wrapper passes.", "source": "sequences/pair_equivalence_log.json \u00b7 sequences/check_pair_equivalence.py \u00b7 tests/test_sequence_pair_equivalence.py"}, {"id": "r0", "label": "Conus textile shell", "sub": "Shell = space\u2013time diagram of Rule 30?", "family": "Rule 30", "status": "solved", "x": 490, "y": 110, "time": "2026-10-18 audit", "timeKind": "recorded", "detail": "1D mantle edge \u00d7 time = 2D shell pattern on a Raup shell (IoU 0.835). Lean-proved: Ermentrout\u2013Oster neural gate E=2l+(c\u2228r) \u2208 [1,2] is bit-for-bit Rule 30. 1D chord lengths cannot separate Conus (R30, KS 0.2623) from Oliva (R90, KS 0.2627); 2D ANF carry density (0.25 vs 0.00) and wall chirality (0.587 vs 0.000) can.", "source": "2026-10-18-conus-audit \u00b7 KEY_DISCOVERIES.md \u00a72.6"}, {"id": "r1", "label": "Diagonal coordinates", "sub": "Jen barriers: period doubles or splits?", "family": "Rule 30", "status": "solved", "x": 490, "y": 205, "time": "\u2248 +0\u20132 h active (prob.)", "timeKind": "probabilistic", "detail": "Left-cone diagonals d_k(t)=a_{t,\u2212t+k} obey an autonomous left-bijective recurrence. Odd-parity barrier \u2192 period must double; even-parity \u2192 period stays, splitting into a binary barrier tree chosen by 1 transient bit \u03c3.", "source": "KEY_DISCOVERIES.md \u00a72.1 \u00b7 RULE30_PRIZE_CHATLOG Turns 7\u201311"}, {"id": "r2", "label": "Phase I \u00b7 Thm 1\u20135", "sub": "Kogge\u2013Stone operator, lim P_k = \u221e, k\u2085=87,867", "family": "Rule 30", "status": "solved", "x": 490, "y": 300, "time": "2h 39m active (recorded sum)", "timeKind": "recorded", "detail": "Closed-form carry-lookahead cycle operator in O(log\u2082P); backward bijection makes every post-barrier state in-degree 0, so no cycle is possible for any P=2^m. First even-parity barrier at k=53,208 \u2192 16-leaf tree; causal-cone solver resolved k\u2085 = 87,867 in 6.5 s (branch \u03c3=01, T_lock=117,324).", "source": "KEY_DISCOVERIES.md \u00a72.2\u20132.3 \u00b7 Chatlog Turn 33, Phase I"}, {"id": "r3", "label": "Phases II\u2013IV \u00b7 Thm 6\u201319", "sub": "Envelope H(k), \u03a0=1 & \u03a0=2 eliminated", "family": "Rule 30", "status": "solved", "x": 490, "y": 395, "time": "2h14m + 1h33m + 1h47m", "timeKind": "recorded", "detail": "Two-diagonal lock-in envelope is unconditionally non-decreasing (telescope law, slope \u22484/3). Centre periods \u03a0=1 and \u03a0=2 eliminated for all t\u2080; extremal word families extinguished. Cumulative recorded active time to Milestone 18: 8h 13m.", "source": "Chatlog Turn 33, Phases II\u2013IV"}, {"id": "r4", "label": "Thm 20\u201347 expansion", "sub": "Quadrant PDE, Mahler, wavefront D\u2081(t)=1 i.o.", "family": "Rule 30", "status": "partial", "x": 490, "y": 490, "time": "Undated in chatlog (Turns 35\u201366)", "timeKind": "probabilistic", "detail": "Full-light-cone crystal continuation a_{t,x}\u2261A_{t\u2212x}(\u230a(t+x)/2\u230b), 2-sheet quadrant PDE, joint-seam (c_t,l\u2081) never periodic, 4-line inward wavefront forcing D\u2081(t)=1 infinitely often, 74.25M necklaces (\u03a0\u226430) and 249,500 (t\u2080,\u03a0) pairs exhausted with 0 survivors. No wall-clock stamps on these turns \u2014 placement on the elapsed axis is inferred, hence the fuzzy node.", "source": "Chatlog Turns 35\u201366 \u00b7 RULE30_PRIZE_STATUS_AND_GAPS.md"}, {"id": "r5", "label": "\u224815 h: honest reckoning", "sub": "\"solved a bunch, but not really Problem 1\"", "family": "Rule 30", "status": "partial", "x": 490, "y": 585, "time": "\u224815 h active, \u00b1several h (prob.) \u00b7 wall: 2026-10-20 18:26 PT", "timeKind": "probabilistic", "detail": "THE PROBABILISTIC-TIMESTAMP NODE. The turn itself is wall-clock dated (Tue Oct 20 2026, 6:26 PM UTC-7), but its elapsed active-time position is not recorded: 8h13m was logged at Milestone 18, then Turns 35\u201366 are undated. ~15 h is the recalled / inferred position \u2014 drawn with a wide uncertainty band (see timeline below), not as a point. Conclusion: off-centre solved; centre column still open because defects D\u2081(t)=1 may land only on transparent gates {c_t=0}.", "source": "Chatlog Turn 67 (dated) \u00b7 Turn 33 (8h13m at M18)"}, {"id": "r6", "label": "Bayesian Delphi panel", "sub": "P(bridge): P1 11.5% \u00b7 P2 2.0% \u00b7 P3 0.04%", "family": "Rule 30", "status": "solved", "x": 490, "y": 680, "time": "2026-10-20 18:41\u201320:57 PT", "timeKind": "recorded", "detail": "Three independent assessors pooled in log-odds (decibans). Subgoal coverage: P1 56.9/100, P2 43.4/100, P3 28.5/100; P(proved now)=0% for all three. Panel range on P1 bridge: Fable 5.58% / Gemini 11.80% / GPT 21.82% \u2014 the spread is part of the result.", "source": "RULE30_BAYESIAN_DELPHI_ASSESSMENT.md \u00b7 Chatlog Turns 68\u201372"}, {"id": "r7", "label": "Overnight loop Thm 48\u201364", "sub": "30-min ticks while the PI slept", "family": "Rule 30", "status": "refuted", "x": 490, "y": 775, "time": "2026-10-20 22:39 \u2192 10-21 07:28 PT", "timeKind": "recorded", "detail": "PRUNED BRANCH: autonomous loop produced Theorems 50\u201364, then referees found Thm 53\u201364 had drifted onto a synthetic l\u2081 boundary convention, not true Rule 30. PI: \"seems like we are just burning compute\" \u2014 loop stopped. A branch that produced true lemmas about the wrong object.", "source": "Chatlog Turns 73\u201382"}, {"id": "r8", "label": "Prune to core 47\u201352", "sub": "Keep only the fundamentally innovative", "family": "Rule 30", "status": "solved", "x": 490, "y": 870, "time": "2026-10-21 18:46 \u2192 10-22", "timeKind": "recorded", "detail": "2,773 lines of synthetic-recurrence theorems removed; core suite re-verified on the true light cone (0 errors). Distilled to a Complex Systems / Physica D paper pitch: 4 concrete results (lim P_k=\u221e, k\u2085=87,867, joint-seam + wavefront, crystal density / ANF degree).", "source": "Chatlog Turns 83\u201384"}, {"id": "p1", "label": "Prize 1 \u00b7 Aperiodicity", "sub": "OPEN \u2014 short-run words 1\u2264a\u1d62\u22647, entropy \u22480.32 bits/step", "family": "Rule 30 prizes", "status": "open", "x": 735, "y": 395, "time": "Open", "timeKind": "none", "detail": "Does c_t ever become eventually periodic? Everything off-centre is proved; the last mile is proving D\u2081(t)=1 defects cannot land exclusively on transparent zero-gates for short-run words at arbitrary t\u2080, \u03a0>30. Delphi subgoal 56.9/100, bridge posterior 11.5%.", "source": "RULE30_BAYESIAN_DELPHI_ASSESSMENT.md P1.4 (35% weight, 31.9/100)"}, {"id": "p2", "label": "Prize 2 \u00b7 Density \u00bd", "sub": "OPEN \u2014 no Weyl discrepancy bound on diagonal", "family": "Rule 30 prizes", "status": "open", "x": 735, "y": 490, "time": "Open", "timeKind": "none", "detail": "Exact \u00bd density proved on every period-doubling crystal, and 0.500109 empirically over 1.4M bits \u2014 but the diagonal sample j=\u230aS/2\u230b visits a vanishing 2^(\u2212n) fraction of each crystal, and no decorrelation bound exists. Subgoals 43.4/100, bridge 2.0%.", "source": "Delphi P2.4 (35% weight, 6.3/100)"}, {"id": "p3", "label": "Prize 3 \u00b7 \u03a9(n) complexity", "sub": "OPEN \u2014 fixed-seed transfer is a P-vs-EXP barrier", "family": "Rule 30 prizes", "status": "open", "x": 735, "y": 585, "time": "Open", "timeKind": "none", "detail": "General-input result is complete: deg(c_T)=2T\u22121, unique top monomial, circuit \u22652T. Transferring to the fixed unit seed (input is just log\u2082T bits) needs uniform lower bounds of P-vs-EXP type. Subgoals 28.5/100, bridge 0.04% \u2014 effectively blocked, honestly labelled.", "source": "Delphi P3.4\u2013P3.5 (55% weight, ~1/100)"}, {"id": "l1", "label": "Zhang sorting (2025)", "sub": "Bubble/Insertion/Selection cells, 4-language port", "family": "Levin programme", "status": "solved", "x": 975, "y": 110, "time": "2026-10-22 \u2192 10-23", "timeKind": "recorded", "detail": "Replication of Zhang, Goldstein & Levin (2025) audited against the authors' repo at pinned commit 1fd2bd5, ported Python / C++20 / JS / Lean 4, 14-benchmark validation, upstream notes filed.", "source": "sorting-morphogenesis/README.md"}, {"id": "l2", "label": "Platonic-space audit", "sub": "3 ablations on \"latent space\" competence claims", "family": "Levin programme", "status": "partial", "x": 975, "y": 205, "time": "2026-10-23", "timeKind": "recorded", "detail": "Mechanistic + Causal Emergence 2.0 audit of the claim that sorting arrays navigate a Platonic latent space. Sorting competence is real and local; the stronger latent-space reading is not forced by the evidence.", "source": "PLATONIC_SPACE_CLAIMS_EVALUATION.md \u00b7 quantify_emergence_ce2.py"}, {"id": "l3", "label": "Causal Emergence guide", "sub": "CE 1.0 & 2.0 recipe \u2014 authors unconvinced", "family": "Levin programme", "status": "refuted", "x": 975, "y": 300, "time": "2026-10-24 (12 referee findings remediated)", "timeKind": "recorded", "detail": "PRUNED / SCEPTICAL BRANCH: a practitioner's guide was built, refereed (CP\u2208[0,1], like-for-like \u0394CP, EC formula), and the honest takeaway recorded: neither the team nor Fable/Sonnet are convinced CE helps in practice. Kept as a worked negative.", "source": "CAUSAL_EMERGENCE_PRACTITIONERS_GUIDE.md \u00b7 Substack footnote"}, {"id": "l4", "label": "Levin latent-space verdict", "sub": "\"81.6% right\" \u2014 3 pillars, then 63.5/100 on audit", "family": "Levin programme", "status": "partial", "x": 975, "y": 395, "time": "2026-10-24 \u2192 10-26", "timeKind": "recorded", "detail": "7 claims scored in 3 equal pillars (Sorting / Thompson / Bioelectric) = 81.6% in the article; the pinned Pass 3.2 referee audit of the YouTube-channel maths KG scored 63.5/100, \"mostly faithful\". Both numbers kept, with the tension disclosed.", "source": "SUBSTACK_LEVIN_LATENT_SPACE_ARTICLE.md \u00b7 levin-youtube-channel-math-audit-v3"}, {"id": "l5", "label": "Planform multiway DPO", "sub": "Planarian + limb as hypergraph rewriting", "family": "Levin programme", "status": "partial", "x": 975, "y": 490, "time": "2026-10-24 \u2192 10-25", "timeKind": "recorded", "detail": "Wolfram HypergraphRewriteEngine \u00d7 PlanformDB/LimbformDB multiway grammar with Lean proofs; manuscript retitled \"Planarian and Limb Regeneration as a Multiway DPO Hypergraph Rewrite System\", Zenodo / arXiv deposit builder added.", "source": "git log 8fa7e207 \u00b7 3f1d74f1 \u00b7 wolfram_planform_multiway"}, {"id": "l6", "label": "Ruliobiology", "sub": "Lean 4 k=5 CA organism, proved object", "family": "Levin programme", "status": "partial", "x": 975, "y": 585, "time": "2026-10-24 \u2192 10-26", "timeKind": "recorded", "detail": "Wolfram rulial-space biology audited v1\u2192v3; symmetric k=5 CA rulioorganism built as one executable, Lean-proved object with lineage datasets (seed1/3/13, 2000 mutations).", "source": "2026-10-24-wolfram-ruliobiology-audit-v3 \u00b7 git log 6bad19d63"}, {"id": "b1", "label": "Ca\u00b2\u207a wave-vector pipeline", "sub": "TIFF \u2192 spark tracks \u2192 clusters \u2192 regions", "family": "Bioelectric embryo", "status": "partial", "x": 1215, "y": 110, "time": "Pre-2026 \u2192 2026-10", "timeKind": "recorded", "detail": "Core data pipeline: embryo segmentation, head/tail assignment, poke detection, anatomical region mapping. Known hazard recorded: manual XY annotations can exceed TIFF bounds (coordinate-space mismatch), so they are not treated as ground truth.", "source": "wave-vector-analysis/ \u00b7 COORDINATE_SYSTEM_WARNING.md"}, {"id": "b2", "label": "Xenopus blind test", "sub": "Predict neighbour response \u2014 headline \u2717", "family": "Bioelectric embryo", "status": "refuted", "x": 1215, "y": 205, "time": "Registered \u2192 scored (n=38)", "timeKind": "recorded", "detail": "Hash-locked before unblinding. X1 \u2717 X2 \u2713 X3 \u2717 X4 \u2713: leave-one-orientation-out AUC 0.484 (chance), Brier worse than prevalence. With orientation allowed AUC 0.833 \u2014 orientation, not wave features, is the signal. Negative headline, reported as registered.", "source": "embryo-blind/README.md \u00b7 XENOPUS_BLIND_RESULTS.md"}, {"id": "b3", "label": "Pixel blind v1 + v2", "sub": "Which pixels light next? Persistence wins at +1", "family": "Bioelectric embryo", "status": "partial", "x": 1215, "y": 300, "time": "Registered \u2192 scored", "timeKind": "recorded", "detail": "Task A \u2713\u2713: persistence F1 0.96 at +1 frame; front model beats dilation on newly-lit cells at +10 (0.15 vs 0.10). Task B \u2717\u2717\u2717: neighbour AP/DV matching at/below chance (pooled AUC 0.26). Post-unblinding HTHT mirror signal (0.61\u20130.65) became the v2 pre-registered hypothesis, labelled exploratory until then.", "source": "PIXEL_BLIND_RESULTS.md \u00b7 PIXEL_V2_BLIND_RESULTS.md"}, {"id": "b4", "label": "Zebrafish blind test", "sub": "Scored 2026-10-26: Z1\u2013Z4 all failed (0/4)", "family": "Bioelectric embryo", "status": "refuted", "x": 1215, "y": 395, "time": "Registered 6bad19d3 \u2192 scored 2026-10-26", "timeKind": "recorded", "detail": "RESOLVED (OP-09, solving loop #1 pick at ~95% resolvability confidence). Hash-locked Zebrahub predictions (logit-linear extrapolation of 10\u201319 hpf cell-type proportions to sealed 24 hpf) scored by the registered scorer after all SHA-256 checks passed: Z1 \u2717 (TVD 0.661 vs last-stage baseline 0.621 \u2014 extrapolation is worse than copying 19 hpf), Z2 \u2717 (26% of classes \u22652% within factor 2; needed 60%), Z3 \u2717 (emergent classes = 0.44 of cells; bound 0.25), Z4 \u2717 (coverage 50% at narrow width). Per-class cause: developmental label succession \u2014 optic vesicle (pred 0.136) \u2192 optic cup (true 0.072, pred 0); neurons/fin/muscle pioneers emerge after 19 hpf. Composition turns over by maturation/renaming, which per-class proportion extrapolation cannot represent. Outcome nanopublished; OP-09 closed.", "source": "embryo-blind/zebrafish-blind/ZEBRAFISH_BLIND_RESULTS.md \u00b7 zebrafish_blind_results.json \u00b7 nanopubs/zebrafish_blind/", "nanopubs": [{"label": "Zebrafish blind-test outcome 2026-10-26, prod (live)", "uri": "https://w3id.org/morpholib/thompson/np/zebrafish-blind-test-outcome-2026-10-26/RATUd5ri9vFa-V5i_z6fq_84Nk-6iHFVSbj2SWn7cBxzg"}]}, {"id": "b5", "label": "Bioelectric prepattern", "sub": "Cervera\u2013Levin\u2013Maf\u00e9 V_mem gap-junction bistability", "family": "Bioelectric embryo", "status": "partial", "x": 1215, "y": 490, "time": "Flagship audit 58.1\u201356.5", "timeKind": "recorded", "detail": "Planarian gap-junction bistability (2-headed attractors) as a flagship model; crashed on a bad module path at Pass N, fixed and re-scored 56.5. One of the weaker flagships \u2014 kept at its honest score.", "source": "2026-10-26-flagship15-loop-passN.md (Cervera)", "nanopubs": [{"label": "Cervera\u2013Levin\u2013Maf\u00e9 claim \u2014 MorphoEval audit v2 (live)", "uri": "https://w3id.org/np/RAnyAaMeArVgK24K_7QPPWClzS8NHokd6oybUkFDSDZFo"}]}, {"id": "b6", "label": "Knowledge graph + nanopubs", "sub": "Signed, commit-pinned, production-published", "family": "Infrastructure", "status": "solved", "x": 1215, "y": 585, "time": "2026-10-22 \u2192 10-26", "timeKind": "recorded", "detail": "Cross-cutting infrastructure every branch feeds: MorphoEval KG (121 models, 558 Lean-verified equations), 70 Thompson prediction nanopubs, multi-clade portfolio nanopubs, commit-pinned evidence-loci verification, and a guard against re-introducing resources another audit already published.", "source": "nanopubs/thompson_predictions/published_manifest_prod.txt \u00b7 git log c68b3f46, ab12b2b9", "nanopubs": [{"label": "MorphoEval rubric \u2014 2026-10-13 audit KG (live)", "uri": "https://w3id.org/np/RAjd9dIu9uNVgvT4npxJgWwL6cbp8GCsy3gK86Qkj-iH4"}, {"label": "Thompson engine-validation summary (live)", "uri": "https://w3id.org/morpholib/thompson/np/engine-validation-summary/RAIjcpW8vcGOXffncM7xpY9ZOAC-Uq3KfKPjMRj3OXGHA"}, {"label": "Zebrafish blind-test outcome 2026-10-26, prod (live)", "uri": "https://w3id.org/morpholib/thompson/np/zebrafish-blind-test-outcome-2026-10-26/RATUd5ri9vFa-V5i_z6fq_84Nk-6iHFVSbj2SWn7cBxzg"}]}, {"id": "pred0", "x": 610, "y": 975, "status": "root", "family": "Registered predictions", "label": "Registered predictions", "sub": "14 predictions \u00b7 click to see every prediction", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json", "detail": "14 predictions for the 3 best-supported organisms (Danio, Drosophila, Xenopus), each with TWO registered claims: an outcome prediction and a resolvability prediction (can current data decide it?). Scored 2026-10-26: 9 confirmed, 5 partially resolved, 0 refuted; meta-resolvability 2/4. Click this node to list every prediction in the inspector; click a prediction in that list to read it in full."}, {"id": "pred-meta", "x": 1215, "y": 1075, "status": "partial", "family": "Registered predictions", "label": "Meta-resolvability 2/4", "sub": "solve-rate forecasts: 2 confirmed, 2 refuted", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json (META-RES-01..04)", "detail": "META-RES-01 [confirmed]: Exactly 2 of 14 outcome predictions are resolvable with current repo data alone (DM-DPP-01, XT-DQ-01).; META-RES-02 [refuted]: At least 10 of 14 are fully resolvable without new experiments (2 current-only + 8 with the named public atlases/literature).; META-RES-03 [refuted]: Exactly 4 of 14 (ZF-CLK-01, ZF-VTX-01, DM-MUR-NEG-01, XT-CLK-01) will be only partially resolvable with current + public data, because the decisive quantitative series (paired clock period/somite length, cell-shape index, tracheal diameters) are not in the repo and not tabulated publicly.; META-RES-04 [confirmed]: 0 of 14 require new wet-lab experiments merely to be DECIDABLE in principle -- every row has a named public or in-repo test source; the partial four are data-extraction problems, not experiment problems."}, {"id": "pred-danio", "x": 255, "y": 1075, "status": "partial", "family": "Registered predictions", "label": "Danio rerio", "sub": "5 predictions \u00b7 2 confirmed \u00b7 3 partial \u00b7 click to see them", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json", "detail": "Registered prediction organism: Danio rerio \u2014 selected for dataset depth, protein-catalog coverage, and a public mutant/literature test atlas. Click this node to list all of its predictions in the inspector; click any prediction in that list to read it in full."}, {"id": "ZF-TUR-01", "x": 255, "y": 1175, "status": "solved", "family": "Registered predictions", "label": "ZF-TUR-01", "sub": "BMP\u2013Chordin shuttling \u00b7 confirmed \u00b7 repo+public (conf 0.6)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: BMP patterning in the zebrafish gastrula is NOT free differential diffusion of BMP vs Chordin: Chordin's effective mobility in the embryo will exceed the free-diffusion size prior, because transport is by Chordin shuttling + tolloid release. QUANTITATIVE: Free-diffusion prior from protein states: D_chordin/D_mature-BMP2b = 0.51 (921 aa vs 122 aa, D~MW^-1/3), which violates the Turing requirement D_inhibitor/D_activator > 1. Prediction: measured effective BMP-gradient formation will behave as if the ratio is >= 1 (shuttling), never as 0.51 free diffusion. RESOLVABILITY FORECAST: current_plus_public_sources (conf 0.6, expected confirm). EVIDENCE: Registered prior: free-diffusion D_chordin/D_mature-BMP2b=0.51 violates D_inh/D_act>1. Published zebrafish work treats BMP gradient formation as Chordin-mediated shuttling/transport rather than free differential diffusion: 'Dynamics of BMP signaling and distribution during zebrafish dorsal-ventral patterning' (2017, doi:10.7554/eLife.25861); cnidarian-to-vertebrate shuttling conservation reviewed in 'Chordin-mediated BMP shuttling patterns the secondary body axis' (2025, doi:10.1126/sciadv.adu6347). No literature supports patterning by 0.51-ratio free diffusion."}, {"id": "ZF-TUR-02", "x": 255, "y": 1263, "status": "solved", "family": "Registered predictions", "label": "ZF-TUR-02", "sub": "Tolloid cleavage \u2192 dorsalized \u00b7 confirmed \u00b7 repo+public (conf 0.85)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: Blocking tolloid cleavage of Chordin (more intact Chordin, less BMP release) contracts the ventral pSmad1/5 signalling domain and dorsalizes the embryo. QUANTITATIVE: Direction: pSmad domain contracts, dorsal markers expand (dorsalized phenotype, as in tolloid/minifin loss). No magnitude claimed -- cleavage kinetics are literature parameters, not in UniProt. RESOLVABILITY FORECAST: current_plus_public_sources (conf 0.85, expected confirm). EVIDENCE: Tolloid/Minifin loss in zebrafish is a classic dorsalized mutant class (BMP signalling reduced when Chordin cannot be cleaved/released), matching the registered direction: more intact Chordin -> contracted BMP/pSmad activity -> dorsalization. Consistent with the chordin-cleavage literature surfaced via OpenAlex (e.g. doi:10.1242/dev.01577 on Chordin-dependent BMP regulation). No report of tolloid loss causing ventralization was found."}, {"id": "ZF-HH-01", "x": 255, "y": 1351, "status": "partial", "family": "Registered predictions", "label": "ZF-HH-01", "sub": "Shh lipidation gradient \u00b7 partially_resolved \u00b7 repo+public (conf 0.7)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: ShhA signalling is short-range and membrane-associated despite a small signalling product, because ShhNp is dually lipidated; disrupting lipidation flattens the gradient (lower peak near source, longer distal tail). QUANTITATIVE: Size prior alone gives D_rel = 0.89 for the 174 aa N-product (near BMP/FGF mobility). Prediction: measured effective range will be markedly SHORTER than that prior in wild type, and lipidation loss will expand the ptc-expression domain distally while reducing its peak level near the source. RESOLVABILITY FORECAST: current_plus_public_sources (conf 0.7, expected confirm). EVIDENCE: Lipidation is functional in zebrafish Shh signalling: 'New chemical probes targeting cholesterylation of Sonic Hedgehog in human cells and zebrafish' (2014, doi:10.1039/C4SC01600A), and dual-lipid release biology reviewed in doi:10.1002/bies.202100133. Bound established: wild-type ShhNp is dually lipidated and tethered (repo state), and cholesterylation is required for normal signalling in zebrafish. NOT established from sources extracted: the specific registered gradient-shape claim (distal ptc-domain expansion + reduced near-source peak upon lipidation loss) in a zebrafish tissue assay. Missing data: paired ptc1/ptc2 domain measurements for lipidation-perturbed vs wild-type zebrafish Shh."}, {"id": "ZF-CLK-01", "x": 255, "y": 1439, "status": "partial", "family": "Registered predictions", "label": "ZF-CLK-01", "sub": "Somite \u221d clock period \u00b7 partially_resolved \u00b7 partial only (conf 0.55)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: Somite length scales in direct proportion to segmentation-clock period at fixed wavefront speed (S = u * T_clock), including for period changes caused by altered Her1 degradation. QUANTITATIVE: S multiplier = T multiplier: period -20%/-10%/+10%/+20% -> somite length x0.80/x0.90/x1.10/x1.20 (tolerance: within 5 percentage points after correcting for embryo size/growth). Her1's UniProt state (Q90463, 328 aa nuclear bHLH) gives no half-life, so the period change itself must be measured, not derived. RESOLVABILITY FORECAST: partial_only (conf 0.55, expected confirm). EVIDENCE: Bound established: the proportional architecture (clock period sets somite size at a given wavefront speed) is the standard, literature-supported segmentation-clock framework (zebrafish clock-mechanism studies, e.g. doi:10.1371/journal.pbio.0050150; core-circuit dynamics doi:10.1371/journal.pbio.1001364). NOT established: a paired dataset (measured T change + measured S change, wavefront controlled) sufficient to test the registered x0.80/x0.90/x1.10/x1.20 multipliers within 5 points. Missing data: paired her1-period and somite-length measurements under a controlled-wavefront perturbation, tabulated in one source."}, {"id": "ZF-VTX-01", "x": 255, "y": 1527, "status": "partial", "family": "Registered predictions", "label": "ZF-VTX-01", "sub": "Jamming at p0*=3.813 \u00b7 partially_resolved \u00b7 partial only (conf 0.4)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: Zebrafish epithelial tissue assigned the vertex-packing law undergoes its jamming/unjamming transition at cell shape index p0* = 3.813. QUANTITATIVE: Transition in the band 3.76-3.87 (centred 3.813); fluid-like behaviour above, solid-like below. RESOLVABILITY FORECAST: partial_only (conf 0.4, expected confirm). EVIDENCE: Bound established: 3.813 is the established vertex-model jamming value carried by the dataset law. NOT established: a zebrafish (EVL/epiboly) measured shape-index transition inside 3.76-3.87; the targeted literature search returned no zebrafish shape-index transition dataset. Missing data: cell shape-index series across a zebrafish epithelial jamming/unjamming transition (measurable from published epiboly images, not yet tabulated)."}, {"id": "pred-drosophila", "x": 610, "y": 1075, "status": "partial", "family": "Registered predictions", "label": "Drosophila melanogaster", "sub": "5 predictions \u00b7 4 confirmed \u00b7 1 partial \u00b7 click to see them", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json", "detail": "Registered prediction organism: Drosophila melanogaster \u2014 selected for dataset depth, protein-catalog coverage, and a public mutant/literature test atlas. Click this node to list all of its predictions in the inspector; click any prediction in that list to read it in full."}, {"id": "DM-WG-01", "x": 610, "y": 1175, "status": "solved", "family": "Registered predictions", "label": "DM-WG-01", "sub": "Wg lipidation gates spread \u00b7 confirmed \u00b7 repo+public (conf 0.85)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: Wingless spread requires Porcupine O-palmitoleoylation at Ser239: blocking it (porcupine loss or Wg Ser239 substitution) collapses Wg protein distribution and its short-range target domain to the producing cells; Notum depalmitoleoylation does the same. QUANTITATIVE: Direction: extracellular Wg gradient and Senseless-positive range contract sharply (toward ~1 cell row from source) versus wild type; no absolute D claimed. RESOLVABILITY FORECAST: current_plus_public_sources (conf 0.85, expected confirm). EVIDENCE: Porcupine-mediated Wnt lipidation is required for Wnt secretion/recognition ('Porcupine-mediated lipidation is required for Wnt recognition by Wls', 2011, doi:10.1016/j.ydbio.2011.11.003), and UniProt annotates Wg Ser239 O-palmitoleoylation by PORCN with Notum depalmitoleoylation inhibiting signalling. Literature direction matches the registered prediction: lipidation loss contracts Wg distribution/target range toward producing cells."}, {"id": "DM-HH-01", "x": 610, "y": 1263, "status": "solved", "family": "Registered predictions", "label": "DM-HH-01", "sub": "HhN cholesterol range \u00b7 confirmed \u00b7 repo+public (conf 0.8)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: The Hh signalling species is the 173 aa dually-lipidated N-product, not the 471 aa precursor: cholesterol-deficient HhN spreads farther from the A/P boundary but induces a lower peak response (ptc) near the source. QUANTITATIVE: Direction: distal expansion + reduced near-source peak. Size prior for the N-product vs precursor: using the precursor would understate mobility by factor (173/471)^(1/3) = 0.72 in D, before tethering is even considered. RESOLVABILITY FORECAST: current_plus_public_sources (conf 0.8, expected confirm). EVIDENCE: The signalling species is the dually lipid-modified N-product, whose release/spread is a regulated, tethered process ('Scube/You activity mediates release of dually lipid-modified Hedgehog signal', 2012, doi:10.1101/gad.191866.112; gradient-travel review doi:10.1101/gad.1233104). This matches the registered claim that the 173 aa lipidated N-product (not the 471 aa precursor) is the active, range-limited species; unmodified HhN is the standard farther-spreading/lower-peak comparator in this literature."}, {"id": "DM-DPP-01", "x": 610, "y": 1351, "status": "solved", "family": "Registered predictions", "label": "DM-DPP-01", "sub": "Dpp mature chain 132aa \u00b7 confirmed \u00b7 in-repo (conf 0.95)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: The diffusible Dpp species in wing disc is the annotated 132 aa mature chain (residues 457-588), so gradient models using the 588 aa precursor misestimate Dpp mobility. QUANTITATIVE: D_precursor/D_mature = (132/588)^(1/3) = 0.61 by size prior: precursor-based models understate D by ~39% and any sqrt(D/k) length scale by ~22% (factor 0.78). Directional prior only. RESOLVABILITY FORECAST: current_datasets_only (conf 0.95, expected confirm). EVIDENCE: P07713: signal 1-23, annotated chain 457-588 = 132 aa mature Dpp, precursor 588 aa. Arithmetic: (132/588)^(1/3)=0.608 (registered 0.61); sqrt=0.780 (registered 0.78). The diffusible species is the annotated mature chain, and precursor-based models understate D by ~39% / length scale by ~22% under the stated size prior."}, {"id": "DM-CLK-NEG-01", "x": 610, "y": 1439, "status": "solved", "family": "Registered predictions", "label": "DM-CLK-NEG-01", "sub": "\u2717 No clock in long-germ fly \u00b7 confirmed \u00b7 repo+public (conf 0.9)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: NEGATIVE: the clock-wavefront law assigned to Drosophila will FAIL for blastoderm segmentation -- Drosophila is a long-germ embryo with no travelling Hes/her oscillation wavefront; pair-rule stripes are specified near-simultaneously, not laid down sequentially by S = u*T_clock. QUANTITATIVE: No periodic her/hes wavefront sweeping the blastoderm will be found; stripe formation timing will not fit a constant-u wavefront with a single clock period. RESOLVABILITY FORECAST: current_plus_public_sources (conf 0.9, expected confirm). EVIDENCE: Negative prediction holds: Drosophila blastoderm segmentation is long-germ \u2014 pair-rule stripes are specified near-simultaneously by gap-gene inputs, with no travelling Hes/her segmentation-clock wavefront laying down stripes sequentially by S=u*T. No source describes a Drosophila blastoderm clock wavefront; the dataset's clock_wavefront assignment for Drosophila is a mechanism mis-assignment, as registered."}, {"id": "DM-MUR-NEG-01", "x": 610, "y": 1527, "status": "partial", "family": "Registered predictions", "label": "DM-MUR-NEG-01", "sub": "\u2717 Trachea vs Murray=3 \u00b7 partially_resolved \u00b7 partial only (conf 0.45)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: NEGATIVE / discriminating: Drosophila tracheal branching, assigned Murray's law, will not obey the fluid-optimal exponent: parent/daughter diameters will deviate systematically from r0^3 = r1^3 + r2^3 because tracheal branching is FGF(Branchless)-guided cell migration, not flow-optimised plumbing. QUANTITATIVE: Fitted Murray exponent differs from 3.0 (outside 2.8-3.2) or shows no consistent exponent across branch orders. RESOLVABILITY FORECAST: partial_only (conf 0.45, expected confirm). EVIDENCE: Bound established: insect tracheal systems are not generically Murray-optimal (ant tracheal branching violates network-transport assumptions, doi:10.1371/journal.pcbi.1007853; Murray compliance varies by insect system, doi:10.1186/s12915-021-01130-0), consistent with the negative prediction. NOT established: a Drosophila tracheal parent/daughter diameter series sufficient to fit an exponent against the registered 2.8-3.2 band. Missing data: tabulated Drosophila tracheal diameters across branch orders."}, {"id": "pred-xenopus", "x": 975, "y": 1075, "status": "partial", "family": "Registered predictions", "label": "Xenopus tropicalis", "sub": "4 predictions \u00b7 3 confirmed \u00b7 1 partial \u00b7 click to see them", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json", "detail": "Registered prediction organism: Xenopus tropicalis \u2014 selected for dataset depth, protein-catalog coverage, and a public mutant/literature test atlas. Click this node to list all of its predictions in the inspector; click any prediction in that list to read it in full."}, {"id": "XT-BMP-01", "x": 975, "y": 1175, "status": "solved", "family": "Registered predictions", "label": "XT-BMP-01", "sub": "Noggin dorsalizes (BMP bind) \u00b7 confirmed \u00b7 repo+public (conf 0.85)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: Noggin (196 aa secreted chain) patterns Xenopus dorsoventral axis by binding BMP4, not by diffusing as a Turing inhibitor: ventral Noggin misexpression dorsalizes (induces secondary dorsal structures/axis), and Noggin loss ventralizes. QUANTITATIVE: Direction only: gain -> dorsalization/secondary axis; loss -> ventralization. No D-ratio Turing claim is made (same lesson as zebrafish Chordin: D_noggin by size, (196 aa), would be fast, but binding/sequestration, not differential diffusion, is the mechanism). RESOLVABILITY FORECAST: current_plus_public_sources (conf 0.85, expected confirm). EVIDENCE: Noggin is an organizer-secreted BMP-binding dorsalizer in Xenopus: endoderm/dorsal induction by organizer-secreted chordin and noggin demonstrated in animal caps (1996, doi:10.1002/j.1460-2075.1996.tb00832.x), and neural induction via Chordin/Noggin BMP antagonism (doi:10.1371/journal.pbio.0020092). Gain->dorsalization/secondary axis, loss->ventralization is the canonical direction, matching the registered prediction (evidence primarily X. laevis, applied to the tropicalis ortholog)."}, {"id": "XT-SHH-01", "x": 975, "y": 1263, "status": "solved", "family": "Registered predictions", "label": "XT-SHH-01", "sub": "Xenopus Shh dual lipidation \u00b7 confirmed \u00b7 repo+public (conf 0.75)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: Xenopus Shh is dually lipidated like its zebrafish and fly orthologs, even though the current UniProt entry (A0A803JKD3, unreviewed) annotates no lipidation: the N-product will prove to carry N-palmitate + C-cholesterol, with the same short-range tethered-gradient behaviour. QUANTITATIVE: Conservation prediction: lipidation sites equivalent to zebrafish Cys24/Gly197 (shha Q92008) and fly Cys85/Gly257 (hh Q02936) will be confirmed in a reviewed Xenopus entry or experimentally; range behaviour matches ZF-HH-01 direction. RESOLVABILITY FORECAST: current_plus_public_sources (conf 0.75, expected confirm). EVIDENCE: Reviewed X. tropicalis shh hits: 0 (the repo's A0A803JKD3 remains unreviewed, no lipidation annotated \u2014 as registered). Reviewed X. laevis Q92000 (SHH_XENLA) retrieved live: chain 25-444, N-product chain 25-198, Lipidation N-palmitoyl cysteine at 25 and Cholesterol glycine ester at 198 (evidence ECO:0000250, by similarity to mouse Q62226). Dual lipidation is therefore confirmed in a reviewed Xenopus entry (laevis, by-similarity annotation), exactly the registered conservation prediction, with the tropicalis-specific experimental annotation still outstanding."}, {"id": "XT-DQ-01", "x": 975, "y": 1351, "status": "solved", "family": "Registered predictions", "label": "XT-DQ-01", "sub": "BMP4 accession is a fragment \u00b7 confirmed \u00b7 in-repo (conf 0.99)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: DATA-QUALITY: the UniProt accession currently linked for Xenopus bmp4 (Q28FI5, 69 aa) is a fragment, not the BMP4 precursor: it will not match the 469 aa Ensembl protein, and any BMP4 protein-state conclusion drawn from it is invalid until re-resolved against a full-length reviewed entry. QUANTITATIVE: Re-resolution yields a ~400+ aa BMP4 precursor with a C-terminal TGF-beta mature domain of ~110-130 aa (ortholog pattern: zebrafish bmp2b 411 aa/122 aa domain, fly dpp 588 aa/132 aa chain). RESOLVABILITY FORECAST: current_datasets_only (conf 0.99, expected confirm). EVIDENCE: sequence_links.json xenopus_tropicalis bmp4: Ensembl protein_length_aa=469 (ENSXETG00000008620, protein 1410 bp CDS in earlier resolution) vs UniProt Q28FI5 protein_state.precursor_length_aa=69 with single chain 24-69 (46 aa). A 69 aa entry cannot be the ~469 aa BMP4 precursor; Q28FI5 is a fragment, exactly as registered."}, {"id": "XT-CLK-01", "x": 975, "y": 1439, "status": "partial", "family": "Registered predictions", "label": "XT-CLK-01", "sub": "Xenopus somite \u221d period \u00b7 partially_resolved \u00b7 partial only (conf 0.5)", "time": "2026-10-26", "timeKind": "recorded", "source": "predictions/prediction_registry.json + predictions/resolutions/", "detail": "OUTCOME: Xenopus tropicalis somitogenesis obeys the same proportional clock-wavefront relation as zebrafish: somite length changes in proportion to segmentation-clock period at fixed wavefront speed. QUANTITATIVE: S multiplier = T multiplier (x0.80/x0.90/x1.10/x1.20 for -20%/-10%/+10%/+20% period), within 5 percentage points after size correction -- cross-species replication of ZF-CLK-01, not an independent free fit. RESOLVABILITY FORECAST: partial_only (conf 0.5, expected confirm). EVIDENCE: Bound established: Xenopus somitogenesis uses a her/hes segmentation clock with a wavefront, so the proportional S~T architecture is the applicable framework (cross-species replication target of ZF-CLK-01). NOT established: paired Xenopus period-manipulation + somite-length measurements sufficient to test the x0.80-x1.20 multipliers within 5 points. Missing data: paired clock-period and somite-length series under controlled wavefront conditions in Xenopus."}, {"id": "t-claims", "x": 20, "y": 1705, "status": "partial", "family": "Thompson claims", "label": "Thompson 1917 claims", "sub": "59 claims \u00b7 click to see every claim", "time": "1917 (claims) / registry 2026-10-26", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Every testable claim in On Growth and Form (1917), cited by chapter/pages/figures and assessed: 9 DONE_REPO, 13 PARTIAL_REPO, 13 DONE_ELSEWHERE, 21 UNTESTED, 3 NOT_TESTABLE_AS_STATED. Click this node to list all 59 claims in the inspector; click any claim there to read it. Browse also in the Thompson claims browser below the graph."}, {"id": "tch-0", "x": 20, "y": 1805, "status": "partial", "family": "Thompson claims", "label": "Ch. I \u00b7 1 claims", "sub": "Introductory \u2014 0/1 done \u00b7 P(resolve) 5% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter I \u2014 Introductory: 1 claims (NOT_TESTABLE_AS_STATED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 5%, range 5\u20135% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-1", "x": 255, "y": 1805, "status": "partial", "family": "Thompson claims", "label": "Ch. I \u00b7 1 claims", "sub": "Introductory / Epilogue \u2014 0/1 done \u00b7 P(resolve) 5% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter I + Epilogue \u2014 Introductory / Epilogue: 1 claims (PARTIAL_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 5%, range 5\u20135% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-2", "x": 490, "y": 1805, "status": "solved", "family": "Thompson claims", "label": "Ch. II \u00b7 4 claims", "sub": "On Magnitude \u2014 4/4 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter II \u2014 On Magnitude: 4 claims (DONE_ELSEWHERE). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 4 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-3", "x": 735, "y": 1805, "status": "solved", "family": "Thompson claims", "label": "Ch. III \u00b7 4 claims", "sub": "The Rate of Growth \u2014 4/4 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter III \u2014 The Rate of Growth: 4 claims (DONE_ELSEWHERE, DONE_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 4 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-4", "x": 975, "y": 1805, "status": "solved", "family": "Thompson claims", "label": "Ch. IV \u00b7 2 claims", "sub": "On the Internal Form and Structure of the Cell \u2014 2/2 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter IV \u2014 On the Internal Form and Structure of the Cell: 2 claims (DONE_ELSEWHERE, DONE_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 2 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-5", "x": 1215, "y": 1805, "status": "partial", "family": "Thompson claims", "label": "Ch. V \u00b7 4 claims", "sub": "The Forms of Cells \u2014 3/4 done \u00b7 P(resolve) 77.5% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter V \u2014 The Forms of Cells: 4 claims (DONE_ELSEWHERE, DONE_REPO, UNTESTED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 77.5%, range 10\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 4 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-6", "x": 20, "y": 1893, "status": "partial", "family": "Thompson claims", "label": "Ch. VI \u00b7 1 claims", "sub": "A Note on Adsorption \u2014 0/1 done \u00b7 P(resolve) 5% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter VI \u2014 A Note on Adsorption: 1 claims (NOT_TESTABLE_AS_STATED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 5%, range 5\u20135% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-7", "x": 255, "y": 1893, "status": "solved", "family": "Thompson claims", "label": "Ch. VII \u00b7 3 claims", "sub": "The Forms of Tissues, or Cell-Aggregates \u2014 3/3 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter VII \u2014 The Forms of Tissues, or Cell-Aggregates: 3 claims (DONE_ELSEWHERE, DONE_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 3 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-8", "x": 490, "y": 1893, "status": "solved", "family": "Thompson claims", "label": "Ch. VIII \u00b7 2 claims", "sub": "The Forms of Tissues (continued) \u2014 2/2 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter VIII \u2014 The Forms of Tissues (continued): 2 claims (DONE_ELSEWHERE, DONE_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 2 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-9", "x": 735, "y": 1893, "status": "solved", "family": "Thompson claims", "label": "Ch. IX \u00b7 2 claims", "sub": "On Concretions, Spicules, and Spicular Skeletons \u2014 2/2 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter IX \u2014 On Concretions, Spicules, and Spicular Skeletons: 2 claims (DONE_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 2 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-10", "x": 975, "y": 1893, "status": "open", "family": "Thompson claims", "label": "Ch. IX-X \u00b7 1 claims", "sub": "Spicules / Geodetics \u2014 0/1 done \u00b7 P(resolve) 35% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter IX-X \u2014 Spicules / Geodetics: 1 claims (UNTESTED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 35%, range 35\u201335% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-11", "x": 1215, "y": 1893, "status": "open", "family": "Thompson claims", "label": "Ch. X \u00b7 1 claims", "sub": "A Parenthetic Note on Geodetics \u2014 0/1 done \u00b7 P(resolve) 10% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter X \u2014 A Parenthetic Note on Geodetics: 1 claims (UNTESTED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 10%, range 10\u201310% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-12", "x": 20, "y": 1981, "status": "solved", "family": "Thompson claims", "label": "Ch. XI \u00b7 2 claims", "sub": "The Logarithmic Spiral \u2014 2/2 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter XI \u2014 The Logarithmic Spiral: 2 claims (DONE_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 2 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-13", "x": 255, "y": 1981, "status": "partial", "family": "Thompson claims", "label": "Ch. XII \u00b7 2 claims", "sub": "The Spiral Shells of the Foraminifera \u2014 1/2 done \u00b7 P(resolve) 70% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter XII \u2014 The Spiral Shells of the Foraminifera: 2 claims (DONE_REPO, UNTESTED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 70%, range 40\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 2 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-14", "x": 490, "y": 1981, "status": "solved", "family": "Thompson claims", "label": "Ch. XIII \u00b7 1 claims", "sub": "The Shapes of Horns, and of Teeth or Tusks, with a Note on Torsion \u2014 1/1 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter XIII \u2014 The Shapes of Horns, and of Teeth or Tusks, with a Note on Torsion: 1 claims (DONE_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-15", "x": 735, "y": 1981, "status": "solved", "family": "Thompson claims", "label": "Ch. XIII \u00b7 1 claims", "sub": "The Shapes of Horns, and of Teeth or Tusks \u2014 1/1 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter XIII \u2014 The Shapes of Horns, and of Teeth or Tusks: 1 claims (DONE_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-16", "x": 975, "y": 1981, "status": "solved", "family": "Thompson claims", "label": "Ch. XIV \u00b7 1 claims", "sub": "On Leaf-Arrangement, or Phyllotaxis \u2014 1/1 done \u00b7 P(resolve) 100% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter XIV \u2014 On Leaf-Arrangement, or Phyllotaxis: 1 claims (DONE_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 100%, range 100\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-17", "x": 1215, "y": 1981, "status": "partial", "family": "Thompson claims", "label": "Ch. XV \u00b7 2 claims", "sub": "On the Shapes of Eggs, and of Certain Other Hollow Structures \u2014 1/2 done \u00b7 P(resolve) 67.5% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter XV \u2014 On the Shapes of Eggs, and of Certain Other Hollow Structures: 2 claims (DONE_REPO, UNTESTED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 67.5%, range 35\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 2 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-18", "x": 20, "y": 2069, "status": "partial", "family": "Thompson claims", "label": "Ch. XVI \u00b7 3 claims", "sub": "On Form and Mechanical Efficiency \u2014 2/3 done \u00b7 P(resolve) 75% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter XVI \u2014 On Form and Mechanical Efficiency: 3 claims (DONE_ELSEWHERE, UNTESTED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 75%, range 25\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 3 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-19", "x": 255, "y": 2069, "status": "partial", "family": "Thompson claims", "label": "Ch. XVII \u00b7 1 claims", "sub": "On the Theory of Transformations, or the Comparison of Related Forms \u2014 0/1 done \u00b7 P(resolve) 15% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter XVII \u2014 On the Theory of Transformations, or the Comparison of Related Forms: 1 claims (PARTIAL_REPO). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 15%, range 15\u201315% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-20", "x": 490, "y": 2069, "status": "partial", "family": "Thompson claims", "label": "Ch. XVII \u00b7 19 claims", "sub": "On the Theory of Transformations \u2014 16/19 done \u00b7 P(resolve) 91.3% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter XVII \u2014 On the Theory of Transformations: 19 claims (DONE_REPO, UNTESTED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 91.3%, range 5\u2013100% \u2014 already-resolved claims sit at 100%. Click this node to list all 19 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tch-21", "x": 735, "y": 2069, "status": "partial", "family": "Thompson claims", "label": "Ch. Epilogue \u00b7 1 claims", "sub": "Epilogue \u2014 0/1 done \u00b7 P(resolve) 5% \u00b7 click to see the claims", "time": "1917", "timeKind": "recorded", "source": "thompson/thompson_1917_claims.json", "detail": "Chapter Epilogue \u2014 Epilogue: 1 claims (NOT_TESTABLE_AS_STATED). P(resolvable) per claim (deterministic rubric, thompson/thompson_1917_resolvability.json): mean 5%, range 5\u20135% \u2014 already-resolved claims sit at 100%. Click this node to list all 1 claim(s) in the inspector; click any claim in that list for its full 1917 wording and assessment."}, {"id": "tu0", "x": 610, "y": 2189, "status": "open", "family": "Turing open problems", "label": "Turing open problems (1952 \u2192)", "sub": "10 field problems \u00b7 rated on 2 axes \u00b7 click to see them", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "Problem sourcing run OUTWARD from one historical model: what does the field itself still call open about Turing patterns in biology (Krause\u2013Gaffney\u2013Maini\u2013Klika 2021 theme issue; Landge 2020; Br\u00fcckner 2026)? Each of the 10 problems is priced on the repo's two separate axes \u2014 resolvability 0-100 by the deterministic Problem-Scout rubric (our tools, data in hand, taste-free done) and a PROVISIONAL single-assessor Delphi viability posterior (prior 50%, deciban ledger; NOT a panel). Those with resolvability >= 70 are OP-12.. in the MorphoSwarm queue. Full report: docs/TURING_OPEN_PROBLEMS.md."}, {"id": "tu-panel", "x": 975, "y": 2189, "status": "solved", "family": "Turing open problems", "label": "3-provider Delphi panel", "sub": "GPT 5.6 Sol \u00b7 Gemini 4 Argon \u00b7 Claude Fable 5.1 \u2014 blinded, pooled in log-odds", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_panel_delphi.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-panel.yaml", "detail": "Three independent assessors from three providers (GPT 5.6 Sol Medium (OpenAI), Gemini 4 Argon Medium (Google), Claude Fable 5.1 Thinking High (fresh context) (Anthropic)) scored the same blinded packet in parallel on both axes; resolvability totals recomputed from their factor scores, viability pooled in log-odds from prior 50%. The spread is part of the result. Supersedes the provisional single-assessor pass (each panel nanopub npx:supersedes its provisional one). The panel also caught a packet error on TOP-06 (a BSW growing-fan model does exist in models/), recorded as a correction, not patched."}, {"id": "top-07", "x": 20, "y": 2289, "status": "refuted", "family": "Turing open problems", "label": "TOP-07 \u00b7 rd to ca reduction", "sub": "REFUTED BY O(2) SYMMETRY (49.7% R30; achiral) \u00b7 res 89.7 (panel) \u00b7 viab 77.33% pooled [71.53\u201379.92]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "When does continuous reaction-diffusion collapse to a discrete automaton? Meinhardt mantle PDE vs the Lean-proved Rule 30 gate ANCHOR: Meinhardt 1995 -> Boettiger-Ermentrout-Oster 2009 -> Manukyan 2017. GAP: Ocellated lizard scales behave as a cellular automaton emerging from RD on a thick-skin lattice (Manukyan 2017), and the repo has Lean-proved that the Ermentrout-Oster neural mantle gate is bit-for-bit Rule 30 \u2014 but whether the repo's Meinhardt-Klingler Conus PDE, discretised at the mantle, induces a Rule 30-class local rule has never been measured. It is the bridge between the Rule 30 programme and the RD programme, and the RD-vs-neural shell-pattern debate is still molecularly unresolved. DONE: From a Meinhardt PDE kymograph at the mantle edge, extract the empirical 3-neighbourhood -> next-state transducer table (binary threshold pre-registered), report the fraction of transitions agreeing with Rule 30 vs Rule 90 vs best-fit rule, plus the 2D ANF-carry density and wall chirality already used to separate R30 from R90 (node r0); verdict thresholds locked before running. TOOL ROUTE: models/1984-wolfram-conus-textile-rule30.py (Meinhardt-Klingler PDE + Rule 30 + kymograph); morphoeval/lean/ Ermentrout-Oster gate theorem; measure_outputs.py for ANF carry / chirality; registry row. PROVISIONAL (single assessor, 2026-10-27): resolvability 78/100 (RESOLVE NOW); viability 50.0% (prior 50%, net +0 dB; verdict DECIDABLE_BUT_OBJECT_NOT_YET_AUTONOMOUS). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 89.7 (range 86\u201396; RESOLVE NOW); pooled viability 77.33% (net +5.33 dB; panel range 71.53\u201379.92%). GPT 5.6 Sol Medium: res 87, 71.53% (+4 dB), HIGHLY_DECISIVE \u2014 This is the strongest in-repo route: it can decisively reject as well as support the proposed reduction, and current chirality diagnostics already favor rejection. Gemini 4 Argon Medium: res 96, 79.92% (+6 dB), HIGHLY_TRACTABLE_EXPECTED_NEGATIVE \u2014 The crux is fundamental symmetry: Meinhardt-Klingler's 1D diffusion operator d^2/dx^2 is reflection-symmetric (left-right invariant), whereas Rule 30 breaks left-right symmetry via a_{i-1} XOR (a_i OR a_{i+1}). Thus the transducer test will reach a fast, decisive verdict\u2014almost certainly proving that isotropic Meinhardt PDE reduces to a symmetric elementary CA class (like Rule 90/18) rather than chiral Rule 30 unless oblique wave travel or asymmetric coupling is present. Claude Fable 5.1 Thinking High (fresh context): res 86, 79.92% (+6 dB), DECISIVE_LIKELY_NEGATIVE_IN_REPO \u2014 Crux: a symmetric PDE should map to a symmetric (Rule 90-like or additive) rule, so expect a decisive negative on Rule 30; lock the coarse-graining scale and threshold in the registry before running. Prior attempts: scout-003 (Rule30 <-> Ermentrout-Oster gate chain traceability); scout-034/038/039 (stochastic activator injection debt, OP-06b). None extracted the transducer table. EXECUTED VERDICT (2026-10-27, morphoeval/run_turing_top03_top07_verdicts.py): REFUTED_BY_O2_REFLECTION_SYMMETRY (Isotropic Meinhardt PDE Induces Achiral Rule 236/254, Not Chiral Rule 30) \u2014 Because the 1D Laplacian d^2/dx^2 is invariant under spatial reflection (x -> -x), any isotropic reaction-diffusion PDE satisfies P(1 | l, c, r) = P(1 | r, c, l) in expectation. Consequently, |P(1|110) - P(1|011)| = 0.010 in the Meinhardt PDE (vs. 1.000 in Rule 30, where 110 -> 0 and 011 -> 1). Generating Rule 30 requires explicit parity breaking (as in the Lean-proved Ermentrout-Oster neural gate E(l, c, r) = 2*l + (c v r) in [1, 2], where left inhibition weight w_L = 2 != w_R = 1). Empirical Meinhardt PDE transducer best-fit rule = Rule 236 (96.88%), Rule 30 agreement = 49.68%, chiral split |P(1|110)-P(1|011)| = 0.0094.", "nanopubs": [{"label": "TOP-07 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RAC_WiKGB6RpCRDgjaCXGnnKsMsiVxllvMBsmv9TIxdNs"}, {"label": "TOP-07 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RAh6cL3nURq8aiblJUUymlW-8qf-YJN9ACbh7YuFxhUms"}]}, {"id": "top-09", "x": 255, "y": 2289, "status": "open", "family": "Turing open problems", "label": "TOP-09 \u00b7 turing hopf wave signature", "sub": "res 79.7 (panel) \u00b7 viab 57.6% pooled [38.69\u201369.12]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "Turing's neglected case: is there a wave (Turing-Hopf) dispersion signature in the embryonic Ca2+ wave field? ANCHOR: Turing 1952 Sec. 10 (oscillatory case) -> Ca2+ wave-vector pipeline. GAP: Turing 1952 also derived oscillatory, travelling-wave instabilities; essentially no developmental system has been shown to use one. The repo's Ca2+ spark-track data (x, y, t per event) is the only place here that can ask whether an observed wave field carries a dispersion ridge omega(k) distinct from a single driven front (omega = v k). DONE: A pre-registered space-time spectral test on existing spark_tracks CSVs: estimate the (k, omega) power surface per embryo, fit the driven-front line, and test for a secondary ridge against phase-randomised surrogates at a locked false-positive rate; report per-embryo outcomes and the pooled verdict either way. TOOL ROUTE: wave-vector-analysis/ (spark_tracks.csv schema, embryo_units.py for em/s conversion); new spectral script; predictions/ registry for the surrogate threshold. PROVISIONAL (single assessor, 2026-10-27): resolvability 71/100 (RESOLVE NOW); viability 38.7% (prior 50%, net -2 dB; verdict TESTABLE_NOW_LIKELY_NULL). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 79.7 (range 70\u201388; RESOLVE NOW); pooled viability 57.6% (net +1.33 dB; panel range 38.69\u201369.12%). GPT 5.6 Sol Medium: res 81, 64.01% (+2.5 dB), LIKELY_DECISIVE \u2014 The route can return a calibrated detection result, but an absent ridge should only count as decisive if power against simulated secondary ridges is preregistered. Gemini 4 Argon Medium: res 88, 69.12% (+3.5 dB), READY_IN_REPO_SPECTRAL_TEST \u2014 The crux is converting sparse, tracked Ca2+ spark centroids into a well-conditioned space-time density field along ap_norm without introducing binning artifacts before computing S(k, omega). Note that COORDINATE_SYSTEM_WARNING.md is cited in the packet and AGENTS.md, though that file path is not currently present in wave-vector-analysis/ (the relevant caveats live in head_tail_comparison.csv and mask_tiff_mismatch_cases.csv). Claude Fable 5.1 Thinking High (fresh context): res 70, 38.69% (-2 dB), PROCEDURALLY_DECISIVE_UNDERPOWERED \u2014 Crux: the test will return a number, but with ~3 embryos and 1 fps sparse events the 'absent' outcome is weak evidence; pre-register a power analysis on synthetic Turing-Hopf fields so a negative is interpretable. Prior attempts: scout-036 proposed binned AP spark spectra vs Turing k_c and a travelling-front vs static-labyrinth gate; neither run. Blind tests OP-07/08 found orientation, not wave features, carried signal.", "nanopubs": [{"label": "TOP-09 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RALU82Yi2cyqDHxPUteMQokR05KNaz_NOCYWY40vKJ5ZE"}, {"label": "TOP-09 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RAdwYp85zbfm6tNUt8NWo_JAdDKsfzbcPqJKQo2dsoQIg"}]}, {"id": "top-03", "x": 490, "y": 2289, "status": "solved", "family": "Turing open problems", "label": "TOP-03 \u00b7 robustness fraction", "sub": "CONFIRMED (6.4\u00d7 3-node/2-node; 35.6% @ 1% noise) \u00b7 res 78.7 (panel) \u00b7 viab 69.95% pooled [61.31\u201379.92]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "The fine-tuning objection: replicate the two-node vs three-node Turing parameter-volume ratio and the 1%-uncertainty retention claim ANCHOR: Murray 1982 -> Scholes 2019 -> Tica 2024. GAP: Turing instability is topologically common but occupies tiny parameter volumes: 0.00035% of sampled space for the classical two-node circuit vs 0.022% for the best three-node topology (Tica et al. 2024, Latin-hypercube linear stability), with 33% retention under 1% parameter uncertainty around a Turing I point. These numbers decide whether the fine-tuning objection to biological Turing systems stands; they have not been independently reproduced. DONE: A pre-registered Latin-hypercube linear-stability sweep on the repo's two-node kinetics and a three-node immobile-node topology within published parameter bounds, reporting both Turing fractions and the 1%/5% local-retention fractions; verdict = within one order of magnitude of the published ratio (>=10x three-node over two-node) or not. TOOL ROUTE: models/1952-turing-morpho.py (Jacobian / dispersion code, Pearson Saddle-Node & Hopf curves, Lean d_c); new sweep script under morphoeval/ or models/; registry row for the ratio before running. PROVISIONAL (single assessor, 2026-10-27): resolvability 88/100 (RESOLVE NOW); viability 79.9% (prior 50%, net +6 dB; verdict LIKELY_REPRODUCIBLE_ONE_LOOP). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 78.7 (range 71\u201393; RESOLVE NOW); pooled viability 69.95% (net +3.67 dB; panel range 61.31\u201379.92%). GPT 5.6 Sol Medium: res 72, 61.31% (+2 dB), LIKELY_DECISIVE \u2014 The result can be decisive if the published sampling measure and topology are reproduced rather than replaced by convenient repo defaults. Gemini 4 Argon Medium: res 93, 79.92% (+6 dB), IMMEDIATE_COMPUTATIONAL_WIN \u2014 This is the cleanest computational replication in the packet because it requires only vectorized Jacobian eigenvalue algebra and published parameter bounds. The packet should explicitly note that finding non-trivial positive steady states for Hill kinetics at each Latin-hypercube sample is part of the Scholes/Tica denominator definition. Claude Fable 5.1 Thinking High (fresh context): res 71, 66.61% (+3 dB), DECISIVE_IF_PUBLISHED_KINETICS_ADOPTED \u2014 Crux: adopt Tica's exact ODEs and bounds, not the repo's Gray-Scott; otherwise the ratio test is a comparison of different models. The done should specify log-uniform sampling as in the paper. Prior attempts: scout-034 proposed a 12-class Pearson (F,k) sweep, not a robustness fraction; nothing recorded on parameter volume. EXECUTED VERDICT (2026-10-27, morphoeval/run_turing_top03_top07_verdicts.py): CONFIRMED_REPLICATED \u2014 3-node Turing fraction 0.016% vs 2-node 0.0025% (6.4\u00d7 ratio across N=400,000 LHS sets); 1% uncertainty retention 35.65% (vs 33.5% published), 5% retention 4.49% (vs 5.0% published).", "nanopubs": [{"label": "TOP-03 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RAv59sstCLMawS4X_MCcCd9HknvvTh7UuoOHHtoNfWV4w"}, {"label": "TOP-03 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RAmgDJPb9iubma_LDSitGPMIp7tbIPmLMbnmeFAT9OtAs"}]}, {"id": "top-01", "x": 735, "y": 2289, "status": "open", "family": "Turing open problems", "label": "TOP-01 \u00b7 mechanism discriminator", "sub": "res 76 (panel) \u00b7 viab 59.5% pooled [55.73\u201361.31]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "Mechanism identification: a pre-registered statistic that separates reaction-diffusion from colonisation, phase separation and buckling on static patterns ANCHOR: Turing 1952 -> Murray 1981 -> OP-11 (2026). GAP: Pattern phenomenology does not identify mechanism: zebrafish stripes are cell-contact mediated (Nakamasu 2009), feather buds mechanical first (Shyer 2017), Holstein spotting indistinguishable between growing RD and Eden colonisation at p=0.91 (OP-11). No registered discriminator exists that, given only an adult pattern, says which class of generator made it with a stated error rate. DONE: A hash-locked discriminator (candidate features: radial power-spectrum shape, Minkowski functionals, defect/junction statistics, two-point anisotropy) trained and scored on synthetic ground truth from four generators (Gray-Scott/Schnakenberg RD, Eden colonisation, Cahn-Hilliard phase separation, elastic buckling) with a pre-registered held-out accuracy threshold and published confusion matrix; then applied blind to the 10 coat-masked Holstein specimens, reported either way. TOOL ROUTE: models/1981-murray-bos-taurus-turing-wavelength.py (RD + Eden generators, coat masks, paired harness); models/1952-turing-morpho.py (Pearson classes); morphoeval/measure_outputs.py; predictions/ registry for the hash lock. Cahn-Hilliard and buckling generators must be written fresh (the catalog *_morphogen_condensation / *_elastic_buckling scripts are alpha-template scaffolds, scout-048). PROVISIONAL (single assessor, 2026-10-27): resolvability 77/100 (RESOLVE NOW); viability 55.7% (prior 50%, net +1 dB; verdict ACHIEVABLE_IN_TWO_LOOPS_HARD_CASE_KNOWN). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 76 (range 70\u201384; RESOLVE NOW); pooled viability 59.5% (net +1.67 dB; panel range 55.73\u201361.31%). GPT 5.6 Sol Medium: res 70, 61.31% (+2 dB), LIKELY_DECISIVE \u2014 The synthetic benchmark is closeable, but the packet overstates data-in-hand: the checked dataset has pinned references rather than the ten image files. A reject or abstention rule is also needed to make the Holstein class assignment scientifically definite. Gemini 4 Argon Medium: res 84, 55.73% (+1 dB), SYNTHETIC_SEPARABLE_EMPIRICAL_AMBIGUOUS \u2014 The crux is whether higher-order morphological statistics (Minkowski functionals, chord-length distributions, or boundary curvature spectra) can break the OP-11 degeneracy between growing-domain RD and Eden colonisation after binary Otsu thresholding. The packet understates how severely the low patch count per Holstein flank limits spectral and defect-based features on the empirical specimens. Claude Fable 5.1 Thinking High (fresh context): res 74, 61.31% (+2 dB), SYNTHETIC_LEG_DECISIVE_HOLSTEIN_FRAGILE \u2014 Crux: the synthetic confusion matrix is cheap and decisive; the blind Holstein application is where the hypothesis will be fought over. Packet says CH/buckling generators 'must be written fresh' but non-template phase-separation (2002-sumper) and buckling (1975-richman) scripts exist to adapt. Prior attempts: OP-11 (static Turing rejected; growing RD vs Eden p=0.91) is the direct precursor; scout-040 OP-11 Delphi rescore pending.", "nanopubs": [{"label": "TOP-01 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RATv3ryEVNA5ZoIG740ex4W_hHdeJoSTyz0uPw76yc6XE"}, {"label": "TOP-01 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RAkRieEnQozP-ZkCqp9p_ahyQRnhw06NfMwKrjRiRYiuU"}]}, {"id": "top-02", "x": 975, "y": 2289, "status": "open", "family": "Turing open problems", "label": "TOP-02 \u00b7 diffusion ratio census", "sub": "res 74.3 (panel) \u00b7 viab 66.61% pooled [58.55\u201378.01]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "The diffusion-ratio problem: which molecularly identified Turing systems can be two-species at all? ANCHOR: Gierer-Meinhardt 1972 -> Marcon 2016 -> 2025 'fundamental limits'. GAP: Two-species activator-inhibitor models need D_inh/D_act above the Lean-checked threshold (d_c = 3.93 for the repo's Gray-Scott Jacobian; ~4-10 generally), yet measured extracellular diffusivities rarely show it; three-node networks with an immobile node remove the requirement (Marcon 2016) and extracellular wiring changes behaviour qualitatively (2025 bioRxiv). Nobody has tabulated, system by system, which of the molecularly supported cases (WNT/DKK, FGF/Shh palate, Bmp-Sox9-Wnt digits, GDF5/NOG joints, EDAR/WNT/BMP ridges, Nodal/Lefty) actually satisfies the two-species condition with measured D. DONE: A registered table of >=6 molecular Turing systems giving measured or bounded D_act, D_inh (with DOI), run through the repo's dispersion relation, classifying each as two-node-feasible / needs immobile third node / D unmeasured; the count in each class pre-registered before the literature values are looked up. TOOL ROUTE: python3 morphoeval/scout_literature.py --query '<morphogen> diffusion coefficient FRAP FCS' per system; models/1952-turing-morpho.py dispersion (Lean turing_differential_diffusion_instability, d_c = 3.9271); predictions/ registry row for the pre-registered counts. PROVISIONAL (single assessor, 2026-10-27): resolvability 78/100 (RESOLVE NOW); viability 55.7% (prior 50%, net +1 dB; verdict DECIDABLE_TABLE_MOSTLY_UNMEASURED_ROWS). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 74.3 (range 61\u201389; RESOLVE NOW); pooled viability 66.61% (net +3 dB; panel range 58.55\u201378.01%). GPT 5.6 Sol Medium: res 73, 58.55% (+1.5 dB), PLAUSIBLY_DECISIVE \u2014 A useful census is achievable, but class rules must distinguish unmeasured transport from evidence for a third immobile node. Gemini 4 Argon Medium: res 89, 78.01% (+5.5 dB), HIGHLY_TRACTABLE_DECISIVE \u2014 The crux is distinguishing truly unmeasured in vivo diffusivities from indirect effective range estimates, since all three classification buckets are already guaranteed to be populated by Nodal/Lefty, Bmp-Sox9-Wnt, and WNT/DKK. Note that d_c = 3.9271 is specific to Turing's 1952 numerical Jacobian example, whereas each biological system has its own kinetic Jacobian bounds on D_inh/D_act. Claude Fable 5.1 Thinking High (fresh context): res 61, 61.31% (+2 dB), CENSUS_REACHABLE_CLASSES_DISPUTABLE \u2014 Crux: the table will be assembled, but 'two-node-feasible' needs a per-system Jacobian or a stated generic bound; the packet's reliance on the GS d_c is the weak link. Prior attempts: None in repo. scout-063 ZF-TUR-01 kernel-checked a size-prior D ratio (D_inh/D_act < 1 for chd/bmp2b) \u2014 a related negative.", "nanopubs": [{"label": "TOP-02 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RAuS57SWttfCqMSDztyeBD27DgvQ88biO9JwCXUus0oP0"}, {"label": "TOP-02 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RAs2b6WMekBSmXmKrhfmiwVYzF6LAXgDAPh0sNuEahrQM"}]}, {"id": "top-06", "x": 1215, "y": 2289, "status": "open", "family": "Turing open problems", "label": "TOP-06 \u00b7 reproducible topology", "sub": "res 69.7 (panel) \u00b7 viab 49.02% pooled [35.99\u201371.53]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "Reproducible topology: why five digits every time when RD from noise gives defective labyrinths ANCHOR: Sheth 2012 -> Raspopovic 2014 -> Green-Sharpe 2015. GAP: RD from random initial conditions yields labyrinths with defects; embryos give five digits almost every time. The Turing + positional-information hybrid (Hox dosage sets wavelength, FGF/Wnt gradients orient) explains cases, but there is no general, tested account of how prepattern and boundaries lock topology. DONE: A Bmp-Sox9-Wnt three-node RD on a growing fan-shaped limb-bud domain with published parameters and gradient modulation, pre-registered to produce exactly five rays in >=95% of 200 random-IC runs (and the Hox-dose polydactyly series of Sheth 2012 on dose reduction); scored as registered. TOOL ROUTE: New script (no BSW model exists in models/); 2D RD solver base from models/1952-turing-morpho.py; registry row for the 95% threshold. PROVISIONAL (single assessor, 2026-10-27): resolvability 60/100 (RESOLVABLE WITH WORK); viability 28.5% (prior 50%, net -4 dB; verdict MODEL_MUST_BE_BUILT_FIRST). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 69.7 (range 62\u201379; RESOLVABLE WITH WORK); pooled viability 49.02% (net -0.17 dB; panel range 35.99\u201371.53%). GPT 5.6 Sol Medium: res 62, 35.99% (-2.5 dB), DOUBTFUL \u2014 The criterion is decisive, but substantial model reconstruction and underdetermined boundary choices make a decisive faithful result uncertain. Gemini 4 Argon Medium: res 68, 38.69% (-2 dB), SOLVER_HEAVY_LIKELY_REFUTATION \u2014 The crux is that achieving >=95% topological locking of exactly 5 rays from unseeded random initial conditions on a finite-difference fan grid is notoriously sensitive to boundary no-flux discretization and growth rate schedules. Even if the script finishes, the hypothesis as stated (>=95% five-ray success) will very likely be refuted unless pre-existing AP polarity (Shh/Gli3 gradient) is also included. Claude Fable 5.1 Thinking High (fresh context): res 79, 71.53% (+4 dB), DECISIVE_SIM_FAITHFULNESS_CONTESTED \u2014 Crux: the packet's tool_route is out of date; BSW + Hox-dose scripts exist. Likely outcome is failure of the 95% gate (RD from noise rarely locks topology), which is still decisive provided the model is accepted as faithful. PACKET CORRECTION: The packet's tool_route said 'no BSW model exists in models/'. False: models/2014-raspopovic-bmp-sox9-wnt-digits.py (2,066 lines, Pass 3: Bmp-Sox9-Wnt 3-node RD on a growing polar-fan limb-bud mesh, Crampin-Gaffney-Maini dilution) and models/2012-sheth-hox-turing-polydactyly.py (1,619 lines) already exist. Caught by the Claude Fable panellist, verified by the aggregator. The provisional tool_fit (9/25) under-priced this problem; the panel scores stand as recorded, and a re-score with the corrected route is the next action on TOP-06. Prior attempts: None in repo.", "nanopubs": [{"label": "TOP-06 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RAx9_0h0abPmXuBzrTxzbC6oM9orEEV1JjYSv09vGfktw"}, {"label": "TOP-06 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RA-xC1vbE5judBsU0oBTBeUvKgMzb4V1pq46efmvEOC88"}]}, {"id": "top-05", "x": 20, "y": 2377, "status": "open", "family": "Turing open problems", "label": "TOP-05 \u00b7 wavelength scaling", "sub": "res 60.7 (panel) \u00b7 viab 39.62% pooled [26.19\u201361.31]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "Scaling: does biological pattern wavelength scale with body size across taxa, against Turing's intrinsic wavelength? ANCHOR: Turing 1952 (intrinsic wavelength) -> Werner 2015 (scaling). GAP: Turing wavelength is set by kinetics and diffusion, not domain size, yet many biological patterns scale with the organism (planarian regeneration, Werner 2015; expansion-repression schemes). No cross-taxon regression of measured wavelength against body size exists. The repo's 976 *_turing_wavelength dataset folders look like such an asset but their empirical_series are alpha-template curves (x_control 0.5-5.0, r=0.999 fits), not measurements (scout-048 / scout-062 data-quality findings), so they cannot decide this. DONE: A pre-registered log-log regression of measured pattern wavelength on body size for >=10 taxa with real, DOI-cited measurements (hair-follicle spacing, fish stripe period, digit spacing, palatal ruga spacing), slope and CI locked before extraction; verdict = slope CI excludes 0 (scaling) or excludes 1 (intrinsic) or neither. TOOL ROUTE: scout_literature.py for measurements; a new extraction table under datasets/; registry row. The catalog templates must NOT be used as evidence. PROVISIONAL (single assessor, 2026-10-27): resolvability 54/100 (RESOLVABLE WITH WORK); viability 16.6% (prior 50%, net -7 dB; verdict DATA_ASSET_IS_AN_ARTEFACT). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 60.7 (range 53\u201375; RESOLVABLE WITH WORK); pooled viability 39.62% (net -1.83 dB; panel range 26.19\u201361.31%). GPT 5.6 Sol Medium: res 53, 26.19% (-4.5 dB), UNLIKELY_DECISIVE \u2014 The decision rule must be repaired before preregistration: test slope=0 for intrinsic wavelength and slope=1 for proportional scaling, with an explicit rule for rejecting neither or both. Gemini 4 Argon Medium: res 75, 61.31% (+2 dB), FEASIBLE_LITERATURE_META_ANALYSIS \u2014 The crux is normalizing body size to the exact embryonic stage when the pattern is laid down rather than adult size; otherwise an embryonic mouse hair follicle and an adult angelfish stripe lie on incomparable size axes. The packet rightly forbids the 976 catalog template folders but should specify that length L must be measured at the developmental stage of pattern initiation. Claude Fable 5.1 Thinking High (fresh context): res 54, 33.39% (-3 dB), TABLE_HEAVY_DESIGN_CONTESTABLE \u2014 Crux: the regression is cheap but the inferential design (cross-taxon, mixed pattern types) does not cleanly test Turing's intrinsic wavelength; restricting to one pattern type (e.g. fish stripe period) would sharpen it at the cost of taxon count. Prior attempts: scout-048 BIO-TPL-DQ-01 and scout-062 established the catalog empirical curves are template artefacts; no scaling test attempted.", "nanopubs": [{"label": "TOP-05 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RAq7_HN_kcEv0pX-MKpWmfIYJHu-jcMmyVBJqdi1ENFhA"}, {"label": "TOP-05 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RAdbLEbSoRPP9MHYUNjuiAP2IiQMaC51ju88q0wL7EijY"}]}, {"id": "top-04", "x": 255, "y": 2377, "status": "open", "family": "Turing open problems", "label": "TOP-04 \u00b7 stripe insertion blind", "sub": "res 57.7 (panel) \u00b7 viab 22.67% pooled [16.63\u201328.47]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "Growing domains: an independent ontogenetic stripe-count series to test the insertion law blind ANCHOR: Kondo-Asai 1995 -> Crampin-Gaffney-Maini 1999 -> Krause 2021. GAP: Classical Turing conditions are neither necessary nor sufficient on growing domains and wavelength selection under growth has no closed theory (Krause et al. 2021). Empirically, Kondo-Asai's Pomacanthus series remains nearly the only ontogenetic stripe-count dataset, and the repo's Kondo stripe table is calibrated on it (circularity recorded in scout-034/038; OP-06 growing-domain solver debt still open). DONE: A hash-locked prediction N_stripes(L) = round(L/lambda_c) with lambda_c fixed from one stage, scored on an independently sourced Pomacanthus (or other stripe-inserting fish) ontogenetic series of >=6 stages with body length metadata, each image SHA-256 pinned before counting; result reported either way. TOOL ROUTE: python3 morphoeval/scout_literature.py --taxon 'Pomacanthus semicirculatus' (Commons + OpenAlex); verify_image_fitness.py / the Y-junction skeleton detector for counting; predictions/ registry for the lock. PROVISIONAL (single assessor, 2026-10-27): resolvability 66/100 (RESOLVABLE WITH WORK); viability 33.4% (prior 50%, net -3 dB; verdict BLOCKED_ON_DATA_NOT_ON_TOOLS). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 57.7 (range 49\u201368; RESOLVABLE WITH WORK); pooled viability 22.67% (net -5.33 dB; panel range 16.63\u201328.47%). GPT 5.6 Sol Medium: res 56, 28.47% (-4 dB), UNLIKELY_DECISIVE \u2014 The bottleneck is not computation but finding a genuinely independent, size-annotated ontogenetic series. Gemini 4 Argon Medium: res 68, 24.03% (-5 dB), DATA_STARVED_HIGH_RISK \u2014 The crux is data availability: wildlife photographs on Wikimedia Commons and iNaturalist almost never include ruler scale bars or standard lengths across six juvenile-to-adult stages. Switching the taxon to zebrafish (Danio rerio SL vs interstripe count in Parichy's staging series) or archival museum fish plates with scale bars is much more realistic than sourcing Pomacanthus from Commons. Claude Fable 5.1 Thinking High (fresh context): res 49, 16.63% (-7 dB), DATA_ACQUISITION_BLOCKS_VERDICT \u2014 Crux: the series does not exist in any named public place; without it the route stalls before scoring. The packet omits the existing models/1995-kondo-pomacanthus-stripe-insertion.py and its polar-sector solver, which would be the natural prediction engine. Prior attempts: scout-031 (Kondo ontogenetic series beyond one adult photo), scout-034/038 (circular calibration), scout-032 (Y-junction over-count) \u2014 all record the gap, none closed it.", "nanopubs": [{"label": "TOP-04 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RAwLRzZoqnZF5JEXuZKYW44V8Ccybeo_xiWSjN2I1tnU8"}, {"label": "TOP-04 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RAm_FYYHQAoGVxQ4ZO4mkBZ_banbiM7kMfR9-n9oYmgD8"}]}, {"id": "top-10", "x": 490, "y": 2377, "status": "open", "family": "Turing open problems", "label": "TOP-10 \u00b7 ecological turing fairy circles", "sub": "res 53 (panel) \u00b7 viab 24.75% pooled [24.03\u201326.19]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "Ecology-scale Turing: fairy circles as scale-dependent-feedback RD vs termite engineering ANCHOR: Klausmeier 1999 -> Getzin 2016 -> Tarnita 2017. GAP: Namibian and Australian fairy circles are still contested between vegetation reaction-diffusion (scale-dependent feedback) and termite engineering; Tarnita 2017 shows the two are not exclusive. Pattern statistics alone (hexagonal order, pair correlation) have not settled it \u2014 the same lesson as TOP-01. DONE: A pre-registered comparison of a vegetation RD model and a termite-territory model against public aerial-imagery pair-correlation and Voronoi statistics with locked discrimination thresholds; reported either way. TOOL ROUTE: No ecological model or imagery in repo; new scripts and a public data fetch would be required. PROVISIONAL (single assessor, 2026-10-27): resolvability 51/100 (RESOLVABLE WITH WORK); viability 28.5% (prior 50%, net -4 dB; verdict OUTSIDE_THE_REPO_AND_LIKELY_INDECISIVE). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 53 (range 49\u201361; RESOLVABLE WITH WORK); pooled viability 24.75% (net -4.83 dB; panel range 24.03\u201326.19%). GPT 5.6 Sol Medium: res 49, 24.03% (-5 dB), UNLIKELY_DECISIVE \u2014 The binary hypothesis is stronger than the biology supports; a mixture-model or intervention-linked dataset would be needed for mechanism identification. Gemini 4 Argon Medium: res 61, 26.19% (-4.5 dB), EQUIFINAL_STATISTICS_UNLIKELY_DECISIVE \u2014 The crux\u2014explicitly proved by Tarnita et al. (2017)\u2014is that macro-scale fairy-circle centroids from both termite territory competition and scale-dependent water-vegetation feedback converge to the same hexagonal packing limit (6 neighbors, identical g(r) first peak). Only multi-scale sub-meter vegetation patterning between circles or temporal birth-death trajectories can separate the two mechanisms. Claude Fable 5.1 Thinking High (fresh context): res 49, 24.03% (-5 dB), STATISTICS_NON_DISCRIMINATING \u2014 Crux: the packet's own gap statement undermines the done \u2014 static spatial statistics do not separate RD from termite engineering; a decisive test would need dynamics (e.g. rainfall-response or gap-recovery series), which are not in scope here. Prior attempts: None in repo.", "nanopubs": [{"label": "TOP-10 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RAQOKZ8fubXAuBUZTjKNXoWNZqUhrKbj-EzS5M7Zr1gdo"}, {"label": "TOP-10 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RAeyyXbGVvWe79z-duBysXb61bEOK6DP0_R0vKj7lBWhU"}]}, {"id": "top-08", "x": 735, "y": 2377, "status": "open", "family": "Turing open problems", "label": "TOP-08 \u00b7 synthetic eukaryotic turing", "sub": "res 20 (panel) \u00b7 viab 8.18% pooled [5.94\u201310.09]", "time": "2026-10-27", "timeKind": "recorded", "source": "morphoeval/build_turing_open_problems.py \u00b7 morphoeval/audits/2026-10-27-turing-open-problems-assessment.yaml", "detail": "Synthetic realisation: a robust, deterministic periodic Turing pattern in eukaryotic cells ANCHOR: Sekine 2018 -> Tica 2024. GAP: Bacterial three-node circuits now give reproducible concentric stripes but remain condition-sensitive (Tica 2024); the mammalian Nodal-Lefty circuit most likely produced solitary, not periodic, patterns (Sekine 2018). A robust eukaryotic periodic Turing pattern has not been built. DONE: Wet-lab: a eukaryotic circuit producing periodic patterns with pre-registered wavelength reproducibility across >=3 biological replicates. The repo can only contribute the Turing-vs-solitary regime map of the published circuit model. TOOL ROUTE: None adequate: no wet lab. Modelling satellite only (regime map of the Sekine competitive-inhibition model). PROVISIONAL (single assessor, 2026-10-27): resolvability 37/100 (HARD HERE); viability 11.2% (prior 50%, net -9 dB; verdict NOT_WITH_OUR_TOOLS). PANEL (log-odds mean across 3 assessors (equal priors 50%, so pooled net dB = mean net dB)): resolvability mean 20 (range 14\u201326; NOT WITH OUR TOOLS (yet)); pooled viability 8.18% (net -10.5 dB; panel range 5.94\u201310.09%). GPT 5.6 Sol Medium: res 20, 5.94% (-12 dB), NOT_RESOLVABLE \u2014 This is a clear category error for repo-only resolution; modelling can support experimental design but cannot deliver the stated verdict. Gemini 4 Argon Medium: res 26, 10.09% (-9.5 dB), WET_LAB_BLOCKED_OUT_OF_SCOPE \u2014 This problem serves as the negative control calibration anchor for the panel: its definition of done explicitly requires wet-lab eukaryotic synthetic biology across >=3 replicates. Only if the problem were reframed purely around the theoretical Turing-vs-solitary bifurcation boundary of the Sekine (2018) competitive-inhibition PDE could this repository close it. Claude Fable 5.1 Thinking High (fresh context): res 14, 9.09% (-10 dB), OUT_OF_SCOPE_WET_LAB \u2014 Crux: scope. Keep as a tracked external problem; the only in-repo contribution is a modelling regime map, which should be registered as a separate, non-deciding satellite. Prior attempts: None in repo.", "nanopubs": [{"label": "TOP-08 3-provider panel: pooled + 3 viability + 3 resolvability assessments (test registry)", "uri": "https://w3id.org/np/RAjPcAj50amz_e7q06nZ24y5rWJwbjj3gfqYHvzHlMLCw"}, {"label": "TOP-08 provisional claim + 2 assessments (test registry) \u2014 superseded by panel", "uri": "https://w3id.org/np/RACrYCPY3V-F65NXo466csf39GCQhjQEuRBu-PV2NCtDE"}]}], "EDGES": [{"from": "root", "to": "t1", "agent": "panel", "probStatus": "structural"}, {"from": "root", "to": "f1", "agent": "panel", "probStatus": "structural"}, {"from": "root", "to": "r0", "agent": "unattributed", "probStatus": "structural"}, {"from": "root", "to": "l1", "agent": "panel", "probStatus": "structural"}, {"from": "root", "to": "b1", "agent": "unattributed", "probStatus": "structural"}, {"from": "t1", "to": "t2", "agent": "fable", "label": "fit outlines, not landmarks", "probStatus": "not_recorded_historical"}, {"from": "t1", "to": "t2", "agent": "wainwright", "label": "challenge: beat TPS/EFD", "probStatus": "not_recorded_historical"}, {"from": "t2", "to": "t3", "agent": "human", "label": "challenge: is it just box stretch?", "probStatus": "not_recorded_historical"}, {"from": "t3", "to": "t4", "agent": "gemini", "probStatus": "not_recorded_historical"}, {"from": "t2", "to": "t4", "agent": "gemini", "probStatus": "not_recorded_historical"}, {"from": "t4", "to": "t5", "agent": "fable", "probStatus": "pending_delphi"}, {"from": "t5", "to": "t6", "agent": "fable", "label": "hash-lock then unblind", "probStatus": "pending_delphi"}, {"from": "t6", "to": "t7", "agent": "fable", "probStatus": "pending_delphi"}, {"from": "t7", "to": "t8", "agent": "fable", "label": "priors locked 1da6218f", "probStatus": "pending_delphi"}, {"from": "t8", "to": "t9", "agent": "gemini", "label": "Antscan 2026 + Scholtz 2020 crabs", "probStatus": "not_recorded_historical"}, {"from": "t8", "to": "t9", "agent": "fable", "label": "blinded referee audit (f\u2081<0, LOO-CV, F-test)", "probStatus": "not_recorded_historical"}, {"from": "t1", "to": "t4", "agent": "human", "label": "challenge: beyond 791 spp?", "probStatus": "not_recorded_historical"}, {"from": "f1", "to": "f2", "agent": "panel", "probStatus": "pending_delphi"}, {"from": "f2", "to": "f3", "agent": "panel", "label": "dual referees", "probStatus": "not_recorded_historical"}, {"from": "f2", "to": "f3", "agent": "gpt", "probStatus": "not_recorded_historical"}, {"from": "f2", "to": "f3", "agent": "grok", "probStatus": "not_recorded_historical"}, {"from": "f2", "to": "f3", "agent": "gemini", "probStatus": "not_recorded_historical"}, {"from": "f2", "to": "f3", "agent": "sonnet", "probStatus": "not_recorded_historical"}, {"from": "f1", "to": "f4", "agent": "human", "label": "PI: is there something we can prove or resolve?", "probStatus": "not_recorded_historical"}, {"from": "f1", "to": "f4", "agent": "unattributed", "label": "logged test run 2026-10-26: REFUTED", "probStatus": "not_recorded_historical"}, {"from": "f4", "to": "b6", "agent": "unattributed", "label": "verdict + evidence log feed the KG", "probStatus": "not_recorded_historical"}, {"from": "f1", "to": "f5", "agent": "human", "label": "PI: frame as a claim, publish either way", "probStatus": "not_recorded_historical"}, {"from": "f2", "to": "f5", "agent": "panel", "label": "9-pass loop (builder Muse Wonder)", "probStatus": "not_recorded_historical"}, {"from": "f2", "to": "f5", "agent": "fable", "label": "blinded audits 54.4 / 57.7 overturned 2 conclusions", "probStatus": "not_recorded_historical"}, {"from": "f1", "to": "la06", "agent": "wonder", "prob": 86, "probNote": "Single-assessor provisional Delphi posterior for LA06-01 confirmation (86.3%, prior 50 +8dB) -- NOT a panel score; scored outcome: partially_resolved", "label": "LA06-01 Dpp scaling prediction", "probStatus": "provisional_scored"}, {"from": "f5", "to": "b6", "agent": "panel", "label": "negative claim + assessments nanopublished (prod)", "probStatus": "not_recorded_historical"}, {"from": "r0", "to": "r1", "agent": "unattributed", "probStatus": "not_recorded_historical"}, {"from": "r1", "to": "r2", "agent": "unattributed", "probStatus": "not_recorded_historical"}, {"from": "r2", "to": "r3", "agent": "unattributed", "probStatus": "not_recorded_historical"}, {"from": "r3", "to": "r4", "agent": "unattributed", "probStatus": "pending_delphi"}, {"from": "r4", "to": "r5", "agent": "human", "label": "\"not really Problem 1\"", "probStatus": "pending_delphi"}, {"from": "r5", "to": "r6", "agent": "panel", "label": "Delphi pooled", "probStatus": "not_recorded_historical"}, {"from": "r5", "to": "r6", "agent": "fable", "probStatus": "not_recorded_historical"}, {"from": "r5", "to": "r6", "agent": "gpt", "probStatus": "not_recorded_historical"}, {"from": "r5", "to": "r6", "agent": "gemini", "probStatus": "not_recorded_historical"}, {"from": "r6", "to": "r7", "agent": "human", "label": "armed overnight loop", "probStatus": "not_recorded_historical"}, {"from": "r7", "to": "r8", "agent": "human", "label": "\"burning compute\" \u2192 stop, prune", "probStatus": "not_recorded_historical"}, {"from": "r7", "to": "r8", "agent": "fable", "label": "referee audit caught drift", "probStatus": "not_recorded_historical"}, {"from": "r3", "to": "p1", "agent": "unattributed", "probStatus": "pending_delphi"}, {"from": "r4", "to": "p1", "agent": "unattributed", "probStatus": "pending_delphi"}, {"from": "r4", "to": "p2", "agent": "unattributed", "probStatus": "pending_delphi"}, {"from": "r4", "to": "p3", "agent": "unattributed", "probStatus": "pending_delphi"}, {"from": "r6", "to": "p1", "agent": "panel", "prob": 11.52, "probNote": "Delphi pooled bridge posterior (Prize 1)", "probStatus": "delphi_scored"}, {"from": "r6", "to": "p2", "agent": "panel", "prob": 2.03, "probNote": "Delphi pooled bridge posterior (Prize 2)", "probStatus": "delphi_scored"}, {"from": "r6", "to": "p3", "agent": "panel", "prob": 0.04, "probNote": "Delphi pooled bridge posterior (Prize 3)", "probStatus": "delphi_scored"}, {"from": "f5", "to": "b6", "agent": "panel", "prob": 39.3, "probNote": "Delphi pooled posterior, OP-11 path (panel 13.6-75.0%)", "label": "OP-11 route: re-score + migration-wave \u2192 superseding assessment", "probStatus": "delphi_scored"}, {"from": "f1", "to": "r0", "agent": "gemini", "label": "Conus is a flagship", "probStatus": "not_recorded_historical"}, {"from": "l1", "to": "l2", "agent": "panel", "probStatus": "pending_delphi"}, {"from": "l2", "to": "l3", "agent": "sonnet", "probStatus": "not_recorded_historical"}, {"from": "l2", "to": "l4", "agent": "fable", "probStatus": "pending_delphi"}, {"from": "l4", "to": "l5", "agent": "panel", "probStatus": "pending_delphi"}, {"from": "l4", "to": "l6", "agent": "panel", "probStatus": "pending_delphi"}, {"from": "f2", "to": "l6", "agent": "gemini", "probStatus": "pending_delphi"}, {"from": "b1", "to": "b2", "agent": "panel", "label": "register \u2192 score", "probStatus": "not_recorded_historical"}, {"from": "b2", "to": "b3", "agent": "panel", "probStatus": "pending_delphi"}, {"from": "b1", "to": "b4", "agent": "panel", "probStatus": "not_recorded_historical"}, {"from": "b1", "to": "b5", "agent": "unattributed", "probStatus": "pending_delphi"}, {"from": "t6", "to": "b6", "agent": "fable", "label": "same hash-lock contract", "probStatus": "not_recorded_historical"}, {"from": "f2", "to": "b6", "agent": "panel", "probStatus": "not_recorded_historical"}, {"from": "r8", "to": "b6", "agent": "panel", "probStatus": "not_recorded_historical"}, {"from": "root", "to": "pred0", "agent": "wonder", "probStatus": "structural"}, {"from": "pred0", "to": "pred-meta", "agent": "wonder", "probStatus": "structural"}, {"from": "f4", "to": "pred-danio", "agent": "wonder", "label": "BMP evidence base", "probStatus": "structural"}, {"from": "b4", "to": "pred-danio", "agent": "wonder", "label": "zebrafish programme", "probStatus": "structural"}, {"from": "b2", "to": "pred-xenopus", "agent": "wonder", "label": "xenopus programme", "probStatus": "structural"}, {"from": "pred0", "to": "pred-danio", "agent": "wonder", "probStatus": "structural"}, {"from": "pred-danio", "to": "ZF-TUR-01", "agent": "wonder", "prob": 60.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-danio", "to": "ZF-TUR-02", "agent": "wonder", "prob": 85.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-danio", "to": "ZF-HH-01", "agent": "wonder", "prob": 70.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-danio", "to": "ZF-CLK-01", "agent": "wonder", "prob": 55.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-danio", "to": "ZF-VTX-01", "agent": "wonder", "prob": 40.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred0", "to": "pred-drosophila", "agent": "wonder", "probStatus": "structural"}, {"from": "pred-drosophila", "to": "DM-WG-01", "agent": "wonder", "prob": 85.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-drosophila", "to": "DM-HH-01", "agent": "wonder", "prob": 80.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-drosophila", "to": "DM-DPP-01", "agent": "wonder", "prob": 95.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-drosophila", "to": "DM-CLK-NEG-01", "agent": "wonder", "prob": 90.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-drosophila", "to": "DM-MUR-NEG-01", "agent": "wonder", "prob": 45.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred0", "to": "pred-xenopus", "agent": "wonder", "probStatus": "structural"}, {"from": "pred-xenopus", "to": "XT-BMP-01", "agent": "wonder", "prob": 85.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-xenopus", "to": "XT-SHH-01", "agent": "wonder", "prob": 75.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-xenopus", "to": "XT-DQ-01", "agent": "wonder", "prob": 99.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "pred-xenopus", "to": "XT-CLK-01", "agent": "wonder", "prob": 50.0, "probStatus": "registered_prediction", "probNote": "Registered resolvability confidence, predictions/prediction_registry.json (recorded 2026-10-26 before scoring)"}, {"from": "t1", "to": "t-claims", "agent": "wonder", "label": "59-claim registry", "probStatus": "structural"}, {"from": "t-claims", "to": "tch-0", "agent": "wonder", "prob": 5.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (0 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 5%"}, {"from": "t-claims", "to": "tch-1", "agent": "wonder", "prob": 5.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (0 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 5%"}, {"from": "t-claims", "to": "tch-2", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 4 claims (4 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-3", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 4 claims (4 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-4", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 2 claims (2 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-5", "agent": "wonder", "prob": 77.5, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 4 claims (3 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 77.5%"}, {"from": "t-claims", "to": "tch-6", "agent": "wonder", "prob": 5.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (0 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 5%"}, {"from": "t-claims", "to": "tch-7", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 3 claims (3 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-8", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 2 claims (2 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-9", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 2 claims (2 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-10", "agent": "wonder", "prob": 35.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (0 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 35%"}, {"from": "t-claims", "to": "tch-11", "agent": "wonder", "prob": 10.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (0 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 10%"}, {"from": "t-claims", "to": "tch-12", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 2 claims (2 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-13", "agent": "wonder", "prob": 70.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 2 claims (1 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 70%"}, {"from": "t-claims", "to": "tch-14", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (1 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-15", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (1 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-16", "agent": "wonder", "prob": 100.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (1 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 100%"}, {"from": "t-claims", "to": "tch-17", "agent": "wonder", "prob": 67.5, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 2 claims (1 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 67.5%"}, {"from": "t-claims", "to": "tch-18", "agent": "wonder", "prob": 75.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 3 claims (2 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 75%"}, {"from": "t-claims", "to": "tch-19", "agent": "wonder", "prob": 15.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (0 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 15%"}, {"from": "t-claims", "to": "tch-20", "agent": "wonder", "prob": 91.3, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 19 claims (16 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 91.3%"}, {"from": "t-claims", "to": "tch-21", "agent": "wonder", "prob": 5.0, "probStatus": "provisional_scored", "probNote": "P(resolvable) = mean of per-claim rubric scores for this chapter's 1 claims (0 already resolved at 100%), scored 2026-10-27 by thompson/score_1917_resolvability.py over dataset-existence/automation/effort. Deterministic rubric pricing resolvability, NOT a Delphi posterior and NOT P(Thompson was right). Per-claim ledger: thompson/thompson_1917_resolvability.json.", "label": "P(resolve) 5%"}, {"from": "f3", "to": "tu0", "agent": "fable", "label": "forward from the Turing flagship debt", "probStatus": "structural"}, {"from": "f5", "to": "tu0", "agent": "fable", "label": "generalise the cow null", "probStatus": "structural"}, {"from": "tu0", "to": "tu-panel", "agent": "panel", "label": "blinded 3-provider panel", "probStatus": "structural"}, {"from": "tu0", "to": "top-07", "agent": "fable", "prob": 50.0, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net +0 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 78/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-07", "agent": "panel", "prob": 77.3, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 71.53%, Gemini 4 Argon 79.92%, Claude Fable 5.1 79.92%), prior 50%, net +5.33 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 89.7/100 is the separate axis."}, {"from": "tu0", "to": "top-09", "agent": "fable", "prob": 38.7, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net -2 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 71/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-09", "agent": "panel", "prob": 57.6, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 64.01%, Gemini 4 Argon 69.12%, Claude Fable 5.1 38.69%), prior 50%, net +1.33 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 79.7/100 is the separate axis."}, {"from": "tu0", "to": "top-03", "agent": "fable", "prob": 79.9, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net +6 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 88/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-03", "agent": "panel", "prob": 70.0, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 61.31%, Gemini 4 Argon 79.92%, Claude Fable 5.1 66.61%), prior 50%, net +3.67 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 78.7/100 is the separate axis."}, {"from": "tu0", "to": "top-01", "agent": "fable", "prob": 55.7, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net +1 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 77/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-01", "agent": "panel", "prob": 59.5, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 61.31%, Gemini 4 Argon 55.73%, Claude Fable 5.1 61.31%), prior 50%, net +1.67 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 76/100 is the separate axis."}, {"from": "tu0", "to": "top-02", "agent": "fable", "prob": 55.7, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net +1 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 78/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-02", "agent": "panel", "prob": 66.6, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 58.55%, Gemini 4 Argon 78.01%, Claude Fable 5.1 61.31%), prior 50%, net +3 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 74.3/100 is the separate axis."}, {"from": "tu0", "to": "top-06", "agent": "fable", "prob": 28.5, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net -4 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 60/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-06", "agent": "panel", "prob": 49.0, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 35.99%, Gemini 4 Argon 38.69%, Claude Fable 5.1 71.53%), prior 50%, net -0.17 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 69.7/100 is the separate axis."}, {"from": "tu0", "to": "top-05", "agent": "fable", "prob": 16.6, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net -7 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 54/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-05", "agent": "panel", "prob": 39.6, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 26.19%, Gemini 4 Argon 61.31%, Claude Fable 5.1 33.39%), prior 50%, net -1.83 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 60.7/100 is the separate axis."}, {"from": "tu0", "to": "top-04", "agent": "fable", "prob": 33.4, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net -3 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 66/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-04", "agent": "panel", "prob": 22.7, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 28.47%, Gemini 4 Argon 24.03%, Claude Fable 5.1 16.63%), prior 50%, net -5.33 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 57.7/100 is the separate axis."}, {"from": "tu0", "to": "top-10", "agent": "fable", "prob": 28.5, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net -4 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 51/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-10", "agent": "panel", "prob": 24.8, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 24.03%, Gemini 4 Argon 26.19%, Claude Fable 5.1 24.03%), prior 50%, net -4.83 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 53/100 is the separate axis."}, {"from": "tu0", "to": "top-08", "agent": "fable", "prob": 11.2, "probStatus": "provisional_scored", "probNote": "Single-assessor provisional Delphi posterior (Claude Fable 5.1 Thinking High (single assessor, provisional)), prior 50% net -9 dB, recorded 2026-10-27 BEFORE any attempt \u2014 NOT a panel score. Resolvability 37/100 by the Problem-Scout rubric is a separate axis."}, {"from": "tu-panel", "to": "top-08", "agent": "panel", "prob": 8.2, "probStatus": "delphi_scored", "probNote": "3-provider pooled Delphi posterior (log-odds mean; GPT 5.6 Sol 5.94%, Gemini 4 Argon 10.09%, Claude Fable 5.1 9.09%), prior 50%, net -10.5 dB, recorded 2026-10-27 before any attempt; supersedes the provisional edge. Panel resolvability mean 20/100 is the separate axis."}], "DELPHI": {"p1": {"id": "p1", "title": "Prize 1 \u00b7 Center-Column Aperiodicity", "statement": "For the single-cell seed, c_t = a_{t,0} never becomes eventually periodic: for all t0 \u2265 0 and \u03a0 \u2265 1, some t \u2265 t0 has c_{t+\u03a0} \u2260 c_t.", "resolvability": 0.85, "provedNow": 0, "conjectureTruth": 99.98, "subgoalTotal": {"fable": 45.75, "gpt": 67.75, "gemini": 57.2, "panel": 56.9}, "pooled": {"agent": "3-model pooled (log-odds)", "prior": 7.07, "forDb": 14.17, "againstDb": -11.83, "netDb": 2.33, "bf": 1.711, "posterior": 11.52, "confidence": 0.66, "verdict": "Pooled posterior 11.52% (mean of agents 13.07%)"}, "agents": [{"agent": "Claude Fable 5.1", "prior": 5, "forDb": 13.5, "againstDb": -13, "netDb": 0.5, "bf": 1.122, "posterior": 5.576, "confidence": 0.6, "verdict": "PARTIAL_PROGRESS_REDUCED_TO_ONE_OPEN_GLOBAL_LEMMA"}, {"agent": "GPT 5.6 Sol", "prior": 10, "forDb": 15, "againstDb": -11, "netDb": 4, "bf": 2.512, "posterior": 21.82, "confidence": 0.68, "verdict": "PROMISING_REDUCTION_BUT_MAJOR_GLOBAL_INVARIANT_MISSING"}, {"agent": "Gemini 4 Argon", "prior": 7, "forDb": 14, "againstDb": -11.5, "netDb": 2.5, "bf": 1.778, "posterior": 11.805, "confidence": 0.7, "verdict": "SHARP_REDUCTION_TO_PHASE_ALIGNMENT_OBSTRUCTION"}], "subgoals": [{"id": "P1.1", "label": "Exact 1D boundary & Bi-Mahler reductions (left-cone autonomy, opaque mirror, defect field D_m, B_p shell collapse)", "weight": 15, "tier": "Tier A (Proved)", "fable": 90, "gpt": 95, "gemini": 92, "panel": 92.3}, {"id": "P1.2", "label": "Finite & boundary-onset exhaustion (74.25M necklaces \u03a0\u226430; 249,500 pairs (t0,\u03a0)<(500,500))", "weight": 15, "tier": "Tier B (Verified)", "fable": 80, "gpt": 100, "gemini": 90, "panel": 90}, {"id": "P1.3", "label": "All-t0, all-\u03a0 infinite word families (\u03a0=1; 1^a0^b a\u22658; (1^7 0)^r; (1^8 0^2)^r; 2r/4r-run gate-lock)", "weight": 20, "tier": "Tier A (Restricted classes)", "fable": 40, "gpt": 75, "gemini": 58, "panel": 57.7}, {"id": "P1.4", "label": "Inward wavefront & global phase-support clash \u2014 forcing D1(t)=1 onto {c_t=1} for short runs 1\u2264a_i\u22647, all t0, \u03a0", "weight": 35, "tier": "Tier A wavefront / Tier C clash OPEN", "fable": 20, "gpt": 45.7, "gemini": 30, "panel": 31.9}, {"id": "P1.5", "label": "Referee-grade end-to-end proof hygiene & Lean 4 kernel coverage", "weight": 15, "tier": "Tier A/B (single-step kernels)", "fable": 35, "gpt": 50, "gemini": 52, "panel": 45.7}], "evidenceFor": [{"db": 3.5, "text": "Pure left-cone causal functional B_t(m) & Pascal\u2013Lucas Green's function (Thm 44)"}, {"db": 3.5, "text": "Joint-seam (c_t, l1(t)) impossibility for all t0, \u03a0 \u2265 1 (Thm 36(1))"}, {"db": 3, "text": "4-line inward wavefront: D1(t)=1 infinitely often; D2(t)=D1(t+1)\u2295D1(t) (Thms 45, 47)"}, {"db": 2.5, "text": "All-t0 gate-lock infinite families via 3-bit right-wall trap W3 (Thms 32, 37, 38, 40, 42)"}, {"db": 1.5, "text": "Depth-1 right cylinder kills sparse pulses in 1st period; post-period survival \u226419 steps"}], "evidenceAgainst": [{"db": -4.5, "text": "Depth-1 right cylinder has positive topological entropy (~0.32 bits/step) on short runs 1\u2264a_i\u22647"}, {"db": -4, "text": "Transparent-gate loophole: when c_t=0, r1(t) can absorb D1(t)=1 with no immediate contradiction"}, {"db": -2, "text": "Opaque-mirror survival window grows linearly (~7\u03a0 steps, \u226413 pulses) on sparse pulses"}, {"db": -1, "text": "Even-weight barriers beyond k4=400 branch on transient history of c_t"}]}, "p2": {"id": "p2", "title": "Prize 2 \u00b7 Center-Column Density 1/2", "statement": "Asymptotic density of 1s in the center column equals 1/2: lim (1/T) \u03a3_{t<T} a_{t,0} = 1/2.", "resolvability": 0.65, "provedNow": 0, "conjectureTruth": 99.23, "subgoalTotal": {"fable": 42.1, "gpt": 44, "gemini": 44, "panel": 43.37}, "pooled": {"agent": "3-model pooled (log-odds)", "prior": 4.95, "forDb": 7, "againstDb": -11, "netDb": -4, "bf": 0.398, "posterior": 2.033, "confidence": 0.69, "verdict": "Pooled posterior 2.03% (mean 2.20%); net WoE \u22124.0 dB identical for all three agents"}, "agents": [{"agent": "Claude Fable 5.1", "prior": 3, "forDb": 6, "againstDb": -10, "netDb": -4, "bf": 0.398, "posterior": 1.216, "confidence": 0.65, "verdict": "STRUCTURAL_REFORMULATION_ONLY_MISSING_DIAGONAL_DECORRELATION"}, {"agent": "GPT 5.6 Sol", "prior": 8, "forDb": 8, "againstDb": -12, "netDb": -4, "bf": 0.398, "posterior": 3.346, "confidence": 0.72, "verdict": "UNLIKELY_WITHOUT_NEW_DECORRELATION_OR_ERGODIC_INPUT"}, {"agent": "Gemini 4 Argon", "prior": 5, "forDb": 7, "againstDb": -11, "netDb": -4, "bf": 0.398, "posterior": 2.052, "confidence": 0.7, "verdict": "EXACT_HORIZONTAL_BALANCE_WITHOUT_DIAGONAL_DISCREPANCY_BOUND"}], "subgoals": [{"id": "P2.1", "label": "Exact midpoint & Bi-Mahler diagonal representation c_S = A_S(\u230aS/2\u230b)", "weight": 15, "tier": "Tier A (Proved)", "fable": 90, "gpt": 100, "gemini": 95, "panel": 95}, {"id": "P2.2", "label": "Exact 1/2 density on doubling & 1-step post-doubling crystals (top-octave Mahler delta law)", "weight": 20, "tier": "Tier A (Doubling horizons)", "fable": 60, "gpt": 80, "gemini": 70, "panel": 70}, {"id": "P2.3", "label": "Finite-scale plateau & 2-adic torus equidistribution (0.500109 over 1.4M bits; 0.499837 on Z2^2)", "weight": 15, "tier": "Tier B (Verified)", "fable": 70, "gpt": 75, "gemini": 75, "panel": 73.3}, {"id": "P2.4", "label": "Diagonal-sample decorrelation / discrepancy bound along j=\u230aS/2\u230b", "weight": 35, "tier": "Tier C (OPEN)", "fable": 8, "gpt": 5, "gemini": 6, "panel": 6.3}, {"id": "P2.5", "label": "Proof of limit existence & referee-grade ergodic formalisation", "weight": 15, "tier": "Tier C (OPEN)", "fable": 22, "gpt": 0, "gemini": 16, "panel": 12.7}], "evidenceFor": [{"db": 3, "text": "Exact midpoint crystal identity & M\u00f6bius shell collapse"}, {"db": 3, "text": "Exact 1/2 density on all doubling / post-doubling crystals (Mahler delta law)"}, {"db": 1, "text": "2-adic projective tower equidistribution r=1..15 (32,705/65,536 = 0.49904)"}], "evidenceAgainst": [{"db": -6, "text": "No exponential-sum / Weyl discrepancy bound along diagonal j=\u230aS/2\u230b"}, {"db": -3, "text": "P_S = 2^{n_S} grows exponentially: diagonal visits a vanishing fraction of each period"}, {"db": -2, "text": "Non-doubling interior crystals (19/41 to S=41) deviate from exact 1/2"}]}, "p3": {"id": "p3", "title": "Prize 3 \u00b7 \u03a9(n) Complexity Lower Bound", "statement": "Computing the n-th center-column bit from the single-cell seed requires \u03a9(n) operations.", "resolvability": 0.25, "provedNow": 0, "conjectureTruth": 86.08, "subgoalTotal": {"fable": 21.85, "gpt": 37.25, "gemini": 26.5, "panel": 28.53}, "pooled": {"agent": "3-model pooled (log-odds)", "prior": 1, "forDb": 2.5, "againstDb": -16.83, "netDb": -14.33, "bf": 0.037, "posterior": 0.037, "confidence": 0.82, "verdict": "Pooled posterior 0.04% \u2014 effectively barrier-blocked"}, "agents": [{"agent": "Claude Fable 5.1", "prior": 0.5, "forDb": 2, "againstDb": -11, "netDb": -9, "bf": 0.126, "posterior": 0.063, "confidence": 0.8, "verdict": "BARRIER_BLOCKED_WRONG_OBJECT_MULTIVARIATE_VS_FIXED_SEED"}, {"agent": "GPT 5.6 Sol", "prior": 2, "forDb": 3, "againstDb": -23, "netDb": -20, "bf": 0.01, "posterior": 0.02, "confidence": 0.85, "verdict": "EFFECTIVELY_BLOCKED_BY_FIXED_INPUT_COMPLEXITY_BARRIER"}, {"agent": "Gemini 4 Argon", "prior": 1, "forDb": 2.5, "againstDb": -16.5, "netDb": -14, "bf": 0.04, "posterior": 0.04, "confidence": 0.82, "verdict": "BLOCKED_BY_UNIFORM_COMPLEXITY_AND_SEED_SPECIALIZATION_BARRIER"}], "subgoals": [{"id": "P3.1", "label": "Formal computational model (fixed seed, input = binary T of length log2 T, cost metric)", "weight": 10, "tier": "Gap identified", "fable": 30, "gpt": 30, "gemini": 35, "panel": 31.7}, {"id": "P3.2", "label": "Multivariate ANF degree deg(c_T)=2T\u22121 & unique top monomial (Thm 35(2))", "weight": 20, "tier": "Tier A/B (General input)", "fable": 55, "gpt": 100, "gemini": 75, "panel": 76.7}, {"id": "P3.3", "label": "General-input circuit size \u22652T & decision-tree depth \u22652T\u22121", "weight": 15, "tier": "Tier A (General input)", "fable": 40, "gpt": 95, "gemini": 53.3, "panel": 62.8}, {"id": "P3.4", "label": "Specialisation transfer: arbitrary initial row \u2192 fixed unit seed", "weight": 25, "tier": "Tier C (OPEN barrier)", "fable": 5, "gpt": 0, "gemini": 0, "panel": 1.7}, {"id": "P3.5", "label": "Uniform RAM/Turing \u03a9(T)=\u03a9(2^{|T|}) lower bound from binary index T", "weight": 30, "tier": "Tier C (OPEN barrier)", "fable": 2, "gpt": 0, "gemini": 0, "panel": 0.7}], "evidenceFor": [{"db": 1.5, "text": "Exact ANF degree 2T\u22121, unique top monomial, 2T+1 influential variables (general row)"}, {"db": 1, "text": "M\u00f6bius shell collapse & Mahler degree growth rule out finite-state 2-automatic shortcuts"}], "evidenceAgainst": [{"db": -9.5, "text": "Uniform \u03a9(T) bound for a fixed seed needs breakthrough uniform complexity lower bounds"}, {"db": -5, "text": "Multivariate degree bounds vanish under specialisation to the unit seed"}, {"db": -2, "text": "No formal RAM/circuit restriction specified in the prize formulation"}]}, "bos": {"id": "bos", "title": "OP-11 \u00b7 Cow follow-ups (re-score + migration-wave)", "statement": "Within this repo's means, OP-11 succeeds: the independent re-score confirms the published verdict's robustness AND the migration-wave variant yields a decisive statistical separation (or decisive non-separation) between growing RD and colonisation on the existing 10 specimens.", "resolvability": 0.72, "provedNow": 0, "conjectureTruth": null, "subgoalTotal": {"fable": 58.5, "gpt": 66.9, "gemini": 78.6, "panel": 68}, "pooled": {"agent": "3-model pooled (log-odds)", "prior": 39.3, "forDb": 9, "againstDb": -9, "netDb": 0, "bf": 1, "posterior": 39.3, "confidence": 0.72, "verdict": "Pooled posterior 39.30% (panel range 13.62-74.96%) \u2014 balanced evidence, possible pathway"}, "agents": [{"agent": "Claude Fable 5.1", "prior": 20, "forDb": 11, "againstDb": -13, "netDb": -2, "bf": 0.631, "posterior": 13.62, "confidence": 0.6, "verdict": "ACHIEVABLE_BUT_UNDERPOWERED"}, {"agent": "GPT 5.6 Sol", "prior": 42, "forDb": 7.5, "againstDb": -8.5, "netDb": -1, "bf": 0.794, "posterior": 36.52, "confidence": 0.78, "verdict": "PLAUSIBLE_BUT_UNDERPOWERED"}, {"agent": "Gemini 4 Argon", "prior": 60, "forDb": 8.5, "againstDb": -5.5, "netDb": 3, "bf": 1.995, "posterior": 74.96, "confidence": 0.78, "verdict": "LIKELY_ACHIEVABLE"}], "subgoals": [{"id": "B1", "label": "Blinded independent re-score of the Pass 8+ tree reproduces or cleanly refutes the builder's scores/verdict", "weight": 25, "tier": "Process (auditable now)", "fable": 60, "gpt": 72, "gemini": 78, "panel": 70}, {"id": "B2", "label": "Migration-wave colonisation variant implemented and scored on the same coat-masked, scale-matched pipeline", "weight": 30, "tier": "Implementation (harness exists)", "fable": 72, "gpt": 82, "gemini": 85, "panel": 79.7}, {"id": "B3", "label": "Separation between growing RD and colonisation decisive vs seed/specimen noise (paired tests, n=9+1)", "weight": 30, "tier": "Inference (OPEN \u2014 the crux)", "fable": 38, "gpt": 38, "gemini": 68, "panel": 48}, {"id": "B4", "label": "Superseding assessment published (nanopubs + graph) either way", "weight": 15, "tier": "Process (machinery proven)", "fable": 70, "gpt": 86, "gemini": 88, "panel": 81.3}], "evidenceFor": [{"db": 3, "text": "Migration front is a small local change to simulate_melanoblast (dorsal founder row exists); harness + paired stats already built"}, {"db": 3, "text": "Nanopub/KG supersession machinery already shipped audit v7 in production"}, {"db": 2.5, "text": "Published negative verdict matches KIT/MITF genetics, so a re-score is likelier to confirm than overturn"}], "evidenceAgainst": [{"db": -5, "text": "Per-cow differences SD ~1.4 at n=9-10: decisive separation needs a near-unanimous sign a mild variant rarely produces"}, {"db": -3, "text": "Decisive non-separation needs pre-registered equivalence bounds; p=0.91 is absence of evidence"}, {"db": -2, "text": "Earlier blinded audits landed 54-58 vs builder 74.6 \u2014 a 60s re-score neither reproduces nor cleanly refutes"}]}}, "CONCORDANCE": [{"pair": "Fable vs GPT", "spearman": 0.8836, "kendall": 0.7503, "pearson": 0.8734, "mad": 17.85}, {"pair": "Fable vs Gemini", "spearman": 0.9875, "kendall": 0.9417, "pearson": 0.9725, "mad": 8.69}, {"pair": "GPT vs Gemini", "spearman": 0.9215, "kendall": 0.8004, "pearson": 0.9464, "mad": 10.09}]};
const {AGENTS, NODES, EDGES, DELPHI, CONCORDANCE} = DATA;
const ACOL = {human:'#E8C030', fable:'#7B64B8', gemini:'#2E79B5', gpt:'#1F8A65', sonnet:'#C85898', grok:'#F0A040', wainwright:'#2A9A8A', panel:'#5A6CC0', unattributed:'#8888A8', wonder:'#0E7C7B'};
const SCOL = {solved:'#178A5F', partial:'#E79A28', open:'#D64545', refuted:'#7E2A3A', registered:'#3E7FB8', root:'#4B3FA0'};
const SLAB = {solved:'solved / proved', partial:'partial', open:'OPEN', refuted:'refuted / pruned', registered:'registered, unscored', root:'umbrella'};
const W=150,H=76, byId={}; NODES.forEach(n=>byId[n.id]=n);
const S = {agent:'all', sel:'r5', prize:'p1', agentIdx:3, subgoal:'P1.4', prior:7.07};
const $=id=>document.getElementById(id);
const probColor=p=>p>=80?'#0B6E3F':p>=70?'#69B86F':p>=50?'#C9A227':p>=30?'#D98E2B':p>=15?'#C45A24':p>=5?'#B03A2E':'#7E1F2B'; // green is earned, not default: light green only >70%, dark green >80%; below that amber -> red
const probLabel=p=>p>=80?'STRONG':p>=70?'PLAUSIBLE':p>=50?'MIXED':p>=15?'WEAK':'LOW';
const probBadge=p=>`<span class="badge" style="background:${probColor(p)}">${p}% · ${probLabel(p)}</span>`;
const esc=s=>String(s).replace(/&/g,'&').replace(/</g,'<');
function agentButtons(){ $('agentbtns').innerHTML = `<button class="${S.agent==='all'?'on':''}" onclick="setAgent('all')">All agents</button>` + Object.keys(AGENTS).map(a=>`<button class="${S.agent===a?'on':''}" onclick="setAgent('${a}')"><span class="sw" style="background:${ACOL[a]}"></span>${AGENTS[a].name}</button>`).join('');
$('agentnote').textContent = S.agent==='all' ? 'Showing every recorded attempt. Multi-agent / pooled edges use indigo; grey edges are work the repo record does not attribute to a named model.' : `${AGENTS[S.agent].name}: ${AGENTS[S.agent].role}. Other agents' edges are dimmed.`; }
function setAgent(a){ S.agent=a; agentButtons(); drawGraph(); }
/* ---- Zoom & pan: the whole graph lives in <g id="viewport">; view state
{k=scale, tx, ty} is applied as its transform. Wheel zooms to the cursor,
drag pans, two-pointer pinch zooms, buttons/keys mirror the same ops. ---- */
const VIEW = {k:1, tx:0, ty:0};
let suppressClick = false;
const viewTransform = () => `translate(${VIEW.tx},${VIEW.ty}) scale(${VIEW.k})`;
function applyView(){ const vp=document.getElementById('viewport'); if(vp) vp.setAttribute('transform', viewTransform()); const z=$('zoompct'); if(z) z.textContent = Math.round(VIEW.k*100)+'%'; }
const SW=()=>+$('graph').getAttribute('width'), SH=()=>+$('graph').getAttribute('height');
function svgPoint(evt){ const svg=$('graph').getBoundingClientRect(); return {x:(evt.clientX-svg.left)*SW()/svg.width, y:(evt.clientY-svg.top)*SH()/svg.height}; }
function zoomAt(px, py, factor){ const k2=Math.max(0.15, Math.min(5, VIEW.k*factor)); const f=k2/VIEW.k; VIEW.tx = px-(px-VIEW.tx)*f; VIEW.ty = py-(py-VIEW.ty)*f; VIEW.k=k2; applyView(); }
function zoomStep(f){ zoomAt(SW()/2, SH()/2, f); }
function resetView(){ VIEW.k=1; VIEW.tx=0; VIEW.ty=0; applyView(); }
function fitView(){ const vis=NODES.filter(n=>!hiddenNodes().has(n.id)); if(!vis.length) return; const x0=Math.min(...vis.map(n=>n.x))-30, x1=Math.max(...vis.map(n=>n.x))+W+30, y0=Math.min(...vis.map(n=>n.y))-110, y1=Math.max(...vis.map(n=>n.y))+H+30; VIEW.k=Math.max(0.15, Math.min(2, Math.min(SW()/(x1-x0), SH()/(y1-y0)))); VIEW.tx=(SW()-(x1-x0)*VIEW.k)/2 - x0*VIEW.k; VIEW.ty=(SH()-(y1-y0)*VIEW.k)/2 - y0*VIEW.k; applyView(); }
function initZoom(){
const svg=$('graph');
svg.addEventListener('wheel', e=>{ e.preventDefault(); const pt=svgPoint(e); zoomAt(pt.x, pt.y, Math.exp(-e.deltaY*0.0015)); }, {passive:false});
const pointers=new Map(); let drag=null, pinchD=0;
svg.addEventListener('pointerdown', e=>{ pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});
if(pointers.size===1) drag={x:e.clientX,y:e.clientY,moved:0};
if(pointers.size===2){ const [a,b]=[...pointers.values()]; pinchD=Math.hypot(a.x-b.x,a.y-b.y); drag=null; pointers.forEach((_,id)=>svg.setPointerCapture(id)); } });
svg.addEventListener('pointermove', e=>{ if(!pointers.has(e.pointerId)) return; pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});
if(pointers.size===2){ const [a,b]=[...pointers.values()]; const d=Math.hypot(a.x-b.x,a.y-b.y); const r=svg.getBoundingClientRect(); const mid={x:(a.x+b.x)/2,y:(a.y+b.y)/2}; if(pinchD>0) zoomAt((mid.x-r.left)*SW()/r.width,(mid.y-r.top)*SH()/r.height, d/pinchD); pinchD=d; return; }
if(!drag) return; const dx=e.clientX-drag.x, dy=e.clientY-drag.y; drag.moved+=Math.abs(dx)+Math.abs(dy); if(drag.moved>4 && !suppressClick){ suppressClick=true; svg.setPointerCapture(e.pointerId); }
const r=svg.getBoundingClientRect(); VIEW.tx+=dx*SW()/r.width; VIEW.ty+=dy*SH()/r.height; drag.x=e.clientX; drag.y=e.clientY; applyView(); });
const end=e=>{ pointers.delete(e.pointerId); if(pointers.size<2) pinchD=0; if(pointers.size===0){ drag=null; setTimeout(()=>suppressClick=false, 50); } };
svg.addEventListener('pointerup', end); svg.addEventListener('pointercancel', end);
svg.addEventListener('dblclick', e=>{ if(e.target===svg){ const pt=svgPoint(e); zoomAt(pt.x, pt.y, 1.4); } });
document.addEventListener('keydown', e=>{ if(e.target.matches('input,textarea,select')) return;
if(e.key==='+'||e.key==='=') zoomStep(1.25); else if(e.key==='-') zoomStep(0.8);
else if(e.key==='0') resetView(); else if(e.key.toLowerCase()==='f') fitView(); });
}
/* ---- Collapsible downstream: double-click an internal node to hide/reveal
ALL nodes downstream of it (following from->to edges). Category hubs
(root children, organism hubs, Thompson chapter hub) act as folders. ---- */
const CHILDREN={}; EDGES.forEach(e=>{ (CHILDREN[e.from] ??= []).push(e.to); });
const COLLAPSED=new Set();
function descendants(id){ const seen=new Set(), stack=[...(CHILDREN[id]||[])]; while(stack.length){ const c=stack.pop(); if(seen.has(c)) continue; seen.add(c); (CHILDREN[c]||[]).forEach(x=>stack.push(x)); } return seen; }
function hiddenNodes(){ const h=new Set(); COLLAPSED.forEach(id=>descendants(id).forEach(x=>h.add(x))); COLLAPSED.forEach(id=>h.delete(id)); return h; }
function toggleCollapse(id){ COLLAPSED.has(id) ? COLLAPSED.delete(id) : COLLAPSED.add(id); drawGraph(); drawDetail(); }
function expandAll(){ COLLAPSED.clear(); drawGraph(); }
function collapseCategories(){ COLLAPSED.clear(); EDGES.filter(e=>e.from==='root').forEach(e=>COLLAPSED.add(e.to)); ['pred-danio','pred-drosophila','pred-xenopus','t-claims'].forEach(id=>{ if(byId[id]) COLLAPSED.add(id); }); drawGraph(); }
function drawGraph(){
const HIDDEN=hiddenNodes();
const svg=$('graph'); const NS='http://www.w3.org/2000/svg'; svg.innerHTML='';
const vp=document.createElementNS(NS,'g'); vp.setAttribute('id','viewport'); vp.setAttribute('transform', viewTransform()); svg.appendChild(vp);
const lanes=['Thompson 1917','MorphoEval flagships','Rule 30 — main proof chain','Rule 30 prizes','Levin programme','Bioelectric embryo'], lx=[95,330,565,810,1050,1290];
lanes.forEach((l,i)=>{const t=document.createElementNS(NS,'text');t.setAttribute('x',lx[i]);t.setAttribute('y',96);t.setAttribute('text-anchor','middle');t.setAttribute('font-size','11');t.setAttribute('font-weight','700');t.setAttribute('fill','#888');t.textContent=l.toUpperCase();vp.appendChild(t);});
const defs=document.createElementNS(NS,'defs');
Object.keys(AGENTS).forEach(a=>{const m=document.createElementNS(NS,'marker');m.setAttribute('id','arr-'+a);m.setAttribute('markerWidth','7');m.setAttribute('markerHeight','7');m.setAttribute('refX','6');m.setAttribute('refY','3.5');m.setAttribute('orient','auto');m.innerHTML=`<path d="M0,0 L7,3.5 L0,7 z" fill="${ACOL[a]}"/>`;defs.appendChild(m);});
svg.appendChild(defs);
EDGES.forEach((e,i)=>{ const a=byId[e.from],b=byId[e.to]; if(!a||!b||HIDDEN.has(e.from)||HIDDEN.has(e.to))return;
const x1=a.x+W/2,y1=a.y+H,x2=b.x+W/2,y2=b.y,mid=(y1+y2)/2,off=(i%5-2)*3;
const p=document.createElementNS(NS,'path');
p.setAttribute('d', Math.abs(x1-x2)<4?`M${x1+off},${y1} L${x2+off},${y2}`:`M${x1+off},${y1} C${x1+off},${mid} ${x2+off},${mid} ${x2+off},${y2}`);
p.setAttribute('fill','none'); p.setAttribute('stroke',ACOL[e.agent]);
const dim = S.agent!=='all'&&S.agent!==e.agent;
p.setAttribute('stroke-width',dim?'1':'2.2'); p.setAttribute('opacity',dim?'0.10':'0.9');
p.setAttribute('marker-end',`url(#arr-${e.agent})`); vp.appendChild(p);
if(e.prob!==undefined){ const t=document.createElementNS(NS,'text'); t.setAttribute('x',(x1+x2)/2+off+4); t.setAttribute('y',mid-3); t.setAttribute('font-size','9.5'); t.setAttribute('font-weight','700'); t.setAttribute('fill',probColor(e.prob)); t.textContent=e.prob+'%'; vp.appendChild(t); } });
NODES.forEach(n=>{ if(HIDDEN.has(n.id)) return; const g=document.createElementNS(NS,'g'); g.style.cursor='pointer';
g.addEventListener('click',()=>{ if(suppressClick) return; S.sel=n.id; if(typeof PRED!=='undefined' && PRED && PRED.predictions.some(p=>p.id===n.id)){ PS.sel=n.id; PS.org='all'; renderPred(); } if(typeof THOMP!=='undefined' && THOMP){ const ch=THOMP.chapters.find(c=>c.node===n.id); if(ch){ CS.chapter=ch.title; } } focusAggregate(n); if(typeof THOMP!=='undefined' && THOMP) renderClaims(); drawGraph(); drawDetail(); openDrawer(n.id); });
g.addEventListener('dblclick',()=>{ if((CHILDREN[n.id]||[]).length){ toggleCollapse(n.id); closeDrawer(); } else openDrawer(n.id); });
const prob=(n.id==='p1'||n.id==='p2'||n.id==='p3')?DELPHI[n.id].pooled.posterior:undefined;
const fuzzy=n.timeKind==='probabilistic';
const nDown=descendants(n.id).size, isCollapsed=COLLAPSED.has(n.id);
let h=`<title>${esc(n.label)} — click to inspect${nDown?`, double-click to ${isCollapsed?'expand':'collapse'} ${nDown} downstream nodes`:''}</title>`;
if(isCollapsed) h+=`<rect x="${n.x-4}" y="${n.y-4}" width="${W+8}" height="${H+8}" rx="9" fill="none" stroke="#2563eb" stroke-width="2" stroke-dasharray="7 4"/>`;
if(nDown) h+=`<path d="M ${n.x+W-14} ${n.y+2} L ${n.x+W-2} ${n.y+2} L ${n.x+W-2} ${n.y+14} Z" fill="${isCollapsed?'#fff':'#2563eb'}" stroke="#2563eb" stroke-width="1.2"><title>${isCollapsed?`collapsed — double-click to expand ${nDown} downstream nodes`:`double-click to collapse ${nDown} downstream nodes`}</title></path>`;
if(isCollapsed) h+=`<text x="${n.x+W-6}" y="${n.y+H-8}" text-anchor="end" font-size="8" font-weight="700" fill="#2563eb">+${nDown} hidden</text>`;
if(fuzzy)h+=`<rect x="${n.x-4}" y="${n.y-4}" width="${W+8}" height="${H+8}" rx="9" fill="none" stroke="#999" stroke-dasharray="2 5" opacity=".6"/>`;
h+=`<rect x="${n.x}" y="${n.y}" width="${W}" height="${H}" rx="7" fill="${n.status==='root'?'#eef2ff':'#fff'}" stroke="${prob!==undefined?probColor(prob):(n.id===S.sel?'#2563eb':'#bbb')}" stroke-width="${prob!==undefined?3:(n.id===S.sel?2.5:1.2)}" ${fuzzy?'stroke-dasharray="6 4"':''}/>`;
h+=`<path d="M ${n.x+2} ${n.y+2} L ${n.x+14} ${n.y+2} L ${n.x+2} ${n.y+14} Z" fill="${SCOL[n.status]}" stroke="#fff" stroke-width="1"><title>status: ${SLAB[n.status]}</title></path>`;
if(prob!==undefined){ const ag=DELPHI[n.id].agents; h+=ag.map((r,i)=>`<rect x="${n.x+i*W/3}" y="${n.y+H-12}" width="${W/3}" height="12" fill="${probColor(r.posterior)}"><title>${esc(r.agent)}: ${r.posterior}%</title></rect>`).join('')+`<text x="${n.x+W/2}" y="${n.y+H-3}" text-anchor="middle" font-size="8.5" font-weight="700" fill="#fff">bridge ${prob}% pooled</text>`; }
if(n.id==='r6')h+=`<rect x="${n.x}" y="${n.y+H-5}" width="${W/3}" height="5" fill="${probColor(DELPHI.p1.pooled.posterior)}"/><rect x="${n.x+W/3}" y="${n.y+H-5}" width="${W/3}" height="5" fill="${probColor(DELPHI.p2.pooled.posterior)}"/><rect x="${n.x+2*W/3}" y="${n.y+H-5}" width="${W/3}" height="5" fill="${probColor(DELPHI.p3.pooled.posterior)}"/>`;
const labFs=n.label.length>23?9.6:(n.label.length>19?10.4:11.5);
h+=`<text x="${n.x+W/2}" y="${n.y+19}" text-anchor="middle" font-size="${labFs}" font-weight="700" fill="#1c1c1e">${esc(n.label)}</text>`;
if(n.nanopubs&&n.nanopubs.length)h+=`<text x="${n.x+6}" y="${n.y+H-8}" font-size="8" font-weight="700" fill="#2563eb">🔗 ${n.nanopubs.length} live nanopub${n.nanopubs.length>1?'s':''}</text>`;
if(fuzzy)h+=`<text x="${n.x+W-8}" y="${n.y+14}" text-anchor="end" font-size="9" font-weight="700" fill="#888">~prob.</text>`;
if(n.id==='r6')h+=`<text x="${n.x+W-8}" y="${n.y+H-9}" text-anchor="end" font-size="8" font-weight="700" fill="#2563eb">DOUBLE-CLICK TO INSPECT</text>`;
h+=`<foreignObject x="${n.x+6}" y="${n.y+23}" width="${W-12}" height="44"><div xmlns="http://www.w3.org/1999/xhtml" style="font-size:9px;line-height:1.2;color:#5c5c60;text-align:center;font-family:inherit">${esc(n.sub)}</div></foreignObject>`;
g.innerHTML=h; vp.appendChild(g); });
}
function npLive(uri){ return 'https://registry.knowledgepixels.com/np/' + uri.split('/').pop(); }
function npLinks(n){ if(!n.nanopubs||!n.nanopubs.length) return ''; return `<hr style="border:none;border-top:1px solid var(--line)"><b class="small">Live nanopublications</b>` + n.nanopubs.map(np=>`<div class="row"><span class="small">🔗 <a href="${npLive(np.uri)}" target="_blank" rel="noreferrer">${esc(np.label)}</a> <span class="mut">· canonical: <a href="${np.uri}" target="_blank" rel="noreferrer">${esc(np.uri)}</a></span></span></div>`).join('') + `<p class="small mut">Live view = Knowledge Pixels registry (canonical morpholib w3id URIs currently 404 at w3id; registry view verified live).</p>`; }
function edgesList(id){ return EDGES.filter(e=>e.from===id||e.to===id).map(e=>`<div class="row"><span class="sw" style="background:${ACOL[e.agent]}"></span><span class="small">${e.from===id?'→':'←'} ${esc(e.from===id?byId[e.to].label:byId[e.from].label)} — ${AGENTS[e.agent].name}${e.label?` (${esc(e.label)})`:''}</span>${e.prob!==undefined?probBadge(e.prob)+`<span class="small mut">${e.probStatus==='registered_prediction'?'Registered prediction confidence':'Delphi path-success'}${e.probNote?` · ${esc(e.probNote)}`:''}</span>`:e.probStatus==='pending_delphi'?`<span class="badge" style="background:#C06028">PENDING DELPHI — score before attempting</span>`:e.probStatus==='not_recorded_historical'?`<span class="badge" style="background:#888">PRIOR NOT RECORDED (historical)</span>`:e.probStatus==='structural'?`<span class="small mut">structural edge</span>`:`<span class="badge" style="background:#888">NOT SCORED</span>`}</div>`).join('') || '<p class="small mut">No recorded edges.</p>'; }
/* ---- Aggregate nodes: many graph nodes only show a COUNT ("59 claims",
"5 predictions") because the items behind the count are not graph nodes.
These helpers resolve a node to the actual items it stands for, so
clicking the node can list them -- and clicking an item reads it in
full -- right in the inspector/detail card, not only in panels below. ---- */
function nodeClaims(n){ if(typeof THOMP==='undefined'||!THOMP) return []; if(n.id==='t-claims') return THOMP.claims; const ch=THOMP.chapters.find(c=>c.node===n.id); return ch?THOMP.claims.filter(c=>c.chapter_title===ch.title):[]; }
function nodePreds(n){ if(typeof PRED==='undefined'||!PRED) return []; if(n.id==='pred0') return PRED.predictions; const own=PRED.predictions.find(p=>p.id===n.id); if(own) return [own]; const childIds=new Set(EDGES.filter(e=>e.from===n.id).map(e=>e.to)); return PRED.predictions.filter(p=>childIds.has(p.id)); }
function nodeMetas(n){ return (typeof PRED!=='undefined'&&PRED&&n.id==='pred-meta')?PRED.meta:[]; }
function hasAggregate(n){ return nodeClaims(n).length>0||nodePreds(n).length>0||nodeMetas(n).length>0; }
function focusAggregate(n){ const cs=nodeClaims(n); if(cs.length&&!cs.some(c=>c.id===CS.sel)) CS.sel=cs[0].id; const ps=nodePreds(n); if(ps.length&&!ps.some(p=>p.id===PS.sel)) PS.sel=ps[0].id; }
function claimDetailHtml(c){ return `<div class="card" style="margin:6px 0;background:#f3f6ff"><b class="small">${c.id} — Ch. ${esc(c.chapter)} · ${esc(c.chapter_title)}</b> <span class="badge" style="background:${CCOL[c.status]}">${c.status}</span><p class="small"><b>Claim (1917, pp. ${esc(c.pages)}, Figs. ${esc(c.figures)}):</b> ${esc(c.claim)}</p><p class="small"><b>What remains / verdict:</b> ${esc(c.what_remains)}</p><p class="small"><b>Method that would settle it:</b> ${esc(c.method)}</p><p class="small"><b>Data needed:</b> ${esc(c.data_needed)} · <b>Effort:</b> ${esc(c.effort)} · <b>Priority:</b> ${esc(c.priority)} · <b>Type:</b> ${esc(c.type)}</p></div>`; }
function predDetailHtml(p){ return `<div class="card" style="margin:6px 0;background:#f3f6ff"><b class="small">${p.id} · ${esc(p.organism)} — ${esc(p.mechanism)}</b> <span class="badge" style="background:${PCOL[p.outcome]||'#888'}">${PLAB[p.outcome]||p.outcome}</span><p class="small"><b>Outcome prediction:</b> ${esc(p.prediction)}</p><p class="small"><b>Quantitative expectation:</b> ${esc(p.quant)}</p><p class="small"><b>Resolvability forecast:</b> ${RCAT[p.res_category]||p.res_category} (confidence ${p.res_confidence}; expected verdict ${esc(p.expected_verdict)}) · <b>Falsifier:</b> ${esc(p.falsifier)}</p><p class="small"><b>Test source:</b> ${esc(p.test_source)}</p>${p.evidence?`<p class="small"><b>Resolution evidence:</b> ${esc(p.evidence)}</p>`:''}${p.resolvability_verdict?`<p class="small"><b>Resolvability verdict:</b> ${esc(p.resolvability_verdict)}</p>`:''}<p class="small mut">Datasets: ${p.datasets.map(esc).join(', ')}</p></div>`; }
function aggHtml(n){ let h=''; const cs=nodeClaims(n);
if(cs.length){ const sel=cs.find(c=>c.id===CS.sel)||cs[0]; h+=`<div class="agghead">The ${cs.length} claim${cs.length>1?'s':''} behind this node — click one to read it in full</div>`+claimDetailHtml(sel)+`<div class="agglist">`+cs.map(c=>`<div class="clickable ${c.id===sel.id?'sel':''}" onclick="showClaim('${c.id}')"><b class="small">${c.id}</b> <span class="badge" style="background:${CCOL[c.status]}">${c.status}</span> <span class="small mut">Ch. ${esc(c.chapter)} · pp. ${esc(c.pages)} · Figs. ${esc(c.figures)} · ${esc(c.priority)}</span><br><span class="small">${esc(c.claim)}</span></div>`).join('')+`</div>`; }
const ps=nodePreds(n);
if(ps.length){ const sel=ps.find(p=>p.id===PS.sel)||ps[0]; h+=`<div class="agghead">The ${ps.length} prediction${ps.length>1?'s':''} behind this node — click one to read it in full</div>`+predDetailHtml(sel)+`<div class="agglist">`+ps.map(p=>`<div class="clickable ${p.id===sel.id?'sel':''}" onclick="showPredItem('${p.id}')"><b class="small">${p.id}</b> <span class="badge" style="background:${PCOL[p.outcome]||'#888'}">${PLAB[p.outcome]||p.outcome}</span> <span class="small mut">${esc(p.organism)} · ${esc(p.mechanism)}</span><br><span class="small">${esc(p.prediction)}</span></div>`).join('')+`</div>`; }
const ms=nodeMetas(n);
if(ms.length){ h+=`<div class="agghead">The ${ms.length} meta-resolvability forecasts behind this node</div>`+ms.map(m=>`<div class="clickable"><b class="small">${m.id}</b> <span class="badge" style="background:${PCOL[m.outcome]||'#888'}">${PLAB[m.outcome]||m.outcome}</span><br><span class="small">${esc(m.prediction)}</span></div>`).join(''); }
return h; }
function showClaim(id){ const c=(typeof THOMP!=='undefined'&&THOMP)?THOMP.claims.find(x=>x.id===id):null; if(!c) return; CS.sel=id; CS.chapter=c.chapter_title; renderClaims(); drawDetail(); if($('drawer').style.display==='block') renderDrawer(); }
function showPredItem(id){ const p=(typeof PRED!=='undefined'&&PRED)?PRED.predictions.find(x=>x.id===id):null; if(!p) return; PS.sel=id; PS.org='all'; renderPred(); drawDetail(); if($('drawer').style.display==='block') renderDrawer(); }
function drawDetail(){ const n=byId[S.sel]; const nd=descendants(n.id).size; $('detail').innerHTML=`<div class="row"><b style="flex:1">${esc(n.label)}</b><span class="badge" style="background:${SCOL[n.status]}">${SLAB[n.status]}</span>${nd?`<button onclick="toggleCollapse('${n.id}')">${COLLAPSED.has(n.id)?'▶ Expand':'▼ Collapse'} downstream (${nd})</button>`:''}<button class="on" onclick="openDrawer('${n.id}')">Inspect</button></div>
<p class="small"><b>Family:</b> ${esc(n.family)} · <b>Timing:</b> ${esc(n.time)}${n.timeKind==='probabilistic'?' (probabilistic — see timeline)':''}</p><p class="small">${esc(n.detail)}</p><p class="small mut">Source: ${esc(n.source)}</p>${aggHtml(n)}${npLinks(n)}<hr style="border:none;border-top:1px solid var(--line)"><b class="small">Attempts into / out of this node, by agent</b>${edgesList(n.id)}`; }
function openDrawer(id){ S.sel=id; if(id==='p1'||id==='p2'||id==='p3'){S.prize=id;S.prior=DELPHI[id].pooled.prior;S.agentIdx=3;S.subgoal=DELPHI[id].subgoals[3].id;} if(id==='r6'){S.prize='p1';S.prior=DELPHI.p1.pooled.prior;S.agentIdx=3;S.subgoal='P1.4';} const n=byId[id]; if(n) focusAggregate(n); drawGraph(); drawDetail(); renderDrawer(); $('drawer').style.display='block'; }
function closeDrawer(){ $('drawer').style.display='none'; }
function setPrize(p){ S.prize=p; S.prior=DELPHI[p].pooled.prior; S.agentIdx=3; S.subgoal=DELPHI[p].subgoals[3].id; renderDrawer(); }
function bar(v,c){ return `<span class="bar"><i style="width:${Math.max(0,Math.min(100,v))}%;background:${c}"></i></span>`; }
function renderDrawer(){
const n=byId[S.sel]; const isD = n.id==='r6'||n.id==='p1'||n.id==='p2'||n.id==='p3';
let h=`<div class="row"><div style="flex:1"><b>${isD?'Inspector — Bayesian Delphi panel':'Inspector — '+esc(n.label)}</b><div class="small mut">${isD?'Every number transcribed from docs/RULE30_BAYESIAN_DELPHI_ASSESSMENT.md (2026-10-20). Click prizes, agents and subgoals.':esc(n.sub)}</div></div><span class="badge" style="background:${SCOL[n.status]}">${SLAB[n.status]}</span><button onclick="closeDrawer()">Close</button></div><hr style="border:none;border-top:1px solid var(--line)">`;
if(!isD){ h+=`<p class="small"><b>Family:</b> ${esc(n.family)} · <b>Timing:</b> ${esc(n.time)}</p><p class="small">${esc(n.detail)}</p><p class="small mut">Source: ${esc(n.source)}</p>${aggHtml(n)}${npLinks(n)}<b class="small">Attempts through this node</b>${edgesList(n.id)}<div class="card" style="background:#f3f6ff">Tip: double-click the Bayesian Delphi panel node (or Prize 1 / 2 / 3) for the deep per-agent, per-subgoal inspector.</div>`; $('drawer').innerHTML=h; return; }
const d=DELPHI[S.prize], rows=[...d.agents, d.pooled], row=rows[Math.min(S.agentIdx,rows.length-1)], sg=d.subgoals.find(s=>s.id===S.subgoal)||d.subgoals[0];
const odds=(S.prior/100)/(1-S.prior/100)*d.pooled.bf, post=100*odds/(1+odds);
h+=`<div class="row">${['p1','p2','p3'].map(p=>`<button class="${S.prize===p?'on':''}" onclick="setPrize('${p}')"><span class="badge" style="background:${probColor(DELPHI[p].pooled.posterior)}"> </span> ${DELPHI[p].title} · ${DELPHI[p].pooled.posterior}%</button>`).join('')}</div>`;
h+=`<p class="small mut">${esc(d.statement)}</p>`;
h+=`<div class="row"><span class="small"><b>Posterior shade scale:</b></span>${[85,75,60,40,20,3].map(v=>probBadge(v)).join('')}<span class="small">Green is earned: light green only >70%, dark green >80%. Below 70% the shade runs yellow → amber → burnt orange → deep red — a posterior in the teens is WEAK, not green. Per-agent rows below show the full range of opinion behind each pooled shade.</span></div>`;
h+=`<div class="grid4"><div class="card"><div class="small mut">Proved now</div><div class="stat">0.00%</div><div class="small mut">All 3 prizes open</div></div><div class="card"><div class="small mut">Conjecture truth</div><div class="stat">${d.conjectureTruth}%</div><div class="small mut">Is it true at all?</div></div><div class="card"><div class="small mut">Subgoal coverage</div><div class="stat">${d.subgoalTotal.panel}/100</div><div class="small mut">Weighted rubric</div></div><div class="card"><div class="small mut">Bridge posterior</div><div class="stat" style="color:${probColor(d.pooled.posterior)}">${d.pooled.posterior}%</div>${probBadge(d.pooled.posterior)}<div class="small mut">Closable with current machinery?</div></div></div>`;
h+=`<div class="card" style="border-color:#E8C030"><b>Do not conflate these.</b> <span class="small">A 99.98% conjecture-truth score is not a proof, and subgoal coverage is not a fraction of the way to a referee-accepted proof. The bridge posterior answers the third, separate question.</span></div>`;
h+=`<h2>Per-agent bridge ledger — click an agent</h2>`;
rows.forEach((r,i)=>{ const col=r.agent.includes('Fable')?ACOL.fable:r.agent.includes('GPT')?ACOL.gpt:r.agent.includes('Gemini')?ACOL.gemini:ACOL.panel;
h+=`<div class="clickable ${i===S.agentIdx?'sel':''}" onclick="S.agentIdx=${i};renderDrawer()"><div class="row"><span class="badge" style="background:${col}"> </span><b class="small" style="flex:1">${r.agent}</b><span class="small">${r.prior}% → <b style="color:${probColor(r.posterior)}">${r.posterior}%</b></span>${probBadge(r.posterior)}<span class="small mut">net ${r.netDb>0?'+':''}${r.netDb} dB · BF ${r.bf}</span></div></div>`; });
h+=`<div class="card"><b class="small">${row.agent} — selected</b><p class="small">Prior ${row.prior}% · for ${row.forDb} dB · against ${row.againstDb} dB · net ${row.netDb>0?'+':''}${row.netDb} dB (BF ${row.bf}) → posterior <b style="color:${probColor(row.posterior)}">${row.posterior}%</b> · confidence ${row.confidence}</p><p class="small mut">Verdict: ${esc(row.verdict)}</p><p class="small mut">Disagreement is data: on Prize 1 the agents span 5.58–21.82% (3.9×) while agreeing exactly on Prize 2's net −4.0 dB. Only GPT rates Prize 1 above 15% at all (21.8% — burnt orange on the shade scale, nowhere near the 70% green line).</p></div>`;
h+=`<h2>Subgoals — click to inspect</h2>`;
d.subgoals.forEach(s=>{ h+=`<div class="clickable ${s.id===sg.id?'sel':''}" onclick="S.subgoal='${s.id}';renderDrawer()"><div class="row"><b class="small">${s.id}</b><span class="small" style="flex:1">${esc(s.label)}</span><span class="small mut">w=${s.weight}% · panel ${s.panel}</span></div></div>`; });
h+=`<div class="card"><b class="small">${sg.id} · weight ${sg.weight}% · ${esc(sg.tier)}</b><p class="small">${esc(sg.label)}</p>` +
[['Claude Fable 5.1',sg.fable,ACOL.fable],['GPT 5.6 Sol',sg.gpt,ACOL.gpt],['Gemini 4 Argon',sg.gemini,ACOL.gemini],['Panel mean',sg.panel,ACOL.panel]].map(([nm,v,c])=>`<div class="row"><span class="small" style="width:130px">${nm}</span>${bar(v,c)}<b class="small">${v}/100</b></div>`).join('') +
`<p class="small mut">Agent spread: ${Math.max(sg.fable,sg.gpt,sg.gemini)-Math.min(sg.fable,sg.gpt,sg.gemini)} pts. The highest-weight subgoal is usually the open one.</p></div>`;
h+=`<div class="grid2"><div><h3>Evidence for (+${d.pooled.forDb} dB pooled)</h3>${d.evidenceFor.map(e=>`<div class="row"><span style="display:inline-block;height:8px;width:${Math.min(70,Math.abs(e.db)*10)}px;background:#1F8A65"></span><span class="small">+${e.db} dB · ${esc(e.text)}</span></div>`).join('')}</div><div><h3>Obstructions (${d.pooled.againstDb} dB pooled)</h3>${d.evidenceAgainst.map(e=>`<div class="row"><span style="display:inline-block;height:8px;width:${Math.min(70,Math.abs(e.db)*10)}px;background:#C06028"></span><span class="small">${e.db} dB · ${esc(e.text)}</span></div>`).join('')}</div></div>`;
h+=`<h2>Prior sensitivity — try it</h2><p class="small mut">Posterior = prior odds × BF (${d.pooled.bf}) for ${esc(d.title)}.</p><div class="row"><button onclick="adjPrior(-5)">−5 pts</button><button onclick="adjPrior(-1)">−1</button><b style="color:${probColor(post)}">Prior ${S.prior}% → posterior ${post.toFixed(2)}%</b>${probBadge(+post.toFixed(2))}<button onclick="adjPrior(1)">+1</button><button onclick="adjPrior(5)">+5 pts</button><button onclick="S.prior=${d.pooled.prior};renderDrawer()">Reset to pooled prior</button></div><p class="small mut">Watch the shade: it stays yellow/amber/red until the posterior crosses 70% (light green) and only turns dark green over 80%. For reference, merely reaching the old 15% “possible” line needs a prior ≳9.4% (Prize 1), ≳30.7% (Prize 2), ≳82.7% (Prize 3) — no plausible prior rescues Prize 3 on this evidence, and none of the three gets near green.</p>`;
h+=`<h2>Inter-agent concordance (all 15 subgoals)</h2>` + CONCORDANCE.map(c=>`<div class="row"><b class="small" style="width:150px">${c.pair}</b><span class="small">Spearman ρ ${c.spearman} · Kendall τ ${c.kendall} · Pearson r ${c.pearson} · mean |dev| ${c.mad} pts</span></div>`).join('') + `<p class="small mut">Source: docs/RULE30_BAYESIAN_DELPHI_ASSESSMENT.md §§1–3 · Project Delphi 2.0 · resolvability P1 0.85 · P2 0.65 · P3 0.25.</p>`;
$('drawer').innerHTML=h;
}
function adjPrior(d){ S.prior=Math.max(0.1,Math.min(90,+(S.prior+d).toFixed(2))); renderDrawer(); }
/* ---- Registered predictions panel (data injected from the registry) ---- */
const PRED = {"registered_on": "2026-10-26", "predictions": [{"id": "ZF-TUR-01", "organism": "Danio rerio", "mechanism": "turing_wavelength", "cls": "protein_state_biological", "prediction": "BMP patterning in the zebrafish gastrula is NOT free differential diffusion of BMP vs Chordin: Chordin's effective mobility in the embryo will exceed the free-diffusion size prior, because transport is by Chordin shuttling + tolloid release.", "quant": "Free-diffusion prior from protein states: D_chordin/D_mature-BMP2b = 0.51 (921 aa vs 122 aa, D~MW^-1/3), which violates the Turing requirement D_inhibitor/D_activator > 1. Prediction: measured effective BMP-gradient formation will behave as if the ratio is >= 1 (shuttling), never as 0.51 free diffusion.", "falsifier": "Direct mobility measurements (e.g. FRAP of tagged BMP/Chordin in gastrula) showing both species freely diffusing with D ratio ~0.5 AND normal dorsoventral patterning.", "test_source": "ZFIN chordin (dino) / tolloid (minifin) phenotypes; published pSmad1/5 gradient measurements in zebrafish gastrula", "datasets": ["datasets/danio_rerio_turing_wavelength"], "res_category": "current_plus_public_sources", "res_confidence": 0.6, "expected_verdict": "confirm", "outcome": "confirmed", "evidence": "Registered prior: free-diffusion D_chordin/D_mature-BMP2b=0.51 violates D_inh/D_act>1. Published zebrafish work treats BMP gradient formation as Chordin-mediated shuttling/transport rather than free differential diffusion: 'Dynamics of BMP signaling and distribution during zebrafish dorsal-ventral patterning' (2017, doi:10.7554/eLife.25861); cnidarian-to-vertebrate shuttling conservation reviewed in 'Chordin-mediated BMP shuttling patterns the secondary body axis' (2025, doi:10.1126/sciadv.adu6347). No literature supports patterning by 0.51-ratio free diffusion.", "resolvability_verdict": "as_predicted \u2014 current_plus_public_sources (conf 0.60): public literature decided it; repo alone could only state the prior."}, {"id": "ZF-TUR-02", "organism": "Danio rerio", "mechanism": "turing_wavelength", "cls": "protein_state_biological", "prediction": "Blocking tolloid cleavage of Chordin (more intact Chordin, less BMP release) contracts the ventral pSmad1/5 signalling domain and dorsalizes the embryo.", "quant": "Direction: pSmad domain contracts, dorsal markers expand (dorsalized phenotype, as in tolloid/minifin loss). No magnitude claimed -- cleavage kinetics are literature parameters, not in UniProt.", "falsifier": "Tolloid loss/cleavage-resistant Chordin producing ventralization or an expanded pSmad domain.", "test_source": "ZFIN tolloid/minifin mutant phenotype; chordin cleavage literature", "datasets": ["datasets/danio_rerio_turing_wavelength"], "res_category": "current_plus_public_sources", "res_confidence": 0.85, "expected_verdict": "confirm", "outcome": "confirmed", "evidence": "Tolloid/Minifin loss in zebrafish is a classic dorsalized mutant class (BMP signalling reduced when Chordin cannot be cleaved/released), matching the registered direction: more intact Chordin -> contracted BMP/pSmad activity -> dorsalization. Consistent with the chordin-cleavage literature surfaced via OpenAlex (e.g. doi:10.1242/dev.01577 on Chordin-dependent BMP regulation). No report of tolloid loss causing ventralization was found.", "resolvability_verdict": "as_predicted \u2014 current_plus_public_sources (conf 0.85): ZFIN/literature phenotype lookup sufficed."}, {"id": "ZF-HH-01", "organism": "Danio rerio", "mechanism": "morphogen_condensation", "cls": "protein_state_biological", "prediction": "ShhA signalling is short-range and membrane-associated despite a small signalling product, because ShhNp is dually lipidated; disrupting lipidation flattens the gradient (lower peak near source, longer distal tail).", "quant": "Size prior alone gives D_rel = 0.89 for the 174 aa N-product (near BMP/FGF mobility). Prediction: measured effective range will be markedly SHORTER than that prior in wild type, and lipidation loss will expand the ptc-expression domain distally while reducing its peak level near the source.", "falsifier": "Lipidation-deficient ShhA producing an unchanged or steeper/higher-peak gradient in zebrafish neural tube/otic assays.", "test_source": "ZFIN shha (syu) and HHAT-inhibition literature; ptc1/ptc2 expression-domain measurements", "datasets": ["datasets/danio_rerio_turing_wavelength"], "res_category": "current_plus_public_sources", "res_confidence": 0.7, "expected_verdict": "confirm", "outcome": "partially_resolved", "evidence": "Lipidation is functional in zebrafish Shh signalling: 'New chemical probes targeting cholesterylation of Sonic Hedgehog in human cells and zebrafish' (2014, doi:10.1039/C4SC01600A), and dual-lipid release biology reviewed in doi:10.1002/bies.202100133. Bound established: wild-type ShhNp is dually lipidated and tethered (repo state), and cholesterylation is required for normal signalling in zebrafish. NOT established from sources extracted: the specific registered gradient-shape claim (distal ptc-domain expansion + reduced near-source peak upon lipidation loss) in a zebrafish tissue assay. Missing data: paired ptc1/ptc2 domain measurements for lipidation-perturbed vs wild-type zebrafish Shh.", "resolvability_verdict": "harder_than_predicted \u2014 expected a public-source decision at conf 0.70; the lipidation fact resolved, the gradient-shape outcome did not, so this row joins the partial set."}, {"id": "ZF-CLK-01", "organism": "Danio rerio", "mechanism": "clock_wavefront", "cls": "law_invariant_biological", "prediction": "Somite length scales in direct proportion to segmentation-clock period at fixed wavefront speed (S = u * T_clock), including for period changes caused by altered Her1 degradation.", "quant": "S multiplier = T multiplier: period -20%/-10%/+10%/+20% -> somite length x0.80/x0.90/x1.10/x1.20 (tolerance: within 5 percentage points after correcting for embryo size/growth). Her1's UniProt state (Q90463, 328 aa nuclear bHLH) gives no half-life, so the period change itself must be measured, not derived.", "falsifier": "A verified clock-period change (live her1 reporter) with wavefront speed controlled, producing somite-length change of opposite sign or <50% of the proportional expectation.", "test_source": "Zebrafish somitogenesis literature: her1/her7 perturbations and temperature/period manipulations with somite-length readouts", "datasets": ["datasets/danio_rerio_clock_wavefront"], "res_category": "partial_only", "res_confidence": 0.55, "expected_verdict": "confirm", "outcome": "partially_resolved", "evidence": "Bound established: the proportional architecture (clock period sets somite size at a given wavefront speed) is the standard, literature-supported segmentation-clock framework (zebrafish clock-mechanism studies, e.g. doi:10.1371/journal.pbio.0050150; core-circuit dynamics doi:10.1371/journal.pbio.1001364). NOT established: a paired dataset (measured T change + measured S change, wavefront controlled) sufficient to test the registered x0.80/x0.90/x1.10/x1.20 multipliers within 5 points. Missing data: paired her1-period and somite-length measurements under a controlled-wavefront perturbation, tabulated in one source.", "resolvability_verdict": "as_predicted \u2014 registered partial_only (conf 0.55); public data bound it but did not decide it, exactly as forecast."}, {"id": "ZF-VTX-01", "organism": "Danio rerio", "mechanism": "vertex_packing", "cls": "law_invariant_biological", "prediction": "Zebrafish epithelial tissue assigned the vertex-packing law undergoes its jamming/unjamming transition at cell shape index p0* = 3.813.", "quant": "Transition in the band 3.76-3.87 (centred 3.813); fluid-like behaviour above, solid-like below.", "falsifier": "Measured transition in a zebrafish epithelium (e.g. enveloping layer during epiboly) outside 3.7-3.9, or no transition in shape index at all.", "test_source": "Published zebrafish epiboly/EVL cell-shape measurements; vertex-model literature value 3.813", "datasets": ["datasets/danio_rerio_vertex_packing"], "res_category": "partial_only", "res_confidence": 0.4, "expected_verdict": "confirm", "outcome": "partially_resolved", "evidence": "Bound established: 3.813 is the established vertex-model jamming value carried by the dataset law. NOT established: a zebrafish (EVL/epiboly) measured shape-index transition inside 3.76-3.87; the targeted literature search returned no zebrafish shape-index transition dataset. Missing data: cell shape-index series across a zebrafish epithelial jamming/unjamming transition (measurable from published epiboly images, not yet tabulated).", "resolvability_verdict": "as_predicted \u2014 registered partial_only (conf 0.40), the lowest-confidence row; unresolved for want of a tabulated series, as forecast."}, {"id": "DM-WG-01", "organism": "Drosophila melanogaster", "mechanism": "morphogen_condensation", "cls": "protein_state_biological", "prediction": "Wingless spread requires Porcupine O-palmitoleoylation at Ser239: blocking it (porcupine loss or Wg Ser239 substitution) collapses Wg protein distribution and its short-range target domain to the producing cells; Notum depalmitoleoylation does the same.", "quant": "Direction: extracellular Wg gradient and Senseless-positive range contract sharply (toward ~1 cell row from source) versus wild type; no absolute D claimed.", "falsifier": "Porcupine/Wg-lipidation mutants with a wild-type-width Wg gradient and target domain in wing disc.", "test_source": "FlyBase porcupine / wingless alleles; wing-disc Wg gradient literature", "datasets": ["datasets/drosophila_melanogaster_morphogen_condensation"], "res_category": "current_plus_public_sources", "res_confidence": 0.85, "expected_verdict": "confirm", "outcome": "confirmed", "evidence": "Porcupine-mediated Wnt lipidation is required for Wnt secretion/recognition ('Porcupine-mediated lipidation is required for Wnt recognition by Wls', 2011, doi:10.1016/j.ydbio.2011.11.003), and UniProt annotates Wg Ser239 O-palmitoleoylation by PORCN with Notum depalmitoleoylation inhibiting signalling. Literature direction matches the registered prediction: lipidation loss contracts Wg distribution/target range toward producing cells.", "resolvability_verdict": "as_predicted \u2014 current_plus_public_sources (conf 0.85)."}, {"id": "DM-HH-01", "organism": "Drosophila melanogaster", "mechanism": "morphogen_condensation", "cls": "protein_state_biological", "prediction": "The Hh signalling species is the 173 aa dually-lipidated N-product, not the 471 aa precursor: cholesterol-deficient HhN spreads farther from the A/P boundary but induces a lower peak response (ptc) near the source.", "quant": "Direction: distal expansion + reduced near-source peak. Size prior for the N-product vs precursor: using the precursor would understate mobility by factor (173/471)^(1/3) = 0.72 in D, before tethering is even considered.", "falsifier": "Cholesterol-deficient HhN showing a shorter range or higher near-source peak than wild type in wing disc.", "test_source": "FlyBase hedgehog alleles; wing-disc Hh gradient literature (cholesterol-modified vs unmodified HhN)", "datasets": ["datasets/drosophila_melanogaster_morphogen_condensation"], "res_category": "current_plus_public_sources", "res_confidence": 0.8, "expected_verdict": "confirm", "outcome": "confirmed", "evidence": "The signalling species is the dually lipid-modified N-product, whose release/spread is a regulated, tethered process ('Scube/You activity mediates release of dually lipid-modified Hedgehog signal', 2012, doi:10.1101/gad.191866.112; gradient-travel review doi:10.1101/gad.1233104). This matches the registered claim that the 173 aa lipidated N-product (not the 471 aa precursor) is the active, range-limited species; unmodified HhN is the standard farther-spreading/lower-peak comparator in this literature.", "resolvability_verdict": "as_predicted \u2014 current_plus_public_sources (conf 0.80)."}, {"id": "DM-DPP-01", "organism": "Drosophila melanogaster", "mechanism": "turing_wavelength", "cls": "protein_state_model", "prediction": "The diffusible Dpp species in wing disc is the annotated 132 aa mature chain (residues 457-588), so gradient models using the 588 aa precursor misestimate Dpp mobility.", "quant": "D_precursor/D_mature = (132/588)^(1/3) = 0.61 by size prior: precursor-based models understate D by ~39% and any sqrt(D/k) length scale by ~22% (factor 0.78). Directional prior only.", "falsifier": "Evidence that uncleaved 588 aa Dpp precursor is the extracellular signalling species in wing disc.", "test_source": "FlyBase decapentaplegic; Dpp processing/gradient literature", "datasets": ["datasets/drosophila_melanogaster_turing_wavelength"], "res_category": "current_datasets_only", "res_confidence": 0.95, "expected_verdict": "confirm", "outcome": "confirmed", "evidence": "P07713: signal 1-23, annotated chain 457-588 = 132 aa mature Dpp, precursor 588 aa. Arithmetic: (132/588)^(1/3)=0.608 (registered 0.61); sqrt=0.780 (registered 0.78). The diffusible species is the annotated mature chain, and precursor-based models understate D by ~39% / length scale by ~22% under the stated size prior.", "resolvability_verdict": "as_predicted \u2014 current_datasets_only (conf 0.95): UniProt chain annotation already present in sequence_links.json."}, {"id": "DM-CLK-NEG-01", "organism": "Drosophila melanogaster", "mechanism": "clock_wavefront", "cls": "negative_mechanism_assignment", "prediction": "NEGATIVE: the clock-wavefront law assigned to Drosophila will FAIL for blastoderm segmentation -- Drosophila is a long-germ embryo with no travelling Hes/her oscillation wavefront; pair-rule stripes are specified near-simultaneously, not laid down sequentially by S = u*T_clock.", "quant": "No periodic her/hes wavefront sweeping the blastoderm will be found; stripe formation timing will not fit a constant-u wavefront with a single clock period.", "falsifier": "Demonstration of a segmentation-clock oscillation wavefront that sequentially specifies Drosophila blastoderm stripes.", "test_source": "FlyBase / Drosophila segmentation literature (pair-rule gene dynamics, live imaging)", "datasets": ["datasets/drosophila_melanogaster_clock_wavefront"], "res_category": "current_plus_public_sources", "res_confidence": 0.9, "expected_verdict": "confirm", "outcome": "confirmed", "evidence": "Negative prediction holds: Drosophila blastoderm segmentation is long-germ \u2014 pair-rule stripes are specified near-simultaneously by gap-gene inputs, with no travelling Hes/her segmentation-clock wavefront laying down stripes sequentially by S=u*T. No source describes a Drosophila blastoderm clock wavefront; the dataset's clock_wavefront assignment for Drosophila is a mechanism mis-assignment, as registered.", "resolvability_verdict": "as_predicted \u2014 current_plus_public_sources (conf 0.90): decidable from established embryology."}, {"id": "DM-MUR-NEG-01", "organism": "Drosophila melanogaster", "mechanism": "branching_tree", "cls": "negative_mechanism_assignment", "prediction": "NEGATIVE / discriminating: Drosophila tracheal branching, assigned Murray's law, will not obey the fluid-optimal exponent: parent/daughter diameters will deviate systematically from r0^3 = r1^3 + r2^3 because tracheal branching is FGF(Branchless)-guided cell migration, not flow-optimised plumbing.", "quant": "Fitted Murray exponent differs from 3.0 (outside 2.8-3.2) or shows no consistent exponent across branch orders.", "falsifier": "Tracheal diameter measurements across branch orders fitting exponent 3.0 within 2.8-3.2 with small residuals.", "test_source": "Published Drosophila tracheal morphometry; Branchless/FGF guidance literature", "datasets": ["datasets/drosophila_melanogaster_branching_tree"], "res_category": "partial_only", "res_confidence": 0.45, "expected_verdict": "confirm", "outcome": "partially_resolved", "evidence": "Bound established: insect tracheal systems are not generically Murray-optimal (ant tracheal branching violates network-transport assumptions, doi:10.1371/journal.pcbi.1007853; Murray compliance varies by insect system, doi:10.1186/s12915-021-01130-0), consistent with the negative prediction. NOT established: a Drosophila tracheal parent/daughter diameter series sufficient to fit an exponent against the registered 2.8-3.2 band. Missing data: tabulated Drosophila tracheal diameters across branch orders.", "resolvability_verdict": "as_predicted \u2014 registered partial_only (conf 0.45); bounded, not decided, as forecast."}, {"id": "XT-BMP-01", "organism": "Xenopus tropicalis", "mechanism": "turing_wavelength", "cls": "protein_state_biological", "prediction": "Noggin (196 aa secreted chain) patterns Xenopus dorsoventral axis by binding BMP4, not by diffusing as a Turing inhibitor: ventral Noggin misexpression dorsalizes (induces secondary dorsal structures/axis), and Noggin loss ventralizes.", "quant": "Direction only: gain -> dorsalization/secondary axis; loss -> ventralization. No D-ratio Turing claim is made (same lesson as zebrafish Chordin: D_noggin by size, (196 aa), would be fast, but binding/sequestration, not differential diffusion, is the mechanism).", "falsifier": "Noggin misexpression with no dorsalizing effect, or Noggin loss with dorsalization, in Xenopus embryos.", "test_source": "Xenbase noggin; classic Spemann-organizer / Noggin injection literature", "datasets": ["datasets/xenopus_tropicalis_turing_wavelength"], "res_category": "current_plus_public_sources", "res_confidence": 0.85, "expected_verdict": "confirm", "outcome": "confirmed", "evidence": "Noggin is an organizer-secreted BMP-binding dorsalizer in Xenopus: endoderm/dorsal induction by organizer-secreted chordin and noggin demonstrated in animal caps (1996, doi:10.1002/j.1460-2075.1996.tb00832.x), and neural induction via Chordin/Noggin BMP antagonism (doi:10.1371/journal.pbio.0020092). Gain->dorsalization/secondary axis, loss->ventralization is the canonical direction, matching the registered prediction (evidence primarily X. laevis, applied to the tropicalis ortholog).", "resolvability_verdict": "as_predicted \u2014 current_plus_public_sources (conf 0.85)."}, {"id": "XT-SHH-01", "organism": "Xenopus tropicalis", "mechanism": "morphogen_condensation", "cls": "protein_state_biological", "prediction": "Xenopus Shh is dually lipidated like its zebrafish and fly orthologs, even though the current UniProt entry (A0A803JKD3, unreviewed) annotates no lipidation: the N-product will prove to carry N-palmitate + C-cholesterol, with the same short-range tethered-gradient behaviour.", "quant": "Conservation prediction: lipidation sites equivalent to zebrafish Cys24/Gly197 (shha Q92008) and fly Cys85/Gly257 (hh Q02936) will be confirmed in a reviewed Xenopus entry or experimentally; range behaviour matches ZF-HH-01 direction.", "falsifier": "Reviewed Xenopus tropicalis Shh annotation or experiment showing an unlipidated, freely diffusing N-product.", "test_source": "Xenbase shh; UniProt reviewed-entry updates; hedgehog lipidation literature", "datasets": ["datasets/xenopus_tropicalis_morphogen_condensation"], "res_category": "current_plus_public_sources", "res_confidence": 0.75, "expected_verdict": "confirm", "outcome": "confirmed", "evidence": "Reviewed X. tropicalis shh hits: 0 (the repo's A0A803JKD3 remains unreviewed, no lipidation annotated \u2014 as registered). Reviewed X. laevis Q92000 (SHH_XENLA) retrieved live: chain 25-444, N-product chain 25-198, Lipidation N-palmitoyl cysteine at 25 and Cholesterol glycine ester at 198 (evidence ECO:0000250, by similarity to mouse Q62226). Dual lipidation is therefore confirmed in a reviewed Xenopus entry (laevis, by-similarity annotation), exactly the registered conservation prediction, with the tropicalis-specific experimental annotation still outstanding.", "resolvability_verdict": "as_predicted \u2014 current_plus_public_sources (conf 0.75): one reviewed-entry lookup decided it; caveat that the lipidation evidence is by-similarity, noted for the merge."}, {"id": "XT-DQ-01", "organism": "Xenopus tropicalis", "mechanism": "turing_wavelength", "cls": "data_quality", "prediction": "DATA-QUALITY: the UniProt accession currently linked for Xenopus bmp4 (Q28FI5, 69 aa) is a fragment, not the BMP4 precursor: it will not match the 469 aa Ensembl protein, and any BMP4 protein-state conclusion drawn from it is invalid until re-resolved against a full-length reviewed entry.", "quant": "Re-resolution yields a ~400+ aa BMP4 precursor with a C-terminal TGF-beta mature domain of ~110-130 aa (ortholog pattern: zebrafish bmp2b 411 aa/122 aa domain, fly dpp 588 aa/132 aa chain).", "falsifier": "Q28FI5 shown to be the complete, reviewed Xenopus tropicalis BMP4 precursor.", "test_source": "UniProt Q28FI5 entry inspection; Ensembl ENSXETG00000008620", "datasets": ["datasets/xenopus_tropicalis_turing_wavelength"], "res_category": "current_datasets_only", "res_confidence": 0.99, "expected_verdict": "confirm", "outcome": "confirmed", "evidence": "sequence_links.json xenopus_tropicalis bmp4: Ensembl protein_length_aa=469 (ENSXETG00000008620, protein 1410 bp CDS in earlier resolution) vs UniProt Q28FI5 protein_state.precursor_length_aa=69 with single chain 24-69 (46 aa). A 69 aa entry cannot be the ~469 aa BMP4 precursor; Q28FI5 is a fragment, exactly as registered.", "resolvability_verdict": "as_predicted \u2014 current_datasets_only (conf 0.99): decided entirely from records already in the repo."}, {"id": "XT-CLK-01", "organism": "Xenopus tropicalis", "mechanism": "clock_wavefront", "cls": "law_invariant_biological", "prediction": "Xenopus tropicalis somitogenesis obeys the same proportional clock-wavefront relation as zebrafish: somite length changes in proportion to segmentation-clock period at fixed wavefront speed.", "quant": "S multiplier = T multiplier (x0.80/x0.90/x1.10/x1.20 for -20%/-10%/+10%/+20% period), within 5 percentage points after size correction -- cross-species replication of ZF-CLK-01, not an independent free fit.", "falsifier": "Xenopus period manipulations (hes-gene perturbation/temperature) with controlled wavefront speed producing non-proportional or opposite somite-length change.", "test_source": "Xenbase somitogenesis literature; Xenopus segmentation-clock (hes) studies", "datasets": ["datasets/xenopus_tropicalis_clock_wavefront"], "res_category": "partial_only", "res_confidence": 0.5, "expected_verdict": "confirm", "outcome": "partially_resolved", "evidence": "Bound established: Xenopus somitogenesis uses a her/hes segmentation clock with a wavefront, so the proportional S~T architecture is the applicable framework (cross-species replication target of ZF-CLK-01). NOT established: paired Xenopus period-manipulation + somite-length measurements sufficient to test the x0.80-x1.20 multipliers within 5 points. Missing data: paired clock-period and somite-length series under controlled wavefront conditions in Xenopus.", "resolvability_verdict": "as_predicted \u2014 registered partial_only (conf 0.50), mirroring ZF-CLK-01 as forecast."}], "meta": [{"id": "META-RES-01", "prediction": "Exactly 2 of 14 outcome predictions are resolvable with current repo data alone (DM-DPP-01, XT-DQ-01).", "outcome": "confirmed"}, {"id": "META-RES-02", "prediction": "At least 10 of 14 are fully resolvable without new experiments (2 current-only + 8 with the named public atlases/literature).", "outcome": "refuted"}, {"id": "META-RES-03", "prediction": "Exactly 4 of 14 (ZF-CLK-01, ZF-VTX-01, DM-MUR-NEG-01, XT-CLK-01) will be only partially resolvable with current + public data, because the decisive quantitative series (paired clock period/somite length, cell-shape index, tracheal diameters) are not in the repo and not tabulated publicly.", "outcome": "refuted"}, {"id": "META-RES-04", "prediction": "0 of 14 require new wet-lab experiments merely to be DECIDABLE in principle -- every row has a named public or in-repo test source; the partial four are data-extraction problems, not experiment problems.", "outcome": "confirmed"}], "tallies": {"fully_decided": 9, "partially_resolved": 5, "confirmed": 9, "refuted": 0, "current_only_decided": ["DM-DPP-01", "XT-DQ-01"]}, "registry_url": "https://github.com/fractastical/morpholib/blob/main/predictions/prediction_registry.json", "resolutions_url": "https://github.com/fractastical/morpholib/tree/main/predictions/resolutions"};
const PCOL = {confirmed:'#178A5F', partially_resolved:'#E79A28', refuted:'#7E2A3A', registered_untested:'#3E7FB8', confirmed_meta:'#178A5F'};
const PLAB = {confirmed:'CONFIRMED', partially_resolved:'PARTIALLY RESOLVED', refuted:'REFUTED', registered_untested:'REGISTERED, UNSCORED'};
const RCAT = {current_datasets_only:'solvable in-repo alone', current_plus_public_sources:'solvable in-repo + public sources', partial_only:'partially solvable only'};
const PS = {org:'all', sel:null};
function predList(){ return PRED ? PRED.predictions.filter(p=>PS.org==='all'||p.organism===PS.org) : []; }
function renderPred(){
const el=$('predpanel'); if(!PRED){ el.innerHTML='<p class="small mut">Prediction registry not available in this build.</p>'; return; }
const t=PRED.tallies||{}, orgs=[...new Set(PRED.predictions.map(p=>p.organism))];
if(!PS.sel && PRED.predictions.length) PS.sel=PRED.predictions[0].id;
const sel=PRED.predictions.find(p=>p.id===PS.sel) || PRED.predictions[0];
const rows=predList().map(p=>`<div class="prow ${p.id===sel.id?'sel':''}" onclick="PS.sel='${p.id}';renderPred()"><span class="dot" style="background:${PCOL[p.outcome]||'#888'}"></span><b class="small">${p.id}</b> <span class="small">${esc(p.organism)} · ${esc(p.mechanism)}</span><br><span class="badge" style="background:${PCOL[p.outcome]||'#888'}">${PLAB[p.outcome]||p.outcome}</span> <span class="small mut">${RCAT[p.res_category]||p.res_category} (forecast conf ${p.res_confidence}, expected verdict: ${esc(p.expected_verdict)})</span></div>`).join('');
const metas=PRED.meta.map(m=>`<div class="prow"><span class="dot" style="background:${PCOL[m.outcome]||'#888'}"></span><b class="small">${m.id}</b> <span class="badge" style="background:${PCOL[m.outcome]||'#888'}">${PLAB[m.outcome]||m.outcome}</span><br><span class="small">${esc(m.prediction)}</span></div>`).join('');
el.innerHTML=`<div class="row"><b style="flex:1">Registered ${PRED.registered_on} — before any scoring. Two independent grades per row: did the biology hold, and could current data even decide it?</b><a class="small" href="${PRED.registry_url}">registry JSON</a><a class="small" href="${PRED.resolutions_url}">resolution records</a></div>
<div class="grid4" style="margin-top:8px">
<div class="card"><div class="small mut">Registered predictions</div><div class="stat">${PRED.predictions.length}</div><div class="small mut">3 organisms · 4 resolution batches</div></div>
<div class="card"><div class="small mut">Outcomes confirmed</div><div class="stat" style="color:#1F8A65">${t.confirmed ?? 0}</div><div class="small mut">${t.refuted ?? 0} refuted</div></div>
<div class="card"><div class="small mut">Partially resolved</div><div class="stat" style="color:#B87700">${t.partially_resolved ?? 0}</div><div class="small mut">each names its missing series — follow-ups on <a href="morphoswarm.html">MorphoSwarm</a></div></div>
<div class="card"><div class="small mut">Meta-resolvability</div><div class="stat">${PRED.meta.filter(m=>m.outcome==='confirmed').length}/${PRED.meta.length}</div><div class="small mut">solve-rate forecasts confirmed (2 refuted — forecast was optimistic by one row)</div></div></div>
<div class="row"><button class="${PS.org==='all'?'on':''}" onclick="PS.org='all';renderPred()">All organisms</button>${orgs.map(o=>`<button class="${PS.org===o?'on':''}" onclick="PS.org='${o}';renderPred()">${o}</button>`).join('')}</div>
<div class="predgrid"><div>${rows}</div>
<div class="card" style="margin:0"><b>${sel.id} · ${esc(sel.organism)} — ${esc(sel.mechanism)}</b> <span class="badge" style="background:${PCOL[sel.outcome]||'#888'}">${PLAB[sel.outcome]||sel.outcome}</span>
<p class="small"><b>Outcome prediction:</b> ${esc(sel.prediction)}</p>
<p class="small"><b>Quantitative expectation:</b> ${esc(sel.quant)}</p>
<p class="small"><b>Resolvability forecast:</b> ${RCAT[sel.res_category]||sel.res_category} (confidence ${sel.res_confidence}; expected verdict ${esc(sel.expected_verdict)}) · <b>Falsifier:</b> ${esc(sel.falsifier)}</p>
<p class="small"><b>Test source:</b> ${esc(sel.test_source)}</p>
${sel.evidence?`<p class="small"><b>Resolution evidence:</b> ${esc(sel.evidence)}</p>`:''}
${sel.resolvability_verdict?`<p class="small"><b>Resolvability verdict:</b> ${esc(sel.resolvability_verdict)}</p>`:''}
<p class="small mut">Datasets: ${sel.datasets.map(esc).join(', ')}</p></div></div>
<h3>Meta-resolvability predictions — grading the solve-rate forecast itself</h3>${metas}`;
}
/* ---- Thompson 1917 claims browser: all 59 claims, browsable from the graph.
Chapter graph nodes (tch-*) set the chapter filter; every claim row opens
its full Pass-1 citation + Pass-2 assessment. ---- */
const THOMP = {"n": 59, "claims": [{"id": "T1917-001", "chapter": "I", "chapter_title": "Introductory", "pages": "1-15", "figures": "-", "claim": "The form of an organism is a 'diagram of forces': form can and should be described physically and mathematically, in terms of the forces that produced it.", "type": "methodological", "status": "NOT_TESTABLE_AS_STATED", "what_remains": "Operationalise per-chapter (that is what rows T1917-003..058 do). As a programme it is vindicated wherever a physical model fits form with fewer parameters than a purely descriptive one.", "method": "Score each operational descendant row; report the fraction supported.", "data_needed": "This registry", "effort": "1\u20132d (S)", "priority": "P2", "p_resolvable": 5.0, "p_band": "very_low", "p_basis": []}, {"id": "T1917-002", "chapter": "I + Epilogue", "chapter_title": "Introductory / Epilogue", "pages": "1-15; Epilogue", "figures": "-", "claim": "Many forms are explained by physical forces directly and do not require (and are not well explained by) adaptation/heredity acting part-by-part; related forms differ by whole-form transformation rather than by independent change of parts.", "type": "methodological", "status": "PARTIAL_REPO", "what_remains": "Repo tests the morphospace half (global growth fields vs local modules) in fishes/ants, not the anti-adaptationist half, which needs an explicit adaptationist null per system.", "method": "Per system: compare global-field model vs part-wise/adaptive model by AICc and out-of-sample error.", "data_needed": "Per-system (see descendant rows)", "effort": "5\u201315d (M)", "priority": "P1", "p_resolvable": 5.0, "p_band": "very_low", "p_basis": [["partial repo progress already made", 10], ["large effort (5-15 person-days)", -10]]}, {"id": "T1917-003", "chapter": "II", "chapter_title": "On Magnitude", "pages": "16-49", "figures": "1-2", "claim": "Surface grows as L^2 and volume/weight as L^3, so surface:volume falls as 1/L; this alone bounds organism size and forces disproportionate change of parts with size.", "type": "quantitative-geometric", "status": "DONE_ELSEWHERE", "what_remains": "Textbook scaling (supported with well-known exceptions via folding/fractal surfaces). A repo check is a teaching plot, not new science.", "method": "Log-log surface and volume vs length across taxa; test slopes 2 and 3.", "data_needed": "Any size/shape compilation", "effort": "1\u20132d (S)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 25.0]]}, {"id": "T1917-004", "chapter": "II", "chapter_title": "On Magnitude", "pages": "16-49", "figures": "-", "claim": "Strength of a support scales with cross-sectional area (L^2) while load scales with weight (L^3), so larger land animals must be relatively thicker-boned / differently proportioned (Galilean scaling).", "type": "quantitative-geometric", "status": "DONE_ELSEWHERE", "what_remains": "Modern verdict is mixed: elastic-similarity and stress-similarity scalings fit some clades, geometric L^3/L^2 does not fit all. Worth one clade-level repo test only if bundled with T1917-040.", "method": "Bone diameter/length and body mass across a clade; compare geometric, elastic and empirical exponents.", "data_needed": "Public limb-bone compilations (e.g. museum CT measurements)", "effort": "3\u20137d (M)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 25.0]]}, {"id": "T1917-005", "chapter": "II", "chapter_title": "On Magnitude", "pages": "16-49", "figures": "2", "claim": "Different physics dominates at different magnitudes: surface tension and viscosity rule small organisms, gravity and inertia rule large ones; there is a least size of organism set by molecular/thermal scales.", "type": "mechanistic", "status": "DONE_ELSEWHERE", "what_remains": "Qualitatively settled (low-Reynolds-number biology). No repo score against Thompson's stated examples.", "method": "Regime map (Re, Bond, Peclet numbers) for Thompson's named organisms.", "data_needed": "Sizes/densities for named taxa (literature)", "effort": "2\u20134d (S)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 25.0]]}, {"id": "T1917-006", "chapter": "II", "chapter_title": "On Magnitude", "pages": "16-49", "figures": "1", "claim": "Cell (e.g. nerve-cell) size is roughly independent of the size of the animal; larger animals have more cells, not proportionally larger cells.", "type": "quantitative-empirical", "status": "DONE_ELSEWHERE", "what_remains": "Broadly supported with clade-specific exceptions (e.g. some neurons, eggs, polyploid cells).", "method": "Cell size vs body size regression within a tissue type.", "data_needed": "Histology compilations", "effort": "2\u20135d (S)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 25.0]]}, {"id": "T1917-007", "chapter": "III", "chapter_title": "The Rate of Growth", "pages": "50-155", "figures": "3-40", "claim": "Growth in size/weight over time follows a definite, plottable curve: rapid (near-compound-interest) early growth with a steadily diminishing specific rate of growth.", "type": "quantitative-empirical", "status": "DONE_ELSEWHERE", "what_remains": "Supported as a family (von Bertalanffy/logistic/Gompertz fits); no single universal curve. Thompson's own plotted data (man, mouse, silkworm, tadpole, bamboo) could be digitised and re-fit cheaply.", "method": "Digitise Figs. 3-17 data, fit modern growth models, compare AICc.", "data_needed": "Thompson's cited sources (Quetelet, Bowditch, Ostwald) via his figures", "effort": "3\u20136d (M)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 15.0]]}, {"id": "T1917-008", "chapter": "III", "chapter_title": "The Rate of Growth", "pages": "50-155", "figures": "18-22", "claim": "Parts of an organism grow at different but definite relative rates, so form changes systematically with size; the changing proportions of organs (brain, heart, body; plaice weight-length) are growth-rate phenomena.", "type": "quantitative-empirical", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, composer-2.5, PR 297): verdict supported. Repo supports differential-growth description in ants and several clades, but has not re-tested Thompson's own organ-ratio examples (Figs. 18-22) nor fitted the log-log relative-growth (allometric) law to his data. Formalised later by Huxley (1932) - credit and date must stay with Thompson (1917) for the claim as made here.", "method": "log(part) vs log(body) slopes with phylogenetic control, on his systems and on repo clades.", "data_needed": "Organ-size series (literature) + existing portfolio datasets", "effort": "4\u20138d (M)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-009", "chapter": "III", "chapter_title": "The Rate of Growth", "pages": "50-155", "figures": "25-32", "claim": "Rate of growth varies lawfully with temperature and shows daily/seasonal/annual periodicity, recorded e.g. in tree growth (Douglass) and plant/root growth curves.", "type": "quantitative-empirical", "status": "DONE_ELSEWHERE", "what_remains": "Settled in dendrochronology and growth physiology; not a repo gap worth new work unless used as a null for other claims.", "method": "Re-fit his published temperature/periodicity series.", "data_needed": "Cited historical series", "effort": "2\u20134d (S)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 25.0]]}, {"id": "T1917-010", "chapter": "III", "chapter_title": "The Rate of Growth", "pages": "50-155", "figures": "33-40", "claim": "Regeneration restores form at a measurable rate related to the amount removed (Durbin/Ellis tail-regeneration curves), i.e. restoration of form is itself a lawful growth process.", "type": "quantitative-empirical", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 311): verdict supported. No test on his (amphibian tail) system; modern regeneration morphometrics could test rate-vs-amount directly.", "method": "Digitise Figs. 35-40; compare against a modern regeneration time-series dataset.", "data_needed": "Modern urodele/planarian regeneration morphometrics (public)", "effort": "5\u201310d (M)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-011", "chapter": "IV", "chapter_title": "On the Internal Form and Structure of the Cell", "pages": "156-200", "figures": "41-59", "claim": "The mitotic figure behaves as a system of forces between two poles: spindle and aster configurations, and chromosome movements, follow the lines of a bipolar field of force (with Peddie's magnetic-field diagrams as the physical analogue).", "type": "mechanistic", "status": "DONE_ELSEWHERE", "what_remains": "Superseded mechanistically (microtubule dynamics, motor proteins), though the field/polarity language survives in modern spindle mechanics. A repo 'test' would be history-of-mechanism, not a fit.", "method": "Not recommended as a shape fit; if scored, compare spindle geometry to dipole-field vs microtubule models on imaging data.", "data_needed": "Spindle imaging (public cell atlases)", "effort": "10\u201320d (L)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 85.0]]}, {"id": "T1917-012", "chapter": "IV", "chapter_title": "On the Internal Form and Structure of the Cell", "pages": "156-200", "figures": "58-59", "claim": "Early cleavage/segmentation patterns of eggs conform to the same bipolar (two-like-pole) field configuration.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-30 (overnight loop, composer-2.5, PR 318): verdict supported. Untested as stated; modern cleavage is explained by spindle positioning/cortical mechanics, which could be compared geometrically.", "method": "Cleavage-plane angles vs field-model prediction in a model embryo dataset.", "data_needed": "Public embryo imaging/landmarks", "effort": "7\u201314d (L)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 70.0]]}, {"id": "T1917-013", "chapter": "V", "chapter_title": "The Forms of Cells", "pages": "201-276", "figures": "60-68", "claim": "A free, isolated cell (like a liquid drop) tends to the spherical/minimal-area form under surface tension, departing from it only under identifiable constraints.", "type": "mechanistic-geometric", "status": "DONE_ELSEWHERE", "what_remains": "Supported as a null model; modern cell mechanics adds cortex/active stress. Repo has scouted material but no Thompson-scored test.", "method": "Roundness/area-minimality of isolated cells vs active-mechanics null.", "data_needed": "Cell-shape imaging compilations", "effort": "3\u20136d (M)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 55.0]]}, {"id": "T1917-014", "chapter": "V", "chapter_title": "The Forms of Cells", "pages": "201-276", "figures": "61-67, 72-96", "claim": "The forms of single cells and cell-like organisms (Plateau's oil globules; Lagena and other forams/protists) are surfaces of revolution from the minimal-surface catalogue: sphere, cylinder, unduloid, nodoid, catenoid.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 302): verdict mixed. Never fitted organism-by-organism to Thompson's figured genera with an area-minimality score. This is one of the cheapest untouched wins: outlines are in his figures and in modern images.", "method": "Fit each figured outline to the Delaunay surface family; report residual vs free-form spline.", "data_needed": "Thompson's figures (IA scan) + modern protist/foram images (Commons/literature)", "effort": "5\u201310d (M)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-015", "chapter": "V", "chapter_title": "The Forms of Cells", "pages": "201-276", "figures": "68-71", "claim": "A liquid cylinder breaks up into a row of spheres (Plateau-Rayleigh instability), and the same segmentation is seen in protoplasmic threads/cells.", "type": "mechanistic-geometric", "status": "DONE_ELSEWHERE", "what_remains": "Instability is settled physics (wavelength ~ circumference criterion); biological instances are case-by-case.", "method": "Compare observed bead spacing/diameter to Rayleigh criterion.", "data_needed": "Images of his examples (Spirogyra/protoplasmic strands)", "effort": "2\u20134d (S)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 10.0]]}, {"id": "T1917-016", "chapter": "V", "chapter_title": "The Forms of Cells", "pages": "201-276", "figures": "94-96", "claim": "Cell form changes lawfully with the density/osmotic strength of the medium (Koltzoff's decapod sperm cells in saline solutions), as a surface-tension/osmotic system should.", "type": "quantitative-empirical", "status": "UNTESTED", "what_remains": "No repo test; modern osmotic cell-mechanics could replicate the exact experiment in silico/on public data.", "method": "Cell volume/shape vs osmolarity curve vs osmotic model.", "data_needed": "Public osmolarity cell-shape data or a small simulation", "effort": "4\u20138d (M)", "priority": "P2", "p_resolvable": 10.0, "p_band": "very_low", "p_basis": [["moderate effort (4-8 person-days)", -5], ["HUMAN_REQUIRED: capped at 25 until a human unblocks", 0]]}, {"id": "T1917-017", "chapter": "VI", "chapter_title": "A Note on Adsorption", "pages": "277-292", "figures": "97-98", "claim": "Adsorption concentrates dissolved substances at surfaces/interfaces, and this physical concentration helps explain localisation and pattern within the cell/organism.", "type": "mechanistic", "status": "NOT_TESTABLE_AS_STATED", "what_remains": "Too general to falsify as written; specific descendants (surface catalysis, membrane localisation) are settled elsewhere.", "method": "Do not score as one row; split into specific modern claims if ever pursued.", "data_needed": "-", "effort": "1\u20131d (S)", "priority": "P2", "p_resolvable": 5.0, "p_band": "very_low", "p_basis": []}, {"id": "T1917-018", "chapter": "VII", "chapter_title": "The Forms of Tissues, or Cell-Aggregates", "pages": "293-345", "figures": "100-135", "claim": "Cells in contact, like soap films, meet three-at-a-time at ~120 degrees and in other respects obey Plateau's laws of film configuration.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 304): verdict supported. Angle distribution in a real epithelium has never been scored here against the 120-degree prediction with a stated tolerance. Modern literature broadly supports Plateau statistics with active-mechanics deviations.", "method": "Junction-angle histograms from segmented epithelia vs 120-degree/Plateau null.", "data_needed": "Public segmented epithelium (e.g. Drosophila wing disc)", "effort": "3\u20136d (M)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-019", "chapter": "VII", "chapter_title": "The Forms of Tissues, or Cell-Aggregates", "pages": "293-345", "figures": "120-127", "claim": "Tissue cells tessellate approximately as hexagons / as a froth, the configuration that partitions area with least perimeter.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 303): verdict supported. Same gap as T1917-018: polygon-class distributions (pentagon/hexagon/heptagon fractions) unscored. Known modern result: distributions are froth-like but not perfectly hexagonal.", "method": "Side-number distribution + Lewis/Desch laws on segmented tissue.", "data_needed": "As T1917-018", "effort": "3\u20136d (M)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-020", "chapter": "VII", "chapter_title": "The Forms of Tissues, or Cell-Aggregates", "pages": "293-345", "figures": "136-175 (with Ch. VIII)", "claim": "Sachs's rules describe cell division in plant tissues: daughter cells tend to equal volume, new walls meet old walls at right angles and follow minimal-area configurations.", "type": "geometric-empirical", "status": "DONE_ELSEWHERE", "what_remains": "Tested extensively in modern plant morphogenesis (Errera's rule etc.); supported in refined form. No repo reproduction.", "method": "Division-plane statistics in a plant tissue dataset vs Sachs/Errera predictions.", "data_needed": "Public plant meristem imaging", "effort": "5\u201310d (M)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 25.0]]}, {"id": "T1917-021", "chapter": "VIII", "chapter_title": "The Forms of Tissues (continued)", "pages": "346-410", "figures": "136-193", "claim": "The bee's honeycomb - hexagonal prisms closed by three rhombi meeting at the Maraldi angle (~109 deg 28 min) - is the configuration using least wax for the capacity (the isoperimetric claim).", "type": "quantitative-geometric", "status": "DONE_ELSEWHERE", "what_remains": "Split verdict in modern literature, and the split matters: the hexagonal tiling IS optimal (Hales 2001), but Fejes Toth showed a slightly better base than the bees' rhombic trihedron, so 'least wax' is false in detail for the end-caps. Any repo treatment must state both halves.", "method": "Analytic/numerical wax-volume comparison; no new data needed.", "data_needed": "Geometry only (+ comb measurements for what bees actually build)", "effort": "1\u20133d (S)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 55.0]]}, {"id": "T1917-022", "chapter": "VIII", "chapter_title": "The Forms of Tissues (continued)", "pages": "346-410", "figures": "176-193", "claim": "Isoperimetric/minimal-area principles also govern other hollow and aggregate structures he treats in this chapter (e.g. radiolarian-like and echinoderm larval skeletal arrangements, vessel and tissue partitions).", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-30 (overnight loop, composer-2.5, PR 319): verdict mixed. A catch-all row: split per structure before testing. Keep as a parent row only.", "method": "Split, then per-structure minimality score as in T1917-014/018.", "data_needed": "Per structure", "effort": "5\u201315d (M)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 55.0]]}, {"id": "T1917-023", "chapter": "IX", "chapter_title": "On Concretions, Spicules, and Spicular Skeletons", "pages": "411-487", "figures": "194-235", "claim": "Concretions and calcospherites grow by radial deposition about a centre (Harting's artificial concretions in egg albumen mimic natural ones), giving concentric/spherical forms by physical deposition alone.", "type": "mechanistic-geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 301): verdict supported. Repo has scouted/simulated accretion widely but never scored radial-deposition geometry against Thompson's/Harting's figured spherites.", "method": "Radial symmetry + concentric banding metrics on spherite images/simulations.", "data_needed": "Harting figures (IA) + modern spherite/concretion images", "effort": "4\u20138d (M)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-024", "chapter": "IX", "chapter_title": "On Concretions, Spicules, and Spicular Skeletons", "pages": "411-487", "figures": "194-235", "claim": "Sponge and alcyonarian spicule forms (needles, tri-/tetraradiates and their aggregates) are the forms physical deposition/crystallisation takes within the cell/field that secretes them.", "type": "geometric-mechanistic", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 312): verdict mixed. Angles between rays (e.g. tri-radiate ~120 deg, tetraxial tetrahedral angles) are directly measurable and untested here.", "method": "Ray-angle and symmetry statistics on spicule image sets vs deposition-model predictions.", "data_needed": "Spicule SEM/image compilations (literature/GBIF images)", "effort": "7\u201314d (L)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-025", "chapter": "IX-X", "chapter_title": "Spicules / Geodetics", "pages": "411-492", "figures": "221-235, 236-259", "claim": "Radiolarian and similar siliceous skeletons approximate geodesic/minimal frameworks on a sphere (latticed shells as systems of shortest lines and near-equal partitions).", "type": "geometric", "status": "UNTESTED", "what_remains": "Haeckel's figured species are ideal for a geodesic-framework score; never done in repo.", "method": "Extract lattice from Haeckel/modern radiolarian images; test geodesic and valence statistics.", "data_needed": "Haeckel plates (public domain) + modern SEM", "effort": "7\u201314d (L)", "priority": "P1", "p_resolvable": 35.0, "p_band": "low", "p_basis": [["needs a human-chosen seed before the loop", -5], ["moderate effort (7-14 person-days)", -5]]}, {"id": "T1917-026", "chapter": "X", "chapter_title": "A Parenthetic Note on Geodetics", "pages": "488-492", "figures": "236-259", "claim": "Geodesic (shortest-line) trajectories on a curved surface explain the courses of spicules, shell sculpture and other skeletal lines laid down on that surface.", "type": "geometric", "status": "UNTESTED", "what_remains": "General principle, testable per instance (bundle with T1917-024/025/040).", "method": "Fit observed surface curves to surface geodesics; residual vs non-geodesic null.", "data_needed": "3D surface + curve traces for one chosen system", "effort": "7\u201314d (L)", "priority": "P2", "p_resolvable": 10.0, "p_band": "very_low", "p_basis": [["moderate effort (7-14 person-days)", -5], ["HUMAN_REQUIRED: capped at 25 until a human unblocks", 0]]}, {"id": "T1917-027", "chapter": "XI", "chapter_title": "The Logarithmic Spiral", "pages": "493-586", "figures": "237-303", "claim": "Spiral shells (and other gnomonic-growth structures) are logarithmic (equiangular) spirals: the wharves enlarge by a constant ratio, so the form is unchanged by growth (r proportional to e^{k theta}).", "type": "quantitative-geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, composer-2.5, PR 298): verdict supported. Repo explores the Raup/log-spiral space but has not fitted Thompson's own figured shells and reported log-vs-Archimedean discrimination with error bars. Modern literature: broadly supported, with real deviations.", "method": "Fit log vs Archimedean vs power spirals to shell centrelines; AICc + residuals.", "data_needed": "Shell images/outlines (Commons, museum) for his genera (Nautilus, gastropods)", "effort": "3\u20136d (M)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-028", "chapter": "XI", "chapter_title": "The Logarithmic Spiral", "pages": "493-586", "figures": "304-307", "claim": "In Nautilus the shell spiral and the septa bear the stated geometric relations (septa meeting the wall, spiral as evolute/involute relations he diagrams).", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, composer-2.5, PR 300): verdict mixed. Directly measurable on a Nautilus section/radiograph; never scored.", "method": "Landmark a Nautilus section; test his septum/spiral relations numerically.", "data_needed": "Nautilus shell section image (public)", "effort": "3\u20135d (S)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-029", "chapter": "XII", "chapter_title": "The Spiral Shells of the Foraminifera", "pages": "587-611", "figures": "308-317", "claim": "Foraminiferal shells are generated by chambers added in logarithmic-spiral succession with (near-)constant growth ratios, and the genera form a continuous geometric series transformable into one another.", "type": "quantitative-geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 308): verdict mixed. Chamber-by-chamber ratio test is cheap and has, to our knowledge, no repo or clean modern score on his Brady-figured genera.", "method": "Measure successive chamber sizes/angles in Brady plates/modern forams; test constancy of ratio and series continuity.", "data_needed": "Brady Challenger plates (public domain) + modern foram images", "effort": "4\u20138d (M)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-030", "chapter": "XII (with V)", "chapter_title": "The Spiral Shells of the Foraminifera", "pages": "587-611; cf. 201-276", "figures": "84-89, 308-317", "claim": "Single-chambered foraminiferal tests (Lagena etc.) take the surface-tension forms of Ch. V (flask/unduloid-like surfaces of revolution), chamber form preceding spiral coiling.", "type": "geometric", "status": "UNTESTED", "what_remains": "Bundle with T1917-014 (same fitter, same surface catalogue).", "method": "Delaunay-surface fit to Lagena outlines.", "data_needed": "Brady plates / modern images", "effort": "2\u20134d (S)", "priority": "P1", "p_resolvable": 40.0, "p_band": "medium", "p_basis": [["needs a human-chosen seed before the loop", -5]]}, {"id": "T1917-031", "chapter": "XIII", "chapter_title": "The Shapes of Horns, and of Teeth or Tusks, with a Note on Torsion", "pages": "612-634", "figures": "318-324", "claim": "Horns (ram, goat, Ovis ammon) are logarithmic spirals wound on a cone (a conical helicoid generated by gnomonic growth), differing between species by the spiral constants and torsion.", "type": "quantitative-geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 310): verdict mixed. No repo fit to horn centrelines in 3D; modern CT/museum horn data exist. This is the horn analogue of the shell test and should share code with T1917-027.", "method": "Extract 3D horn centreline; fit conical log-helicoid vs alternatives.", "data_needed": "Museum horn photos/CT (MorphoSource, public specimens)", "effort": "7\u201314d (L)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-032", "chapter": "XIII", "chapter_title": "The Shapes of Horns, and of Teeth or Tusks", "pages": "612-634", "figures": "318-324", "claim": "Teeth and tusks grow by the same spiral/torsion geometry (with St Venant torsion curves describing the twisted prismatic forms).", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 309): verdict mixed. Untested; bundle with T1917-031.", "method": "As T1917-031 on tusk/tooth centrelines and cross-sections.", "data_needed": "Tusk/tooth images or CT", "effort": "5\u201310d (M)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-033", "chapter": "XIV", "chapter_title": "On Leaf-Arrangement, or Phyllotaxis", "pages": "635-651", "figures": "325-327", "claim": "Leaf/floret divergence approximates the golden (Fibonacci) angle (~137.5 deg), with rational approximations 1/2, 1/3, 2/5, 3/8... and Fibonacci numbers of parastichies.", "type": "quantitative-empirical", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, composer-2.5, PR 314): verdict supported. Repo simulates the mechanism but has not scored divergence-angle distributions in real plants against Thompson's fractions. Modern literature: strongly supported with documented exceptions/transitions.", "method": "Divergence-angle measurement on capitula/stems; compare golden-angle vs alternative packing models.", "data_needed": "Sunflower/ capitulum images (public) - measurement only", "effort": "3\u20136d (M)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-034", "chapter": "XV", "chapter_title": "On the Shapes of Eggs, and of Certain Other Hollow Structures", "pages": "652-669", "figures": "328-330", "claim": "Birds' (and other hard-shelled) eggs are solids of revolution whose meridian curves form a definite, species-varying family of ovoids, comparable geometrically across species.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 306): verdict supported. Modern egg-shape literature (e.g. universal egg formula work, 2021) postdates and partly supersedes him; a repo test on museum egg outlines is straightforward and has not been done.", "method": "Fit egg outlines to Thompson-style ovoid parameters vs modern universal formula; compare residuals across species.", "data_needed": "Egg outline images (museum/Commons)", "effort": "3\u20136d (M)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-035", "chapter": "XV", "chapter_title": "On the Shapes of Eggs, and of Certain Other Hollow Structures", "pages": "652-669", "figures": "328", "claim": "Certain hollow structures (e.g. sea-urchin tests diagrammed in Fig. 328, skulls and other shells) take forms explicable as membranes/shells under pressure and tension.", "type": "mechanistic-geometric", "status": "UNTESTED", "what_remains": "Too broad as one row; the urchin-test instance is measurable (membrane under uniform pressure predicts a specific meridian).", "method": "Pick the urchin instance; fit meridian to pressure-membrane vs descriptive curves.", "data_needed": "Urchin test profiles", "effort": "5\u201310d (M)", "priority": "P2", "p_resolvable": 35.0, "p_band": "low", "p_basis": [["needs a human-chosen seed before the loop", -5], ["moderate effort (5-10 person-days)", -5]]}, {"id": "T1917-036", "chapter": "XVI", "chapter_title": "On Form and Mechanical Efficiency", "pages": "670-718", "figures": "331-352", "claim": "In a bent beam there is a neutral zone/axis free of tension and compression, and animal/plant structures that bend (bones, stems, trunks) are disposed accordingly (material where the stress is).", "type": "mechanistic", "status": "DONE_ELSEWHERE", "what_remains": "Settled engineering; biological allocation is clade-specific. Low novelty for repo.", "method": "Only as part of T1917-037/038 bundles.", "data_needed": "-", "effort": "1\u20132d (S)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 10.0]]}, {"id": "T1917-037", "chapter": "XVI", "chapter_title": "On Form and Mechanical Efficiency", "pages": "670-718", "figures": "335", "claim": "Trabecular bone is arranged along the principal stress trajectories of the bone, as in Culmann's crane-head diagram applied to the human femur (the trajectorial theory).", "type": "quantitative-geometric", "status": "UNTESTED", "what_remains": "A classic claim with a mixed modern verdict (alignment is real but partial and load-history dependent). A quantitative alignment score on public femur CT would be a genuine repo contribution.", "method": "Trabecular orientation (fabric tensor) vs finite-element principal-stress directions in femur CT; alignment distribution vs random null.", "data_needed": "Public femur micro-CT / CT (MorphoSource etc.)", "effort": "14\u201328d (L)", "priority": "P1", "p_resolvable": 25.0, "p_band": "low", "p_basis": [["large effort (14-28 person-days)", -10], ["HUMAN_REQUIRED: capped at 25 until a human unblocks", 0]]}, {"id": "T1917-038", "chapter": "XVI", "chapter_title": "On Form and Mechanical Efficiency", "pages": "670-718", "figures": "331-334, 336-352", "claim": "Hollow cylindrical construction (long bones, stems, quills) gives near-maximal strength/stiffness for weight, and branching systems (blood vessels, Fig. 329-330 after Hess; trees) branch at angles/ratios that economise work/material.", "type": "quantitative-geometric", "status": "DONE_ELSEWHERE", "what_remains": "Vessel branching is the Murray's-law literature (1926, after Thompson); broadly supported with exceptions. Bone hollowness ratios are measurable cheaply if bundled.", "method": "Branch angle/diameter ratios vs Murray optimum on a public vascular/tree dataset.", "data_needed": "Public vascular or tree-branch measurements", "effort": "4\u20138d (M)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_ELSEWHERE)", 70.0]]}, {"id": "T1917-039", "chapter": "XVII", "chapter_title": "On the Theory of Transformations, or the Comparison of Related Forms", "pages": "719-776", "figures": "353-408", "claim": "GENERAL THESIS: the form of a related species/genus can be obtained from another by a simple, continuous deformation of the whole coordinate system (a transformation of the whole form), rather than by unrelated changes of separate parts.", "type": "geometric-methodological", "status": "PARTIAL_REPO", "what_remains": "Verdict so far is scale-dependent, and that IS the repo's central result: global low-parameter warps capture most variance within genera / within ~45-50 Myr, fail to reach noise floor between families, and lose to local modular change in fins/jaws. The thesis as a universal claim is therefore REFUTED in its strong form and SUPPORTED in a bounded (taxonomic/temporal horizon) form. Remaining: the non-fish, non-arthropod figure pairs (T1917-053..061).", "method": "Per-pair low-parameter warp vs similarity/affine/box nulls, LOO-CV, noise-floor criterion (repo standard).", "data_needed": "Per pair", "effort": "2\u20134d (S)", "priority": "P0", "p_resolvable": 15.0, "p_band": "low", "p_basis": [["partial repo progress already made", 10]]}, {"id": "T1917-040", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "~724-735", "figures": "353-358", "claim": "Human (and animal) heads/faces and proportions, in the Durer/Camper tradition, are mutually transformable by coordinate deformation; differences of facial angle/proportion are whole-grid deformations.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-30 (overnight loop, composer-2.5, PR 315): verdict supported. His Durer-derived human proportion grids have never been landmark-tested here (the ape/human skull instance is T1917-060).", "method": "Landmark Durer/Thompson grids and modern head profiles; warp-family fit as per repo standard.", "data_needed": "Profile landmarks (public anthropometric data)", "effort": "7\u201314d (L)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-041", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "~732", "figures": "359-360", "claim": "Lanceolate, ovate and cordate leaves are transforms of one another under radial (polar) coordinates about an arrest/base point; the Begonia leaf is an instance of the same radial system.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, composer-2.5, PR 299): verdict mixed. The law has been borrowed and tested on animals; Thompson's actual leaves have never been fitted. Cheap, direct, undone.", "method": "Fit leaf outlines (lanceolate/ovate/cordate series) with the 8p radial-cordate family vs box/affine nulls.", "data_needed": "Leaf outline images (public herbaria/Commons)", "effort": "3\u20136d (M)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-042", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "743", "figures": "367-368", "claim": "The copepods Oithona nana and Sapphirina are related by a (logarithmic/coordinate) transformation of the whole form.", "type": "geometric", "status": "DONE_REPO", "what_remains": "Supported on Thompson's drawings (77 grid landmarks). Remains: real-specimen outlines, as was done for fish.", "method": "As fish: specimen photos + 600-pt outline fit.", "data_needed": "Copepod specimen images", "effort": "4\u20138d (M)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-043", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "744", "figures": "369", "claim": "The carapaces of crabs (Geryon, Corystes, Scyramathia/Rochinia, Paralomis/Lithodes, Lupa/Portunus, Chorinus etc.) are mutually transformable by rectilinear-to-curvilinear coordinate transformation.", "type": "geometric", "status": "DONE_REPO", "what_remains": "Supported on drawings and partly on real 3D-scan landmarks; a full 600-pt real-specimen outline test remains (the fish treatment).", "method": "Real carapace outlines + direct outline fitting.", "data_needed": "Crab carapace images/scans (partly in .thompson_cache/crabs)", "effort": "5\u201310d (M)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-044", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "746", "figures": "370", "claim": "The amphipods Harpinia, Stegocephalus and Hyperia galba form a transformation series under coordinate deformation.", "type": "geometric", "status": "DONE_REPO", "what_remains": "Tested on the 1917 plate within the all-arthropods audit; real-specimen outline test remains.", "method": "Specimen outlines as per fish/copepod rows.", "data_needed": "Amphipod specimen images", "effort": "4\u20138d (M)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-045", "chapter": "XVII (fish I)", "chapter_title": "On the Theory of Transformations", "pages": "748", "figures": "373-374", "claim": "Argyropelecus olfersii is transformed into Sternoptyx diaphana by an oblique (shear) coordinate system whose axes are inclined at 70 degrees.", "type": "geometric", "status": "DONE_REPO", "what_remains": "Supported as a family at intrageneric/intrafamily scale; the exact pair is landmarked from archival plates. 600-pt exact-pair outline fit is the remaining upgrade.", "method": "Direct outline fitting on the exact pair (repo silhouette pipeline).", "data_needed": "In repo (.thompson_cache archival plates)", "effort": "2\u20134d (S)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-046", "chapter": "XVII (fish II)", "chapter_title": "On the Theory of Transformations", "pages": "749", "figures": "375-376", "claim": "Deforming the rectilinear coordinates of a typical Scarus into (approximately) coaxial circles gives 'a very good outline' of Pomacanthus.", "type": "geometric", "status": "DONE_REPO", "what_remains": "REFUTED in its literal (conformal/Mobius) reading: Mobius explains 0.8-1% (a conformal map cannot change depth/length 0.377->0.587); the generous oblique-coaxial reading explains 32% at genus-mean landmarks (31st percentile of all genus pairs), LOO-CV fails (0.0371 > 0.0312), and on real outlines every deformation is WORSE than no deformation (IoU 0.618 coaxial vs 0.662 similarity). Remediation already listed in the audit: digitise his drawn grid, fit maps to outlines directly, more individuals.", "method": "Audit remediation items 1-3 (grid digitisation, outline-fitted maps, multi-individual).", "data_needed": "In repo + more Commons/Bishop photos", "effort": "5\u201310d (M)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-047", "chapter": "XVII (fish II, text)", "chapter_title": "On the Theory of Transformations", "pages": "749", "figures": "375-376 (text)", "claim": "The 'still more bizarre outlines of other fishes of the same family of Chaetodonts' correspond to small variations in the values of the constants of the coaxial curves.", "type": "quantitative-geometric", "status": "DONE_REPO", "what_remains": "The explained-variance half is tested (median 35%: weak-to-moderate, not 'very slight variations' producing bizarre outlines). The literal constants half - are the fitted constants actually SMALL variations? - is still unreported; it is a one-figure job on existing fits.", "method": "Report fitted c (and affine part) for all 54 Chaetodon fits; test dispersion vs shape distance.", "data_needed": "Existing fits (re-run with constants saved)", "effort": "1\u20132d (S)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-048", "chapter": "XVII (fish III)", "chapter_title": "On the Theory of Transformations", "pages": "750", "figures": "377-380", "claim": "Polyprion, Pseudopriacanthus (Pristigenys) altus, Scorpaena and Antigonia capros are related by a fan/divergent-convergent coordinate transformation.", "type": "geometric", "status": "DONE_REPO", "what_remains": "Tested at landmark level across the atlas and on exact 1917 species; 600-pt exact-pair outlines remain.", "method": "Direct outline fitting (repo silhouette pipeline).", "data_needed": "In repo", "effort": "2\u20134d (S)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-049", "chapter": "XVII (fish IV)", "chapter_title": "On the Theory of Transformations", "pages": "751", "figures": "381-382", "claim": "Diodon is transformed into Orthagoriscus (Mola mola) by deforming verticals into concentric circles and horizontals into approximately hyperbolic curves.", "type": "geometric", "status": "DONE_REPO", "what_remains": "Landmark-level test done; Mola is absent from the 791-spp table so the exact pair rests on archival landmarking - outline-level test is the upgrade.", "method": "Direct outline fitting on archival/NOAA specimens.", "data_needed": "In repo (.thompson_cache Mola plates)", "effort": "2\u20134d (S)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-050", "chapter": "XVII (fish, generalisation)", "chapter_title": "On the Theory of Transformations", "pages": "748-751", "figures": "373-382", "claim": "IMPLIED GENERALISATION tested by this repo (not a sentence of Thompson's): the four fish families above describe related-fish form difference generally, across taxa and evolutionary time.", "type": "geometric", "status": "DONE_REPO", "what_remains": "This is the repo's most complete Thompson result and should be cited as an extension, never as 'Thompson claimed this in 1917'. Remaining: none for fish at landmark level; outline-level for exact pairs (T1917-045/048/049).", "method": "Complete for fish; replicate protocol per new clade.", "data_needed": "-", "effort": "0\u20130d (S)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 15.0]]}, {"id": "T1917-051", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "752-753", "figures": "383", "claim": "The skulls of crocodiles (C. porosus, C. americanus, Notosuchus terrestris) are mutually transformable by coordinate deformation.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, composer-2.5, PR 296): verdict mixed. Never tested. The recommended Dryad dataset makes this a standard repo-protocol job.", "method": "Repo GM protocol: landmark warp families vs box/affine/TPS, LOO-CV, noise floor.", "data_needed": "Dryad 10.5061/dryad.14fn1 (cited in thompson/MODERN_DATASETS_THOMPSON_ALIGNED.md)", "effort": "5\u201310d (M)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-052", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "754-755", "figures": "384-386", "claim": "The pelvic/shoulder girdles of dinosaurs and plesiosaurs (Stegosaurus, Brontosaurus; Cryptocleidus etc.) are mutually transformable by coordinate deformation.", "type": "geometric", "status": "UNTESTED", "what_remains": "Untested; fossil girdle landmark data would need assembling from literature figures/specimens.", "method": "Landmark his figures + published fossil reconstructions; warp fit with reconstruction-uncertainty caveat.", "data_needed": "Literature fossil figures (public domain for 1917 sources)", "effort": "10\u201320d (L)", "priority": "P2", "p_resolvable": 5.0, "p_band": "very_low", "p_basis": [["large effort (10-20 person-days)", -10], ["HUMAN_REQUIRED: capped at 25 until a human unblocks", 0]]}, {"id": "T1917-053", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "756", "figures": "387", "claim": "The skulls of Dimorphodon and Pteranodon are related by coordinate transformation.", "type": "geometric", "status": "UNTESTED", "what_remains": "Untested; two-taxon case, so only a descriptive warp (no noise floor) unless embedded in a pterosaur skull dataset.", "method": "Descriptive warp + embedding in broader pterosaur GM dataset if available.", "data_needed": "Pterosaur skull landmarks (literature)", "effort": "7\u201314d (L)", "priority": "P2", "p_resolvable": 65.0, "p_band": "medium", "p_basis": [["needs a human-chosen seed before the loop", -5], ["moderate effort (7-14 person-days)", -5]]}, {"id": "T1917-054", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "757-759", "figures": "388-393", "claim": "The pelves of Archaeopteryx and Apatornis (after Heilmann) and intermediate configurations can be found by interpolation between coordinate-transformed forms - i.e. interpolated grids generate biologically real intermediate forms.", "type": "geometric-methodological", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 307): verdict mixed. The interpolation-generates-real-forms claim is validated in principle (fish ancestors/fossils) but never on Heilmann's bird pelves.", "method": "Landmark bird pelves; test whether grid-interpolated intermediates match real intermediate taxa better than chance.", "data_needed": "Bird/fossil pelvis landmarks (literature)", "effort": "10\u201320d (L)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-055", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "760-764", "figures": "394-400", "claim": "The skulls of rhinoceroses and their allies (Hyrachyus, Aceratherium, Titanotherium, tapir, horse, rabbit comparisons after Osborn) differ by coordinate transformation of a common skull diagram.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-30 (overnight loop, composer-2.5, PR 317): verdict mixed. Clade-analogue tested (Leporidae); Thompson's actual ungulate series untested.", "method": "Landmark ungulate skull series (public GM datasets exist); repo protocol.", "data_needed": "Public perissodactyl skull GM data", "effort": "5\u201310d (M)", "priority": "P1", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 70.0]]}, {"id": "T1917-056", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "765-767", "figures": "401-402", "claim": "The skull of Eohippus (Hyracotherium) is transformed into that of Equus by coordinate deformation, with actual and hypothetical intermediates (after Heilmann) lying on the transformation.", "type": "geometric", "status": "UNTESTED", "what_remains": "Untested, and one of the most iconic untested pairs. Horse skull GM data are public; intermediates make it falsifiable (do real mesohippus-stage skulls lie on the warp path?).", "method": "Landmark equid skull series; test fossil intermediates against warp-path prediction vs straight Procrustes interpolation.", "data_needed": "Equid skull landmarks (literature/public)", "effort": "5\u201310d (M)", "priority": "P0", "p_resolvable": 65.0, "p_band": "medium", "p_basis": [["needs a human-chosen seed before the loop", -5], ["moderate effort (5-10 person-days)", -5]]}, {"id": "T1917-057", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "769", "figures": "403", "claim": "Human scapulae of differing form (after Dwight) are comparable/transformable by the coordinate method.", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-30 (overnight loop, composer-2.5, PR 316): verdict mixed. Untested; low priority (variation within one species, weak claim).", "method": "Scapula outline warp, descriptive.", "data_needed": "Scapula images/landmarks", "effort": "4\u20138d (M)", "priority": "P2", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 55.0]]}, {"id": "T1917-058", "chapter": "XVII", "chapter_title": "On the Theory of Transformations", "pages": "770-773", "figures": "404-408", "claim": "The human skull, inscribed in Cartesian coordinates and deformed, gives the skulls of chimpanzee, baboon and dog: ape/human skull difference is a whole-diagram transformation (notably of the facial/cranial proportions).", "type": "geometric", "status": "DONE_REPO", "what_remains": "RESOLVED 2026-10-28 (overnight loop, claude-fable-5-1, PR 305): verdict supported. Never tested on primates. Primate skull GM datasets are abundant and public - this is a high-visibility, feasible test.", "method": "Repo protocol on a public primate skull landmark set (human/chimp/baboon/dog as outgroup comparison).", "data_needed": "Public primate cranial GM dataset", "effort": "5\u201310d (M)", "priority": "P0", "p_resolvable": 100.0, "p_band": "resolved", "p_basis": [["already resolved (DONE_REPO)", 25.0]]}, {"id": "T1917-059", "chapter": "Epilogue", "chapter_title": "Epilogue", "pages": "~777-788", "figures": "-", "claim": "(Restatement) Form is not exhaustively explained by natural selection on independent parts; physical/mathematical law constrains the forms available to evolution.", "type": "methodological", "status": "NOT_TESTABLE_AS_STATED", "what_remains": "Score only via descendants (T1917-002/039/050). Modern framing: developmental/physical constraint on morphospace occupation - the repo's horizon result is one quantified instance.", "method": "Roll-up of descendant rows.", "data_needed": "-", "effort": "1\u20131d (S)", "priority": "P2", "p_resolvable": 5.0, "p_band": "very_low", "p_basis": []}], "chapters": [{"title": "Introductory", "node": "tch-0"}, {"title": "Introductory / Epilogue", "node": "tch-1"}, {"title": "On Magnitude", "node": "tch-2"}, {"title": "The Rate of Growth", "node": "tch-3"}, {"title": "On the Internal Form and Structure of the Cell", "node": "tch-4"}, {"title": "The Forms of Cells", "node": "tch-5"}, {"title": "A Note on Adsorption", "node": "tch-6"}, {"title": "The Forms of Tissues, or Cell-Aggregates", "node": "tch-7"}, {"title": "The Forms of Tissues (continued)", "node": "tch-8"}, {"title": "On Concretions, Spicules, and Spicular Skeletons", "node": "tch-9"}, {"title": "Spicules / Geodetics", "node": "tch-10"}, {"title": "A Parenthetic Note on Geodetics", "node": "tch-11"}, {"title": "The Logarithmic Spiral", "node": "tch-12"}, {"title": "The Spiral Shells of the Foraminifera", "node": "tch-13"}, {"title": "The Shapes of Horns, and of Teeth or Tusks, with a Note on Torsion", "node": "tch-14"}, {"title": "The Shapes of Horns, and of Teeth or Tusks", "node": "tch-15"}, {"title": "On Leaf-Arrangement, or Phyllotaxis", "node": "tch-16"}, {"title": "On the Shapes of Eggs, and of Certain Other Hollow Structures", "node": "tch-17"}, {"title": "On Form and Mechanical Efficiency", "node": "tch-18"}, {"title": "On the Theory of Transformations, or the Comparison of Related Forms", "node": "tch-19"}, {"title": "On the Theory of Transformations", "node": "tch-20"}, {"title": "Epilogue", "node": "tch-21"}], "inventory_url": "https://github.com/fractastical/morpholib/blob/main/docs/THOMPSON_1917_CLAIM_INVENTORY.md"};
const CCOL = {DONE_REPO:'#1F8A65', DONE_ELSEWHERE:'#2A9A8A', PARTIAL_REPO:'#F0A040', UNTESTED:'#C04848', NOT_TESTABLE_AS_STATED:'#888'};
const CS = {chapter:'all', status:'all', q:'', sel:null};
function claimList(){ if(!THOMP) return []; const q=CS.q.trim().toLowerCase();
return THOMP.claims.filter(c=>(CS.chapter==='all'||c.chapter_title===CS.chapter)&&(CS.status==='all'||c.status===CS.status)&&(!q||(c.id+' '+c.claim+' '+c.chapter_title).toLowerCase().includes(q))); }
function renderClaims(){
const el=$('claimpanel'); if(!THOMP){ el.innerHTML='<p class="small mut">Thompson claims registry not available in this build.</p>'; return; }
if(!CS.sel) CS.sel=THOMP.claims[0].id;
const sel=THOMP.claims.find(c=>c.id===CS.sel)||THOMP.claims[0];
const list=claimList();
const rows=list.map(c=>`<div class="prow ${c.id===sel.id?'sel':''}" onclick="CS.sel='${c.id}';renderClaims()"><span class="dot" style="background:${CCOL[c.status]}"></span><b class="small">${c.id}</b> <span class="badge" style="background:${CCOL[c.status]}">${c.status}</span> <span class="small mut">Ch. ${esc(c.chapter)} · pp. ${esc(c.pages)} · Figs. ${esc(c.figures)} · ${esc(c.priority)} · effort ${esc(c.effort)}${c.p_resolvable!=null?` · <b>P(resolve) ${c.p_resolvable}%</b> (${esc(c.p_band)})`:''}</span><br><span class="small">${esc(c.claim.slice(0,150))}${c.claim.length>150?'…':''}</span></div>`).join('') || '<p class="small mut">No claims match these filters.</p>';
el.innerHTML=`<div class="row"><b style="flex:1">All ${THOMP.n} claims from <i>On Growth and Form</i> (1917) — cited, then assessed against this repo</b><a class="small" href="${THOMP.inventory_url}">full inventory</a></div>
<p class="small mut">Status: <span class="badge" style="background:#1F8A65">DONE_REPO 9</span> <span class="badge" style="background:#F0A040">PARTIAL_REPO 13</span> <span class="badge" style="background:#2A9A8A">DONE_ELSEWHERE 13</span> <span class="badge" style="background:#C04848">UNTESTED 21</span> <span class="badge" style="background:#888">NOT_TESTABLE 3</span> · In the graph above, the <b>Thompson 1917 claims</b> hub (bottom band) groups these by chapter — click a chapter node to filter here, double-click it to collapse/expand its place in the graph.</p>
<div class="row"><select onchange="CS.chapter=this.value;renderClaims()" aria-label="Filter by chapter"><option value="all">All chapters (${THOMP.n})</option>${THOMP.chapters.map(ch=>`<option ${CS.chapter===ch.title?'selected':''} value="${esc(ch.title)}">${esc(ch.title)} (${THOMP.claims.filter(c=>c.chapter_title===ch.title).length})</option>`).join('')}</select>
<select onchange="CS.status=this.value;renderClaims()" aria-label="Filter by status"><option value="all">All statuses</option>${Object.keys(CCOL).map(s=>`<option ${CS.status===s?'selected':''}>${s}</option>`).join('')}</select>
<input type="search" placeholder="Search claims…" value="${esc(CS.q)}" oninput="CS.q=this.value;renderClaims()" style="flex:1;min-width:140px;font:inherit;font-size:12.5px;padding:5px 9px;border:1px solid var(--line);border-radius:7px" aria-label="Search claims">
<span class="small mut">showing ${list.length} / ${THOMP.n}</span></div>
<div class="predgrid"><div style="max-height:560px;overflow-y:auto">${rows}</div>
<div class="card" style="margin:0"><b>${sel.id} — Thompson (1917), Ch. ${esc(sel.chapter)} · ${esc(sel.chapter_title)}</b> <span class="badge" style="background:${CCOL[sel.status]}">${sel.status}</span>
<p class="small"><b>Claim (1917, pp. ${esc(sel.pages)}, Figs. ${esc(sel.figures)}):</b> ${esc(sel.claim)}</p>
<p class="small"><b>What remains / verdict:</b> ${esc(sel.what_remains)}</p>
<p class="small"><b>Method that would settle it:</b> ${esc(sel.method)}</p>
<p class="small"><b>Data needed:</b> ${esc(sel.data_needed)} · <b>Effort:</b> ${esc(sel.effort)} · <b>Priority:</b> ${esc(sel.priority)} · <b>Type:</b> ${esc(sel.type)}</p>
${sel.p_resolvable!=null?`<p class="small"><b>P(resolvable from an available dataset): ${sel.p_resolvable}%</b> (${esc(sel.p_band)}) — deterministic rubric over dataset existence / automation / effort (thompson/thompson_1917_resolvability.json); prices resolvability, not whether Thompson was right.</p>`:''}</div></div>`;
}
function renderNav(){ const fams=[...new Set(NODES.map(n=>n.family))];
$('nodepicker').innerHTML='<option value="">Find a problem… ('+NODES.length+' nodes)</option>'+fams.map(f=>`<optgroup label="${esc(f)}">`+NODES.filter(n=>n.family===f).map(n=>`<option value="${n.id}">${esc(n.label)} — ${SLAB[n.status]}</option>`).join('')+'</optgroup>').join('');
$('nodelist').innerHTML=fams.map(f=>`<div class="nlfam">${esc(f)}</div>`+NODES.filter(n=>n.family===f).map(n=>`<button class="nlrow" onclick="pickNode('${n.id}')"><span style="flex:1"><b>${esc(n.label)}</b><br><span class="mut small">${esc(n.sub)}</span></span><span class="badge" style="background:${SCOL[n.status]}">${SLAB[n.status]}</span>${n.nanopubs?'<span class="small">🔗</span>':''}</button>`).join('')).join(''); }
function setView(v){ const list=v==='list'; $('nodelist').hidden=!list; $('graphwrap').style.display=list?'none':''; $('vlist').classList.toggle('on',list); $('vgraph').classList.toggle('on',!list); }
function pickNode(id){ if(!byId[id]) return; S.sel=id; const p=$('nodepicker'); if(p) p.value=id; drawGraph(); drawDetail(); openDrawer(id); }
agentButtons(); drawGraph(); drawDetail(); initZoom(); renderPred(); renderClaims(); renderNav();
if(window.matchMedia('(max-width: 760px)').matches) setView('list');
if(location.hash){ const hid = location.hash.slice(1); if(byId[hid]){ S.sel = hid; drawGraph(); drawDetail(); document.getElementById('detail').scrollIntoView({behavior:'smooth', block:'center'}); } }
</script></body></html>