papa-hq reads 01 research -> 03 decision -> 02 design. The order is a scar, not a choice: 02-DESIGN existed from its initial commit, and when adr/ was finally promoted on 2026-07-13 it took the next free number rather than its place in the sequence. By then design was too settled to renumber. hal-hq was three commits old, so it is not. adr/ becomes 02-DECISIONS and 02-DESIGN becomes 03-DESIGN, and following the folder numbers now walks the process in the order it happens: research produces a decision, the decision authorises a design. 00-GENESIS becomes 00-META, matching papa's rename from the same restructure. Every path reference rewritten across documents, frontmatter, playbooks and skills. All links resolve; all 58 frontmatter blocks parse and their path fields still point at files that exist.
64 lines
3.0 KiB
Markdown
64 lines
3.0 KiB
Markdown
---
|
|
status: accepted
|
|
date: 2026-07-10
|
|
deciders: jochen
|
|
reconstructed: true
|
|
---
|
|
|
|
# 9. 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`.
|