Order the records the way the system is learned
Jochen asked whether the order made sense. It did not -- it followed when things happened to be decided, which after consolidation is fictional anyway since record 5 alone folds decisions taken across a week. Concretely wrong before: the domain statement sat at 8, after five engineering rules; the constitution was scattered across 5, 12 and 17; the tiers landed at 15, 16, 21 and 22 with process records in between. Now it walks: what the mesh is (1-3), its tiers from the bottom up (4-8), what runs on them and how it gets there (9-10), how it is built (11-16), how it is checked (17-18), how we work (19-23). Two things made this safe rather than free. It is a permutation, not a compaction, so the renames go through temporary names -- otherwise two files want one slot and one is lost. And the reference rewrite is a single simultaneous pass, because almost every number moved into a slot another number was vacating; replacing one at a time would have cascaded and pointed things at the wrong record while still resolving. Verified: 284 [ADR NNNN](path) links across the repository, all with matching text and target. The ordering principle is now stated in 19 rather than left implicit -- the repository already said "the numbering is the flow" about its folders, and there was no reason for the records to be the exception.
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
---
|
||||
status: accepted
|
||||
date: 2026-07-10
|
||||
deciders: jochen
|
||||
reconstructed: true
|
||||
---
|
||||
|
||||
# 20. The mesh is governed by a constitution, injected where work is decided
|
||||
|
||||
> Reconstructed after the fact from the evidence cited below.
|
||||
|
||||
## Context
|
||||
|
||||
By mid-2026 the mesh was doing a large share of its own design and implementation work through
|
||||
agents. The rules those agents were expected to follow existed — in operating instructions, in
|
||||
convention documents, in the knowledge base — but they were **retrieved**: an agent had to know
|
||||
a rule existed in order to look it up.
|
||||
|
||||
Rules that must be looked up are followed by whoever already knows them, which is precisely the
|
||||
population that does not need them. The rules being violated were the ones nobody thought to
|
||||
search for.
|
||||
|
||||
## Considered options
|
||||
|
||||
1. **Documentation plus review.** Rejected — it is what existed. Review catches a violation
|
||||
after the work is done, and only if the reviewer knows the rule.
|
||||
2. **Lint and automated checks only.** Rejected as insufficient, not wrong. A check catches
|
||||
what can be expressed mechanically; most of these rules are about judgement — what belongs
|
||||
in a repository, when a criterion counts as verified.
|
||||
3. **A canonical rule set, injected into context wherever work is decided, with a check phase
|
||||
before output is accepted.** Chosen.
|
||||
|
||||
## Decision
|
||||
|
||||
A single canonical document states the mesh's non-negotiable rules. It is **injected
|
||||
proactively** into every eligible design and analysis session — agents do not fetch it, it
|
||||
arrives — and a check phase verifies the session's output against it before the work proceeds.
|
||||
|
||||
It is a governed document, not a page. Changing it requires a proposal, sign-off by reviewers
|
||||
who are not the proposer, and a recorded decision. Drive-by edits are reverted.
|
||||
|
||||
Scoped override pages may **tighten** it for a team or product. They may never relax it.
|
||||
|
||||
## Consequences
|
||||
|
||||
- A rule reaches the work whether or not anyone remembered it existed.
|
||||
- The check phase makes a violation a blocking outcome rather than a review comment.
|
||||
- Two copies of the same rules now exist: this document, and the reasoning in HQ that earned
|
||||
them. The enforced copy wins by default, so the reasoned copy quietly stops being true —
|
||||
which is why [`00-META/how-we-build.md`](../00-META/how-we-build.md) is now the source
|
||||
and the governed page is derived from it, via playbook
|
||||
[`05-constitution-sync.md`](../00-META/process/05-constitution-sync.md).
|
||||
- Injection costs context on every eligible turn, and grows with the document. Nothing
|
||||
currently bounds that.
|
||||
- The amendment process requires two reviewers, which a mesh with one human operator satisfies
|
||||
only by counting agents. That tension is real and unresolved.
|
||||
|
||||
## References
|
||||
|
||||
- The governed page was authored 2026-07-10 and carries its own amendment process.
|
||||
- `feat(noxflow): HAL architectural conformance gate for reviewer + architect` (#296),
|
||||
2026-06-10 — the check phase, predating the document it checks against.
|
||||
- Knowledge base: `platform/constitution`.
|
||||
Reference in New Issue
Block a user