{"id":660,"job_id":1451,"problem_id":1,"lane_id":5,"type":"explore","user_id":34,"model":"deepseek-v4-flash","provider":"deepseek","report_md":"# Route 35 triage — the registered x = 19 / x = 23 run is worth one attempt, but not as written\n\n**What was asked.** Decide whether one bounded next experiment is justified on route 35's registered\nplan (return #657 / job #1450): run the block-grain occupancy test at x = 19 and x = 23 in the\ndensity-partial form, on scales `L ∈ {M/8, M/16, M/32}`, at ≥ 8 periods per level.\n\n**Verdict: `promising`, with the pre-registration corrected.** The level choice is sound and the run\nis cheap; the *design as registered* cannot deliver, and every failure is a sentence of\npre-registration rather than more compute. Triage measures the design, not the tile: nothing here is\na claim about occupancy.\n\nInstrument `job1451-triage-blockgrain.py`, 3.41 s, one process, bounded-exec receipt served (ok,\nexit 0, no residual processes, no descendants). Primary output byte-identical on re-run.\n\n## 0. Gates, before any table is read\n\n| gate | measured | reference |\n|---|---|---|\n| G0 twin pairs with smaller member < 10⁶ | **8169** | OEIS A001359, exact |\n| G1 slots of T₁₁, T₁₃, T₁₇ | **135, 1485, 22275** | #657's published G1 values, exact |\n\nG0 also validates the sieving harness that prices the run in §4, so the feasibility number is not\nfrom untested code.\n\n## 1. The premise holds\n\n| x | M = x# | slots | distinct gaps | maxgap | gaps > 2x |\n|---|---|---|---|---|---|\n| 17 | 510510 | 22275 | 17 | 108 | 4126 |\n| 19 | 9699690 | 378675 | 23 | 150 | 72488 |\n| 23 | 223092870 | 7952175 | 33 | 204 | 1090002 |\n\nStrictly richer at both new levels, which is exactly the route's stated reason for the move.\n\n## 2. The registered scales are not integers, so gate G2 is undefined as written\n\n`M = x#` is even with `v₂(M) = 1` at every level, so `M/8 = 1212461.25` (x = 19) and\n`27886608.75` (x = 23); **no** scale in `{M/8, M/16, M/32}` is an integer. An equal-length partition\ntherefore leaves the residue tail `[n_b·L, M)` outside every block, and that tail contains **exactly\none admissible slot in each of the six registered cells** — always the slot at `M − 1`, since\n`M ≡ 0 (mod x#)` makes both `M − 1` and `M + 1` coprime to `x#`.\n\nSo G2 as #657 registered it — *\"blocks sum to the period slot/twin totals\"* — is **false** in all six\ncells under the floor convention, and true only if the last block is extended over the remainder.\n#657 reports G2 true but states no convention, and its registered method says to **reuse the census\npart unchanged**. The next run therefore inherits a gate whose value is decided by an unstated\nchoice. The materiality is one slot per period — numerically negligible — but this is the gate that\ncertifies the partition, and its value must be pinned by the pre-registration, not by a choice made\nafter the fact. Fix: state the absorbing partition (one line).\n\n## 3. One registered cell is vacuous, and `g_b` is near-degenerate everywhere\n\n| cell | `g_b` distinct values | blocks tied at the top | verdict |\n|---|---|---|---|\n| x=19, M/8 | **1** | 8/8 | **constant — G3 fails, cell vacuous for gmax** |\n| x=19, M/16 | 2 | 12/16 | near-indicator |\n| x=19, M/32 | 2 | 16/32 | near-indicator |\n| x=23, M/8 | 3 | 4/8 | near-indicator |\n| x=23, M/16 | 4 | 6/16 | near-indicator |\n| x=23, M/32 | 5 | 12/32 | near-indicator |\n\nThe reason is structural, not statistical, and is verified in all six cells: **the number of blocks\nthat can attain the tile maximum is at most the tile's maxgap occurrence count.** At x = 19 the\nmaxgap 150 occurs 20 times; at x = 23 the maxgap 204 occurs **only 4 times in the whole period of\n223 092 870**. So `g_b`'s spread is capped by the tile, not by the block count: on 8–32 blocks it is\nat most a 4- or 20-level indicator, and its distinct-value count (1–5) is set by the tile, not by the\nscale. `nlong_b` is nearly constant as well (4–16 distinct values, CV 0.0001–0.007).\n\nA null obtained in this design is therefore a statement about a near-constant statistic — the\nroute's own named weakest assumption, now measured rather than feared. The correction is to declare\nthe vacuous cell vacuous and to add a census statistic that actually bears spread (e.g. the block's\ncount of gaps in the tile's top decile of gap values, or the gap-local statistic the route already\npromises).\n\n## 4. The \"density-partial\" form is not partial\n\nThe registered test residualises `t_b` on `λ̂·a_b` and then correlates the residual with the **raw**\ngrain statistic. Measured:\n\n| cell | corr(a_b, g_b) | corr(a_b, nlong_b) | density-orthogonal fraction of nlong |\n|---|---|---|---|\n| x=23, M/8 | −0.3594 | **+0.7685** | **0.4094** |\n| x=23, M/16 | +0.4189 | −0.1347 | 0.9819 |\n| x=23, M/32 | −0.4549 | +0.0299 | 0.9991 |\n| x=19, M/8 | undefined (`g_b` constant) | +0.1009 | 0.9898 |\n| x=19, M/16 | +0.1529 | +0.1256 | 0.9842 |\n| x=19, M/32 | +0.0082 | −0.3671 | 0.8653 |\n\nThe route's claim that the confound *\"is removable by construction (regress t_b on λ̂·a_b first)\"* is\nonly half true: it removes the density component of `t_b` and leaves the density component of the\n**grain statistic**, which at x = 23, L = M/8 is 59 % of nlong's variance. At that cell the\nregistered test would re-measure the density effect through `nlong` — precisely the failure #657\nrecorded at x ≤ 17. Fix: pre-register the partial correlation (residualise both) or an `a_b`-matched\npermutation null. A citable methodological caution applies on top (Winkler et al. 2020):\nresidualising before permuting breaks the exchangeability the permutation null needs, so `λ̂` should\nbe re-fit inside each permutation draw.\n\n## 5. Compute is not the binding constraint; power is adequate\n\n* Measured segmented-sieve throughput: **2.43 × 10⁸ numbers/s** (G0 validates the harness).\n* Whole registered domain: **0.32 s** for 8 periods of x = 19 (7.76 × 10⁷) plus **3.7 s** for\n  4 periods of x = 23 (8.92 × 10⁸) ≈ **4 s** — three orders of magnitude under the declared\n  1 cpu-hour. The declared compute hint is not the scarce resource; the pre-registration is.\n* Expected twins per block: 9907 / 4954 / 2477 (x = 19) and 227864 / 113932 / 56966 (x = 23), giving\n  per-block Poisson `z` for a 5 % effect of 4.98 / 3.52 / 2.49 and 23.9 / 16.9 / 11.9; a 2 % effect\n  is comfortable at x = 23 (9.5 / 6.8 / 4.8) and thin only at x = 19, M/32 (1.00).\n\n## 6. What this changes\n\nThe investment decision is **yes, one bounded run — with four pre-registration sentences**: the\nabsorbing partition (§2), the vacuous-`gmax` handling and one spread-bearing statistic (§3), a\ngenuinely partial or matched-null test with `λ̂` re-fit per draw (§4), and the reduced compute\ndeclaration (§5). Without them the registered falsifier cannot fire for structural reasons, and its\nnull would be uninformative about the tile. With them, the run costs minutes and decides the\nlevel-19/23 question either way. Nothing here claims the route is proved, and no occupancy statement\nis made.\n\n## 7. Three defects in my own instrument, each caught by its own gates\n\n1. The G0 twin counter returned **8167**: it started at n = 5 (losing the pair (3,5)) *and* clobbered\n   the sieve offset holding n = 5 (losing (5,7)). Both are exactly the two pairs the published 8169\n   counts. Corrected to `[3, 10⁶)` with the offset fix — 8169, exact.\n2. The first `gmax` \"threshold\" rule was a *sufficient* condition treated as an iff, and the measured\n   x=19, M/8 cell contradicted it immediately. Replaced by the exact occurrence cap (§3), verified in\n   all six cells (`occurrences_cap_ok: true`).\n3. Timing went to stdout first, so the artifact was not byte-reproducible — the defect the server\n   flagged on return #656. Timing now goes to a sidecar; the primary JSON was verified byte-identical\n   across two runs.\n\nRecorded because the pattern is now familiar on this run: every one of these was found by *running*\nthe instrument, none by reading it.\n\n## 8. Cost and limits\n\n3.41 s inside `sahtool limits-run --timeout 600`, exit 0, no residual or descendant processes.\nOne process, ≤ 1 GB, no disk beyond the artifacts. `cpu_hours` declared 0.1 for the *proposed* run on\nthe strength of the measured throughput. Not claimed: any asymptotic, any occupancy statement, any\nclaim that the corrected design will produce a non-null; x = 29 and x = 31 are outside triage scope\n(both tiles need the block-streaming construction, not the materialised sieve used here).\n","patch":null,"cpu_hours":0.01,"hashes":{"job1451-limits-run.json":"279a7ca31fec8392c116ca954f3df908baa53b8514ee19ac7b4adf1ba3a7e24b","job1451-triage-blockgrain.py":"b3a2150133e3b30054be7f752b1a95c8635dcefde1907657471ef8c96458b6c2","job1451-triage-blockgrain.json":"717ec414189f137049a6e8d70e9c0caaa48f005ee9b44300ce1ab5ebe5f53173","job1451-triage-blockgrain.timing.json":"2c69d9dafc42de2843660625deeb29e0507d2fc3bd0a442ce11ab1925eafae6d","279a7ca31fec8392c116ca954f3df908baa53b8514ee19ac7b4adf1ba3a7e24b":"job1451-limits-run.json","2c69d9dafc42de2843660625deeb29e0507d2fc3bd0a442ce11ab1925eafae6d":"job1451-triage-blockgrain.timing.json","717ec414189f137049a6e8d70e9c0caaa48f005ee9b44300ce1ab5ebe5f53173":"job1451-triage-blockgrain.json","b3a2150133e3b30054be7f752b1a95c8635dcefde1907657471ef8c96458b6c2":"job1451-triage-blockgrain.py"},"author_rung":"measured","status":"recorded","final_rung":"recorded","created_at":"2026-09-16T11:25:16.231Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[657],"messages":[]},"tokens":{"log":"custom","input":134625,"models":{"deepseek-v4-flash":100530},"output":100530,"source":"custom-jsonl","entries":1,"cache_read":14668416,"cache_write":0,"observed_models":["deepseek-v4-flash"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe — route 35 triage, job #1451\n\nOne file does all the work: `job1451-triage-blockgrain.py` (pre-registration and code in one file).\nIt writes a deterministic primary JSON plus a timing sidecar.\n\n    python job1451-triage-blockgrain.py out.json timing.json\n\nMeasured: **3.41 s**, one process, no network, no disk beyond the two outputs. Inside the harness's\nbounded exec (the served receipt `job1451-limits-run.json`):\n\n    python sahtool.py limits-run --timeout 600 -- python job1451-triage-blockgrain.py out.json timing.json\n\nThe primary JSON is byte-identical on re-run; timing is deliberately kept out of it (lesson from\nreturn #656, where timing on stdout made the artifact non-reproducible).\n\n## What to check in `job1451-triage-blockgrain.json`, in order\n\n1. **`G0_G1_gates`** — `G0_pi2_below_1e6.agrees: true` (8169 = OEIS A001359) and all three\n   `G1_slot_counts_vs_return_657` entries `agrees: true` (135, 1485, 22275). If either fails, nothing\n   below is worth reading.\n2. **`P1_gap_vocabulary`** — slot counts, distinct gaps, maxgap and `gaps_above_2x` at x = 17, 19, 23.\n3. **`P2_partition_and_G2`** — per level and scale: `M_mod_L`, `L_floor`, and\n   `g2_floor_holds: false` with `g2_floor_shortfall_slots: 1` in every registered cell. The shortfall\n   is asserted equal to the count of slots beyond the last block edge, so it is not a coincidence of\n   two different computations.\n4. **`P3_P4_grain_degeneracy_collinearity`** — per cell `gmax.distinct`, `gmax.tied_frac_top`,\n   `gmax_degenerate`, `nlong.distinct`, `nlong.cv`, and the three correlations with\n   `orthogonal_var_frac_*`. `x=19 M_over_8` has `gmax_degenerate: true` and `corr_a_gmax: null`.\n5. **`P5_gmax_degeneracy_threshold`** — `occurrences` of the maxgap per level (20 at x = 19, **4** at\n   x = 23) and per cell `blocks_containing_a_maxgap` with `occurrences_cap_ok: true`. This is the\n   exact bound: at most `occurrences` blocks can tie at the maximum.\n6. **`P4b_power`** — expected twins per block and the per-block Poisson `z` at 5 % and 2 % effects.\n\n## How to falsify the triage's own claims\n\n* **The integer claim.** `M = x#` has `v₂(M) = 1` for every level ≥ 5, so `M/8` can never be an\n  integer: check `P2_partition_and_G2[*][*].L_exact` for a fractional part. If any registered scale\n  were an integer, §2 of the report collapses.\n* **The vacuous cell.** Recompute the x = 19, L = M/8 block maxima independently; if the 8 blocks do\n  not all reach 150, the G3 failure claim is wrong.\n* **The occurrence cap.** Count the maxgap occurrences by hand from the tile's gap list; the count\n  must equal `P5_gmax_degeneracy_threshold[x].occurrences` and must upper-bound\n  `blocks_containing_a_maxgap` in every cell.\n* **The collinearity.** Recompute `corr(a_b, nlong_b)` at x = 23, M/8; the report's §4 turns on it\n  being ≈ +0.77 (so the orthogonal fraction is ≈ 0.41), not near zero.\n\n## Files\n\n* `job1451-triage-blockgrain.py` — instrument and pre-registration.\n* `job1451-triage-blockgrain.json` — the deterministic output (all tables above).\n* `job1451-triage-blockgrain.timing.json` — sieve throughput and the priced ranges (sidecar).\n* `job1451-limits-run.json` — bounded-exec receipt: ok, exit 0, 3.41 s, no residual processes.\n\n## Scope notes\n\n* The tile is materialised (`bool` array over one period) for x = 19 (9.7 MB) and x = 23 (223 MB).\n  x = 29 (6.5 GB) and x = 31 do **not** fit this construction and are not covered; they need the\n  block-streaming bypass used elsewhere in this lane.\n* No primality is decided in the triage instrument except in gate G0's twin count, which exists to\n  validate the sieving harness. Occupancy elsewhere enters only through the published anchor\n  `π₂(10⁶) = 8169`.\n* The `gaps_above_2x` statistic counts *gaps* (whose left endpoints are slots), not slots.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":"max","also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":0},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":"2026-09-16T11:31:36.887Z","file_notes":null,"research":{"outcome":"promising","route_id":35,"next_step":{"method":"Pre-register all four corrections in the instrument before the first run: (a) the absorbing partition, last block extended over M mod L so G2 holds, with the floor-partition shortfall reported as a control; (b) gmax cells where the statistic is constant declared vacuous (x=19, L=M/8) and replaced by a spread-bearing census statistic (e.g. the block's count of gaps in the tile's top decile of gap values, plus the gap-local statistic computed inside the widest gaps that the route already promises); (c) the density-partial test as a partial correlation -- residualise BOTH t_b and the grain statistic on lambda_hat*a_b, or use an a_b-matched permutation -- with lambda_hat re-fit inside every permutation draw, per Winkler et al.; (d) scales L in {M/8, M/16, M/32}, at least 8 periods per level. Then build T_19 and T_23 by direct coprime sieve (no CRT lift), sieve 8 periods of x=19 (7.76e7 numbers) and 4 periods of x=23 (8.92e8) with a 1 MB segmented sieve counting n, n+2 both prime, and run gates G0 (8169), G1 (135/1485/22275), G2 under BOTH partition conventions and G3 per statistic per cell before reading any table. Report per-block vectors, lambda_hat per level, the partial correlations with 400-draw permutation p-values, and the permutation distributions. Measured cost of the whole registered domain: about 4 s of sieve.","compute":{"ram_gb":1,"disk_gb":0.5,"cpu_hours":0.1},"failure":"The partial correlation cannot be estimated because the density-orthogonal variance of the arrangement statistic is too small at the registered scales -- this triage already measures 59 percent of nlong's variance as the density control at x=23 M/8, and g_b constant at x=19 M/8 or 4-valued at x=23 -- or the permutation null cannot be made valid for the fitted lambda_hat. Either is recorded as a scope limit of the block-grain method class at these levels, with the exact ranges and numbers, and never as a negative about the tile.","success":"A pre-registered verdict on every testable cell: either a density-partial null at x=19/23, which extends #657's scoped negative to levels with richer long-gap structure and gives the parity reading named, scale-bounded support; or a firing partial correlation (|z| >= 2, permutation p <= 0.01, same sign at >= 2 of 3 scales, at one level) with the residual sign predicted in advance, which would make a deterministic census statistic a usable occupancy predictor at a stated scale. Either way the report states which cells were vacuous and why, so a null cannot be read as a statement about the tile when it is a statement about a near-constant statistic.","question":"At x = 19 and x = 23, with the partition convention fixed to absorb the period remainder, lambda_hat re-measured per level, and the arrangement statistic residualised against the density control (partial correlation), does any census-only arrangement statistic predict the block twin-count residual beyond slot count -- and is any gmax cell testable at all, given that g_b is constant at x=19 M/8 and attains the tile maximum in at most 4 of 32 blocks at x=23?","budget_hours":1,"required_tools":["python3","numpy"],"required_sources":["oeis-a001359","g2-state-md","zone-postulate-md"]},"depends_on":[657,645,648,653],"evidence_md":"TRIAGE OF ROUTE 35'S REGISTERED NEXT EXPERIMENT (#657 / job #1450). Instrument job1451-triage-blockgrain.py, 3.41 s one process, bounded-exec receipt served (ok, exit 0); primary output byte-identical on re-run. All gates pass before any table is read. GATES: G0 twin pairs with smaller member < 1e6 = 8169 = OEIS A001359, exact (validates the pricing harness); G1 census slot counts 135, 1485, 22275 (x=11, 13, 17) equal #657's published G1 values exactly.\n\n(1) PREMISE HOLDS. x=19 (M=9699690): 378675 slots, 23 distinct gaps, maxgap 150, 72488 gaps > 38. x=23 (M=223092870): 7952175 slots, 33 distinct gaps, maxgap 204, 1090002 gaps > 46. Both richer than x=17 (17 gaps, maxgap 108): the stated reason for the move is confirmed.\n\n(2) THE REGISTERED SCALES ARE NOT INTEGERS, SO G2 IS UNDEFINED AS WRITTEN. v2(x#) = 1 at every level, so M/8 = 1212461.25 (x=19) and 27886608.75 (x=23): no scale in {M/8, M/16, M/32} is an integer, and an equal-length partition leaves a residue tail outside every block. That tail holds exactly ONE admissible slot in each of the six registered cells -- always the slot at M-1, since M == 0 (mod x#) makes both M-1 and M+1 coprime to x#. So G2 as #657 registered it ('blocks sum to the period slot/twin totals') is FALSE in all six cells under the floor convention, and true only if the last block absorbs the remainder. #657 reports G2 true but states no convention, and its registered method says to reuse that census part unchanged, so the next run inherits a gate decided by an unstated choice. Fix: one line; materiality: 1 slot per period.\n\n(3) ONE CELL IS VACUOUS AND g_b IS NEAR-DEGENERATE EVERYWHERE. At x=19, L=M/8 the block max admissible gap is CONSTANT (150 in all 8 blocks): G3 fails and the cell cannot test gmax. Elsewhere gmax takes 2 distinct values (12/16, 16/32 tied at the top) at x=19 M/16, M/32, and 4, 5, 3 at x=23. The reason is structural, verified in all six cells: at most `occurrences` blocks can attain the tile maximum -- 20 at x=19, and only FOUR at x=23, where the 204-gap occurs 4 times in the whole period. So g_b's spread is capped by the tile, not by the block count: on 8-32 blocks it is at most a 4- or 20-level indicator. nlong_b is nearly constant too (4-16 distinct, CV 0.0001-0.007). A null here is a statement about a near-constant statistic -- the route's own weakest assumption, now measured.\n\n(4) THE 'DENSITY-PARTIAL' FORM IS NOT PARTIAL. The registered test residualises t_b on lambda_hat*a_b and correlates with the RAW grain statistic. Measured corr(a_b, nlong_b) = +0.7685 at x=23, M/8: 59 percent of nlong's variance IS the density control (orthogonal fraction 0.4094); it falls to -0.3671 (x=19 M/32), |corr| <= 0.42 elsewhere; for gmax, +0.4189 and -0.4549. The route's claim that the confound 'is removable by construction' is half true: it removes t_b's density component, not the grain statistic's, and at one registered cell the test would re-measure density through nlong -- the failure #657 recorded at x <= 17. Fix: pre-register the partial correlation (residualise both) or an a_b-matched permutation null.\n\n(5) COMPUTE IS NOT BINDING. Measured sieve throughput 2.43e8 numbers/s; the whole registered domain prices at 0.32 s (8 periods of x=19, 7.76e7) plus 3.7 s (4 of x=23, 8.92e8): about 4 s, three orders under the declared 1 cpu-hour. Power: expected twins per block 9907/4954/2477 (x=19) and 227864/113932/56966 (x=23), i.e. per-block Poisson z at a 5 percent effect of 4.98/3.52/2.49 and 23.9/16.9/11.9, and at 2 percent 1.99/1.41/1.00 and 9.5/6.8/4.8.\n\nVERDICT: promising. One bounded run is justified and the level choice is sound, but the registered design cannot deliver as written. Every defect is a sentence of pre-registration (absorbing partition; vacuous gmax cells declared or replaced by a statistic with spread; a genuinely partial or matched-null test; lambda_hat re-fit per draw), not extra compute. No claim about the tile is made here: triage measures the design, not occupancy.","prior_art_md":"Search date 2026-09-16, run before any feasibility test. Queries: (a) 'does block arrangement of admissible twin-prime slots (max gap, count of long gaps) predict local twin-prime density beyond slot count computational test'; (b) 'partial correlation residualising prime counts on density control permutation test spacings vs counts primes in short intervals confound'; (c) exact title 'Counts Converge, Spacings Do Not' twin primes deviations.\n\nEXTERNAL, CLOSEST OBJECT. Nothing tests arrangement-vs-occupancy at block scale on a primorial tile: the object is uncovered. The nearest external theory is the second-moment theory of primes in short intervals (Granville, 'The distribution of primes in short intervals'; Chan, 'More precise pair correlation of zeros and primes in short intervals', 2002), which bounds the VARIANCE of counts in short intervals -- the global, asymptotic counterpart of this route's null, stated unconditionally rather than as a conditional block test, and silent on whether an arrangement statistic predicts occupancy beyond slot count. 'Improved short gaps between primes' (OpenAI, 2026-08-30) uses block-maximum language, but to bound gaps between consecutive primes (Maynard-type), not to predict twin occupancy from a tile census; cited from snippet only, the PDF is not machine-readable by the reader used here. ACCESS LIMIT (unchanged, now verified three ways): OpenReview G9ml0GuLs8 'Counts Converge, Spacings Do Not' (2026-06-17) sits behind a browser/bot check -- the forum page, the api2 notes endpoint and the PDF all refused, and an exact-title query returns zero organic results -- so it stays cited from its abstract snippet only and flagged unverified. It decomposes deviations into per-class counts mod 210 and spacings; that is class- and spacing-indexed, not a density-partial block test, so on its own terms it does not cover this object. OEIS A001359 supplied pi_2(1e6) = 8169, reused here as gate G0 and as the density anchor.\n\nEXTERNAL, CLOSEST METHOD (new this attempt, and it bears on the design). The registered partial form residualises t_b on lambda_hat*a_b and then permutes grain labels. Winkler et al., 'Permutation inference for canonical correlation analysis' (PMC7573815, 2020) states the relevant caution: residualisation introduces dependencies among observations that violate the exchangeability a permutation null requires, 'even in the absence of nuisance', with the standard remedies being to permute before residualising or to re-fit the nuisance inside every draw. #657's design has neither, and this compounds the leak measured in finding (4).\n\nIN-HOUSE. #1450/#657, the proposal under triage -- its census part is not reproducible as written at the gate that certifies it: the report quotes L = 72 and 1876 (the floors of M/32 and M/16 at x=11, x=13) and reports G2 true, but states no partition convention, while its registered method says to reuse that census part unchanged. #1421/#648 class-preserving permutation null (pattern reused); #1444/#653 definitional scan vs served producer; #1416/#645 regression cells; research/G2-STATE.md, research/ZONE-POSTULATE.md, research/OUTCOMES.md.\n\nREMAINING GAP. No source, in-house or external, supplies (i) a block-scale arrangement-vs-occupancy conditional test on T_19/T_23, or (ii) a measured bound on how much of a grain statistic's variance is the density control at these levels, or (iii) a valid permutation null for the residualised form. (i) is the route's contribution and stays open; (ii) and (iii) are supplied by this triage with numbers, which is what changes the investment decision."},"research_route_id":35,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_bd08e49ed9621cfd852f9b04","run_id":"run_dbafcb3afddae906ed1c3d4e","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"handle":"maxime-fleury","job_brief":"Search online for existing attempts, results, tables and datasets before testing feasibility. Reuse the recorded search and inspect the closest sources and weakest assumption. Use published numbers with citations; do not reproduce them in triage. Seek the smallest experiment on the uncovered step. Recommend promising only with specific evidence and a bounded next step; do not claim the route is proved. Map the assumptions of any borrowed method onto this problem.\n\nRead GET <project base>/research-routes/35 and return #657. Return the ordinary report and transcript plus research: {route_id: 35, outcome: \"promising|progress|blocked|inconclusive|known|result\", evidence_md: \"what the evidence changes, <=4000 chars\", prior_art_md: \"updated online search record, sources and exact remaining gap, <=4000\", next_step: {question, method, success, failure, budget_hours} <only for continued pursuit>, obstacle: {kind, statement, assumptions, evidence, revisit_when} <for blocked/inconclusive>, depends_on: [<return ids actually required>]}. A result with a distinct next_step requests review and continues pursuit concurrently; omit next_step when no further experiment is warranted. Use known with prior_art_md and no next_step or obstacle when cited prior work already covers the proposed contribution; it stops automatic investigation without requesting review. The evidence grade is separate. Do not close a broad route because one proof attempt failed.","review_deferred":false,"in_triage":false,"triage":[],"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[{"id":"645","status":"accepted","final_rung":"measured","canonical_return_id":null},{"id":"648","status":"accepted","final_rung":"verified","canonical_return_id":null},{"id":"653","status":"rejected","final_rung":null,"canonical_return_id":null},{"id":"657","status":"rejected","final_rung":null,"canonical_return_id":null}],"research_url":"/projects/twin-primes/research-routes/35","transcript_url":"/projects/twin-primes/return/660/transcript","files":[{"sha256":"b3a2150133e3b30054be7f752b1a95c8635dcefde1907657471ef8c96458b6c2","name":"job1451-triage-blockgrain.py","bytes":15348},{"sha256":"717ec414189f137049a6e8d70e9c0caaa48f005ee9b44300ce1ab5ebe5f53173","name":"job1451-triage-blockgrain.json","bytes":11128},{"sha256":"2c69d9dafc42de2843660625deeb29e0507d2fc3bd0a442ce11ab1925eafae6d","name":"job1451-triage-blockgrain.timing.json","bytes":444},{"sha256":"279a7ca31fec8392c116ca954f3df908baa53b8514ee19ac7b4adf1ba3a7e24b","name":"job1451-limits-run.json","bytes":1870}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}