Mark the upgrade roadmap as implemented

This commit is contained in:
2026-10-18 13:32:56 +00:00
parent 114c7da7be
commit a6278a6d9f
2 changed files with 80 additions and 58 deletions

View File

@@ -1,6 +1,6 @@
# Dependency upgrade and PromptKit smoke review remediation
Status: in progress; R-1 through R-3 complete; R-4 remains open.
Status: complete; R-1 through R-4 addressed.
## Review scope and evidence
@@ -177,7 +177,7 @@ resolution. Production code is unchanged.
## R-4: Reconcile the feature roadmap with completed implementation
Status: open. Priority: P3. Category: stale implementation status.
Status: complete. Priority: P3. Category: stale implementation status.
**Location:** [upgrades.md](upgrades.md), status at lines 3–6,
current-implementation descriptions at lines 28–29 and 41–44, and the source
@@ -203,3 +203,11 @@ remediations remain open.
**Completion evidence:** The roadmap and implementation plan agree on delivery
status, current-code claims match the inspected implementation, and local
links/Markdown whitespace checks pass. No code or policy change is required.
**Completed:** 2026-10-18. Recorded implementation completion and linked the
completed plan, review follow-up, and current CLI/consumer/GoDoc owners. Marked
the original dependency/capability descriptions as historical and corrected the
source-report and ID-only API descriptions to match delivered code. Preserved
the original baseline and accepted decisions unchanged. Local links/fragments,
inbound roadmap anchors, status/baseline consistency, and Markdown whitespace
checks passed. No code or policy change was needed for this issue.

View File

