2026-08-03 — Admit petrova-codes/templates to the registry
rank: decision outranks: []
Section titled “rank: decision outranks: []”2026-08-03 — Admit petrova-codes/templates to the registry
Section titled “2026-08-03 — Admit petrova-codes/templates to the registry”Date: 2026-08-03 Status: proposed Verb: request_review Slug: templates MR-compliance: MR-12
Rationale
Section titled “Rationale”petrova-codes/templates holds .github/workflows/docs-invariants.yml — the
workflow petrova_onboard installs into every consumer repo — plus
META-RULES.md and brand.yaml.tmpl. petrova-codes consumes it as the
core/templates submodule (gitlink 2cd03c1).
Until now it was an ungoverned write surface with estate-wide reach:
- No registry entry, so no petrova verb could target it.
- No verb-mediated PR, so no
awaiting-human-mergelabel, no MR citations, no decision-doc trail. - A defect in it propagates to every consumer at the next onboard.
That combination is precisely what the control plane exists to prevent, and it was invisible because the repo was never enumerated.
How it surfaced
Section titled “How it surfaced”While fixing F-020 (docs-invariants.yml crashes on any repo lacking
AGENTS.xml or MILESTONES.md, so petrova_onboard installs a workflow the
onboarding PR cannot pass), a request_review against petrova-codes targeting
core/templates/.github/workflows/docs-invariants.yml returned:
PUT .../contents/core%2Ftemplates%2F... - 409Sorry, a file exists where you're trying to create a subdirectory.GitHub refusing to write through a gitlink. The path is not in petrova-codes’ tree at all.
Posture
Section titled “Posture”role: control-plane — this is not a consumer, it is the substrate consumers
are built from. profile: strict + fleets_allowed: [] per FR-009.
Known limitation, not solved here
Section titled “Known limitation, not solved here”A fix landing in templates does not reach petrova-codes until the submodule
pointer is bumped, and a gitlink update cannot be expressed through the Contents
API — so it still requires a non-verb path. This admission makes the content
governed; the pin remains a manual step. Recorded as the open half of
docs/findings/20260803-1500-docs-invariants-missing-guards.md.
Sign-off
Section titled “Sign-off”Human merge required per MR-12 — opened with the awaiting-human-merge label.