Plan the Audita adoption sprint
This commit is contained in:
@@ -2,8 +2,9 @@
|
||||
|
||||
**Updated:** 2026-11-09
|
||||
|
||||
**Status:** Initial outline. The [master roadmap](library-adoption.md) owns the
|
||||
agreed adoption policy, reviewed versions, shared sequencing, and completion.
|
||||
**Status:** Target decisions resolved; implementation pending. The
|
||||
[master roadmap](library-adoption.md) owns shared policy and dependency selection;
|
||||
the [implementation plan](implementation.md) owns sequencing.
|
||||
|
||||
## Baseline and Target
|
||||
|
||||
@@ -92,69 +93,29 @@ native absent-main lifecycle instead of manufacturing a placeholder file or
|
||||
source record. Explicit-file errors and failures loading a selected discovered
|
||||
file remain terminal.
|
||||
|
||||
### Migration Work
|
||||
### Target Boundaries
|
||||
|
||||
1. Move imports to `go.maximumdirect.net/configkit` with the coordinated
|
||||
PromptKit cutover. Raise the toolchain as specified by the master roadmap.
|
||||
Replace `Resolution.Record` uses with the appropriate dedicated recording
|
||||
method; review affected metadata and diagnostics APIs, not only compilation.
|
||||
Relevant renamed concepts include `EntryInfo`, `Sensitive`, `LayerMain`,
|
||||
version evidence, and destination fallback. Typed `Secret` and its field tag
|
||||
retain their spelling.
|
||||
2. Adopt the native lifecycle: source composition and inheritance, typed decoding,
|
||||
explicit CLI assignments, then application resolution and validation. CLI
|
||||
assignments do not repair earlier decoding failures, alter inheritance
|
||||
relationships, or propagate parent edits through already resolved children.
|
||||
Update the current loading-order explanation and realistic integration tests.
|
||||
3. Migrate genuine source-root control blocks to `config:` where present.
|
||||
Implement the version-3 application schema and hard cutover above. Distinguish
|
||||
application schema versions from source version evidence; do not impose
|
||||
headers on every fragment merely because the API supports them.
|
||||
4. Use identified collections where records have meaningful identity. ConfigKit
|
||||
upsert replaces matching records in full; inspection follows registered
|
||||
identities through movement, while list diffs remain atomic. Preserve ordinary
|
||||
ordered/repeated pipeline stages and explicit empty-pipeline semantics:
|
||||
these express Audita domain behavior, so uniqueness/upsert is inappropriate.
|
||||
5. Integrate native source discovery and standard inspection instead of retaining
|
||||
equivalent private infrastructure. Adopt source diagnostics, explanation,
|
||||
history, normalization, and safe effective output through ckconfig. Account
|
||||
for the provenance label changing from `base` to `main`.
|
||||
6. Apply the resolved [PromptKit ownership decision](promptkit.md#backend-and-credential-ownership--resolved):
|
||||
remove Audita's separate backend mapping and LLM credential references from
|
||||
its application schema. Native PromptKit resources own those settings and
|
||||
their resolution. Coordinate the hard cutover and examples here, using the
|
||||
resolved discovery and import policy above and the
|
||||
[automatic PromptKit source contract](promptkit.md#automatic-prompt-sources--resolved).
|
||||
7. Account for the [root-default and stage-override model](glossary-stages.md#root-defaults-and-stage-overrides--resolved)
|
||||
in version-3 schema design. Implement it during the glossary feature stage
|
||||
after library adoption. Each stage resolves independently with explicit-value
|
||||
presence and source provenance, and its module and validators receive consistent
|
||||
effective settings. Apply its [selected scope and fallback rules](glossary-stages.md#configuration-scope--resolved)
|
||||
and [compound-value and clearing rules](glossary-stages.md#compound-values-and-explicit-clearing--resolved),
|
||||
together with its [CLI precedence and native-support boundary](glossary-stages.md#cli-overrides-and-stage-precedence--resolved).
|
||||
Use its [separate glossary and protection selections](glossary-stages.md#glossary-selection-and-protected-vocabulary--resolved),
|
||||
including root protection defaulting through recorded application resolution.
|
||||
Adopt its [glossary configuration ownership boundary](glossary-stages.md#glossary-configuration-ownership--resolved):
|
||||
glossary assets use native loading, composition, inheritance, collection
|
||||
identity, and typed decoding before handoff. Audita derives consumer-specific
|
||||
runtime views from that result and removes its separate glossary YAML loader.
|
||||
Use its [named collections and recursive import placement](glossary-stages.md#named-collections-and-recursive-imports--resolved),
|
||||
retaining native discovery, source context, and tier semantics.
|
||||
Supply its [optional default glossary sources](glossary-stages.md#default-sources-and-explicit-configuration--resolved)
|
||||
in one underlay, with higher-priority explicit main configuration.
|
||||
Register its [collection-scoped entry IDs](glossary-stages.md#entry-identity--resolved)
|
||||
through native sequence identity registration. Apply its
|
||||
[extensible entry content contract](glossary-stages.md#entry-content-fields--resolved)
|
||||
using native typed fields and inline extension data. Honor its
|
||||
[list-input and handoff contract](glossary-stages.md#list-inputs-and-configuration-handoff--resolved):
|
||||
complete configuration resolution through ConfigKit before handoff; runtime
|
||||
consumers treat null selections as empty without restoring defaults. Follow its
|
||||
[Audita preflight boundary](glossary-stages.md#empty-collections-and-audita-preflight--resolved):
|
||||
permit empty collection configuration and check glossary-stage readiness in
|
||||
Audita after handoff, before execution.
|
||||
Apply its [optional stage identity and attribution contract](glossary-stages.md#stage-identity-and-attribution--resolved)
|
||||
and complete its required durable decision record. This application scope model
|
||||
does not change native source composition or sibling-inheritance semantics.
|
||||
The application uses the `go.maximumdirect.net/configkit` module and native
|
||||
recorded resolution, discovery, source diagnostics, and safe effective output.
|
||||
Source composition and inheritance precede typed decoding and explicit CLI
|
||||
assignment; application resolution and validation follow. CLI assignments do
|
||||
not repair earlier decoding failures, change inheritance relationships, or
|
||||
propagate parent edits through resolved children. Native source provenance uses
|
||||
`main` in place of `base`. Genuine source-root controls use `config:`.
|
||||
|
||||
PromptKit [owns backend and credential resources](promptkit.md#backend-and-credential-ownership--resolved).
|
||||
Audita's v3 schema has no separate backend or LLM credential registry. Native
|
||||
[automatic resource sources](promptkit.md#automatic-prompt-sources--resolved)
|
||||
remain independent of main application-file discovery.
|
||||
|
||||
The v3 schema includes the glossary roadmap's [scope and inheritance model](glossary-stages.md#configuration-scope--resolved),
|
||||
[typed handoff](glossary-stages.md#list-inputs-and-configuration-handoff--resolved),
|
||||
and [optional stage identity](glossary-stages.md#stage-identity-and-attribution--resolved).
|
||||
Glossary definitions use native composition, [default underlay sources](glossary-stages.md#default-sources-and-explicit-configuration--resolved),
|
||||
and [collection-scoped identity](glossary-stages.md#entry-identity--resolved).
|
||||
Pipeline stages remain an ordinary ordered list, including repetitions and
|
||||
explicit empty-pipeline behavior. The application supplies domain resolution
|
||||
rules within the native lifecycle, with no second runtime defaulting pass.
|
||||
|
||||
## Documentation and Acceptance
|
||||
|
||||
|
||||
Reference in New Issue
Block a user