@@ -1,9 +1,10 @@
# ConfigKit, PromptKit, and ReleaseKit adoption
Status: adoption roadmap; implementation has not started. The release targets,
adoption order, and OD-1 through OD-4 are accepted. Smoke testing is included
in the current scope. This document defines the desired end state and required
work; the [implementation plan](implementation.md) sequences coding tasks.
Status: implementation complete, including all three dependency upgrades and
smoke testing. The [implementation plan](implementation.md) records completion
of Stages 1–18; [remediation.md](remediation.md) records focused review follow-up
and its completion evidence. The following sections preserve the accepted target
and original migration intent.
## Purpose and authority
@@ -25,28 +26,35 @@ parallel semantic model or normalization layer.
The [architecture policy](../policy/architecture.md), accepted [ADRs](../adr/),
and [release policy](../policy/release.md) govern this work. Upstream contract
changes flow through the owning integration; they do not justify reimplementing
removed behavior in CommandKit. The existing API and CLI references describe the
current implementation until these changes land.
removed behavior in CommandKit. The [CLI reference](../cli.md),
[consumer guide](../consumers/guide.md), [ckconfig GoDoc](../../integrations/ckconfig/doc.go),
and [ckprompt GoDoc](../../integrations/ckprompt/doc.go) own implemented usage
and contracts. The completed implementation plan records delivery evidence.
## Baseline and reviewed releases
## Planning baseline and reviewed releases
The CommandKit baseline is `5f633e3feea71f623e5e378a7df476ff7e811e5e`.
The original adoption review used CommandKit baseline
`5f633e3feea71f623e5e378a7df476ff7e811e5e`; the implementation plan began at
`38b49f29fb3a8f22ff02528d2a0ed413e5c6ab1e`. This section records the historical
starting point and reviewed releases, rather than current dependency metadata.
| Dependency | Current baseline | Target | Owning CommandKit area |
| Dependency | Planning baseline | Adopted release | Owning CommandKit area |
| --- | --- | --- | --- |
| ReleaseKit | Root tool requirement v0.4.0; integration graphs currently select v0.4.1 | v0.4.2 | Root tool pin, launcher integration, release documentation, and notices |
| ReleaseKit | Root tool requirement v0.4.0; integration graphs selected v0.4.1 | v0.4.2 | Root tool pin, launcher integration, release documentation, and notices |
| ConfigKit | v0.7.1 in both integrations | v0.8.0 | ckconfig adaptation and reports; ckprompt's direct dependency |
| PromptKit | v0.15.0 | v0.16.0 | ckprompt adapters, standard commands, reports, and composed consumer |
The root module owns generic commands, dispatch, bindings, help/version, and
outcomes. ckconfig owns the configuration family. ckprompt currently supplies
prompt/profile catalogs, named inspection, requirements discovery, and concrete
request validation; its engine configuration scope is composed through ckconfig.
At that baseline, the root module owned generic commands, dispatch, bindings,
help/version, and outcomes. ckconfig owned the configuration family. ckprompt
supplied prompt/profile catalogs, named inspection, requirements discovery, and
concrete request validation; its engine configuration scope was composed through
ckconfig. Current capabilities are documented in the
[consumer guide](../consumers/guide.md#promptkit-configuration-definitions-and-requirements).
The completed requirements roadmap and remediation record, together with their
The completed [requirements roadmap](promptkit-validation.md),
[original implementation plan](https://gitea.maximumdirect.net/eric/CommandKit/src/commit/38b49f29fb3a8f22ff02528d2a0ed413e5c6ab1e/docs/roadmap/implementation.md),
remain historical evidence for the delivered baseline. This roadmap describes
new work and does not restart those completed assignments.
and [preceding remediation record](https://gitea.maximumdirect.net/eric/CommandKit/src/commit/730f930b47c929fb2c59a25a75cbe2924dfc75bb/docs/roadmap/remediation.md)
remain historical evidence for the pre-upgrade baseline.
Reviewed upstream references:
@@ -56,22 +64,21 @@ Reviewed upstream references:
| ConfigKit v0.8.0 | `137769f3f18a370c68444242fb5d88e620e307e5` | [Release notes](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/docs/releases/v0.8.0.md) |
| PromptKit v0.16.0 | `9178f3eb91c2b2138caa78e22be93c048b4bc992` | [Release notes](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/releases/v0.16.0.md) |
All three releases retain Go 1.26.0 as their consumer minimum. The adoption does
not require changing CommandKit's Go minimum or selected release toolchain.
All three releases retain Go 1.26.0 as their consumer minimum. The adoption
preserved CommandKit's Go minimum and selected release toolchain.
## Dependency and delivery boundaries
The target includes all three upgrades, richer configuration source inspection,
expanded PromptKit discovery, and explicitly invoked smoke testing. The
[implementation plan](implementation.md) owns coding order and stage boundaries.
These changes can be delivered in one coordinated sprint without separately
releasable intermediate commits.
Delivery includes all three upgrades, richer configuration source inspection,
expanded PromptKit discovery, and explicitly invoked smoke testing. The completed
[implementation plan](implementation.md) records coding order and stage
boundaries for the coordinated sprint.
ReleaseKit has no runtime ordering dependency on the other two. ConfigKit must
be adopted before, or atomically with, PromptKit: Go module selection would
otherwise introduce v0.8.0 transitively while ckconfig still declares v0.7.1.
Keep both integrations' direct ConfigKit requirements aligned with the adopted
version and verify their independent module graphs.
ReleaseKit has no runtime ordering dependency on the other two. During adoption,
ConfigKit was the prerequisite for PromptKit v0.16.0: upgrading PromptKit first
would have selected ConfigKit v0.8.0 transitively while ckconfig still declared
v0.7.1. Both integrations now declare ConfigKit v0.8.0 directly, preserving
alignment across their independent module graphs.
Publication remains source-only and follows the existing
[core, ckconfig, ckprompt dependency order](../release.md#scope-and-release-order)
@@ -93,11 +100,11 @@ tag IDs are resolved to commits before verification and delivery. CommandKit
has no copied Woodpecker delivery workflow and publishes no hosted deliverables,
so adopting this patch does not require adding either.
Required work includes the root requirement/checksums, selected-graph notices,
The adoption updated the root requirement/checksums, selected-graph notices,
the version named in the release policy, and version/commit references in the
maintainer release procedure. Review the launcher and release integration against
the unchanged CLI/profile contracts; a script/profile redesign is not expected.
The ignored `.releasekit/` directory remains local bootstrap storage.
maintainer release procedure. The launcher and release integration retain the
supported CLI/profile contracts. The ignored `.releasekit/` directory remains
local bootstrap storage.
If a delivery workflow is introduced later, start from the corrected maintained
example: changing a module pin does not update copied YAML. This adoption does
@@ -119,11 +126,12 @@ composition. Existing ConfigKit defaults preserve prior loading behavior.
### Source inspection
Extend `config sources` in text and YAML with useful native destination,
placement, unresolved-destination, and source-version declaration evidence.
The current [source DTO](../../integrations/ckconfig/sources.go) omits all four.
Preserve its existing source fields and native inventory order. The accepted
representation is recorded in OD-1.
`config sources` now exposes native destination, placement,
unresolved-destination, and source-version declaration evidence in text and YAML.
The [source DTO](../../integrations/ckconfig/sources.go) includes all four while
preserving the original source fields and native inventory order. OD-1 records
the accepted intent; the [CLI source-report contract](../cli.md#list-configuration-sources)
owns the implemented representation.
Project the native fields and their values directly into the report, including
`version_check` corresponding to `SourceInfo.VersionCheck`. Use ConfigKit's
@@ -135,11 +143,12 @@ the new SourceInfo fields do not require adding a source inventory to every
explanation. Compact diagnostic source legends can continue identifying sources
by ID, label, and filesystem path.
### Required adaptation
### Completed adaptation
Update both dependency graphs, owning notices, native fixtures, and affected
consumer guidance. Review unkeyed literals and any equality/map-key assumptions:
ConfigKit's expanded `SourceInfo` contains a `Path` and is no longer comparable.
Both dependency graphs, owning notices, native fixtures, and affected consumer
guidance were updated. The compatibility review accounted for unkeyed literals
and equality/map-key assumptions: ConfigKit's expanded `SourceInfo` contains a
`Path` and is no longer comparable.
Its [release notes](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/docs/releases/v0.8.0.md)
describe this source-compatibility change. The existing provider model need not
be redesigned merely to adopt these additions.
@@ -148,16 +157,17 @@ be redesigned merely to adopt these additions.
### ID-based prompt selection and descriptive labels
ckprompt uses native ID-only prompt selection. Remove the prompt-specific
`--version` flag from named prompt inspection, requirements show, and requirements
validate. Remove `PromptRequest.Version` and obsolete version-selector plumbing;
use `InspectPrompt(ctx, promptID)` and the revised native request types.
ckprompt uses native ID-only prompt selection. The prompt-specific `--version`
flag was removed from named prompt inspection, requirements show, and requirements
validate, together with `PromptRequest.Version` and obsolete selector plumbing.
The adapter uses `InspectPrompt(ctx, promptID)` and the revised native request
types.
Application version reporting remains governed by its existing identity contract.
Version labels remain useful metadata. Update inspection/catalog report DTOs for
the native optional representation. Use `version` for a prompt or collection's
reported version, omit the field when absent, and retain `""` when explicitly
empty, as accepted in OD-2. Selection continues to use the native ID-only API.
Version labels remain useful metadata. Inspection/catalog report DTOs use the
native optional representation: `version` for a prompt or collection's reported
version, omitted when absent and retained as `""` when explicitly empty, as
accepted in OD-2. Selection continues to use the native ID-only API.
The standard requirements operations continue delegating discovery and concrete
preparation to PromptKit. Partial discovery remains a successful inspection;
@@ -167,9 +177,10 @@ delivery behavior apply through the revised API.
### Explicit configuration and collections
Replace version-keyed prompt fixtures with one definition per prompt ID. Where
an application formerly supplied multiple definitions under one ID, it chooses
which definition to install or gives distinct resources distinct IDs.
The native fixtures and composed consumer now use one direct definition per
prompt ID. Where an application formerly supplied multiple definitions under
one ID, it chooses which definition to install or gives distinct resources
distinct IDs.
PromptKit's optional resource labels do not make that deployment choice.
Treat a root configuration `version` as the upstream source specification
@@ -411,10 +422,13 @@ appropriately versioned future module release. New source-report fields and
catalog and smoke capabilities also need accurate CLI/API release notes. This
roadmap does not require a CommandKit version to mirror any upstream version.
### Evidence for the eventual implementation
### Implementation evidence and testing boundary
The implementation plan should test CommandKit-owned interfaces and adaptation
under the [upstream testing ownership policy](../policy/testing.md#upstream-integration-testing-ownership).
The [completed implementation plan](implementation.md#stage-18-verify-the-complete-target-and-finish)
records the delivered target and its workspace/independent-graph validation.
The [remediation record](remediation.md) tracks the focused follow-up review.
Testing remains directed to CommandKit-owned interfaces and adaptation under the
[upstream testing ownership policy](../policy/testing.md#upstream-integration-testing-ownership).
Verify that command inputs and context reach the intended native APIs, including
ID-only prompt requests, default/explicit listing filters, and smoke requests.
Verify faithful representation of upstream-returned source evidence, optional