Skip to content

Fleet overlay: conventions for multi-repo projects (hub-and-spoke) #19

Description

@PBNZ

Retrospective finding — refs #10 (post-retrospective addendum: multi-repo migration, day 2).

Context

RepoKit is repo-scoped: every convention (AGENTS/CLAUDE pairing, START-HERE, checkpoint, changelog, ADRs) lives and terminates inside one repository. A real migration — one product outgrowing its single repo into several (apps in an organization, an infra repo deliberately kept on a personal account, a coordination repo) — showed the standard has nothing to say the moment a second repo exists. The cross-repo layer had to be invented ad hoc mid-migration. What was invented worked on first contact and is worth standardising:

  • A hub repo as the fleet router. One coordination repo owns everything spanning repos: the working agreement, cross-cutting ADRs, venture-level documents, cross-repo issues, and a fleet-level agent file. Its AGENTS.md declares itself the router: placement/lookup questions any spoke can't answer resolve there.
  • The scope test — one sentence that settles every placement question for docs and issues: "would this still matter if the repo you're sitting in didn't exist? Yes → hub; no → stays here." Written into every spoke's AGENTS.md.
  • Sibling-clone convention. All fleet repos clone as sibling directories, so the hub is always at a fixed relative path from any spoke — agents know where to look on disk and to clone it if missing.
  • Spoke inheritance is three lines. A new spoke repo joins the fleet by copying the router pointer, the scope test, and the sibling-clone line into its AGENTS.md. No other ongoing cost.
  • Docs follow ownership, with pointer stubs. When a doc's scope turns out to be venture-level, it moves to the hub and a short stub stays at the old path so existing links (issues, commits) keep resolving. Git history of the pre-move file stays in the old repo — noted in the stub.
  • One project board spans the fleet (org-owned; cross-owner items verified working — issues from a personal-account repo sit on an org project fine).

Tasks

Acceptance criteria

  • A second repo joining an existing RepoKit project has a documented path: what to create, what moves, what each AGENTS.md must say.
  • The scope test appears verbatim in the standard so every fleet states it identically.

— 🤖 Claude, on behalf of @PBNZ

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions