Files
commandkit/docs/roadmap/deferred.md

5.0 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 their unfinished capability targets and deferred 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

DIFF-01: semantic configuration comparison

Expose comparison of two independently resolved selections of one scope using owning-library safe snapshots. ADR 0008 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. 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 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. This cleanup does not select a release version or publish a release.