Retire completed roadmaps and preserve deferred work
This commit is contained in:
94
docs/roadmap/deferred.md
Normal file
94
docs/roadmap/deferred.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# 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 their unfinished capability
|
||||
targets and deferred ideas under the
|
||||
[release policy](../policy/release.md#release-documentation-and-preparation).
|
||||
The original records remain available in
|
||||
[Git history](https://gitea.maximumdirect.net/eric/CommandKit/src/commit/6bc37e7ba64ca0920b4d0cc77039a18d4006b24e/docs/roadmap).
|
||||
|
||||
Accepted [ADRs](../adr/) and the [architecture policy](../policy/architecture.md)
|
||||
govern any future implementation. The [CLI reference](../cli.md), public GoDoc,
|
||||
and [consumer guide](../consumers/guide.md) own implemented behavior. Retaining
|
||||
an idea here does not select its syntax, API, priority, or delivery date.
|
||||
|
||||
## Deferred capability targets
|
||||
|
||||
### DIFF-01: semantic configuration comparison
|
||||
|
||||
Expose comparison of two independently resolved selections of one scope using
|
||||
owning-library safe snapshots. [ADR 0008](../adr/0008-semantic-configuration-diff.md)
|
||||
owns the accepted comparison semantics, sensitivity union, and coverage-gap
|
||||
handling. The target includes text/YAML reports of differences and gaps;
|
||||
completed comparisons can succeed even when they find either.
|
||||
|
||||
The initial review of ConfigKit v0.5.0 and PromptKit v0.12.0 did not find the
|
||||
complete public snapshot/sensitivity contract needed for that target. Reassess
|
||||
released upstream APIs when planning it; do not treat that historical review as
|
||||
a claim about newer versions. Hidden-path metadata and supported gap reasons
|
||||
must be available without fetching secrets. Rendered YAML and sibling internals
|
||||
are not substitutes for an agreed public comparison representation.
|
||||
|
||||
Comparison selection syntax, context inheritance, and report layout remain
|
||||
future design work. Earlier possibilities included right-side root/overlay
|
||||
selection, shared versus independent domain context, and an optional assertion
|
||||
mode. Those choices are unselected. Add public types and handlers when the
|
||||
capability is supported, rather than exposing placeholders.
|
||||
|
||||
### CAT-01: PromptKit catalogs
|
||||
|
||||
List captured prompt/version entries and named profiles through owning public
|
||||
catalog APIs, with deterministic reports of loaded definitions. Resource names,
|
||||
enumeration details, and report shapes remain future design work.
|
||||
|
||||
The initial PromptKit v0.12.0 review did not find public enumeration APIs.
|
||||
Reassess current released capabilities before planning delivery. Do not infer
|
||||
catalogs by reparsing configuration YAML or inspecting sibling internals.
|
||||
|
||||
## 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, shell completion, and output-file management or reloadable export.
|
||||
- Configuration mutation, generic value assignment, and exhaustive field-origin
|
||||
inventories.
|
||||
- Credential diagnostics and 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](../adr/0006-command-grammar.md).
|
||||
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 and release preparation
|
||||
|
||||
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](../consumers/guide.md) and maintained examples provide
|
||||
integration guidance.
|
||||
|
||||
The next CommandKit release note must explain the Go 1.26.0 minimum and the
|
||||
consumer action required by the ReleaseKit v0.3.0 upgrade. Version selection,
|
||||
matching notes, and publication follow the [maintainer procedure](../release.md).
|
||||
This cleanup does not select a release version or publish a release.
|
||||
Reference in New Issue
Block a user