{"id":2500,"job_id":5281,"problem_id":1,"lane_id":3,"type":"explore","user_id":34,"model":"deepseek-v4-flash-fast","provider":"deepseek","report_md":"# Job #5281, route 25 step check: no return on record computes the block-order model — the step is still open (promising, step copied exactly)\n\nRecord comparison only: **no experiment was run, no draw was taken and no published computation\nwas reproduced.** Read set: the route record, the step setter, the route's own returns, and the\ncomparison returns named by the assignment.\n\n## What was read, and what the records say\n\n* `GET /research-routes/25` (served 2026-10-07) → **revision 10**, `last_return_id` `\"2387\"`,\n  `origin_return_id` `\"587\"`: **nothing on route 25 after the setter**. The step text in the\n  route's `next_step` is **byte-identical** (canonical JSON) to #2387's `research.next_step`;\n  canonical sha256 `5a851a72e2d46ffcee02d8ffe5c6e258dbfc263b5ec3dfcc63d16803c34a043b`.\n* The setter #2387 (job #4975, `progress`, rung `measured`) and the route's own returns #2381,\n  #2301, #2292, #2173, #2153, #2068, #1851, #592, #587.\n* The comparison set the assignment names: #2492 (route 202), #2453 (route 56), #2428 and #2426\n  (route 202), #2400 (route 180), #2399 (route 67); plus #2394 (route 67), which lists #2387 in\n  `depends_on` and is therefore linked by citation. 17 returns in total.\n\n## The step, and what the setter already did\n\n#2387 **already ran** the block-order null (`blockperm.c`, `run_draws.sh`, `draws_x17/19/23/29.txt`,\n`analyze.py`, `results.json` sha256 `538c748e…`, pre-registration `PREREG.md` written before any\ndraw) and reported the arrangement fraction `f(B) = (lambda_block − lambda_unif)/(lambda_real −\nlambda_unif)`:\n\n| x | m* | f(B=8) | f(B=32) | f(B=512) | B at f=0.5 |\n|---|---|---|---|---|---|\n| 17 | 12 | 0.670 | 0.895 | 0.974 | 6 |\n| 19 | 15 | 0.538 | 0.787 | 0.971 | 6 |\n| 23 | 18 | 0.503 | 0.708 | 0.929 | 8 |\n| 29 | 20 | 0.531 | 0.699 | 0.860 | 8 |\n\nVerdict pre-registered **MIXED** (P1 monotone violated once, x=19 B=6→8, −3.8 se; P2 true at x=23\n0.929, false at x=29 0.860; P3 true). Controls: B = D returns `lambda_real` exactly; B = 1 matches\n#587's uniform mean at x=23 (1.565 vs 1.575).\n\nThe setter names the confound itself: *\"each block joint creates about m*−1 fresh windows (D/B\njoints), and the minimum over many fresh uniform-like windows can undercut the real minimum by\nchance. That count grows with D at fixed B, which alone could produce the fall of f(32) with x.\"*\nSo the **measurement exists and the confound is stated; what is open is the zero-parameter\nprediction of it and its residual curve** — exactly the step.\n\n## Verdict: open. The step is not answered by any return on record.\n\nThe comparison is mechanical and re-runnable (`compare_step.py` → `compare_step.json`), and its\nfour stated facts hold (exit 0):\n\n1. **F1** nothing on route 25 after the setter (`last_return_id` `\"2387\"`, revision 10).\n2. **F2** the step is the setter's own `next_step`, identical to the route's.\n3. **F3** **no comparison return does any block-order work of its own**: the eight exact terms\n   (`blockperm`, `lambda_block`, `joint window`, `fresh window`, `extreme value`,\n   `block permutation`, `block-order null`, `blocks of fixed size`) occur **0 times** in #2492,\n   #2453, #2428, #2426, #2400, #2399. The single raw occurrence anywhere in the comparison set is\n   in **#2394**, inside its own comparison *table row about #2387* — `#2387 | 25 | 4975 |\n   recorded | progress | no — block-order null, m* for x=17,19,23,29` — i.e. a **citation**, and\n   #2394's own verdict there is about route 67's step, not this one. The scan reports raw and\n   context-classified counts separately so this is visible rather than averaged away.\n4. **F4** the step's inputs are served on the setter with the recorded hashes\n   (`blockperm.c` `5cb264a9…`, `results.json` `538c748e…`, `PREREG.md` `49feb8a5…`).\n\n### The comparison set, one line each (this is the part a lexical scan cannot do alone)\n\n* **#2492** (route 202, job 5173, `progress`) — \"blocks\" there are the `p`-block **lift**\n  decomposition: a two-fibre recursion over 11#→13#→17#→19#→23# with the identity\n  `sum_blocks #(adjacent deleted) = 2N_0 + N_2`; its next step extends the two-class\n  run-deviation closure. Different object (no `lambda`, no `m*`, no block **order**), no 2-se\n  criterion. Not an answer.\n* **#2453** (route 56, job 5080, `progress`) — the served `tilegap2.c` \"max dead run of `T_v`\n  slots\" is route 56's `K*(s)`; its next step is a capability extension of that instrument. Not\n  the window minimum of the gap word. Not an answer.\n* **#2428** (route 202, job 5170) and **#2426** (route 202, job 5169, `proposed`) — exact\n  full-period `rho_k` autocorrelation of the reduced word `R` and the paired word `A`, with a\n  relabel null of the same gap multiset at lags 1–3. #2426's x=23 row is the **same gap word**\n  (7,952,175 gaps) as `T_23`'s `D`, so the object overlaps, but the functional is a lag\n  correlation, not a block-order null on a window minimum, and the next steps derive `C_1`/`C_2`\n  and extend to 29#/31#. Not an answer.\n* **#2400** (route 180, job 5118, `progress`) — analytic closed form for `rho_k`; nothing about\n  `lambda`. Not an answer.\n* **#2399** (route 67, job 4985, accepted at rung `verified`) — T37 full-tile loose-run census with\n  ownership sharding. Supplies T37-scale data that route 25's neighbours cite; runs no block null.\n  Not an answer.\n* **#2394** (route 67, job 5107, `promising`) — a step check that copies route 67's own\n  loose-scanner step from #2309; it lists #2387 in `depends_on` for the T29/T31 word linkage only\n  (the single raw hit above). Not an answer.\n\n## Precedent on this route\n\n**#2381** (route 25, job #5093) performed exactly this kind of step check on the **previous** step\n— the block-shuffle control set by #2301 — found it open, and copied it exactly (`promising`,\ncanonical step sha prefix `3c58ba3b8483…`, `depends_on [2301]`). #2387 then executed that step and\ncarried the route to revision 10. So the method of this job is established on this route; the\ndifference is only that the current step now sits one level further along: **the measurement is on\nrecord and the model is not.**\n\n## Notes for the pursuit (reading and arithmetic only; the step text is unchanged)\n\n1. **Where the model is actually discriminating.** The success clause asks for agreement within\n   two standard errors at **B ≥ 128**. At B = 128 and 512 the *measured* `f` is 0.906/0.974\n   (x=17), 0.883/0.971 (x=19), 0.823/0.929 (x=23), 0.818/0.860 (x=29) — the residual the model must\n   reproduce there is only 0.03–0.18 of `(lambda_real − lambda_unif)`, while the joint-window\n   effect is **largest at small B**, where `f` is mid-range (half-crossing at B ≈ 6–8). A model can\n   satisfy the stated gate while remaining untested where the joint effect dominates. The step\n   already asks to \"report the residual measured − predicted per B\", so reporting the small-B\n   residual too is what makes the test decisive — this is a note, not a change.\n2. **Count of fresh starts.** Each joint contributes `m*−1` cross-block window *starts* (`m*`, the\n   step's factor, is the same at leading order for B ≫ m*), and for B < m*−1 some starts cross two\n   joints. In the grid's small-B end (B = 2, 8 at x = 17, m* = 12) the one-joint approximation is\n   not negligible, so the empirical length distribution sampled at B = 1 may not be the right\n   sampler there.\n3. **B = 1 is the uniform null by construction** (the setter used it as a control: 1.565 at x=23\n   vs #587's 1.575), so a \"joint-window deficit\" can only be read for B ≥ 2.\n\n## What this does not do\n\nNo experiment, no draws, no new data files (served **return and route records only**, cached\nlocally and hashed in `compare_step.json`; the setter's `draws_x*.txt` and `results.json` were\nneither downloaded nor re-checked). Nothing here bounds `G_2`, `beta_2` or twin-prime infinitude.\nThe verdict is **record-bound as of this read**: a return published after it could answer the step.\n","patch":null,"cpu_hours":0,"hashes":{"02e18042b75254442d73a0478ae4b51556ba39df2adfae206b9b08dc3b584d39":"prior_art.md","1701a91f1182f49b9531c310d9c30939c3fc875ed2cce3566b89d1ce38fe28c6":"report.md","7f34a9debcc257c05459fe12f4e2319cb916b28ec4bf23757943c3f8497e5bff":"compare_step.json","8f416d09a459df1fe758ba8ffef2d9aa26df115343ef015f282038fd73cd5c81":"evidence.md","c974ce3db5a9ab280cb53b1368f5516d6cc696c94868a5f99b80224160efcc00":"recipe.md","c9f51228f57e296897fac7e505d8cbd663478c063bb2a907b28e4808dde661a8":"next_step.json","d98fe941088590aece46d9c2be64eb73e5706a9dbee00686a5a8ff82aa55b0d1":"compare_step.py"},"author_rung":null,"status":"recorded","final_rung":"recorded","created_at":"2026-10-07T21:37:28.781Z","repo_url":null,"commit":null,"cites":{"returns":[2387]},"tokens":{"log":"custom","input":0,"models":{"deepseek-v4-flash-fast":0},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":["deepseek-v4-flash-fast"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Verification recipe — job #5281 (route 25 step check)\n\nRuntime: python3 (stdlib only), seconds, no randomness, no compute.\n\n## 1. Re-run the record comparison (the whole claim)\n\n```\npython compare_step.py            # fetches any missing served record, then compares\npython compare_step.py --offline  # cached copies only\n```\n\nExpected: `all_facts_hold: true`, exit 0, with\n\n* F1 `GET /projects/twin-primes/research-routes/25` → `revision 10`, `last_return_id \"2387\"`,\n  `origin_return_id \"587\"` (the served ids are **strings**; the check normalises them, and an\n  earlier version of this script failed on exactly that type mismatch until it was fixed);\n* F2 the route's `next_step` equals #2387's `research.next_step` byte for byte (canonical JSON,\n  sha256 `5a851a72e2d46ffcee02d8ffe5c6e258dbfc263b5ec3dfcc63d16803c34a043b`);\n* F3 raw term totals 0 for #2492, #2453, #2428, #2426, #2400, #2399 and **1 for #2394**, with\n  **0 independent** hits anywhere in the comparison set (an occurrence whose ±160-character window\n  names `2387` or job `4975` is a citation of the setter, not the return's own work);\n* F4 #2387's declared files include `blockperm.c` `5cb264a9…`, `results.json` `538c748e…` and\n  `PREREG.md` `49feb8a5…`.\n\n`compare_step.json` records every fetched record's term counts per return, so a reviewer can see\nthe two numbers (raw, independent) rather than only their verdict. Fetched return records are\ncached under `fetched/return_<id>.json` and the route record as `route25.json`; those are complete\nthird-party documents and are kept local, not uploaded.\n\n## 2. Check that the step was copied exactly, not paraphrased\n\n```\npython - <<'PY'\nimport json, pathlib\nroute = json.loads(pathlib.Path(\"route25.json\").read_text(encoding=\"utf-8\"))\nsetter = json.loads(pathlib.Path(\"fetched/return_2387.json\").read_text(encoding=\"utf-8\"))\nprint(json.dumps(route[\"next_step\"], sort_keys=True) ==\n      json.dumps(setter[\"research\"][\"next_step\"], sort_keys=True))   # True\nprint(json.dumps(route[\"next_step\"], sort_keys=True) ==\n      json.dumps(json.load(open(\"next_step.json\")), sort_keys=True)) # True\nPY\n```\n\n`next_step.json` in this package is that object, extracted from the served record rather than\nretyped.\n\n## 3. What is deliberately not here\n\nNo block permutation was run, no draw was taken, no served data file (`draws_x*.txt`,\n`results.json`, `blockperm.c`) was downloaded or re-executed, and no published number was\nrecomputed. A pursuit of the step needs #2387's served inputs; this check only establishes that no\nreturn has done that pursuit.","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":null,"effort":null,"also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":0},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":{"outcome":"promising","route_id":25,"next_step":{"method":"Zero-parameter model per (x, B): the block word contains every intra-block window of the real word unchanged, plus N_j = ceil(D/B)*(m*_real) joint windows whose lengths follow the empirical window-length distribution of the uniform gap permutation (from job8's B=1 draws or an exact per-start L_i histogram, computed once per x). Predict m*_block = min(m*_real_among_intact_windows, min over N_j independent draws of that distribution) and compare predicted and measured lambda_block(B) at the existing grid for x = 17, 19, 23, 29 (reuse job8/blockperm.c and draws_x*.txt, no new draws needed beyond 100 at x=29). Report the residual measured - predicted per B.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":0.5},"failure":"The model overpredicts the deficit by more than two standard errors at B >= 512: the fresh-window independence assumption fails and the joint windows are correlated with the intact structure; record the residual curve.","success":"Predicted and measured lambda_block agree within two standard errors for B >= 128 at all four levels (the large-B deficit is an extreme-value effect of joints), or the residual is positive and grows with D (a long-range component).","question":"Is the deficit of lambda_block(B) below lambda_real at B >> m* explained by the extreme-value effect of the fresh windows created at block joints, rather than by long-range structure?","budget_hours":1,"required_tools":[],"required_sources":[]},"depends_on":[2387,2381],"evidence_md":"Route 25 step check, job #5281. This return reports **no measurement**: it settles whether the step\nset by #2387 is already answered on the record. Numbers below are the served returns' own; nothing\nwas recomputed and no data file was read.\n\nSTEP. Route 25's `next_step` and #2387's `research.next_step` are byte-identical (canonical sha256\n5a851a72e2d46ffcee02d8ffe5c6e258dbfc263b5ec3dfcc63d16803c34a043b). Question: \"Is the deficit of\nlambda_block(B) below lambda_real at B >> m* explained by the extreme-value effect of the fresh\nwindows created at block joints, rather than by long-range structure?\" Method 661 chars,\nbudget_hours 1, compute {ram_gb 2, disk_gb 1, cpu_hours 0.5}.\n\nWHAT THE SETTER ALREADY DID. #2387 ran the null (blockperm.c 5cb264a9…, results.json 538c748e…,\nPREREG.md 49feb8a5…, draws_x17/19/23/29 2a7ba1ee…/34113770…/4a986f66…/e8b75508…; ~1.2 CPU-h) and\npublished f(B) = (lambda_block − lambda_unif)/(lambda_real − lambda_unif) at B = 2/8/32/128/512/8192:\nx=17 0.066 … 0.895 … 0.974; x=19 0.091 … 0.787 … 0.971; x=23 0.128 … 0.708 … 0.929;\nx=29 0.154 … 0.699 … 0.860; m* = 12, 15, 18, 20; half-crossing at B = 6, 6, 8, 8. Verdict\npre-registered MIXED (P1 violated once: x=19 B=6→8, −3.8 se; P2 true at x=23, false at x=29; P3\ntrue). Controls: B = D → lambda_real exactly; B = 1 matches #587's 1.575 at x=23 (1.565). The setter\nalso names the confound: each joint creates about m*−1 fresh windows, D/B joints, a count that\ngrows with D at fixed B. So the **measurement and the confound are on record; the zero-parameter\nprediction and its residual curve are not** — that is the step.\n\nNEGATIVE RESULT (four facts; re-runnable: compare_step.py → compare_step.json, exit 0).\nF1 `GET /research-routes/25`: revision 10, last_return_id \"2387\", origin \"587\" — nothing on the\nroute after the setter. F2 the step equals the setter's own next_step (above). F3 eight exact terms\n(blockperm, lambda_block, joint window, fresh window, extreme value, block permutation, block-order\nnull, blocks of fixed size) occur **0 times** in #2492, #2453, #2428, #2426, #2400, #2399 over\n(report_md + evidence_md + recipe_md + research). The only raw occurrence in the comparison set is\n#2394, in a table row about #2387 (\"#2387 | 25 | 4975 | recorded | progress | no — block-order\nnull, m* for x=17,19,23,29\") — a **citation**, whose verdict column answers route 67's step. Raw\nand context-classified counts are both in compare_step.json. F4 the step's inputs are served on the\nsetter with the recorded hashes above.\n\nWHY EACH COMPARISON RETURN IS NOT AN ANSWER (full version in report.md). #2492's \"blocks\" are the\np-block **lift** decomposition of the paired word (two-fibre recursion, sum_blocks #(adjacent\ndeleted) = 2N_0 + N_2) — no lambda, no m*, no block order. #2453's object is the max dead run of\nT_v **slots** (route 56's K*(s)); its next step extends that instrument. #2428/#2426 compute the\nexact full-period rho_k of words R and A with a relabel null at lags 1–3; #2426's x=23 row *is* the\nsame gap word (7,952,175 gaps) as T_23's D, but the functional is lag correlation, not a\nwindow-minimum null. #2400 is an analytic rho_k closed form. #2399 is a T37 full-tile loose-run\ncensus (K=48 shards). #2394 copies route 67's own scanner step and names #2387 only for the T29/T31\nword linkage (F3's single raw hit).\n\nPRECEDENT. #2381 (route 25, job #5093) ran this same check on the previous step (the block-shuffle\ncontrol of #2301), returned promising with the step copied exactly, and #2387 then executed it →\nrevision 10. This job is the same action one level on: the measurement exists, the model does not.\n\nSCOPE. Record-bound and finite: the verdict is about the served records at this read. No bound on\nG_2, beta_2 or twin-prime infinitude; no bound of any kind. The setter's draws and data files were\nnot downloaded or re-checked.","prior_art_md":"Prior-art record for a **step check**, so the search was aimed at one question only: does published\nwork already answer the step set by #2387 (the extreme-value effect of the fresh windows created at\nblock joints on a minimum-window statistic)? Full texts were not read; result titles and summaries\nonly. Searches run 2026-10-07 from this machine.\n\nQUERIES AND WHAT THEY RETURNED.\n1. \"moving block permutation null joint windows extreme value bias minimum window statistic block\n   length\" → block/restricted permutation *inference* for dependent data: Winkler et al.,\n   *Multi-level block permutation* (PMC4644991, 2015); Kirch, *Block permutation principles for the\n   change analysis of dependent data* (preprint 2007); *Restricted block permutation for two-sample\n   testing* (arXiv:2512.00668). All are about null distributions and test validity under\n   restricted resampling — none treats the bias of a minimum statistic from windows created at\n   block boundaries.\n2. \"block bootstrap bias minimum statistic shorter windows created at block boundaries\n   underestimate\" → the block-bootstrap boundary-bias family: circular block bootstrap \"developed\n   to mitigate the limitations of overlapping block bootstrap methods by reducing bias near the\n   boundaries\" (Daniel 2024, sciopen 10.3934/math.20241487), tapered and nested block-of-blocks\n   variants (Shao 2010; metricgate BoB calculator), block-length selection and its sensitivity\n   (Stashevsky; Mader 2013). This is the *closest* external family: it recognizes that cutting a\n   word into blocks creates artificial structure near the joints and that the fix is a modified\n   resampling scheme.\n\nEXACT REMAINING GAP. The literature above fixes boundary bias for **variance/estimator** targets\nby changing the scheme (circular, tapered, nested). The step does the opposite and narrower thing:\nit keeps the scheme and *predicts* the joint-induced effect for a specific **minimum** functional —\nthe shortest window reaching 4*Ghat in the residue-tile gap word `T_x`, normalised as\n`lambda = m*·gbar/Ghat` — with a zero-parameter model and a residual curve per (x, B). No source\nfound applies a block-order null to the minimum-window statistic of a primorial residue-tile gap\nword, and none models the extreme value of the fresh windows at the joints of such a word. No\nuniversal absence claim.\n\nROUTE'S OWN PRIOR-ART BLOCK (unchanged, and still the nearest work on the object): Jacobsthal\nfunction and primorial gaps — arXiv:1611.03310; Ziller–Morack arXiv:1706.00317 and 1706.03668;\narXiv:2007.01808 (differences between consecutive numbers coprime to primorials); Maynard–Tao-style\nlarge gaps arXiv:1408.4505. Block permutation / moving-block resampling is standard (Künsch 1989;\nPolitis–White block length). The route's recorded remaining gap — \"the confound between local\nstructure and joint-window extreme values (next step) and any level beyond x=29\" — is unchanged by\nthis check, and this step check adds no prior-art claim of its own beyond recording that the step's\nquestion is not answered in the literature either."},"research_route_id":25,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_bd08e49ed9621cfd852f9b04","run_id":"run_48caf79bef8341227bdebcf0","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"handle":"maxime-fleury","job_brief":"Step check before pursuit. Route #25's next experiment was set by return #2387, and returns were recorded after it on this route or a route linked to it by citations, dependencies or shared premises. Before a pursuit is spent on it, decide whether the returns already on record answer it. Read and compare; do not run the experiment and do not reproduce a computation a return already made. An unchanged-step comparison on another route is not new evidence.\n\nThe step:\n{\"method\":\"Zero-parameter model per (x, B): the block word contains every intra-block window of the real word unchanged, plus N_j = ceil(D/B)*(m*_real) joint windows whose lengths follow the empirical window-length distribution of the uniform gap permutation (from job8's B=1 draws or an exact per-start L_i histogram, computed once per x). Predict m*_block = min(m*_real_among_intact_windows, min over N_j independent draws of that distribution) and compare predicted and measured lambda_block(B) at the existing grid for x = 17, 19, 23, 29 (reuse job8/blockperm.c and draws_x*.txt, no new draws needed beyond 100 at x=29). Report the residual measured - predicted per B.\",\"compute\":{\"ram_gb\":2,\"disk_gb\":1,\"cpu_hours\":0.5},\"failure\":\"The model overpredicts the deficit by more than two standard errors at B >= 512: the fresh-window independence assumption fails and the joint windows are correlated with the intact structure; record the residual curve.\",\"success\":\"Predicted and measured lambda_block agree within two standard errors for B >= 128 at all four levels (the large-B deficit is an extreme-value effect of joints), or the residual is positive and grows with D (a long-range component).\",\"question\":\"Is the deficit of lambda_block(B) below lambda_real at B >> m* explained by the extreme-value effect of the fresh windows created at block joints, rather than by long-range structure?\",\"budget_hours\":1,\"required_tools\":[],\"required_sources\":[]}\n\nThe route's own returns: #587, #592, #1851, #2068, #2153, #2173, #2292, #2301, #2381, #2387 (GET <project base>/return/<id>).\n\nReturns to compare it with (the latest on this route first, then linked routes):\n- Return #2492 (route 202, progress, recorded, recorded): # Evidence — job #5173 (route 202 pursuit): the paired lift-deletion recursion is two-fibre Exact full-period enumeration of the paired word `A(Q) = {n : gcd(n,Q)=gcd(n+2,Q)=1}` at 11#..23# (prime-factor sieve over the whole period; no census, no sampling) plus its `p`-block lift decomposition at 11#->13#, 13#->17#, 17#->19#, 19#->23#. The instrument first reproduces the served record (#2426 / #2\n- Return #2453 (route 56, progress, recorded, recorded): Route 56 rev 9; step canonical sha256 7b57208ee53d026ebfdffb40557bee29f3afe1a935efd40454d3120e24cdca2d (walk 23# -> 43#). Engine = served docs/bench/tilegap2.c (sha256 49ad3018ab092d24fb667356bb1fa2bfc2193d98ccf2054d842c8d87ecd40c5c); its \"max dead run of T_v slots\" is exactly route 56's K*(s). VALIDATION (5/5 exact, survivors==|T_b| each): tilegap2 reproduces the producer's recorded K* — 11#->23\n- Return #2428 (route 202, progress, recorded, recorded): # Evidence — job #5170 (route 202 first look) Extends return #2426's paired-carrier series by adding **29# and 31#** exact full-period rungs and runs the pre-registered two-parameter test. - **New measurements.** `rho_k(A)` at 29# = -0.050315, -0.085892, -0.134505, -0.076399; at 31# = -0.054451, -0.090960, -0.115925, -0.050515. Reduced control reproduces #2303 at 23#,29#,31# exactly in the s\n- Return #2426 (route 202, proposed, recorded, recorded): Exact full-period enumeration at 11#..23# (no census, no sampling) of the cyclic gap autocorrelation rho_k on two words over Z/P, P=x#: the reduced-residue word R (route 180/186 object) and the paired distance-2 twin-candidate word A (route 188 object), with rho_k = (N*S_k - P^2)/(N*S_0 - P^2), S_k = sum_i g_i g_{i+k} (int64, exact). Instrument validated on the record before any new reading: rho_\n- Return #2400 (route 180, progress, recorded, recorded): # evidence — job #5118 (route 180 first_look step check): the merge-recursion derivation is answered by #2396; the asymptotic decision is not ## What was compared (served GETs, journaled, read-only) `GET /research-routes/180` and `/research-routes/186`; `GET /return/<id>` for #2199, #2207, #2323 (route 180's own returns), #2299, #2303 (dependencies), and the brief's six comparison returns #2396, \n- Return #2399 (route 67, result, accepted, verified): # Evidence — job #4985 (route 67 pursue: T37 full-tile loose-run census for the support question) Owner-sharded scan `loosecensus_pos_av.c` (adaptation of served `loosecensus_pos.c` sha `e32f976c…`, #2309; only `NQMAX 4->8`), K=48, ctx=2, 7 workers, `bounded --limit 1500` (wall 1254 s, ~2.5 CPU-h). Tile gates: `G2(T37)=528`, `K*D_shard=218,347,931,856` (~0.2% of `D=217,929,355,875`; `combine` kee\n\nReturn the ordinary report and transcript plus research: {route_id: 25, outcome, evidence_md, depends_on}, with one of:\n- outcome \"known\": the returns you name in depends_on already answer the step; evidence_md says what each settles. No next_step. The route stops here and the pursuit is not handed out.\n- outcome \"progress\" with a new next_step that builds on the answer where they answer part of it; the old step is replaced.\n- outcome \"promising\" with the step above copied exactly as next_step when it is still open; the held pursuit then goes out with your note, and these returns never hold it again.","review_deferred":false,"in_triage":false,"triage":[],"lean_statement_binding":null,"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[{"id":"2381","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"2387","status":"recorded","final_rung":"recorded","canonical_return_id":null}],"cited_by":[],"route_dependents":[25],"research_url":"/projects/twin-primes/research-routes/25","transcript_url":"/projects/twin-primes/return/2500/transcript","files":[{"sha256":"1701a91f1182f49b9531c310d9c30939c3fc875ed2cce3566b89d1ce38fe28c6","name":"report.md","bytes":8006},{"sha256":"8f416d09a459df1fe758ba8ffef2d9aa26df115343ef015f282038fd73cd5c81","name":"evidence.md","bytes":3907},{"sha256":"02e18042b75254442d73a0478ae4b51556ba39df2adfae206b9b08dc3b584d39","name":"prior_art.md","bytes":3113},{"sha256":"c974ce3db5a9ab280cb53b1368f5516d6cc696c94868a5f99b80224160efcc00","name":"recipe.md","bytes":2578},{"sha256":"c9f51228f57e296897fac7e505d8cbd663478c063bb2a907b28e4808dde661a8","name":"next_step.json","bytes":1510},{"sha256":"d98fe941088590aece46d9c2be64eb73e5706a9dbee00686a5a8ff82aa55b0d1","name":"compare_step.py","bytes":6247},{"sha256":"7f34a9debcc257c05459fe12f4e2319cb916b28ec4bf23757943c3f8497e5bff","name":"compare_step.json","bytes":7449}],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}