← Ledger

0003 — Rocky consolidation policy: rocky-hq is the only home

Context

Rocky's source code currently lives in three places:

  1. https://github.com/rocky-hq/rocky — the parent superproject (this repo).
  2. https://github.com/grace-hq/rocky — the freestanding origin of the existing @rocky/ops Next.js console (predates this redesign; the console's git history lives here).
  3. devarno-cloud/rocky — a submodule of devarno-cloud whose URL points at grace-hq/rocky.

Phase 2 (lift-console) moves the console's history into rocky-hq/console (a sibling of this superproject under the rocky-hq GitHub org). After Phase 2 lands, the old locations are stale duplicates of the same code under different orgs — exactly the situation that produces "which one's canonical?" confusion six months from now.

Decision

All Rocky source repositories live under the rocky-hq GitHub org. Period.

Immediate consequences (Phase 2 close-out actions)

  1. grace-hq/rocky — archive on GitHub (read-only, with the description and topmost README updated to point at rocky-hq/console). Do not delete: history matters, archival preserves it without inviting drift. Move-direction signal is the GitHub "archived" badge plus a one-line README banner.
  2. devarno-cloud/rocky submodule — remove entirely from devarno-cloud. Devarno-cloud is a consumer of Rocky per its own AGENTS.xml; consumers depend on Rocky's public surface (e.g. the deployed console, or a future SDK), not on its source tree. The removal lands in devarno-cloud with its own MR-7 decision doc.
  3. Phase-2 plan operator-follow-up — these become required actions, not optional. The Phase-2 plan is updated alongside this decision to reflect that.

Future consequences (any new Rocky-adjacent work)

Why this policy now (and not later)

The cost to centralise Rocky is lowest the moment before Phase 2 merges. After Phase 2 merges, three locations exist with overlapping, drifting copies of the console's history. Three months from now, the cleanup cost is multiplied by however many ref-bumps and consumer-side changes have happened in the duplicate repos. Six months from now, the cleanup is a pull-out-the-spreadsheet refactor.

The grace-hq/rocky archival and devarno-cloud submodule removal are the same action repeated for consistency: collapse the surface area to one canonical location. Wrapper projects are fine; duplicates are not.

Why "archive" and not "delete" for grace-hq/rocky

GitHub's archive flag preserves all history, all PRs, all issues — the repo becomes read-only and is clearly badged as archived. Deletion is irreversible and would orphan any external links, tarballs, vendor checkouts, or bookmarks. Archival is the standard-of-care move.

References