Complete the document-root control migration review

This commit is contained in:
2026-11-02 00:46:56 +00:00
parent 68ec552b52
commit c63f4ff687
4 changed files with 24 additions and 20 deletions

View File

@@ -1,8 +1,8 @@
# Document-Root Configuration Controls
Status: proposed implementation of the agreed `config` spelling and
source-document-root-only reservation. Ordinary application-root `config` data
created through placement or later lifecycle operations is permitted.
Status: implemented. The `config` spelling and source-document-root-only
reservation are in effect. Ordinary application-root `config` data created
through placement or later lifecycle operations is permitted.
Planning baseline: `1e69abc88cf748537cd7febc85e0743755fa2fc1`.
@@ -13,22 +13,19 @@ to use nested `config` fields for their own settings. An application that select
ConfigKit adopts one control syntax; it should not need a configurable keyword
or a second configuration-processing pass.
This roadmap defines the target and the work needed to reach it. The
[implementation plan](implementation.md) owns staged execution and progress.
Neither document changes current behavior. The
[configuration contract](../config.md) and public Go declarations remain
authoritative until implementation lands.
This roadmap records the target and rationale. The [implementation plan](implementation.md)
records execution and validation. The [configuration contract](../config.md)
and public Go declarations own current behavior.
## Current Baseline
## Prior Baseline
ConfigKit uses a root `configkit` mapping for `imports` and `sequences` controls.
The [directive implementation](../../internal/engine/directives.go) extracts
those controls before source placement and composition. Nested occurrences of
`configkit` are rejected, including within application mappings and sequences.
Imports-disabled and selected-overlay paths have their own checks enforcing
that reservation.
At the planning baseline, ConfigKit used a root `configkit` mapping for `imports`
and `sequences` controls, extracted before placement and composition. Nested
occurrences of `configkit` were rejected, including within application mappings
and sequences. Imports-disabled and selected-overlay paths enforced that
reservation separately.
The reservation also reaches beyond parsing:
The reservation also reached beyond parsing:
- [Destination validation](../../internal/engine/destination.go) rejects
`configkit` in every segment. Its helpers also serve import destinations,