From 8f23d4b1149ffea0d869c0950ce81f6a2a1352b4 Mon Sep 17 00:00:00 2001 From: jochen Date: Fri, 11 Sep 2026 00:10:39 +0200 Subject: [PATCH] 0067: the artifact store may require nothing, not merely build nothing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 029 says a module providing the artifact store may not build artifacts. The pivot shows that is the narrow case: it may not require anything the store is needed to deliver. A route-label migration gave the registry a public name and a route requirement, and at genesis nothing provides a route — nor can anything, since the routing stack needs images and images need the store. The same cycle through a door the existing wording did not cover, so the rule is widened where the bootstrap decision states it, with a check that would catch the next one where it is written. Claude-Session: https://claude.ai/code/session_01LrgweAeERJYBg88c5cKDzF --- 02-DECISIONS/0067-genesis-is-a-pivot.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/02-DECISIONS/0067-genesis-is-a-pivot.md b/02-DECISIONS/0067-genesis-is-a-pivot.md index 40f11a9..4b9dceb 100644 --- a/02-DECISIONS/0067-genesis-is-a-pivot.md +++ b/02-DECISIONS/0067-genesis-is-a-pivot.md @@ -91,6 +91,14 @@ machine auditable. An installer connects to plenty. Same tier, same delivery, di - **Two public images remain at genesis** — the store and the broker. An air-gapped install would embed those too, at a much larger artifact; that is a build variant, not a different design. - **A control-plane module manifest must exist**, and did not. +- **The registry may require nothing.** + [`04-ISSUES/029`](../04-ISSUES/029-the-artifact-store-cannot-be-delivered-by-the-artifact-store/00-report.md) + states that a module providing the artifact store may not *build* artifacts, because there is + nowhere to put them until it runs. The pivot shows that is the narrow case of a wider rule: **it + may not require anything the store is needed to deliver.** Found the hard way — an unrelated + change gave the registry a public name and, with it, a route requirement. At genesis nothing + provides a route, and nothing can, because the routing stack needs images and images need the + store. The same cycle, re-entered through a door the existing wording did not cover. - **The handover is the sharp edge.** For one moment the bundle and the module both describe the same container, and the host tracks what it owns. If a safe handover is not expressible with what exists, the install **stops before it** and says what is missing. A machine left without a control @@ -105,6 +113,9 @@ machine auditable. An installer connects to plenty. Same tier, same delivery, di - **No fiction left in the lab:** the scenario declares no registry machine, and the bed bootstraps through the installer rather than around it. - **The handover:** a machine whose control plane has been replaced still has one, and it answers. +- **The registry requires nothing:** its manifest is resolvable on a mesh that has no other module + in it. A requirement added to it later is caught where it is written, rather than by a genesis + that cannot complete — which is how this one was found. ## References