Changelog¶
Format: Keep a Changelog + Semantic Versioning — see the Changelog section of the docs site for details.
[1.0.0] "WorldWake" - 2026-07-24¶
Added¶
- CI-runnable local scripts (
docs/package.json):npm run lint,npm run spellcheck,npm run build, andnpm run ci, mirroring thedocsjob in.github/workflows/CI.ymlso the same checks can run from a terminal without waiting on CI. docs/cspell.json, a real cspell config the CLI can read (spelling exceptions previously only lived in.vscode/settings.json, which the standalonecspellCLI does not parse).- This changelog, following Keep a Changelog and Semantic Versioning.
docs/hooks/sync_readmes.py, anon_pre_buildmkdocs hook that copies eachapps/<app>/README.mdinto itsdocs/content/**/<app>/index.mdpage at build time, so app READMEs and their docs page never drift. A sibling_links.mdfile per page preserves the curated nav links (e.g. tobff/tamiyo_scroll.md,bootstrap.md,incidents/index.md) that used to live directly inindex.md; those sidecars are excluded from the built site viaexclude_docsinmkdocs.yml.- Root
.gitignore: ignores the mkdocs-generatedindex.mdpages, thedocs/site/build output, and Python__pycache__/*.pycfiles (produced by the new build hook). docs/hooks/sync_readmes.pyextended to also sync eachops/my-server/roles/<role>/README.mdintodocs/content/ops/roles/<role>/index.md(target directories created and cleaned up on demand, since — unlike the app pages — no_links.mdsidecar pre-creates them). New Ops → Roles nav section (docs/mkdocs.yml, placed after Deployment) anddocs/content/ops/roles/index.mdoverview page link the eight generated role pages;.gitignoreand the generated-marker comment in the hook itself were generalized to cover both README sources.on_shutdownhook indocs/hooks/sync_readmes.py: deletes the generatedindex.mdpages when the hook shuts down, sincemkdocs servekeeps rewriting them on every reload but never removes them on its own.docs/hooks/sync_changelogs.py: a secondon_pre_buildhook, mirroringsync_readmes.py's pattern, that copies each sub-repo's ownCHANGELOG.mdintodocs/content/changelog/<subrepo>.mdand buildsdocs/content/changelog/index.md(a tracked_intro.mdpartial plus a "Latest changes" section aggregated from whichever[X.Y.Z]section matches the latestvX.Y.Zgit tag). Replaces the single hand-maintaineddocs/content/CHANGELOG.mdthis entry itself used to live in.
Changed¶
docs/package.json: mergedspellcheckandspellcheck-appinto a singlespellcheckscript covering bothcontent/**/*.mdand../apps/**/*.md..github/workflows/CI.yml: excluded_links.mdsidecar files from themarkdownlintandcspellsteps (they intentionally start with a bullet list rather than a heading).docs/cspell.json: added the technical terms and proper nouns introduced while translating app READMEs and wiring the README sync hook (asyncpg,cffi,decklist,getpass,metagame,Moxfield,MTGJSON,mypy,oxlint,pytest,Resends,venv,winrate/winrates, among others).docs/cspell.json: removed the blanket*.ymlignore in favor of a!docs/**/*.{yml,yaml}exception (so files likedocs/mkdocs.ymlare spell-checked) and added**/*.tomltoignorePaths; added terms surfaced by the new auth/signup documentation (checkfirst,passlib,pyproject,Referer,STARTTLS,userrole,VARCHAR, among others).docs/cspell.json: addedsubdir, introduced by the new*_repo_subdirAnsible role variable documented below (ops section).
Fixed¶
mkdocs.ymlhaddocs_dir: contentpointing at a folder that did not exist; all documentation pages moved underdocs/content/to match it.mkdocs.ymlnav referencedback/barrins_api/implementation.md, which does not exist (the actual page isback/barrins_api/bff/tamiyo_scroll.md); also added the missing nav entries forfront/tamiyo_scroll/bootstrap.mdand the incidents pages, which were causingmkdocs build --strictto fail.