PRIME PRODUCTS · MISSION CONTROL
AI-first transformation · by TPL · vanos.tpl.one

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.

type: adr updated: 2026-07-03 owner: kotsalidis

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:

  1. Separate site repo pulling this repo as a submodule/checkout — rejected: two repos to keep in sync, breaks “one commit = one update”, complicates CI.
  2. Colocate the generator in site/ here — chosen. One git push updates 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

  1. 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 inside site/; it is code.
  2. 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.
  3. 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.
  4. node_modules/ and dist/ are git-ignored; only source is tracked.

Consequences

  • README/CLAUDE.md gain a site/ row; “not a code repo” becomes “not a code repo, except site/ (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.