prometeu-runtime/docs/phase-03-frontend-api.md
2026-03-24 13:40:33 +00:00

1.2 KiB

Phase 03 — Frontend API Boundary (Canon Contract)

This document codifies the FE/BE boundary invariants for Phase 03.

  • BE is the source of truth. The frontend-api crate defines canonical models that all Frontends must produce.
  • No string protocols across layers. Strings are only for display/debug. No hidden prefixes like svc: or @dep:.
  • No FE implementation imports from other FE implementations.
  • No BE imports PBS modules (hard boundary). The Backend consumes only canonical data structures from frontend-api.
  • Overload resolution is signature-based. Arity alone is not sufficient; use canonical signatures/keys.

Implementation notes (PBS):

  • The PBS adapter must not synthesize ownership or module info from string prefixes. All owner/module data should come from canonical types.
  • Export/import surfaces are expressed exclusively via frontend-api types (e.g., ItemName, ProjectAlias, ModulePath, ImportRef, ExportItem).

Enforcement:

  • A test in prometeu-compiler scans src/backend/** to ensure no references to frontends::pbs are introduced.
  • Code review should reject any PRs that reintroduce prefix-based heuristics or FE-to-FE coupling.