Files
hq/01-RESEARCH
jschoubben 143f8ab2f1 research 005: which modules actually change together
The domain-grouping premise is testable, so it was tested before drawing a
list. Co-change across the full history of the module catalogue, current
modules only, platform namespace excluded.

Nine commits in ten touch exactly one module, and 50 of 89 modules have
never been edited alongside anything. Two clusters exist above that floor.

Reachability holds up: proxy, resolver, firewall and VPN genuinely move
together under one intent, three times in recent history. That is the shape
ADR 0017 describes and the only place the measurement finds it.

The provider cluster does not, and this is the finding worth having. Every
multi-provider commit is a cross-cutting manifest change applied N times —
feature detection, hook conventions, volume binds, network scoping. None is
a change to what a database is. Merging them would not have prevented one
of those commits, and the history already shows the fix that worked:
verify by shape in the SDK rather than copying a script into every module.
Move the concern into the machinery, do not merge the modules carrying it.

ADR 0017 keeps its principle and gains a pointer to this narrowing.
2026-08-23 18:48:28 +02:00
..

01-RESEARCH

Investigations that have not yet hardened into design.

Structure

Each effort lives in NNN-descriptive-name/ and must contain 00-overview.md, carrying its state in YAML frontmatter and a prose summary below it:

---
status: active | graduated | abandoned
initiated: YYYY-MM-DD
touches: []          # design docs, subsystems or areas the effort bears on
became: []           # required when status is terminal — what it turned into
---

The prose says what is being investigated, why, and what it touches. It does not restate the status — status lives in one place, and two places is one too many.

Further documents in the same folder hold the work itself: notes, evidence, option analyses, draft designs.

Lifecycle

status Meaning
active Investigation in progress.
graduated Checked against 00-META, decided in 02-DECISIONS/, and specified in 03-DESIGN — see became:.
abandoned Stopped or superseded. Nothing is deleted.

An effort graduates by producing a decision record and a 03-DESIGN entry. It is abandoned in place — never deleted. What was rejected, and why, is the more expensive half to rediscover.

Starting and closing efforts is playbook territory: 00-META/process/01-research.md and 02-graduation.md.

Rules

  • Markdown only. Do not skip or reuse a sequence number.
  • Evidence, not assertion. An effort that measured nothing has not finished.
  • Research describes real observations but never identifies the mesh it observed. The shape of a finding survives anonymisation intact.