20 lines
1.2 KiB
Markdown
20 lines
1.2 KiB
Markdown
### 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-build-pipeline` 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.
|