TELES Sweep Manifest — path-case migration of 2026m08d03 (Double Caps in prose, lowercase in paths)#

Date: 2026m08d03_15h42
Effort: Max (from file .claude/effort-level)
Mode: EDEN (from file .claude/mode)
Model: Claude Opus 5 — proposed VVN nick ClaOp5Max (PENDING LLoL confirmation)
Kind: TELES path-segment migration under the PROBATIONARY clause added to TELES Renaming Policy — Mechanical Identifier Migrations on 2026m08d03.
Companion: LLog — Path-case drift on the deploy server, and a consistent guard against silent link death — diagnosis, independent check of the prior agent’s brief, EDEN analysis, and the plan this executes.

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

_POST/DD

_post/dd

58

_POST/AnyAims

_post/aa

46

b/14/OOv1

b/14/oov1

44

_POST

_post

26

b/14/OOv3

b/14/oov3

15

b/14/OOv2

b/14/oov2

9

good-news-pack/AA

good-news-pack/aa

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

source/license/index.rst

Cycrus -> Cyrus ×5 (typo; the licence honours Cyrus the Great, and the typo sat in the same sentence as its own etymology). CyLi unchanged.

source/sitemap/index.rst

Cycrus -> Cyrus ×1

source/_post/index.rst

:doc:`AnyAims/index` -> :doc:`aa/index`; :doc:`DD/index` -> :doc:`dd/index` (regressions from this sweep, caught by make check-paths)

source/_post/dd/b/12/b12-ladder-pedagogy-for-acronyms.rst

:doc:`Trifecta Registry <b3-trifecta-registry>` -> </_post/dd/b/13/b13-trifecta-registry>. Pre-existing dead ref: b3 does not exist; b11–b24 are the usable range and b13 is the trifecta registry.

source/_post/dd/b/13/b13-trifecta-registry.rst

two sibling :doc: refs given absolute /_post/dd/b/NN/ paths (pre-existing dead)

source/good-news-pack/references/loewe-1935-kosmos-und-aion.rst

dropped the invalid .rst suffix from a :doc: target (pre-existing dead)

_redirects

12 rules added (StayVS)

Makefile

check-paths target added; chained into lint; added to .PHONY

AHA/linting.md

documented the guard, its three checks, its known limits, and the -W vs -n correction

source/matheology/compiler/teles/renaming-policy.rst

Amendment 2026m08d03: the PROBATIONARY path-segment clause this sweep runs under

scripts/check-paths.py

NEW — the guard

What was deliberately NOT changed#

  • Prose Double Caps. FF, DD, AA, JoLi, CyLi, OOv1, POST, HELL remain 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 that PPv2/OOv3, vv/OOv2r1p0/ and MMv3/OOv1r0 were 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 their HH name per CLAUDE.md.

  • ``_POST/LLog/`` references inside a 2026m03d16 HELL llog. The _POST segment was swept; LLog was 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

source/_post/index.rst toctree still listing AnyAims/index and DD/index

Check C parsed only :doc: roles, not toctree entries — although an unbound toctree entry was one of the ORIGINAL bug’s two symptoms

toctree parsing added to Check C

source/matheology/hell/mm/b/14/index.rst: 12 toctree entries still naming OOv1/ .. OOv3/

the substitution pattern was anchored on b/14/OOv1, but these entries are relative (OOv1/theodicy); and the file is in HELL, so once toctree parsing existed the findings were reported but not failing

entries lowercased; --strict-hell made a mandatory post-sweep step

same file, :doc:`OOv3/quest`

the repair for the row above was line-anchored to toctree entry lines only, so a :doc: role in running prose was missed

fixed by a pattern scoped to :doc: roles

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:

  1. strip_literal_blocks treated 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.

  2. The toctree resolver did not normalise ./ prefixes or strip .rst suffixes, both of which Sphinx accepts — producing 18 false positives on the site’s own root index.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.