Files
hq/00-META
jschoubben 09489a298c ADR 0030: the repository structure, and the rule that names them
The tiers were settled and the product was named, but the repositories
themselves existed only in a research sketch. That had already caused two
problems.

ADR 0029 makes the lab phase 0 of the migration and could not say where it
lives, because no record named a repository.

And the sketch contradicted an accepted record: it listed mesh-hq while
ADR 0028 had decided novox/hq and explicitly rejected that name. A design
resting on research is resting on something that can change without a
decision. Corrected in the research too.

The naming rule, which both earlier records implied and neither stated: a
repository belonging to a product carries that product's prefix; a
company-scoped one does not. That is why this repository is hq and the
mesh's are mesh-*.

Seven repositories recorded — host, substrate, control, surfaces, sdk, lab,
and this one. The lab gets its own: it ships to nobody, outlives any single
tier, and drives virtualisation on a workstation, which nothing else does.
Inside the host it would couple development tooling to a shipped
component; inside the control plane the bootstrap scenario would depend on
a tier that does not exist when it is needed.

Tier 4 is deliberately not decided. Whether the catalogue is one
repository, one per domain or one per application stays open from ADR 0015
and is blocked on research 005 — how many repositories hold domains cannot
be answered before knowing what the domains are. mesh-catalog appears in
the sketch and is not decided by this record.

The cost is stated rather than glossed: seven release cadences where there
is one, and cross-repository changes that used to be one commit.
2026-08-23 22:04:04 +02:00
..

00-META

The northern star. What the mesh is, the environment it runs in, and what changes when it works — plus the engineering practice that holds across everything Novox builds. Every research effort and design decision is checked against this folder.

File / folder Purpose
mission.md Vision, mission, and the values that decide arguments
context.md The environment — conditions, not aspirations
effect.md What is different when the work is done
how-we-build.md The rules that hold across the mesh, each one earned. The source of the mesh constitution — the governed page the mesh injects into design sessions is derived from it.
repos.md Where implementation lives, and what each repository owns
process/ The playbooks — how work moves through this repository, for engineers and agents alike

Rules

  • Markdown only.
  • Stable by nature. Changes here reflect a genuine shift in intent, not iteration. The one exception is how-we-build.md, which changes whenever a rule is earned — and only through its amendment process.
  • Research and design must be traceable back to what is written here.
  • Instance-agnostic. These documents describe the mesh as a concept. No machine names, no counts, no topology.

On the architecture overview in the code repository

The code repository carries an architecture overview predating this folder. It is a useful description of how the mesh works, and its content now lives — anonymised and checked against the implementation — in 03-DESIGN/00-as-is/. GENESIS answers why; that document answered how, which is the design layer's job.

It had also drifted from the implementation in ways worth recording, since both were found by comparing it against the code rather than by anyone noticing:

  • It described the pipeline as having a separate builder process and a build stage that packages. Neither was true after 2026-08-04; the documents stayed stale until 2026-08-06 (ADR 0014).
  • It listed the mesh as spanning a fixed number of named machines, which is exactly the content this repository cannot carry.

It also lists "symlinks, not copies" as a key design principle, and that is a genuine contradiction rather than a stale detail. The mesh's stated intent is that it creates no symlinks at all — the rule is not merely "only the installer may link", and a founding document elevating linking to a principle points the opposite way from where this is going.

What exists today is that the installer owns and reconciles every link (ADR 0011) — an as-is fact, recorded in 03-DESIGN/00-as-is/05-runtime-and-installation.md. Centralising who may link narrowed the incident class; it did not close it. The intent is to remove the mechanism, recorded as ADR 0018.

A founding document contradicting the direction of travel is precisely the failure this folder exists to prevent.