The record and the records module for symptom search, the constitution page by its own name.
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 constitution 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 where the mesh keeps the constitution page, under its 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.
|