Graduate 005; record what 0058 answered in 008

Continuing the sweep. Both were answered by records that did not cite them,
which is the same pattern 003 showed -- an effort stays active because the
decision that resolved it was reached from another direction.

005 graduates. Three of its four questions are answered: provider modules do
not group (0044), the ~50 modules that co-change with nothing stay as they are,
and 'group or leave' was never the right pair -- 0054 reframes it as authority
versus package. Worth noting the debt runs the other way too: this effort's
measurement, that reachability is the ONLY place modules genuinely co-change,
is what 0054 rests on and why connectivity is a context while nothing else
needed one.

Its fourth question moves rather than closes. Whether applications leave the
monorepo before or after they group is a sequencing question, so it belongs to
009-migration.

008 stays active, with its central question marked answered: the coordinator
converges nodes on a declaration rather than dispatching stages (0058). The
three-silo split survives with the third redefined. What 0058 explicitly does
NOT answer is how a change becomes a pipeline reliably -- detection is upstream
of everything it changed and remains the fragile input.
This commit is contained in:
2026-08-28 01:40:02 +02:00
parent 0a37d751e2
commit 9dc57b4712
2 changed files with 48 additions and 3 deletions
+29 -3
View File
@@ -1,11 +1,13 @@
---
status: active
status: graduated
initiated: 2026-08-23
touches:
- 02-DECISIONS/0017-modules-outside-the-core-are-grouped-by-domain.md
- 03-DESIGN/00-as-is/10-module-catalogue.md
- 03-DESIGN/00-as-is/02-modules-and-manifests.md
became: []
became:
- 02-DECISIONS/0044-a-module-declares-presence-instantiation-and-exclusion.md
- 02-DECISIONS/0054-things-that-change-together-share-an-authority.md
---
# 005 — Which domains the catalogue groups into
@@ -51,7 +53,31 @@ premise**, in a way that narrows the effort usefully:
The remaining work is the list itself, for the modules where grouping is justified, plus the
open questions below.
## Open questions
## What it became
*Closed 2026-08-28.* Three of the four questions are answered, and by records that did not cite
this effort — which is why it stayed open after being resolved.
**Whether provider modules group at all** — *no.*
[ADR 0044](../../02-DECISIONS/0044-a-module-declares-presence-instantiation-and-exclusion.md):
there is no `networking` thing to install, there are concrete modules named individually. Folders
assert relationships; edges record them. *Provider* stops being a category at the same time.
**Whether "group or leave" is even the right pair of options** — *it was not*, and that is the
useful finding. [ADR 0054](../../02-DECISIONS/0054-things-that-change-together-share-an-authority.md)
reframes it: things that change together share an **authority**, not a package. This effort's own
measurement is what that record rests on — reachability being the *only* place modules genuinely
co-change is why connectivity is a context and why nothing else needed one.
**What to do with the ~50 modules that co-change with nothing** — *nothing.* They are modules.
Grouping is a tag and a query over the graph, neither of which anybody keeps true by hand.
**What remains is a sequencing question, not a grouping one**, and it moves rather than closes:
*whether applications leave the monorepo before or after they group* is
[research 009](../009-migration/00-overview.md)'s, because it is about how to get from here to
there rather than about what the shape is.
## Open (superseded by the above) questions
| Question | Why it is open |
|---|---|
@@ -41,6 +41,25 @@ Research 006 adds a requirement the current design does not have: the coordinato
**before the mesh is self-hosting**, when source and artifacts come from outside, and keep
working across the transition to self-hosted providers.
## Answered since
**Does the coordinator dispatch stages, or converge nodes on a declaration?** — *Converge.*
[ADR 0058](../../02-DECISIONS/0058-delivery-ends-in-a-declaration.md): a pipeline ends when the
declaration is updated, and deploy stops being once-per-node. The host applies it and reads back,
so the reporter is the applier — which is what this effort was circling when it asked what a
*deployed state* is.
**Does the three-silo split survive?** — *Yes, with the third redefined.* Build and publish are
unchanged; deploy becomes one write rather than a fan-out.
**What is a deployed state?** — *Partly.* "The declaration is updated, and here is which nodes
have applied it" is the answer 0058 gives, and it makes *outstanding* a first-class result rather
than a stall. What it does not answer is what a node reports and how, which waits on the link.
**Explicitly NOT answered, and 0058 says so:** *how a change becomes a pipeline, reliably.*
Detection remains the fragile input — *a merge that created no pipeline, and nothing said so* is
upstream of everything 0058 changed and is untouched by it.
## The questions
| Question | Why it matters |