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.
39 lines
2.0 KiB
Markdown
39 lines
2.0 KiB
Markdown
---
|
|
name: hal-sync-constitution
|
|
description: Use after changing a rule in hal-hq's 00-META/how-we-build.md, to publish the derived constitution page the mesh injects into design sessions. Triggers on "sync the constitution", "publish the rules", "I changed how-we-build", "update the governed page".
|
|
---
|
|
|
|
# hal-sync-constitution
|
|
|
|
Publishes the derived constitution from its source. **Authoritative playbook:**
|
|
[`00-META/process/05-constitution-sync.md`](../../../00-META/process/05-constitution-sync.md).
|
|
|
|
## What this is
|
|
|
|
[`00-META/how-we-build.md`](../../../00-META/how-we-build.md) is the **source**. The
|
|
knowledge base carries a **derived** page that the mesh injects into every eligible design
|
|
session, and against which a check phase can block work.
|
|
|
|
Two texts stating the same rules drift, and the enforced copy wins by default — so the reasoned
|
|
copy quietly stops being true. This skill is the mechanism that prevents that, and it is how
|
|
the claim "HQ is the source" is checked.
|
|
|
|
## Steps
|
|
|
|
1. Confirm the source change is recorded as a decision. A rule the mesh enforces is
|
|
architecturally significant; if there is no record, run `hal-graduate` first.
|
|
2. Derive the page: the **rules without the reasoning**. Section numbering is stable — the
|
|
orchestrator and the review fragments cite sections by number, so never renumber to tidy.
|
|
3. Publish it to the knowledge base under the constitution slug, replacing the body.
|
|
4. **Read it back and verify the change is present.** A publish that reported success and did
|
|
nothing is exactly the failure class this repository exists to name — do not skip this.
|
|
5. Note the sync in the decision's ledger line.
|
|
|
|
## Do not
|
|
|
|
- **Never edit the derived page directly.** An edit there survives until the next sync and then
|
|
vanishes, taking its reasoning with it.
|
|
- Do not relax a rule in the derived page. Overrides may only tighten.
|
|
- Do not report the sync as done without the read-back. If it could not be performed, say so —
|
|
an unsynced rule is a rule the mesh does not enforce, whatever the source says.
|