mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; it…
mesh/delivery superseded: a newer head of the same pull request
ADR 0290 rule 9: once the import is checked record by record, hq keeps no copy. The records and efforts are removed; every link or path to them reads "ADR NNNN" or "research NNN"; a design's decisions: lists "ADR NNNN". 02-DECISIONS keeps a pointer README with the reading order's six topics, which the knowledge base reads through the records module; 01-RESEARCH keeps a pointer README. The checks drop the rules that judged records (the knowledge base holds each at propose; checks/README.md says where) and refuse a record written here again. Playbooks 01 and 02 and the skills write and read records with the knowledge base's verbs.
41 lines
1.9 KiB
Markdown
41 lines
1.9 KiB
Markdown
# Playbook 05 — Constitution sync
|
|
|
|
Implements ADR 0021: HQ is
|
|
the source of the constitution, and the knowledge-base page is derived, never edited.
|
|
|
|
**Trigger.** [`how-we-build.md`](../how-we-build.md) changed a rule that the mesh enforces at
|
|
runtime.
|
|
|
|
**Who runs it.** Whoever made the change.
|
|
|
|
## Why this playbook exists
|
|
|
|
The mesh injects a constitution into every eligible design meeting; agents check their output
|
|
against it and a constitution-check phase can block a meeting. That text is **derived**.
|
|
`how-we-build.md` is the source.
|
|
|
|
Two texts stating the same rules will drift, and the enforced copy winning by default means
|
|
the reasoned copy quietly stops being true. This playbook is the mechanism that stops that —
|
|
and, per the repository's own rule, it is how the rule "HQ is the source" is checked.
|
|
|
|
## Steps
|
|
|
|
1. Edit [`how-we-build.md`](../how-we-build.md). Each rule keeps the reasoning that earned it;
|
|
the derived page carries the rule alone.
|
|
2. Record the change as a decision — a rule the mesh enforces is architecturally significant.
|
|
Playbook [02](02-graduation.md).
|
|
3. Publish the derived page to the knowledge base under the constitution slug, replacing its
|
|
body. Keep the section numbering stable: the meeting orchestrator and the review fragments
|
|
cite sections by number.
|
|
4. Verify the derived page reads back with the change present. A publish that reported success
|
|
and did nothing is exactly the failure class this repository exists to name.
|
|
5. Note the sync in the decision record's Consequences.
|
|
|
|
## Rules
|
|
|
|
- **Never edit the derived page directly.** An edit there survives until the next sync and
|
|
then vanishes, taking its reasoning with it.
|
|
- The derived page may only be **tightened** by per-team override pages, never relaxed.
|
|
- If the sync cannot be performed, say so in the record. An unsynced rule is a rule the
|
|
mesh does not enforce, whatever `how-we-build.md` says.
|