7.1 KiB
Deferred work
Status: retained future work and unselected proposals; no implementation schedule.
Purpose and authority
Completed initial delivery, performance, ReleaseKit upgrade, and remediation records have been retired. This document preserves remaining deferred capabilities and unselected ideas under the release policy. The original records remain available in Git history.
Accepted ADRs and the architecture policy govern any future implementation. The CLI reference, public GoDoc, and consumer guide own implemented behavior. Retaining an idea here does not select its syntax, API, priority, or delivery date.
Deferred capability targets
Comparison extensions
Independent per-side domain selectors and an optional assertion mode remain unselected extensions to the delivered ConfigKit comparison. Consider them only for a concrete consumer need and a deliberate API/behavior decision under the relevant ADRs.
Configuration inspection extensions
The ConfigKit v1.1.0 adoption review recommends the following work after dependency and source-report adoption. Metadata inspection is the recommended next functional sprint; the other features have no selected sequence or delivery date. These proposals do not establish command grammar, report schemas, or new provider requirements. ConfigKit's public APIs own the evidence and its semantics.
- Optional field metadata, path discovery, and history (OD-3). Expose native
Metadata.Lookup,IsExplicit,HistoricalPaths, andHistorythrough an optional provider capability. Design field and history reports together, keeping existing providers usable. Distinguish effective paths from removed historical paths: a failedLookupmust not suppress availableHistory. Validate that distinction and faithful projection of returned field/change records without recreating upstream provenance logic. Historical enumeration is not an exhaustive inventory of possible schema fields. This gives the earlier field-origin inventory proposal a concrete, upstream-backed scope; command names, selectors, and report shapes remain to be designed. - Failed-load source inventory (OD-4). Present acquired source evidence from
LoadError.Sources()while retaining the failed outcome and diagnostics. Design how an adapter returns its source facet on error and how result output precedes terminal failure presentation. Cover acquisition and report-delivery failures together; current diagnostic context remains available meanwhile. - Detailed comparison (OD-5). Consider an additional form projecting native
Differencepaths, both snapshots, presence/redaction fields, andHiddenChanged. The adoption sprint retains the reduced additions/changes/deletions report. Decide later whether a detailed form complements it or replaces it through a deliberate compatibility change. - Structured diagnostics (OD-6). Consider machine-readable native codes, paths, severities, and locations alongside CommandKit's shared reporting design. Define result/diagnostic channels, warning and terminal-failure interaction, and delivery outcomes. A ckconfig-specific report remains an alternative, with its cross-family alignment considered explicitly.
- Source-ID filtering. Consider selecting a record already available in the
source inventory. Native
Source(id)lookup is a convenience; this proposal need not introduce another command or require a lookup method from every custom source provider.
Discovery, import defaults, collection identities, and field-level resolution recording remain available through application loaders. Standard inspection of resource contexts or secrets-directory bootstrap has no immediate proposal; those capabilities primarily serve application loading and startup.
Alias completion and discovery
The delivered shell completion feature provides
canonical suggestions and alias-aware interpretation. Potential future work
includes suggesting command and flag alias spellings and valid continuations of
alias-only prefixes. For example, completion could suggest inspect after
app legacy when legacy inspect is an installed alias.
Alias discovery is outside the initial scope. This deferral does not establish a permanent canonical-only completion contract or prohibit future alias discovery. A later design should determine how alias suggestions are presented alongside canonical suggestions while ensuring inserted continuations form valid next steps. No delivery date or final API is selected here.
Other deferred proposals
These capabilities remain outside the delivered scope and require a concrete operator or consumer need and an appropriate ownership/behavior decision:
- JSON reports and output-file management or reloadable export.
- Shell completion extensions, including alias discovery described above and dynamic discovery of configured or remote values.
- Configuration mutation and generic value assignment. Field metadata and provenance inspection are scoped under configuration inspection extensions.
- Credential diagnostics beyond PromptKit's native smoke checks and additional live provider probes.
- Additional component identity registration and domain artifact catalogs.
- Additional library families, including possible FeedKit integration; families can define suitable verbs without requiring comparison or configuration scopes.
- Backend selection or replacement, a plugin framework, general dependency injection, and concurrent-dispatch guarantees.
Execution, rendering, serving, and session operations remain application-owned. Shared vocabulary is guidance under ADR 0006. Backend replacement remains possible behind the accepted facade, subject to the published API/CLI contracts and deliberate compatibility decisions.
Possible further efficiency work
Selected-scope memoization and selector-membership indexes were deferred pending measurements that justify their bookkeeping. Mutable backend reuse across invocations, segmented aggregate YAML delivery, provider caching, consumer-loader redesign, and a replacement backend were outside the completed performance target. Reconsider them only with concrete motivation and review of ownership, invocation state, native reports, and the affected contracts. Retained measurement records are historical evidence, not performance guarantees or release gates.
Consumer adoption
Consumer migrations remain separate from library delivery. Applications can replace duplicated standard handlers and routing, then update their CLI docs and subprocess consumers for intentional changes while retaining domain commands. No migration order or claim about individual applications' adoption is recorded here; the consumer guide and maintained examples provide integration guidance.