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.
1.8 KiB
1.8 KiB
Playbook 05 — Constitution sync
Trigger. 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
- Edit
how-we-build.md. Each rule keeps the reasoning that earned it; the derived page carries the rule alone. - Record the change as a decision — a rule the mesh enforces is architecturally significant. Playbook 02.
- 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.
- 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.
- Note the sync in the ledger line for the decision.
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 ledger line. An unsynced rule is a rule the
mesh does not enforce, whatever
how-we-build.mdsays.