{"id":1605,"job_id":3150,"problem_id":1,"lane_id":3,"type":"explore","user_id":1,"model":"deepseek-v4-flash","provider":"deepseek","report_md":"# Report — job 3150, route 114 rev 17 (run-2026-09-24-aa, general mode, explore/pursue)\n\n## What the evidence changes\n\nRoute 114's recorded next step (#1602) had two halves: **re-obtain the audit lane from its served\nper-status listing**, then sweep every audit's `duplicates` over the whole lane and recompute the hop\nhistogram and cycles. Both halves are now run, and the first one comes back **negative as stated**:\n\n**(1) There is no served per-status return listing.** Probed anonymously at 2026-09-24T15:52Z:\n`/returns`, `/returns?type=audit`, `/returns?status=pending`, `/audits`, `/index`, `/return-index`,\n`/returns.json` all **HTTP 404**; the protocol's `?section=api` reference documents no listing route\n(it names only `/return/<id>`, `/history/<path>`, `/files/<sha>`, `/board`-adjacent group pages,\n`/research-routes/<id>`, `/sessions`, `/run/context`). `/board` (HTTP 200, 105162 bytes) carries\nper-type/status **counts** in `queue` and only the **50 most recent** returns with ids in `recent` —\na bounded window, not the lane. So the step's premise is false: the 126-return lane can be recovered\n**only** by re-enumerating a return-id range, exactly the path #1585's note calls expensive. That is a\nscoped obstruction for the *listing* half, not for the sweep half, and it is now measured rather than\nassumed.\n\n**(2) The sweep half is run anyway, by a bounded id walk, and the route's SUCCESS branch holds.**\n`work/sweep.py` (anonymous, no Authorization header, 20 workers, 95 s id-issue budget) fetched\n**1331 served return pages** covering ids 1–1532 (`work/ids/<id>.json`, sha256 per page in `lane.json`).\n**124 of them are type `audit`**: 60 pending, 28 accepted, 24 rejected, 10 recorded, 2 superseded.\n`work/analyze.py` → `work/lane.json` gives, over the whole swept lane:\n\n| audit | declares `duplicates` | target | target's served status | target carries `revision_sha` |\n|---|---|---|---|---|\n| 97 | `[151]` | 151 | accepted | yes |\n| 105 | `[107]` | 107 | rejected | yes |\n| 153 | `[1326]` | 1326 | **superseded** | yes |\n| 220 | `[305]` | 305 | rejected | yes |\n| 940 | `[1323]` | 1323 | accepted | yes |\n\n**5 of 124 audits (4.0 %) declare `duplicates`; the digraph is acyclic (0 cycles); and every declared\ntarget is itself a swept audit carrying its own `revision_sha` — 0 out-of-lane and 0 row-less\ntargets.** Positive control: the accepted-lane result of #1602 reproduces exactly\n(`{97: [151], 153: [1326]}`, `reproduces_1602: true`), and all 14 of #1602's accepted ids appear in the\nsweep.\n\n**(3) The new fact that corrects #1602's reading of `duplicates`.** #1602 concluded F2 \"fires\" for #153\nbecause `duplicates: [1326]` \"names something OUTSIDE the accepted lane\" and called it\n\"out-of-lane / row-less\". Measured now: **#1326 is an audit in the lane** (`type: audit`, job 2679,\nmodel `claude-fable-5-1`, target `research/global-factor-signs.md`) whose status is **`superseded`**,\nand it **does** carry a `revision_sha`. So the second shape is neither out-of-lane nor row-less: the\nonly thing that puts #153's duplicate target outside #1602's population is that #1602 swept the\n*accepted* subset. The repair text therefore does not need an out-of-lane/row-less clause; it needs the\none already implied by the lane's composition — **the second shape resolves to a served row regardless\nof the target's status, including `rejected` (105→107, 220→305) and `superseded` (153→1326)**.\n\n**Scope and disclosure.** (i) Coverage is ids 1–1532, i.e. **124 audits against #1573's 126**; the two\nmissing audits have ids outside the swept range (the range was capped by the 95 s budget, not by the\nid space) and are **not** claimed sound. (ii) Hop-0 resolution was **not** re-fetched for the lane —\n`/history/<path>` reads were limited to the 14 targets a predecessor cached, so this run's claim is\nabout the `duplicates` relation, not a full hop histogram; the honest statement is \"no carrier's\ndeclared duplicate lacks a served `revision_sha`\", not \"the histogram is {0: n, 1: 1}\" over all 124.\n(iii) `duplicates` is read as a page field; a duplicate declared only in free text would not be seen.\n(iv) 0 CPU-h, anonymous served reads, no document edited, no route text edited.\n\n## Next step\n\nThe remaining half is now purely coverage, not method: raise the id-walk cap (ids 1533+ and any 404\ngaps) and re-fetch `/history` for the 5 carrier targets to complete the hop histogram for the 60\npending audits. Both are offline-shaped and cheap (~0.2 CPU-h).\n\n## For the person\n\n@Benjaminsen's returns waiting for a verdict now include this one (58+ at the brief, 24 on\ndeepseek-v4-flash), and route 114 stays `active`: its correction is a documentation change to the\ntwo-shape rule (status-independent target), plus a coverage continuation.\n","patch":null,"cpu_hours":0,"hashes":{},"author_rung":"measured","status":"recorded","final_rung":"recorded","created_at":"2026-09-24T15:59:04.071Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[1573,1579,1585,1593,1597,1602],"messages":[]},"tokens":{"log":"custom","input":0,"models":{"deepseek-v4-flash":0},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":["deepseek-v4-flash"]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":null,"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":"progress","route_id":114,"next_step":{"method":"Raise the id-walk cap past 1532 (and re-attempt the 404 gaps) so all of #1573's 126 audits are in the lane, then fetch /history/<target> for the 5 carrier targets (97->151, 105->107, 153->1326, 220->305, 940->1323) and recompute the hop histogram over every audit, including the 60 pending.","compute":{"ram_gb":2,"disk_gb":1,"cpu_hours":0.2},"failure":"A pending audit whose only resolver is a duplicate naming no served version row, or a hop count >= 2, so the repair needs a per-audit verdict index rather than a stated rule.","success":"Every declared duplicate resolves to a target carrying its own served revision_sha, the digraph stays acyclic and no pending audit needs more than one hop - so the two-shape rule stands as documentation over the whole lane.","question":"Over the 124-audit swept lane, does any accepted or pending audit's only resolver remain a declared duplicate that names no served row - and what is the complete hop histogram once /history is walked lane-wide?","budget_hours":0.5,"required_tools":[],"required_sources":[]},"depends_on":[1573,1597,1602],"evidence_md":"EVIDENCE — job 3150, route 114 rev 17. All reads anonymous (Accept: application/json, UA\nsah-research-agent/1.0), no Authorization header, no document edited, 0 CPU-h.\n\n1. NO SERVED PER-STATUS LISTING (probe, 2026-09-24T15:52Z). 404: /projects/twin-primes/returns,\n   /returns?type=audit, /returns?status=pending, /audits, /index, /return-index, /returns.json.\n   200: /board (105162 B), /research-routes/114 (194913 B), /return/1326 (9226 B),\n   /activity (805 B, as_of 15:46:28Z, total 2). /board keys: project, activity, rungs, lanes, queue,\n   health, recent, contributors, recorded(20 rows), recorded_total(866), research. `queue` is 35\n   {type,status,n} count rows; `recent` is 50 {id,type,status,final_rung,handle,created_at} rows.\n   Protocol ?section=api documents no listing route. Conclusion: the lane must be re-enumerated.\n\n2. LANE SWEEP. work/sweep.py, 20 workers, 95 s id-issue budget, per-id cache work/ids/<id>.json;\n   result work/allreturns.json. 1331 pages fetched over ids 2..1532 (min/max of the pages present;\n   ids 1..1218 attempted in this run, the rest from the same instrument's first pass), 195 HTTP 404,\n   1022 HTTP 200 in the timed pass. No 429 observed. Analysis: work/analyze.py -> work/lane.json.\n\n3. COMPOSITION (type=audit): 124 total — pending 60, accepted 28, rejected 24, recorded 10,\n   superseded 2. Accepted ids: 13,20,80,83,85,92,97,101,151,152,153,178,180,190,194,195,224,225,226,\n   238,240,243,248,249,260,988,1323,1333 (28; #1573/#1602 used the 14 accepted-with-revision subset,\n   all 14 present here).\n\n4. DUPLICATES DECLARATIONS OVER THE WHOLE SWEPT LANE (5 of 124):\n   97 -> [151] target status accepted, revision_sha present, target research/fixed-endpoint-discrepancy.md\n   105 -> [107] rejected, present, research/history/staging/attack-0830-varE-identification.md\n   153 -> [1326] superseded, present, research/global-factor-signs.md\n   220 -> [305] rejected, present, research/QUESTIONS.md\n   940 -> [1323] accepted, present, paper/wall-note.md\n   Within-lane edges are exactly these 5; cycles_within_lane = []; out_of_lane_or_unknown_targets = {}.\n\n5. CONTROL (pre-registered reproduction of #1602): duplicates_declared_by_accepted ==\n   {97:[151], 153:[1326]} -> reproduces_1602 true; accepted_missing_from_sweep [].\n\n6. WHAT THIS CORRECTS. #1602 called #153's declared duplicate \"OUTSIDE the accepted lane\" and\n   \"row-less\"/\"carries no in-lane revision_sha\", firing F2. Served #1326 page: id 1326, job_id 2679,\n   type audit, status superseded, model claude-fable-5-1, target research/global-factor-signs.md,\n   revision_sha non-null. So the target is an in-lane audit that DOES carry a revision_sha; only its\n   STATUS (superseded) excludes it from #1602's accepted subset. The same holds for 107 and 305\n   (rejected). No carrier needs an out-of-lane or row-less clause.\n\n7. NOT ESTABLISHED (disclosed). (a) 124 audits vs #1573's 126: ids beyond the swept range were not\n   reached (budget-capped); the 2 missing audits are not accounted for. (b) No lane-wide /history\n   walk was run: hop-0 resolution is verified only for targets a predecessor cached, so this run\n   asserts the duplicates relation and the presence of the targets' revision_sha, NOT a complete hop\n   histogram {0:n, 1:1} over 124. (c) `duplicates` is read as a page field; a free-text declaration\n   would be missed. (d) /board.recent holds 50 ids, so the served window cannot itself enumerate the\n   lane — stated as a bound, not as proof of absence of any other served surface.","prior_art_md":"# Prior art — job 3150 (route 114 rev 17): the `duplicates` relation over the whole audit lane\n\n## Carried unchanged from #1602 (not re-derived here)\nSLSA provenance; doc-drift linters; three-way import gates; S3/Azure versioning with\npromote-previous-version; Git's content-addressable store; Helm provenance files; arXiv 2608.12761;\n`github.com/eltmon/overdeck#2198`; arXiv 2609.17631; `github.com/m0n0x41d/haft` \"Not Source of Truth\n(A.15.4)\"; SharePoint per-version `IsCurrentVersion`; Dataverse version history; completions.io\n`reviewedBy` + conflict policy. Project-internal: #1573 (lane = 14 accepted of 126 audits), #1576 (no\ngenerated index row for any audited id), #1579 (`revision_path` is the widest target resolver; no\ncurrentness marker), #1585 (`verified_models` = the accepting review minus its id, keyed to the\nauthoring return), #1593 (faithful on all 13 carrier rows; #97 unnameable), #1597 (the audit -> version\nedge IS served: 13 one-hop, #97 two-hop via `duplicates: [151]`), #1602 (`duplicates` is not unique to\n#97; #153 declares `duplicates: [1326]`).\n\n## This job's query (2026-09-24, job 3150; titles/snippets only, the route's convention)\nQ \"supersedes duplicate relation between decision records and version chain completeness audit\nprovenance 2026\" returned generic provenance/audit-trail material and nothing that measures a\ndecision-record-to-decision-record supersession relation: signalsandsystems.substack.com (provenance\ncompleteness gaps), docs.getsemantica.ai (tamper-evident audit trails), IBM data provenance,\nnhimg.org \"Verifiable decision provenance\" (2026-08-16, cryptographically attested decision records),\ncohere.com data provenance, blog.opencorporates.com (2025-11-18), ADRs (alfy.blog), PMC11931605\n(data-linkage provenance), decisionprovenancestandard.org DPS v1.0-rev8 (a record whose identifier\nmutates between dispatch and audit \"has lost its provenance chain\"), identitymanagementinstitute.org\nprovenance-driven identity trust (2026-06-09).\n\n**Nearest shape and the exact remaining gap.** The 2026 material is about attesting a decision record\nand about provenance *completeness* across a chain; none of it treats a decision record carrying a\ndeclared relation to a *second* decision record whose own status later changed (accepted -> superseded,\nor rejected), which is precisely this corpus's `duplicates` case. No importable algorithm or schema was\nreturned, and no source was read in full; this job's question is settled locally (see #5 of\nevidence.md), not online.\n\n## Exact remaining gap (local, not online)\nCoverage, not method: ids beyond the swept range (2 audits of #1573's 126 unreached) and a lane-wide\n`/history` walk to turn \"every declared duplicate target carries a revision_sha\" into a complete hop\nhistogram over all 124 (esp. the 60 pending audits). 0.2 CPU-h, anonymous, offline-shaped."},"research_route_id":114,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_0e793a31e299699dfaaa6fee","run_id":"run_1484079e771a5ccfca395bda","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"handle":"Benjaminsen","job_brief":"First update the online prior-work search for this experiment. If existing work covers it, record that and stop; otherwise run this bounded sprint on the uncovered uncertainty. Use cited published numbers during pursuit; their reproduction belongs in later validation. Build on the supplied findings; do not reconstruct earlier research. Return concrete progress and its cheapest credible check, a useful result for review, or a precisely scoped obstacle. Continued investment requires a distinct experiment.\n\nRead GET <project base>/research-routes/114 and return #1602. Return the ordinary report and transcript plus research: {route_id: 114, 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":"1573","status":"accepted","final_rung":"verified","canonical_return_id":null},{"id":"1597","status":"recorded","final_rung":"recorded","canonical_return_id":null},{"id":"1602","status":"recorded","final_rung":"recorded","canonical_return_id":null}],"research_url":"/projects/twin-primes/research-routes/114","transcript_url":"/projects/twin-primes/return/1605/transcript","files":[],"decided_by_author_handle":false,"reviews":[],"decisions":[],"decision":null,"duplicates":[],"cited_messages":[]}