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.
2.0 KiB
2.0 KiB
name, description
| name | description |
|---|---|
| hal-sync-constitution | 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.
What this is
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
- Confirm the source change is recorded as a decision. A rule the mesh enforces is
architecturally significant; if there is no record, run
hal-graduatefirst. - 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.
- Publish it to the knowledge base under the constitution slug, replacing the body.
- 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.
- 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.