TELES Sweep Manifest — path-case migration of 2026m08d03 (Double Caps in prose, lowercase in paths)#
.claude/effort-level).claude/mode)ClaOp5Max (PENDING LLoL confirmation)Warning
This file exists INSTEAD OF per-file migration reports.
The TELES renaming policy (Execution step 3) normally requires a migration report appended to every modified file. For this sweep that would have meant ~90 admonition boxes announcing “a directory above this file was renamed” — burying the content they annotate while telling the reader nothing useful. LLoL approved a probationary relaxation: one sweep llog carrying a complete manifest replaces the per-file reports.
Transparency (\(h^* = h_0\)) is relocated, not weakened — the record below is complete, and every substitution is counted. The clause is probationary and may be revoked; there is virtually no experience with sweeps of this kind in this project. See TELES Renaming Policy — Mechanical Identifier Migrations, Amendment 2026m08d03.
The rule this sweep enforces#
POST codes are Double Caps in PROSE, lowercase in PATHS.
This was not a new rule. It was already in force across the overwhelming majority of the
site — ff, mm, ll, vv, ww, aa, aaa, dd, ee, gg,
si, hell, heaven, zion, babl, post, teles, stayvs,
stayc, joli, jub, pet, aha, llog, llol are all lowercase URL
segments today, while the prose forms stay capitalised. Even HELL and HEAVEN, the
most identity-laden codes in the system, publish at /en/matheology/hell/ and
/en/matheology/heaven/. Stability codes in filenames were already 185 lowercase
(_oov2, _mmv3) against 3 uppercase.
Seven directories had drifted from that rule. This sweep aligned them.
Prose was NOT touched. After the sweep, 1466 occurrences of OOv2, 1261 of OOv1 and
577 of OOv2r0p0 remain capitalised in running text — exactly as intended. A
path-segment migration that cannot demonstrate that separation has not met condition 1 of
the probationary clause.
Two distinct faults, one sweep#
Fault 1 — git-index-vs-disk case drift (2 directories). source/ff and
source/license/joli were already lowercase on disk, but git’s index still held
source/FF and source/license/JoLi. macOS is case-INsensitive, so every local build
resolved fine; the case-SENSITIVE deploy server checked out the GIT spelling and published
/en/FF/ and /en/license/JoLi/ while 563 :doc: references across the site
pointed at the lowercase paths and silently died. Fixed by correcting the index only —
nothing moved on disk:
git rm -r --cached source/license/JoLi && git add source/license/joli
git rm -r --cached source/FF && git add source/ff
Fault 2 — deliberate capitalisation that had drifted from the convention (5
directories). _POST, _POST/DD, _POST/AnyAims, good-news-pack/AA and
hell/mm/b/14/OOv1|OOv2|OOv3 agreed between git and disk but disagreed with the site
rule. AnyAims became aa because AA is the documented shortform (CLAUDE.md
writes “AnyAims (AA)”) and hell/aa / compiler/post/aa were the existing precedent.
Fixed with the two-step rename that a case-insensitive filesystem requires:
git mv <PATH> <path>.casetmp && git mv <path>.casetmp <path>
StayVS — published URLs redirected, not revoked#
12 rules added to _redirects (9 splat, 3 exact). Only /en/ rules were needed:
LANGUAGES = en in the Makefile (translations currently disabled), and /de/FF/ /
/es/license/JoLi/ were confirmed 404 before this change, so no non-English capitalised
URL was ever published.
Note
This is the first use of splat (``:splat``) syntax in _redirects. It must be
tested after the first deploy. If splats do not behave as expected, fall back to
enumerating the affected URLs explicitly.
Machine check#
make check-paths (new; scripts/check-paths.py, ~1 s) exits clean — 0 failing
findings outside HELL for all three checks. This satisfies condition 4 of the probationary
clause. The guard caught two regressions introduced by this very sweep
(source/_post/index.rst still holding relative :doc:`AnyAims/index` and
:doc:`DD/index`), which is the clearest available evidence that it works.
Manifest part 1 — directory renames (43 files, 0 content change)#
source/_POST/.gitkeep
-> source/_post/.gitkeep
source/_POST/AnyAims/.gitkeep
-> source/_post/aa/.gitkeep
source/_POST/AnyAims/aa-llog-done.rst
-> source/_post/aa/aa-llog-done.rst
source/_POST/AnyAims/b/11/b11-evolvix-integration-into-paper-sequence.rst
-> source/_post/aa/b/11/b11-evolvix-integration-into-paper-sequence.rst
source/_POST/AnyAims/b/12/b12-central-intro-page-for-balospe-framework.rst
-> source/_post/aa/b/12/b12-central-intro-page-for-balospe-framework.rst
source/_POST/AnyAims/b/13/b13-adversarial-review-evolvix-bridge.rst
-> source/_post/aa/b/13/b13-adversarial-review-evolvix-bridge.rst
source/_POST/AnyAims/b/14/b14-adversarial-review-zenodo-mirror.rst
-> source/_post/aa/b/14/b14-adversarial-review-zenodo-mirror.rst
source/_POST/AnyAims/b/15/b15-vvn-marker-mistake-prevention.rst
-> source/_post/aa/b/15/b15-vvn-marker-mistake-prevention.rst
source/_POST/AnyAims/b/16/b16-sgir-paper-finalization-tasks.rst
-> source/_post/aa/b/16/b16-sgir-paper-finalization-tasks.rst
source/_POST/AnyAims/b/17/b17-b16-riskymad-revision-tasks.rst
-> source/_post/aa/b/17/b17-b16-riskymad-revision-tasks.rst
source/_POST/AnyAims/index.rst
-> source/_post/aa/index.rst
source/_POST/DD/b/11/b11-trifecta-italics-no-commas.rst
-> source/_post/dd/b/11/b11-trifecta-italics-no-commas.rst
source/_POST/DD/b/12/b12-ladder-pedagogy-for-acronyms.rst
-> source/_post/dd/b/12/b12-ladder-pedagogy-for-acronyms.rst
source/_POST/DD/b/13/b13-trifecta-registry.rst
-> source/_post/dd/b/13/b13-trifecta-registry.rst
source/_POST/DD/b/14/b14-tetrad-registry.rst
-> source/_post/dd/b/14/b14-tetrad-registry.rst
source/_POST/DD/b/25/b25-fused-pattern-overview.rst
-> source/_post/dd/b/25/b25-fused-pattern-overview.rst
source/_POST/DD/index.rst
-> source/_post/dd/index.rst
source/_POST/index.rst
-> source/_post/index.rst
source/FF/archive/index.rst
-> source/ff/archive/index.rst
source/FF/contact/index.rst
-> source/ff/contact/index.rst
source/FF/index.rst
-> source/ff/index.rst
source/FF/philosophy/index.rst
-> source/ff/philosophy/index.rst
source/FF/system/index.rst
-> source/ff/system/index.rst
source/good-news-pack/AA/index.rst
-> source/good-news-pack/aa/index.rst
source/license/JoLi/index.rst
-> source/license/joli/index.rst
source/matheology/hell/mm/b/14/OOv1/capitalism-communism.rst
-> source/matheology/hell/mm/b/14/oov1/capitalism-communism.rst
source/matheology/hell/mm/b/14/OOv1/theodicy.rst
-> source/matheology/hell/mm/b/14/oov1/theodicy.rst
source/matheology/hell/mm/b/14/OOv2/axioms.rst
-> source/matheology/hell/mm/b/14/oov2/axioms.rst
source/matheology/hell/mm/b/14/OOv2/overview.rst
-> source/matheology/hell/mm/b/14/oov2/overview.rst
source/matheology/hell/mm/b/14/OOv2/quest.rst
-> source/matheology/hell/mm/b/14/oov2/quest.rst
source/matheology/hell/mm/b/14/OOv2/symbols.rst
-> source/matheology/hell/mm/b/14/oov2/symbols.rst
source/matheology/hell/mm/b/14/OOv2/theorems.rst
-> source/matheology/hell/mm/b/14/oov2/theorems.rst
source/matheology/hell/mm/b/14/OOv3/axioms.rst
-> source/matheology/hell/mm/b/14/oov3/axioms.rst
source/matheology/hell/mm/b/14/OOv3/overview.rst
-> source/matheology/hell/mm/b/14/oov3/overview.rst
source/matheology/hell/mm/b/14/OOv3/quest.rst
-> source/matheology/hell/mm/b/14/oov3/quest.rst
source/matheology/hell/mm/b/14/OOv3/symbols.rst
-> source/matheology/hell/mm/b/14/oov3/symbols.rst
source/matheology/hell/mm/b/14/OOv3/theorems.rst
-> source/matheology/hell/mm/b/14/oov3/theorems.rst
Manifest part 2 — reference rewrites (51 files, 200 substitutions)#
Substitutions applied, in order (compound patterns first so they are not shadowed):
From |
To |
Count |
|---|---|---|
|
|
58 |
|
|
46 |
|
|
44 |
|
|
26 |
|
|
15 |
|
|
9 |
|
|
2 |
Per-file counts (file paths shown in their POST-sweep form):
File
Subs
Patterns
AHA/POST.md
4
_POST×4
source/_post/aa/aa-llog-done.rst
10
_POST/AnyAims×9, _POST×1
source/_post/aa/b/11/b11-evolvix-integration-into-paper-sequence.rst
10
_POST/AnyAims×9, _POST×1
source/_post/aa/b/12/b12-central-intro-page-for-balospe-framework.rst
7
_POST/DD×6, _POST/AnyAims×1
source/_post/aa/b/13/b13-adversarial-review-evolvix-bridge.rst
8
_POST/DD×6, _POST/AnyAims×2
source/_post/aa/b/14/b14-adversarial-review-zenodo-mirror.rst
5
_POST/DD×3, _POST/AnyAims×2
source/_post/aa/b/15/b15-vvn-marker-mistake-prevention.rst
4
_POST/DD×2, _POST/AnyAims×2
source/_post/aa/b/16/b16-sgir-paper-finalization-tasks.rst
2
_POST/AnyAims×2
source/_post/aa/b/17/b17-b16-riskymad-revision-tasks.rst
1
_POST/AnyAims×1
source/_post/aa/index.rst
2
_POST/DD×1, _POST/AnyAims×1
source/_post/dd/b/11/b11-trifecta-italics-no-commas.rst
2
_POST/AnyAims×1, _POST×1
source/_post/dd/b/12/b12-ladder-pedagogy-for-acronyms.rst
4
_POST/DD×3, _POST/AnyAims×1
source/_post/dd/b/13/b13-trifecta-registry.rst
8
_POST/DD×8
source/_post/dd/b/14/b14-tetrad-registry.rst
12
_POST/DD×12
source/_post/dd/b/25/b25-fused-pattern-overview.rst
6
_POST/DD×5, _POST/AnyAims×1
source/_post/dd/index.rst
2
_POST/DD×2
source/_templates/extra-footer.html
1
_POST×1
source/_templates/site-footer-links.html
1
_POST×1
source/choice/war-of-algorithms/index.rst
2
_POST/DD×2
source/good-news-pack/vv/mmv3/index.rst
1
good-news-pack/AA×1
source/matheology/axioms/axioms-vsec.rst
2
b/14/OOv1×2
source/matheology/hell/ll/infra/b/13/b13-evolvix-zenodo-and-post-infrastructure-llog.rst
25
_POST/DD×8, _POST/AnyAims×8, _POST×9
source/matheology/hell/ll/infra/b/14/b14-wwv-sgir-bibtex-migration-llog.rst
4
_POST/AnyAims×4
source/matheology/hell/ll/infra/b/31/b31-promotion-prompt-set-and-disclosure-deferral_2026m05d28_12h39.rst
1
_POST×1
source/matheology/hell/ll/infra/b/35/b35-newcomer-streamlining-landing-intro-llog_2026m06d01_08h06.rst
1
good-news-pack/AA×1
source/matheology/hell/ll/infra/index.rst
2
_POST×2
source/matheology/hell/ll/jub/b/11/jub_ll_2026m03d16_theodicy-details-final-memory.rst
5
_POST/AnyAims×1, _POST×4
source/matheology/hell/ll/jub/b/32/jub_ll_2026m03d21_restructuring-phase1-consolidate.rst
2
b/14/OOv1×2
source/matheology/hell/ll/jub/index.rst
5
b/14/OOv1×2, b/14/OOv3×3
source/matheology/hell/ll/other/b/14/fix-duplicate-labels.py
6
b/14/OOv2×3, b/14/OOv3×3
source/matheology/hell/ll/other/b/14/fix-vv-links.py
3
b/14/OOv1×3
source/matheology/hell/ll/other/b/14/migration-report-v2.txt
2
b/14/OOv1×2
source/matheology/hell/ll/other/b/14/other_ll_2026m04d03_vv-to-hell-migration-prompt.rst
4
b/14/OOv1×3, b/14/OOv2×1
source/matheology/hell/ll/other/b/14/other_ll_2026m04d04_vv-to-hell-migration-execution-llog.rst
10
b/14/OOv1×3, b/14/OOv2×3, b/14/OOv3×4
source/matheology/hell/ll/other/b/14/ready-to-paste-prompts.rst
2
b/14/OOv1×1, b/14/OOv3×1
source/matheology/hell/ll/other/b/14/vv-migration-map.html
5
b/14/OOv1×4, b/14/OOv3×1
source/matheology/hell/ll/other/b/14/vv_to_hell_migrate.py
4
b/14/OOv1×3, b/14/OOv2×1
source/matheology/hell/ll/other/b/14/vv_to_hell_migrate_v2.py
3
b/14/OOv1×3
source/matheology/hell/ll/other/b/15/other_ll_2026m04d03_teles-b15-execution-llog.rst
4
b/14/OOv1×1, b/14/OOv2×1, b/14/OOv3×2
source/matheology/hell/ll/other/b/25/other_ll_2026m06d23_17h59_crisis-science-socialcard-options.rst
1
_POST×1
source/matheology/hell/ll/study/b/14/b14-prompt-writing-v2.rst
1
b/14/OOv3×1
source/matheology/hell/ll/study/b/17/b17-prompt-naming-transition-v1.rst
1
b/14/OOv1×1
source/matheology/hell/mm/b/11/ppv1/axioms.rst
2
b/14/OOv1×2
source/matheology/hell/mm/b/14/oov1/capitalism-communism.rst
1
b/14/OOv1×1
source/matheology/hell/mm/b/14/oov1/theodicy.rst
2
b/14/OOv1×2
source/matheology/hell/mm/b/14/oov2/overview.rst
1
b/14/OOv1×1
source/matheology/hell/mm/b/14/oov3/overview.rst
1
b/14/OOv1×1
source/matheology/hell/mm/b/19/index.rst
1
_POST/AnyAims×1
source/matheology/socialcards/active.rst
2
b/14/OOv1×2
source/matheology/socialcards/comparison/expert.rst
2
b/14/OOv1×2
source/matheology/socialcards/comparison/flags.rst
3
b/14/OOv1×3
51 files, 200 substitutions
Manifest part 3 — hand edits (not part of the mechanical sweep)#
These required judgement and are listed separately so they are not mistaken for mechanical substitutions:
File |
Change |
|---|---|
|
|
|
|
|
|
|
|
|
two sibling |
|
dropped the invalid |
|
12 rules added (StayVS) |
|
|
|
documented the guard, its three checks, its known limits, and the |
|
Amendment 2026m08d03: the PROBATIONARY path-segment clause this sweep runs under |
|
NEW — the guard |
What was deliberately NOT changed#
Prose Double Caps.
FF,DD,AA,JoLi,CyLi,OOv1,POST,HELLremain capitalised as names everywhere.VVN stability codes in running text and in non-``b/14`` paths. Patterns were scoped to
b/14/OOv[123]precisely so thatPPv2/OOv3,vv/OOv2r1p0/andMMv3/OOv1r0were left alone.``source/good-news-pack/vv/mmv3/HH``. Excluded from the build by
conf.py:54(exclude_patterns = ["**/HH/**"]), so it is never a URL. HistoryHeap folders keep theirHHname per CLAUDE.md.``_POST/LLog/`` references inside a 2026m03d16 HELL llog. The
_POSTsegment was swept;LLogwas left as written because no such directory exists — inventing a lowercase target for a path that never existed would be a fabrication, not a migration.The ~21 + ~36 HELL findings reported by
make check-paths. These are frozen MockupModel archives and append-only llogs pointing at pages that have since moved. A link that was correct when written is arguably correct AS HISTORY; editing it would falsify the record. The guard reports them without failing.
Open item for LLoL#
make dev was not run in this session (per the standing instruction to ask first —
it is a ~14-minute rebuild). The sweep is checked by make check-paths and by git’s own
view, but no Sphinx build has confirmed the renamed pages compile. That check is
outstanding and is listed in the reply to LLoL.
APPENDED 2026m08d03_17h10 — corrections after the first full build#
Append-only correction. Nothing above is edited; this records what the earlier sections got wrong.
The section “Machine check” above stated that make check-paths exited clean
and treated that as sufficient. It was not sufficient. The first
make html (build succeeded, 922 warnings) exposed three regressions the
sweep had introduced and the guard had not caught:
Regression |
Why the guard missed it |
Fix |
|---|---|---|
|
Check C parsed only |
toctree parsing added to Check C |
|
the substitution pattern was anchored on |
entries lowercased; |
same file, |
the repair for the row above was line-anchored to toctree entry lines
only, so a |
fixed by a pattern scoped to |
Two bugs in the guard itself were also found, both by a deliberate self-test that mis-cased a known-good entry to check the guard actually fires:
strip_literal_blockstreated any line ending in::as opening a verbatim block. That includes.. toctree::,.. note::,.. warning::,.. dropdown::— so those bodies were blanked and every reference inside them was silently skipped. A false negative, and worse than the false positive the function was written to remove. Now only genuine literal directives (code-block,literalinclude,highlight,code,parsed-literal) and plain::literal blocks open one.The toctree resolver did not normalise
./prefixes or strip.rstsuffixes, both of which Sphinx accepts — producing 18 false positives on the site’s own rootindex.rst.
Current state: make check-paths clean; --strict-hell shows 0 toctree
findings repo-wide and no finding naming any path this sweep touched.
Lesson recorded in AHA/linting.md and in the probationary clause of
TELES Renaming Policy — Mechanical Identifier Migrations (conditions 4 and 5, both tightened): a clean
check-paths run is necessary but not sufficient. A bulk sweep must also
pass --strict-hell and a full make html, because the HELL exemption
that protects frozen history will otherwise conceal breakage the sweep just
caused — which is exactly what happened here.
Also noted, not caused by this sweep and left alone: source/faq/index.rst
includes page-postfix-prelink.rst / page-postfix-postlink.rst, which do
not exist under source/_templates/include-file/. Two CRITICAL messages per
build. Present in HEAD before this session; recorded here as a separate
AnyAims item rather than fixed inside a path-case commit.