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
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:
Tasks
standard/fleet.md): when to split (a repo earns existence by own deployable or own audience), the hub's minimal contents, the router/scope-test/sibling-clone/inheritance conventions, docs-move-with-stub rule.collection+ the router role) so scaffolding can offer it.Acceptance criteria
— 🤖 Claude, on behalf of @PBNZ