Files
ConfigKit/docs/adr/0002-own-yaml-semantics.md

39 lines
1.5 KiB
Markdown

# ADR 0002: Own YAML Semantics Behind a Private Parser Boundary
## Status
Accepted. This records a design decision, not implementation completion.
## Date
2026-09-06
## Context
A shared library cannot provide consistent configuration semantics if each
consumer inherits parser conversions, node types, and extension behavior.
Exposing parser types also makes dependency changes part of the public API.
## Decision
ConfigKit defines its supported YAML policy and keeps parser integration private.
Application types and diagnostics must not require parser-specific public types.
Use a small internal boundary rather than a general parser/provider framework.
The [architecture policy](../policy/architecture.md) owns this constraint; the
[target design](../roadmap/initial.md#yaml-and-scalar-policy) owns planned syntax.
## Alternatives considered
- Expose parser nodes and hooks: easy integration but couples consumers to parser
behavior and permits bypassing library policy.
- Adopt the parser's entire YAML behavior: reduces initial code but leaves core
semantics outside ConfigKit's control.
- Abstract many configuration languages immediately: adds unsupported scope.
## Consequences
Parser changes require behavior-level compatibility verification. ConfigKit must
translate errors safely and enforce its own supported subset. Some existing
consumer custom decoders will need replacement with library-supported mechanisms
or application resolution. No particular parser dependency is selected here.