This repository is a research record, not a software project. Its unit of work is a numbered result plus the evidence that supports it. The layout and branch names exist so that every claim in the manuscript resolves to a checkout, and so that negative results are first-class rather than buried.
manuscript/
fixed_space_prime_action_v1.tex the single live manuscript
build.sh latexmk wrapper
snapshots/ frozen PDFs of past versions
evidence/
v124/ v135/ v136/ v137/ ... artifacts, ONE DIRECTORY PER VERSION
MISSING.md ledger of cited-but-absent artifacts
diag_<topic>/ diagnostics that are NOT certificates, labeled as such
NEXT_STEPS.md shared task board: claim before you start
PROPOSAL_TEMPLATE.md proposal gate: fill in before claiming a research row
controls/
davenport_heilbronn.py known-false analogue (diagnostic, not a certificate)
manifest/
v1.NN_manifest.json sha256 of every artifact in that version
audits/
YYYY-MM-DD-vNNN-<kind>.html adversarial audit passes
log/
RH_G1_G2_research_log.md cumulative research log
v1_revision_notes.md per-version notes
tools/
make_manifest.py regenerate a version manifest
verify_manifest.py check artifacts against a manifest
Evidence is incremental, never cumulative. evidence/vNNN/ contains
only what that version added. Git already stores history; re-bundling every
prior artifact into each release is what produced a 207 MB ZIP that failed
to upload with an HTTP 502 and left the complete lambda=4 positivity result
unreproducible (see evidence/MISSING.md).
No single file may exceed 100 MB — GitHub rejects it outright. The largest current artifact is ~39 MB, so Git LFS is not yet needed. If a witness ever approaches the limit, split it or add LFS before committing.
One immutable tag per released manuscript version:
v1.24 v1.25 ... v1.37
A tag is the answer to “which checkout supports the claim on page N of version M”. Tag at the commit that carries both the manuscript and its evidence.
main the live manuscript and its committed evidence
lane/<topic> a long-running research direction
result/<label> one numbered result and its evidence
audit/<date>-v<version> an audit pass
restructure/<topic> repository maintenance
lane/ — research directionsA lane is a line of attack that outlives any single result. Lanes branch
from main and are long-lived. Current and recent lanes:
lane/concentration the live signed weighted concentration mechanism
lane/bounded-floor the v1.36 uniform-floor reduction and its physical test
lane/odd-sector odd-parity obligations
lane/window-scaling behaviour of certificates as lambda grows
result/ — one proposition at a timeA result branch carries a single numbered proposition together with the evidence that establishes it, named after the manuscript label so the two are searchable together:
result/v137-scalar-no-go -> cor:v137-scalar-no-go
result/v136-bounded-floor -> prop:v136-bounded-floor
result/v126-direction-complement-> prop:v126-direction-complement
Branch a result/ from its lane/ when it belongs to a direction, or from
main when it stands alone. Merge it into the lane, then the lane into
main when the manuscript version is cut. That is the “subbranch” structure:
main <- lane/<topic> <- result/<label>.
closed/ — retired routes are results tooRoughly ten routes to a uniform estimate have been proved closed. These are
the project’s main publishable output and must stay findable. When a route
is closed, keep its result/ branch and tag it:
closed/scalar-primitive cor:v137-scalar-no-go
closed/block-metric v1.28
closed/scalar-far-majorant prop:v125-cutoff-cost
closed/schatten prop:v132-schatten
closed/reciprocal-band v1.33
closed/cotlar-atomization v1.34
Do not delete a branch whose route was closed. A closed route with its certificate is a contribution; an orphaned commit is not.
Multiple lanes can be checked out at once without stashing:
git worktree add ../riemann-worktrees/concentration lane/concentration
git worktree add ../riemann-worktrees/audit audit/2026-09-21-v134
git worktree list
git worktree remove ../riemann-worktrees/audit
Each worktree is a real working directory on its own branch sharing one object store. This matters here because several agents and people push to this repository concurrently; a worktree per lane prevents the mid-run branch switches that corrupt long interval-arithmetic computations.
evidence/vNNN/ — only what is new.python3 tools/make_manifest.py vNNNpython3 tools/verify_manifest.py vNNNlog/ and, if a gap closed, evidence/MISSING.md.git tag v1.NN.git push origin main --tagsThe manuscript distinguishes exact identities, proved implications with
explicit hypotheses, failed approaches, numerical illustrations, and open
inputs. The repository must not blur that: a numerical diagnostic goes in
evidence/, never in manifest/ as though it were a certificate, and an
artifact that is cited but absent goes in evidence/MISSING.md rather than
being quietly omitted.