Docs / 06-decisions/005-mission-control-site-scaffold
ADR-005 Mission Control site colocated in site/ (Astro, opt-in publish flag)
The vanos.tpl.one static-site generator lives in site/ inside this repo, built with Astro; vault docs publish opt-in via a publish frontmatter flag; deployment deferred until TPL hosting + Entra SSO are provisioned.
ADR-005 — Mission Control site colocated in site/ (Astro, opt-in publish flag)
Status
accepted — 2026-07-03 (decided by: kotsalidis, TPL — implements REQ-005 per the Mission Control blueprint)
Context
The blueprint’s core principle is update-by-commit: vanos.tpl.one renders this vault’s markdown; nothing is authored on the site. That requires the site build to see the vault content. Options:
- Separate site repo pulling this repo as a submodule/checkout — rejected: two repos to keep in sync, breaks “one commit = one update”, complicates CI.
- Colocate the generator in
site/here — chosen. Onegit pushupdates content and site together; CI is trivial.
This amends the bootstrap stance that the repo is “not a code repo”: site/ is the sole, narrowly-scoped exception — build tooling for a view of the vault, never business logic.
Decision
- The Mission Control generator lives in
site/(Astro, per the blueprint’s primary recommendation). Knowledge conventions (frontmatter, English-only, one concept per file) do not apply insidesite/; it is code. - Opt-in publishing: the build includes only vault docs whose frontmatter carries
publish: mission-control. Everything else is excluded by default — the sensitivity guardrail from the blueprint. - CI: a GitHub Actions workflow builds the site on every push to
master. The deploy step is deliberately stubbed until (a) TPL hosting for vanos.tpl.one and (b) the Entra ID SSO proxy are provisioned — no content goes anywhere public before access control exists. node_modules/anddist/are git-ignored; only source is tracked.
Consequences
- README/CLAUDE.md gain a
site/row; “not a code repo” becomes “not a code repo, exceptsite/(ADR-005)”. - Publishing a doc is a reviewable one-line frontmatter change — versioned and attributable, as the blueprint requires.
- Until the SSO proxy exists, the site runs only locally/CI-artifact; the hosting + SSO provisioning is a pending HANDOFF item.
- Obsidian-specific constructs (Mermaid blocks) render as plain code blocks in v1; chart rendering is a follow-up.