The consolidation left a sparse sequence -- 1, 4, 6, 7, 9, 10, 12, 15, 16, 18, 19, 25, 34, 35, 36, 37, 40, 42, 44, 45, 48, 49, 58 -- where the gaps were only the archaeology of what used to be there. Renumbered contiguously. Renames run in ascending order, so every target number is already free and no two files ever collide. The reference rewrite is one simultaneous pass rather than a sequence of replacements. Numbers moved into slots other numbers were vacating -- the node host went 37 to 16 while the lab went 16 to 9 -- so replacing one at a time would have cascaded and silently pointed things at the wrong record. Seven plain-text references survived the merges as prose rather than links, naming records that no longer existed: the enrolment token, the link boundary, what a declaration is, reachability, the repository structure. Each mapped to the consolidated record that now holds it. Verified rather than assumed: every [ADR NNNN](path) link now has matching text and target, checked across the whole repository, and the checker passes. Frontmatter `consolidates:` lists dropped -- they named records that are gone, and each consolidated record already says in prose what it absorbed.
3.1 KiB
status, date, deciders, reconstructed
| status | date | deciders | reconstructed |
|---|---|---|---|
| accepted | 2026-08-23 | jochen | false |
12. HQ is the source of the mesh constitution
Context
ADR 0005 established a canonical rule set, injected into every eligible design session and checked before output is accepted. It lives in the knowledge base, where the orchestrator reads it.
HQ separately carried a document stating overlapping rules with the reasoning that earned each one. Two texts, one enforced and one not.
That arrangement has a predictable outcome and it is not a tie. The enforced copy wins by default, because it is the one that blocks work. The reasoned copy quietly stops being true, and the rules survive without the incidents that justify them — at which point a rule reads as arbitrary, and an arbitrary rule is the kind people route around.
Considered options
- The knowledge-base page is the source; HQ points at it. Rejected, though it is the honest description of what was already happening. It leaves the reasoning downstream of the rule, and the reasoning is the part that makes a rule survive a challenge.
- Accept the overlap and let both stand. Rejected: two authorities is no authority, and the drift is silent.
- HQ is the source; the governed page is derived and published from it. Chosen.
Decision
00-META/how-we-build.md is the source. The governed page the
mesh injects is derived from it — the rules without the reasoning — and is never edited
directly.
Publishing is a playbook step, not a manual act, and it ends with reading the page back and verifying the change is present. A publish that reported success and did nothing is exactly the failure class this mesh keeps producing (ADR 0023).
Section numbering is stable, because the orchestrator and the review fragments cite sections by number.
Consequences
- One source, many surfaces — the same argument HQ's separation already rests on (ADR 0011), applied to the rules themselves.
- Each rule keeps the incident that earned it, in a place that is reviewed as a diff.
- An edit to the derived page survives until the next sync and then vanishes. The playbook says so, and nothing mechanically prevents it.
- The sync is manual and is the weak point. An unsynced rule is a rule the mesh does not
enforce, whatever the source says — so the playbook requires the failure to be stated rather
than passed over. This is the same class of gap as
04-ISSUES/006, and it is worth watching for the same reason. - The document grew from four rules to seven sections, because it now has to carry everything the mesh enforces rather than only what someone thought to write down.
References
00-META/process/05-constitution-sync.md— the sync, including the read-back.- ADR 0005 — the governed page and why it exists.