Files
hq/.claude/skills/hal-sync-constitution/SKILL.md
T
jschoubben c0b35652d0 The numbering is the flow: decisions are 02, design is 03
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.
2026-08-23 18:05:11 +02:00

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.