zeo-site; this repository builds no siteruling-2026-08-27-book-publication-destinationruling-2026-09-03-book-publication-destination-is-profrod-siteWhere does the executable textbook get rendered and published, and what does this repository owe that destination?
It was answered the expensive way. This repository carried a MkDocs
configuration and a Documentation workflow, aimed at building a second site.
That workflow had been failing on main across four merges. Repairing it
surfaced that GitHub Pages had never been enabled, which produced an escalation
asking the Principal to enable Pages — to satisfy a gate that existed only
because the repairs had removed the earlier failure masking it.
Nobody had asked whether this repository should publish a site at all. It should not.
book/ is the single source of truth. Prose and exercises stay together
in one directory, so scripts/verify_curriculum.py keeps executing each
chapter’s exercise against the production package. Splitting prose from code
would leave the gate testing something other than what a reader reads.zeroemployeeorg/zeo-site is the sole rendered, canonical home. It owns
presentation, ordering, navigation and any frontmatter its collection schema
requires. Frontmatter belongs to the site, not the source.book/CONTENT-SOURCE.md states the
contract a renderer inherits without naming which renderer. The destination
is recorded here, in the ruling, because destinations change and contracts
should not have to be edited when they do.An earlier draft of this work hardcoded the wrong destination in three files at once. Sparring caught it before merge. Had the source named its consumer, every future change of destination would require editing the contract — and a contract edited for reasons unrelated to its subject is a contract nobody trusts.
zeo-siteExactly what book/CONTENT-SOURCE.md specifies, and nothing more:
chNN_<slug>/, with README.md and solution.py../chNN_<slug>/README.mdFrontmatter, ordering metadata, rendered HTML, a navigation tree, or a build step. Any of those appearing here is drift back toward the site this ruling removed.
test ! -e mkdocs.yml && echo "no site config"
test ! -e .github/workflows/docs.yml && echo "no docs workflow"
grep -rl "mkdocs" pyproject.toml || echo "no mkdocs dependency"
python scripts/verify_curriculum.py
The last command is the one that matters: it is the guarantee zeo-site
inherits.