Coordinator's summary, 2026-09-23/24, branch teal-sea/weil-c4-s2, nothing pushed; lines 1, 2, 4 and 5 updated on 2026-09-24 after the Modal follow-up and the rho follow-up (MISSION.md, last two sections). The five lines above are the mission's verdict. Every mathematical number in this file is pinned by a test in the worker folder that owns it (named below); this file adds none of its own. The run timings in the compute-proposal paragraph are measured and recorded in those folders' RESULTS, not pinned by tests; the Modal costs are in modal/RUNS.md. Grades follow the AGENTS.md ladder, and a composite claim takes the grade of its weakest step.
What each folder delivered
| folder | gap | verdict (worker's grade) | where the numbers are pinned |
|---|---|---|---|
kernel/ | (a) S_∞ on windows | built; S_∞ with no numerically identified data, T_∞ calibrated against Connes-Consani Thm 6.11 (c* = 14.56 inside their (13, 17)); gap (a) closed as a construction | kernel/RESULTS.md lines 1 to 5, test_sonin.py |
two_adic/ | (b) P_2 through E_S | built; P_2 in closed form on the shared basis, T_S for ζ on nine cells, refusal gate; §7.3 item 2 refuted; accuracy target not met | two_adic/RESULTS.md lines 1 to 5, its test_ta_*.py |
cutoff/ | (c) product ball against module cutoff | gap stated exactly, bound κ = 17 + 12√2 between the product and module terms, product-side C4 refuted | cutoff/RESULTS.md lines 1 to 5, test_cutoff.py |
checker/ | independent Q, R_S, kill-controls | R_S on nine cells with a per-row band; kill-controls 1, 2, 4 run, 3 not exercised; found that two_adic/'s (80, 1200) row is not converged at N = 16; follow-up: N = 32 undecided on this route in float64 (§7.7) | checker/RESULTS.md lines 1 to 5 and §7, test_checker_*.py |
two_adic/, follow-up 2 | the explicit Gram inverse in ΔT | diagnosed (the s cutoff, not the functions), replaced by a QR of the Gram factor, acceptance A1 to A4 fixed before the run and passed | two_adic/RESULTS.md s10, test_ta_rho_diag.py, test_ta_rho_check.py, test_ta_mellin.py |
modal/ | follow-up: the two compute proposals, then the rebuild under the fixed rho | 12 of 12 units ran on Modal, none timed out, guard passed in every container; outputs and cost only, no mathematical result | modal/RESULTS.md lines 1 to 5, test_modal_outputs.py |
Coordination record (what went wrong, and what it changed)
- Orca went down at 22:50 and took the checker/ and two_adic/ terminals with it. A replacement coordinator re-dispatched both from their uncommitted files. An orphaned checker/ process (bare
python3, not the venv) had written 7 of 15 units of a T_S snapshot. Its output was discarded: the snapshot was keyed to the committed two_adic/ tree while the code it imported was modified in the working tree, and its N = 32 entry was built by code whose 1/w tail diverges there. - Found during recovery (two_adic/): a fixed Kmax = 10 made the prolate tail series diverge at 120 and 200 modes. That divergence, not missing norm, was the N = 32 Gram probe failure of 0.55; the rerun probe is 8.2e−3 / 7.6e−3 / 8.2e−3. The pair counts of two_adic/'s line 2 did not change. Fixed in 8dc8525, rerun in 015895f.
- checker/'s snapshot guard now fails closed. It keys on the blob hashes of the files T_S imports and refuses to build or serve while any of them is modified, the same fail-open shape
AGENTS.mdrecords for the secret guard. Its first version keyed every non-test .py in both folders, so two_adic/'s fd9b0bf (a file T_S never imports) made 20 property tests skip. A guard that skips the suite it guards is the "5 skipped" trap inAGENTS.md. It now keys the import closure ofta_ts.py(4f706cd, 88f93a8), and a changed closure file fails a test instead of skipping. Final run of all four folders at 88f93a8: 343 passed, 10 skipped (dps 60 units never built at N = 16, and the positive control), 3 strict xfail. - Found by checker/: two_adic/'s interface listed (80, 1200) as converged at N = 16; it moves T_S by 7.8e−2 / 4.5e−2 / 2.4e−2 against 120 modes. The bands in line 1 include that refinement response where it was measured.
- Modal follow-up, 2026-09-24. The operator approved both compute proposals on Modal with a 25 USD cap (no Actions, no push). modal/ built an image holding a clean git clone of 284eff6, so checker/'s guard ran inside every container and matched the local digest. The estimate and the worst case at the per-unit timeouts (6.73 USD) were committed before launch (76d13a9); 0.741 USD was billed, per Modal's billing report as modal/ read it. The checker calibration unit missed the brief's 1e−10 by 2.3e−7. A probe that changed only the BLAS kernels moved it by 3.3e−7 on Modal alone, so the threshold became 1e−6 after the measurement, recorded as such in
modal/RUNS.md. two_adic/ and checker/ then graded their own units in their own folders against criteria written before the runs. checker/'s re-grade made two_adic/'s citations of it stale (2 tests failed); two_adic/ refreshed them (aa5e3d3). Closing run of all five folders at aa5e3d3: 438 passed, 10 skipped, 6 xfailed (the 3 strict ones here, and 3 known incomplete doors sections of other hunts intests/test_hunt_doors.py). - Rho follow-up, 2026-09-24. Approved by the operator after the Modal follow-up ended on the explicit inverse. Sequential by design: changing
ta_mellin.pymoves T_S's input digest (1dcab230 to b2e7787b), so checker/'s guard refused every old row, N = 8 and 16 included, until all eleven units were rebuilt. two_adic/ committed its diagnosis (5b5a311) and its acceptance before changing rho; the coordinator's brief had pointed at the wrong Gram function (gram_v), and two_adic/ corrected it. modal/ rebuilt all eleven units on Modal (calibration 7.1e−15 against 1e−10, estimate committed first, 0.57 USD) and computed no eigenvalue, so checker/ committed its reading (49db49f) before any rebuilt row was analysed (3e36fa4). The falsifier two_adic/ fixed in advance (T_S at 280, 319 and 364 modes with no eigenvalue below −band) passed on every cell. checker/'s re-grade again made two_adic/'s citations stale; two_adic/ refreshed them and graded its own s10.4 predictions (a799c3d, 506cbe9): all held except the 240-mode row's move at c = 2.2 (2.97e−2, not about 1e−2). Closing run of all five folders at 506cbe9: 546 passed, 10 skipped, 6 xfailed (the same 3 strict here and 3 in other hunts).
The doors
- Active constraint: the accuracy of ΔT, stated as a response band, not a bound. At N = 8 and 16 the number of prolate modes binds (two_adic/ §7b: still binding at 200 modes on c = 2.2, N = 8). At N = 32, after the QR rho, the band is set by two_adic/'s probe at c = 2.9 and by the refinement response at 2.5 and 2.2; float64 no longer binds there (checker/ §7.8). The explicit inverse that did bind is recorded in checker/ §7.7.
- Frozen constants: (nvec, S) per row, with S/nvec² as the quantity that sets the Gram condition (two_adic/ s10.1); float64 for ΔT; the band rule (which refined row sets band(c, 32), which decides c = 2.5); the window c ∈ {2.2, 2.5, 2.9}. The explicit inverse is no longer frozen (replaced, two_adic/ c3dca00).
- Information class: both compute proposals and the rho fix stayed inside the data the current construction reads. A bound on ΔT (rather than a band) would too. Deciding C4 itself needs a new object, the semilocal ε(ρ), which is outside it.
Compute proposals: run on Modal, 2026-09-24. two_adic/ §7b (nvec 140 to 200 at S = 4800, with an S = 9600 check) and checker/ §7.6 (the (240, 2400, 32) unit and the default-rule rows at N = 32) ran as 12 units, one Modal call each, checkpointed per unit; per-unit times and costs are in modal/RUNS.md. Not run, and not requested: two_adic/'s next test ((200, 9600) and (220, 9600), estimated at 0.34 USD) and checker/'s optional 240-mode rerun on other BLAS kernels (about 0.08 USD), which would separate arithmetic from truncation in the 200 to 240 step (superseded: under the QR rho the platform drift is 3e−12). Rebuild under the fixed rho, same day: all eleven checker/ units in modal/out_rho/ (modal/RUNS.md s7), 0.57 USD; modal/out/ is kept as the record of the old route.
Reproduction
From the worktree root, per folder:
PYTHONPATH=$PWD .venv/bin/python -m pytest -q -n 2 \
hunts/weil_propagation/c4_s2/<folder> \
tests/test_hunt_probe_discipline.py tests/test_docs_numbering.py