Skip to content

ADR 0013 Four Repository Authority Split

FractalOps backend, contracts, runtime composition, and documentation accumulated in one repository after the frontend had already moved to its own repository. Ownership, updates, and AgentSquad repository lanes became ambiguous.

Use exactly four repositories. Assembly owns composition, immutable pins, Supabase and CNPG topology, Starlight, ADR lineage, and integrated proof. Contract owns public machine-readable schemas and deterministic artifacts. Backend owns domain behavior, application coordination, persistence, migrations, and deployable services. Frontend owns the Astro projection shell and product copy.

Assembly never copies application source or hand-written contract models. Contract imports no backend or frontend implementation. Frontend consumes generated contract artifacts through a named facade. Backend consumes versioned contracts and owns schema enforcement. Cross-repository tests operate only through published artifacts and runtime interfaces.

  • Role repositories: yamonco/fractalops-assembly, yamonco/fractalops-contract, yamonco/fractalops-frontend, and yamonco/fractalops.
  • Workspace inspection and missing-clone bootstrap: scripts/workspace.mjs.
  • Manifest validation: scripts/validate-manifest.mjs.
  • Composition manifest: assembly.manifest.json.

GitOps authority is live on assembly and role pins are immutable. Compatibility copies remain in the backend repository for one release window; Supabase image digests and the contract-owned OpenAPI generation path remain migration gaps.

Changes cross repositories in contract-first release order. Assembly CI proves composition; each role repository proves its local ownership. Rollback uses the prior four repository pins.

  • 2026-07-11: Accepted and migration started by repository owner directive.