Revise configuration plans to preserve source provenance
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
# ConfigKit v1 Adoption And Identified Resource Collections
|
||||
|
||||
Status: accepted direction; implementation pending. This roadmap describes
|
||||
future behavior, not the currently supported configuration format.
|
||||
Status: accepted direction; implementation in progress. The target below includes
|
||||
the agreed execution-owned normalization adjustment for ConfigKit v1.0.0.
|
||||
Current consumer documentation remains authoritative for supported behavior.
|
||||
|
||||
The companion [implementation plan](implementation.md) owns the ordered sprint
|
||||
steps and validation assignments.
|
||||
@@ -20,9 +21,9 @@ authoring guidance, not a prohibition on deliberate same-ID replacement across
|
||||
configuration layers. Keep ConfigKit responsible for composition and inheritance;
|
||||
PromptKit interprets the final effective configuration and owns resource meaning.
|
||||
|
||||
## Current Baseline
|
||||
## Pre-Migration Baseline
|
||||
|
||||
The repository currently declares Go 1.26.0 and depends on
|
||||
Before this migration, the repository declared Go 1.26.0 and depended on
|
||||
`gitea.maximumdirect.net/eric/ConfigKit` v0.8.0. The
|
||||
[format reference](../formats.md) and [source adapter overview](../internal/sources.md)
|
||||
describe the implemented behavior:
|
||||
@@ -59,7 +60,10 @@ Update PromptKit's existing uses of:
|
||||
| --- | --- |
|
||||
| `Definition.Secret` | `Definition.Sensitive` |
|
||||
| `Resolution.InputInfo` | `Resolution.EntryInfo` |
|
||||
| `Resolution.Record(..., ChangeNormalization, ...)` | `Resolution.RecordNormalization(...)` |
|
||||
|
||||
Migrate recording API names where still used; PromptKit's normalization and
|
||||
defaults follow the execution-owned interpretation described below rather than
|
||||
requiring ConfigKit resolution records for fields within resource lists.
|
||||
|
||||
Audit the remaining exposed inspection types and diagnostic consumers against
|
||||
the complete [ConfigKit v1.0.0 migration notes](https://forge.maximumdirect.net/base-layer/configkit/src/tag/v1.0.0/docs/releases/v1.0.0.md).
|
||||
@@ -132,6 +136,34 @@ in the assembled list shape, including its index-based paths and provenance.
|
||||
Do not impose a new execution-order meaning on list position or change the
|
||||
existing inventory sorting solely because source resources become lists.
|
||||
|
||||
### Composed Configuration And Execution Interpretation
|
||||
|
||||
Accommodate ConfigKit v1.0.0's atomic sequence-mutation auditing. Retain the
|
||||
composed typed configuration, field presence, and provenance supplied by
|
||||
ConfigKit. Apply PromptKit's domain normalization and defaults to owned
|
||||
interpretations of those final records during engine construction, preserving
|
||||
existing execution behavior and domain validation.
|
||||
|
||||
Configuration inspection, explanations, and diffs describe ConfigKit's composed
|
||||
values and provenance. They do not include PromptKit-side trimming, endpoint
|
||||
normalization, or execution defaults as ConfigKit resolution history. Existing
|
||||
prompt/profile inspection and preparation expose their respective interpreted
|
||||
metadata or effective execution settings. These views have distinct purposes;
|
||||
an authored whitespace difference can remain visible in a configuration diff
|
||||
even when it has no effect on the interpreted setting.
|
||||
|
||||
Interpretation preserves exact identities, references, presence/null semantics,
|
||||
and the association between records and effective index paths. Relative resources
|
||||
such as `content_file` resolve through the contributing field's ConfigKit origin
|
||||
and source context. Normalization does not replace that attribution with an
|
||||
application-generated whole-list origin.
|
||||
|
||||
This remains interpretation of the final handoff, not source prevalidation or
|
||||
another composition pass. It requires no upstream change or new public API.
|
||||
Field-granular normalization within ConfigKit itself is a separate
|
||||
[future idea](future.md#field-level-normalization-with-preserved-list-provenance)
|
||||
to reevaluate after upstream support is available.
|
||||
|
||||
### Go Source-Builder Inputs
|
||||
|
||||
Add an `ID string` field to `ProfileConfig` and `BackendConfig`. Change
|
||||
@@ -244,6 +276,8 @@ in arbitrarily named collections. Equal local IDs in separate namespaces remain
|
||||
independent. Registered identities govern strict composition, inheritance,
|
||||
layering, and final typed values through ConfigKit. PromptKit retains its domain
|
||||
validation, presence-aware settings, partial profiles, and exact runtime lookup.
|
||||
Domain checks use PromptKit's interpreted values without mutating ConfigKit's
|
||||
retained configuration or replaying source history.
|
||||
|
||||
Inherited and replaced prompt fields retain their contributing resource context.
|
||||
Sensitive provider values remain protected in inspection at index-based paths.
|
||||
@@ -259,6 +293,9 @@ GoDoc, and maintained examples describe the integrated target when it lands.
|
||||
Migration guidance covers the new module/types, Go minimum, controls, import
|
||||
requiredness, identified lists, explicit-ID source builders, sibling inheritance,
|
||||
removed prompt labels, specification headers, and index-based inspection paths.
|
||||
It also explains composed configuration inspection versus PromptKit's normalized
|
||||
metadata and execution settings, including the absence of ConfigKit history for
|
||||
PromptKit-side normalization/defaults.
|
||||
Attribution identifies the selected ConfigKit revision and applicable notices.
|
||||
|
||||
Deliver this as one coordinated breaking pre-v1 minor upgrade under the existing
|
||||
|
||||
Reference in New Issue
Block a user