Skip to content

2026-05-08 — GitHub org rename `petrova-hq` → `petrova-codes`

Status: proposed (this PR) Author: alex@devarno.com Decides for: petrova-line GitHub org identity, registry slugs, submodule URLs, .petrova/contract.yaml slugs across the fleet Supersedes (in part): 2026-05-08-petrova-domain-pivot.md — “Deferred follow-ups: GitHub org rename petrova-hqpetrova-codes

The brand pivot decision (2026-05-08-petrova-domain-pivot.md) deferred the GitHub org rename to a separate MR-7 cycle on the grounds of blast radius. The operator has now executed the rename externally on GitHub; gh api orgs/petrova-hq returns 404, petrova-codes/petrova resolves. GitHub provides repo-level URL redirects (git clone/fetch/push are transparent for old URLs) but not org-level API redirects — every gh api orgs/petrova-hq/... and gh api repos/petrova-hq/... call hard-fails.

This decision records the corresponding in-repo bookkeeping. It is the second half of the brand pivot.

  1. GitHub URL/org rewrites. Every live (non-dated-decision) reference to github.com/petrova-hq, petrova-hq/petrova, petrova-hq/prompts, petrova-hq/templates, and gh api .../petrova-hq/... becomes the petrova-codes form.

  2. Submodule remotes. .gitmodules URLs flip; each submodule’s local .git/config origin is repointed; future pushes target petrova-codes.

  3. Internal slug rename petrova-hqpetrova-codes. The slug is used beyond just URLs:

    • state/petrova-hq.yamlstate/petrova-codes.yaml (file rename via git mv).
    • slug: field in registry.yaml, .petrova/contract.yaml, every consumer fixture, every cross-reference in plans/specs/runbooks/skills.
    • Eva integration maps in consumer states/contracts that reference "petrova-hq": ... keys.

    Renaming is strictly preferable to keeping the slug stale because the slug is also the directory name in state/ and the cross-fleet join key. Stale slugs would diverge from the GH org and confuse new consumer onboarding.

  4. Append-only preservation (MR-7). Dated decision docs under docs/decisions/2026-0[1-5]-*.md and findings under docs/findings/ are not edited. Their references describe the state at the time of writing. Readers follow the supersession chain via this doc.

  5. Local working-directory rename is OUT of scope. Operators may rename their local clone if they wish; the playbook does not require it.

  • Old links rot at the org level. github.com/petrova-hq/<repo> repo URLs are redirected by GitHub; any link that hit the org page directly is broken. Acceptable: the new decision doc surfaces the mapping.
  • Open PRs need a one-time rebase or fresh push to the new origin URL. Inflight branches authored under the old origin auto-redirect for git push but webhook-driven CI may need its clone_url re-cached.
  • MR-3 sibling rule preserved: docs/site/... and site/src/content/docs/... mirrors both updated.
  • MR-4 absolute date in filename and body.
  • MR-7 supersession explicitly cited (the deferred clause from the pivot doc is now closed by this one).
  1. gh api orgs/petrova-codes/repos --jq '.[].name' lists the live fleet.
  2. grep -rn "github\.com/petrova-hq" . (excl. node_modules, dist, dated decisions/findings) returns zero.
  3. grep -rn "petrova-hq" . remaining hits live only in dated decisions, findings, and the natural-language supersession references inside this doc and the pivot doc.
  4. git -C core/prompts remote -v and git -C core/templates remote -v show petrova-codes URLs.
  5. cd cli && npm test passes (test fixtures updated).
  6. petrova doctor (or current verify) green for the canary petrova-codes slug entry.