Created 2026-05-20 as part of the multi-decade-viability hardening recommended by the World Threat Model run.
These guides exist for one reason: this template repo is intended to be useful over a 10–50 year horizon, but its current toolchain (uv, ruff, mypy, Ollama, GitHub Actions, gemma3:4b) is overwhelmingly 2024–2026-vintage. The repo's invariants age well. Its bindings don't. These guides document how to migrate the bindings without losing the invariants.
| Guide | Addresses | Created |
|---|---|---|
toolchain-migration.md |
Pin the interface not the tool — how to swap uv, ruff, mypy, etc. without rewriting the repo | 2026-05-20 |
regression-testing.md |
Convert "90% coverage" hygiene into actual scientific-claim binding via pinned numerical outputs for figures/tables | 2026-05-20 |
archival-targets.md |
Insurance against Zenodo / arXiv / DOI vendor concentration via IPFS + Software Heritage parallel pins | 2026-05-20 |
ci-local.md |
Local reproduction of the GitHub Actions matrix via act — defense against CI free-tier compression |
2026-05-20 |
stage-10-executable-bundle.md |
Design for a Stage 10 output (container + lockfile + agent-runnable manifest) alongside Stage 5 PDF — for the 2029+ executable-artifact world | 2026-05-20 |
private-projects-repo.md |
Sibling private repo lifecycle (active/, working/, published/, archive/, other/) and symlink-sync contract for confidential projects |
2026-05-21; expanded 2026-05-24 |
local-only-template-exemplars.md |
LOCAL_ONLY_TEMPLATE_NAMES roster (currently empty — all nine exemplars public) and how to promote an exemplar to the public set |
2026-06-03 |
The World Threat Model run identified that:
- The template's architectural invariants (thin orchestrator, two-layer, no-mocks, deterministic seeds, gitignore confidentiality enforcement) age extraordinarily well across all 11 horizons (6 months → 50 years).
- The template's concrete bindings (Python+uv+ruff+mypy+Ollama+gemma3:4b+GH Actions+LaTeX-PDF) decay starting ~3 years out and are archaeological by ~15 years.
- The gap between these two — "invariants that survive, bindings that don't" — is the structural risk the template carries.
These guides exist to close that gap by giving every binding a documented swap path. The goal is that, when (not if) uv is succeeded, ruff is succeeded, gemma3:4b is a museum piece, and tlmgr install multirow cleveref is a CVE-laden museum exhibit, a maintainer can swap each binding without rewriting the architectural commitments.
MAINTAINERS.md— who owns whatSTATUS.md— per-subsystem heartbeatprivate-projects-repo.md— the implemented sibling private repo (required working/archive sidecar, optional legacy active/published/other mirrors + lifecycle-link mechanism)AGENTS.md— full system manual