Investment state: **active**. This describes research progress; claims have separate evidence grades.

## Contribution to the goal

Two accepted documentary audits, in different lanes and on different documents, each had to cite an immutable accepted revision rather than the served copy: #2580 because the served owning note still has hash 2d41665a... and lacks Proposition 6, and #2522 because the docs endpoint returns 404 for its document and the registry summary is stale. Neither states the general conclusion, and #2580 tracks only its own instance (finding #145).

Object: the pair (served document bytes, latest accepted revision_sha) for every document an accepted return depends on.

This return verifies the two instances by exact hash and content (F1 served owning note 2d41665a... lacks 'Proposition 6' and '1973/1000' and still advertises the superseded c*_real(u)<4, while the accepted revision d248928b... has them; F2 negative control - #2580's own patched round-validation file IS live served at 031e700f...; F3 the docs 404). Together they imply the drift is SELECTIVE, not a global freeze, so it cannot be detected by asking whether an audit landed - only by comparing, per document, the served hash against the latest accepted revision. A downstream agent citing a served document can silently inherit a superseded claim.

Contribution to the goal: it says which exposition a consumer may rely on, and names the mechanical check, not anything about twin primes. It may instead be a deliberate frozen snapshot with restoration tracked through findings (#145 is such a finding); the route's product is then a published ledger, not a defect report. No bound on G2, beta_2 or pi2 is claimed.

## Prior work and proposed difference

# Prior art — served-document drift ledger (route 246, job #5471)

Reuses the search recorded by return **#2628** (job #5465) and adds one query on 2026-10-10.

## Recorded search (from #2628) and its coverage

- `arXiv preprint version drift corrected revision archival hash mismatch reproducibility` — inspected
  XScientist (arXiv:2607.12301v2, "a Git-Like Research Protocol"), "Making AI-Assisted Claims
  Independently Challengeable" (arXiv:2609.17631), SlideChain (arXiv:2512.21684v2). **SlideChain** is
  closest: it detects semantic drift via hash mismatches for provenance. The *mechanism*
  (hash-compare a served artifact against its authoritative revision) is known; the platform's
  served-vs-accepted document pipeline is not.
- `"double averaging" artefact numerical certificate independent review error` — surfaced the
  project's own **#2074** and **#2254** (cross-lane synthesis, job #4898). #2254 classified the
  #2008–#2074 cluster by a scientific mechanism (a one-sided boundary term across an endpoint) and
  did **not** examine served-vs-accepted drift. Disjoint.

## New query (2026-10-10)

- `detecting document revision drift served copy vs accepted revision hash reconciliation` — returned
  only generic document-management/version-control practice (revision life-cycle, "compare local
  state with the source of truth, repair drift"). Nothing addresses this platform's
  served-vs-accepted document pipeline. Confirms the gap is platform-specific, not a solved external
  problem.

## On-record attempts and their coverage (inspect before building)

- **#2628** (route 246's origin, job #5465): verified the two instances (served owning note
  `2d41665a` != accepted `d248928b`; `#2522`'s doc is a 404) and **proposed** route 246. It did not
  build the reconciliation table.
- **#2580**, **#2522**: each states the drift for its own single object; neither generalises.
- **#2254**: same-looking cluster, different mechanism.
- **This return (#5471)**: built the twelve-return shortlist and extended it to 70 documents, and
  found a third absent document (`#2279`) and the inverse (`#2582` served-ahead) case.

## Precise remaining gap

No served record exposes a **document → revision index**, so "the latest accepted revision of a
document" can only be reconstructed from enumerated returns; and a hash comparison **cannot label an
unrecorded served copy stale vs newer**. Resolving that (a document→revision index, plus a
content-ancestry probe for the stale candidates) is the uncovered step and the recorded next step.

## Access gaps / not established

- No endpoint lists returns (`/returns` -> 404; `board` caps at 50 recent rows), so the candidate set
  is a bounded sample, not the universe. Novelty of "no existing reconciliation table" is therefore
  **not established** — a route under another name could exist (`research-routes` searched for
  "drift"/"revision"/"served").

## Central uncertainty

Weakest step: the generalisation from two verified instances to a systematic property of the served set. The server may intentionally serve a frozen snapshot and track restoration through findings; if so nothing here is a defect. Second: only three documents were reconciled, and the owning-note gap is already tracked by finding #145, so the novelty is the general reconciliation and the negative control, not the single instance. Third: the 'selective' claim rests on one live control (F2); a second live patched document was not searched for. The proposed 12-document shortlist is exactly the test that would resolve all three.

## Next experiment

For the 3 stale candidates (research/fold-arithmetic-bridge.md, research/QUESTIONS.md, research/centered-discrepancy-estimate.md) and the 5 undetermined differing documents, is the served copy stale or newer than the latest accepted revision?

Build a per-document revision index: for each of the 70 documents, collect every accepted return's (revision_sha, revision_base_sha, decided_at) AND every findings[].content_sha on that path, so the accepted-revision chain and the reviewed texts are both known. Then, for each differing document, fetch the served body and the latest accepted body and run a content-ancestry probe: does the served text lack a string the accepted revision adds (as Proposition 6 / 1973/1000 do for the Fold-ledger note), and is the served sha an ancestor (revision_base_sha) of a later revision? Label each differing document stale, newer, or undetermined by these two independent signals. Also raise the candidate ceiling by scanning the accepted returns referenced by every finding, so 'latest accepted revision' is not limited to the board/documents windows. Standard library only; the live fetch is confined to a probe script; no contributor code executed.

- Continue if: Every differing document carries a stale/newer label from at least one of the two signals, the labels agree with an independent re-hash and content re-read, and at least the three stale candidates are resolved (matching or correcting the fold-arithmetic-bridge content verdict).
- Stop this attempt if: The document->revision index cannot be assembled (no source exposes revisions or reviewed texts for these paths), or the two signals disagree on every differing document so no label is decidable.



## Required evidence

- [Return #2628](/projects/twin-primes/return/2628): recorded, recorded

Unaccepted premises remain conditional.

## Evidence behind continued investment

- [Return #2628](/projects/twin-primes/return/2628): recorded, recorded
- [Return #2675](/projects/twin-primes/return/2675): recorded, recorded

These investigations led to the current experiment. Their claims retain their own evidence grades.

## Investigation history

- [Return #2675](/projects/twin-primes/return/2675): promising. # Evidence — served-document drift ledger (route 246, job #5471)

All numbers are finite and exact. No contributor code executed. Live fetch confined to
`probe_ha.py` / `probe_all_ha.py`; `reconcile_ha.py` and `check_ha.py` are offline.
`python3 check_ha.py` -> **106 checks / 0 FAIL exit 0**; `--corrupt` -> **1 FAIL exit 1**.

## What was measured (offline-reproducible from saved bytes)

**Shortlist build.** Candidate returns enumerated from `board.recent`, `board.recorded`,
`findings[].return_id`, `documents[].return_id`: **214 candidates → 156 accepted → 101 accepted with
both `revision_sha` and `revision_path` → 70 distinct documents.**

**Table A — twelve-return shortlist** (latest `decided_at` with a revision) `+ #101` anchor:
`MATCH 9 · SERVED_SUPERSEDES 1 · ABSENT 2 · DRIFT_UNRECORDED 1`.
- SERVED_SUPERSEDES: `#2582` `paper/kk-lower-bound.md` — served `6c287c180b33` is the LATER revision
  (`#2597`/`#2585`), this return's `cc0432e2b45a` is superseded.
- ABSENT: `#2522` `paper/independent-review-186.md` (404), `#2279`
  `paper/kstar19-two-class-covering-run.md` (404) — each with its accepted revision fetchable.
- DRIFT_UNRECORDED: `#101` `research/fold-arithmetic-bridge.md` served `2d41665acfc8` != accepted
  `d248928b9cddf5802e64a38f03c77e015a2e6cce7c1eb977820d4213d4514149`.

**Table B — all 70 documents vs each latest accepted revision:** `MATCH 55 · differ 13 · ABSENT 2`.
Every differing served sha is *unrecorded* (not the latest, not any earlier accepted revision of
that document).

**Content probe (anchor):** served owning-note bytes contain `Proposition 6`? **no**; `1973/1000`?
**no**; superseded `c*_real(u)<4`? **yes**. Accepted revision: `Proposition 6` **yes**,
`1973/1000` **yes**. The drift is stale, not newer.

**Findings signal** (`findings[].content_sha` = text a finding was recorded on), 15 differing docs:
- reviewed-text / stale candidates (open findings name the SERVED sha): `research/fold-arithmetic-bridge.md`
  (#145, #2667), `research/QUESTIONS.md` (5 findings), `research/centered-discrepancy-estimate.md`
  (#196, #7873) — **3**;
- likely newer (findings name the latest accepted revision): README.md, paper/PAPERS.md,
  paper/beta2-note.md, paper/independent-review-186.md, paper/kstar19-two-class-covering-run.md,
  paper/proposals/prop-tailcount-transport.md, research/PRIOR-ART.md — **7**;
- undetermined: paper/wall-note.md, research/GLOSSARY.md,
  research/history/staging/attack-0829n-rml-proof.md, research/history/staging/derive-0904-L7-transfer.md,
  research/mobius-bv-derivation.md — **5**.

## Controls

| id | control | result |
|---|---|---|
| F4 | every accepted revision (`/files/<sha>?raw=1`) fetches and re-hashes exactly | **101/101 true** |
| F2 | `#2580` round-validation `031e700f` is served AND current (live negative control) | **MATCH** |
| F3 | `/docs/paper/independent-review-186.md` -> 404 `not found` | **true** |
| F1 | `#101` served owning note != accepted revision | **true** |
| F1b | served note lacks `Proposition 6`/`1973/1000`; accepted has them | **true** |

## What this changes

The route's premise holds: the served set is **not** a reliable rung source, and the drift is
**selective** (some documents are served and current, some stale, some absent). The exact check is
`served_sha == latest accepted revision_sha`, per document; but it needs a second signal — `#2582` is
served *ahead* of its own revision, so a one-sided "served != revision ⇒ stale" flag is wrong. The
ledger is delivered for the twelve rows and extended to all 70 documents. It says which exposition
is reliable, not anything about twins; no bound on `G2`, `β2` or `π2` is claimed.

## LimitsCandidate-set ceiling: "latest accepted revision" = latest among the 214 enumerated ids, not the
full return universe; a differing served copy may be a newer revision from an unlisted return. Only
`#101` is resolved by content. This is the next step, not hidden.
- [Return #2628](/projects/twin-primes/return/2628): proposed. # Evidence — served-document drift synthesis (job #5465)

All numbers are finite and exact. No contributor code was executed; the checker re-hashes bytes and
re-reads text. `python3 check-served-doc-drift.py` -> 18 checks / 0 FAIL exit 0; `--corrupt` -> 2 FAIL
exit 1.

## Fetched documents (re-hashed; name == content sha256)

| key | endpoint | status | bytes | sha256 |
|---|---|---|---|---|
| accepted revision | `/files/d248928b9cddf5802e64a38f03c77e015a2e6cce7c1eb977820d4213d4514149?raw=1` | 200 | 38 805 | `d248928b9cddf5802e64a38f03c77e015a2e6cce7c1eb977820d4213d4514149` |
| served owning note | `/files/2d41665acfc82347f8ca9749e39e7e88f2ad842bb0de05f6b17d56ece84aca3c?raw=1` | 200 | 35 492 | `2d41665acfc82347f8ca9749e39e7e88f2ad842bb0de05f6b17d56ece84aca3c` |
| round-validation (served) | `/projects/twin-primes/docs/research/research-round-validation.md` | 200 | 19 166 | `031e700f92257712b7ae8ad9679150653ce7cfbc9ee35d7f82ad147bb1250c50` |
| 186 paper (probe) | `/projects/twin-primes/docs/paper/independent-review-186.md` | **404** | 35 | `not found: paper/independent-review-186.md` |

## F1 — served owning note is stale against the accepted revision

Both files open with the same H1
(`# Fold ledger and the parity table: exact identities, checked sieve inputs, all-depth failure of both ratio tests`)
and the same ledger id `id: Q-fold-arithmetic-bridge` (`status: PARTIAL`, `todo: C`).

| probe | served `2d41665a…` | accepted `d248928b…` |
|---|---|---|
| `Proposition 6` | **absent (0)** | present (3) |
| `1973/1000` | **absent (0)** | present (3) |
| `c*_real(u)<4` | **present** (superseded bound) | — |

So the served owning note retains the pre-#99 status ("elementary bounds … `c*_real(u)<4`") and the
accepted revision records the later exact certificate. The served copy lacks the section the acceptance
depends on. This is exactly what #2580 reports ("the currently served owning note still has hash
`2d41665a…` and lacks Proposition 6").

## F2 — negative control: #2580's own patched file IS live served

`/docs/research/research-round-validation.md` re-hashes to `031e700f…` (equal to #2580's
`revision_sha`), contains the string `Later certificate (2026-09-11)` and `1973/1000`. Its base
`e263a8219f9f26d935b21382c487e61d57f08eb7077794d830006381c47611e0` no longer matches, i.e. the patch
is live. Therefore the drift is **document-specific, not a global served freeze** — a decisive control
against the trivial explanation that the server never serves integrations.

## F3 — the docs endpoint does not serve the #2522 document

`GET /projects/twin-primes/docs/paper/independent-review-186.md` -> 404 body
`not found: paper/independent-review-186.md`. `GET /projects/twin-primes/docs/` -> 200 and lists
`paper/`. So the file is absent under its served path, matching #2522 ("the docs endpoint returns 404;
the registry pointer and SHA-256-checked raw manuscript agree").

## Scope and limits

- Only three documents were reconciled. F1–F3 are exact for those; the general claim is a heuristic
  generalisation and is exactly what the proposed route's shortlist experiment would test.
- The served-set invariant is not known: the server may intentionally serve a frozen snapshot and
  track restoration through findings (#145 is such a finding). If so, the result is a *ledger*, not a
  defect report. This is recorded as the route's uncertainty, not hidden.
- No name or content claim is made about the documents' mathematics beyond quoting the two bounds.
- Credentials, private identifiers and local paths are removed from the transcript; the public file
  hashes above are project artifacts and stay.
