2026-05-14 — META-RULES authoring migrates into eva-hq
rank: decision outranks: []
Section titled “rank: decision outranks: []”2026-05-14 — META-RULES authoring migrates into eva-hq
Section titled “2026-05-14 — META-RULES authoring migrates into eva-hq”Date: 2026-05-14 Status: ratified Supersedes: none Successor: none
Context
Section titled “Context”META-RULES.md was authored in the petrova-codes/templates submodule
and re-vendored manually into core/playbook/META-RULES.md here. The
locked-strategy decision (2026-05-14 — prompt-service architecture)
established that eva-hq authors, petrova.host serves, consumers
carry only the boot kit. META-RULES was the last load-bearing
content still authored outside eva-hq.
CLAUDE.md acknowledged the gap as an open follow-up; the manual re-vendor step had already caused two short-lived drift incidents between the templates-submodule copy and the in-tree mirror.
Decision
Section titled “Decision”Move authoring of META-RULES.md into
eva-hq/prompts/_shared/petrova/META-RULES.md. Extend the existing
sync-playbook-from-eva.yml workflow to mirror it into
core/playbook/META-RULES.md. Mark the core/templates/META-RULES.md
copy as a backwards-compat downstream pointer, to be removed in
templates@v2.0.
The migration plan is at
docs/superpowers/specs/2026-05-14-meta-rules-migration-to-eva-hq-design.md.
Execution
Section titled “Execution”Five-step plan executed 2026-05-14:
- eva-hq: eva-hq@838d1b5 added
prompts/_shared/petrova/META-RULES.mdbyte-identical to the templates-submodule copy. - petrova-codes: PR #108 extended
sync-playbook-from-eva.ymlto mirror META-RULES. Workflow ran clean; no drift PR opened because the eva-hq copy matched the existing in-tree vendoring. - templates submodule: petrova-codes/templates#4 added a deprecation header at the top of
META-RULES.mdpointing at eva-hq. #5 updatedshared/meta-rules.mdsimilarly. - petrova-codes: this PR — CLAUDE.md “Where the playbook actually lives” table updated;
core/playbook/README.mdsource-of-truth paragraph updated; submodule pointer bumped from48e9bfbto2cd03c1; this decision doc. - verification:
bash scripts/check-meta-rules-mirror.shreturnsMIRROR_CHECK: okagainst the live tree.
Consequences
Section titled “Consequences”For code: workflow mirror gains one file; submodule pointer bumps. No app code touched.
For docs: META-RULES editors update eva-hq going forward. The petrova-codes mirror is downstream; do not edit core/playbook/META-RULES.md directly — it will be overwritten on the next 6-hourly sync. The core/templates/META-RULES.md copy is downstream-of-downstream; same.
For invariants: strengthens MR-7 (decision docs append-only) by centralising the authoring source. Body of every MR-N is unchanged across the migration commit.
For consumers: petrova_install_playbook continues to read core/playbook/META-RULES.md; the file is byte-identical so installed playbooks pick up the new source on next install/refresh without behavior change.
Alternatives considered
Section titled “Alternatives considered”- Leave it where it is. Status quo. Rejected: the locked-strategy decision (2026-05-14) makes the templates-submodule home a known violation; deferring just accumulates corrections in CLAUDE.md.
- Move all of
core/templates/into eva-hq. Bigger Project C item. Templates aren’t load-bearing the way META-RULES is; move them separately when the eva-hq prompt service matures. - Author in petrova-codes directly. Inverts the layering — the consumer (petrova-codes is the control plane consumer of eva-hq prompts) authoring source-of-truth is what we’re moving away from.
References
Section titled “References”- Plan:
docs/superpowers/specs/2026-05-14-meta-rules-migration-to-eva-hq-design.md - Locked-strategy decision:
CLAUDE.md§ “Where the playbook actually lives — locked strategy” - Mirror verification script:
scripts/check-meta-rules-mirror.sh - TASKSET 5b spec (where this work was listed as a Project C follow-up):
docs/superpowers/specs/2026-05-14-taskset-5b-registry-write-verbs-design.md