Record public facade boundary
This commit is contained in:
@@ -76,6 +76,18 @@ Do not expose parser-specific nodes, errors, or extension hooks through the
|
||||
public API. Parser integration belongs behind a private boundary, as recorded
|
||||
in [ADR 0002](../adr/0002-own-yaml-semantics.md).
|
||||
|
||||
The root `configkit` package is the sole supported consumer import path. Public
|
||||
named types stay root-owned and may hold private delegated implementation state;
|
||||
their exported signatures, fields, and method sets must not expose internal
|
||||
types or acquire internal methods through anonymous embedding. Root production
|
||||
code may depend inward on a cohesive engine and its supporting internal packages,
|
||||
but internal production packages must not import the root. Explicit forwarding
|
||||
and local conversion are acceptable where they preserve type identity,
|
||||
ownership, callback lifetime, and inspection behavior. The accepted
|
||||
root-wrapper boundary and its migration rationale are recorded in
|
||||
[ADR 0006](../adr/0006-public-facade.md); its implementation remains tracked by
|
||||
the public-facade roadmap.
|
||||
|
||||
Separate input access, document processing, composition, decoding, metadata, and
|
||||
rendering responsibilities without prescribing an interface or package for each.
|
||||
Dependencies must preserve those boundaries; package splits and abstractions
|
||||
|
||||
Reference in New Issue
Block a user