runfabric

Architecture Ownership ADR

Status: Accepted

Purpose

This document freezes the canonical ownership model for shared extension-facing domains so architecture rules are explicit, reviewable, and testable.

Decision

Shared contracts that are consumed across platform and extension boundaries must have exactly one canonical implementation area in the repository.

Canonical ownership table

Domain Canonical ownership Notes
provider internal/provider/contracts and platform/extensions/providerpolicy providerpolicy is the single platform-side root extensions/... import entrypoint.
router extensions/routers for plugin implementation, platform/workflow/app for app DTO mapping No internal bridge package owns router contracts.
runtime extensions/runtimes Platform consumes runtime registries through platform/extensions/providerpolicy and platform/extensions/registry/resolution.
simulator extensions/simulators Platform consumes simulator registries through platform/extensions/providerpolicy and platform/extensions/registry/resolution.
cli-orchestration platform/workflow/app internal/cli/... command packages must call app boundary functions, not lifecycle/recovery/source internals directly.

Allowed dependency directions

Forbidden edges

Scope lock

Enforcement

Migration notes