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 # 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 ## Review scope and evidence
@@ -177,7 +177,7 @@ resolution. Production code is unchanged.
## R-4: Reconcile the feature roadmap with completed implementation ## 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, **Location:** [upgrades.md](upgrades.md), status at lines 3–6,
current-implementation descriptions at lines 28–29 and 41–44, and the source 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 **Completion evidence:** The roadmap and implementation plan agree on delivery
status, current-code claims match the inspected implementation, and local status, current-code claims match the inspected implementation, and local
links/Markdown whitespace checks pass. No code or policy change is required. 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 # ConfigKit, PromptKit, and ReleaseKit adoption
Status: adoption roadmap; implementation has not started. The release targets, Status: implementation complete, including all three dependency upgrades and
adoption order, and OD-1 through OD-4 are accepted. Smoke testing is included smoke testing. The [implementation plan](implementation.md) records completion
in the current scope. This document defines the desired end state and required of Stages 1–18; [remediation.md](remediation.md) records focused review follow-up
work; the [implementation plan](implementation.md) sequences coding tasks. and its completion evidence. The following sections preserve the accepted target
and original migration intent.
## Purpose and authority ## Purpose and authority
@@ -25,28 +26,35 @@ parallel semantic model or normalization layer.
The [architecture policy](../policy/architecture.md), accepted [ADRs](../adr/), The [architecture policy](../policy/architecture.md), accepted [ADRs](../adr/),
and [release policy](../policy/release.md) govern this work. Upstream contract and [release policy](../policy/release.md) govern this work. Upstream contract
changes flow through the owning integration; they do not justify reimplementing changes flow through the owning integration; they do not justify reimplementing
removed behavior in CommandKit. The existing API and CLI references describe the removed behavior in CommandKit. The [CLI reference](../cli.md),
current implementation until these changes land. [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 | | 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 | | 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 At that baseline, the root module owned generic commands, dispatch, bindings,
outcomes. ckconfig owns the configuration family. ckprompt currently supplies help/version, and outcomes. ckconfig owned the configuration family. ckprompt
prompt/profile catalogs, named inspection, requirements discovery, and concrete supplied prompt/profile catalogs, named inspection, requirements discovery, and
request validation; its engine configuration scope is composed through ckconfig. 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), [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 and [preceding remediation record](https://gitea.maximumdirect.net/eric/CommandKit/src/commit/730f930b47c929fb2c59a25a75cbe2924dfc75bb/docs/roadmap/remediation.md)
new work and does not restart those completed assignments. remain historical evidence for the pre-upgrade baseline.
Reviewed upstream references: 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) | | 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) | | 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 All three releases retain Go 1.26.0 as their consumer minimum. The adoption
not require changing CommandKit's Go minimum or selected release toolchain. preserved CommandKit's Go minimum and selected release toolchain.
## Dependency and delivery boundaries ## Dependency and delivery boundaries
The target includes all three upgrades, richer configuration source inspection, Delivery includes all three upgrades, richer configuration source inspection,
expanded PromptKit discovery, and explicitly invoked smoke testing. The expanded PromptKit discovery, and explicitly invoked smoke testing. The completed
[implementation plan](implementation.md) owns coding order and stage boundaries. [implementation plan](implementation.md) records coding order and stage
These changes can be delivered in one coordinated sprint without separately boundaries for the coordinated sprint.
releasable intermediate commits.
ReleaseKit has no runtime ordering dependency on the other two. ConfigKit must ReleaseKit has no runtime ordering dependency on the other two. During adoption,
be adopted before, or atomically with, PromptKit: Go module selection would ConfigKit was the prerequisite for PromptKit v0.16.0: upgrading PromptKit first
otherwise introduce v0.8.0 transitively while ckconfig still declares v0.7.1. would have selected ConfigKit v0.8.0 transitively while ckconfig still declared
Keep both integrations' direct ConfigKit requirements aligned with the adopted v0.7.1. Both integrations now declare ConfigKit v0.8.0 directly, preserving
version and verify their independent module graphs. alignment across their independent module graphs.
Publication remains source-only and follows the existing Publication remains source-only and follows the existing
[core, ckconfig, ckprompt dependency order](../release.md#scope-and-release-order) [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, has no copied Woodpecker delivery workflow and publishes no hosted deliverables,
so adopting this patch does not require adding either. 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 the version named in the release policy, and version/commit references in the
maintainer release procedure. Review the launcher and release integration against maintainer release procedure. The launcher and release integration retain the
the unchanged CLI/profile contracts; a script/profile redesign is not expected. supported CLI/profile contracts. The ignored `.releasekit/` directory remains
The ignored `.releasekit/` directory remains local bootstrap storage. local bootstrap storage.
If a delivery workflow is introduced later, start from the corrected maintained 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 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 ### Source inspection
Extend `config sources` in text and YAML with useful native destination, `config sources` now exposes native destination, placement,
placement, unresolved-destination, and source-version declaration evidence. unresolved-destination, and source-version declaration evidence in text and YAML.
The current [source DTO](../../integrations/ckconfig/sources.go) omits all four. The [source DTO](../../integrations/ckconfig/sources.go) includes all four while
Preserve its existing source fields and native inventory order. The accepted preserving the original source fields and native inventory order. OD-1 records
representation is recorded in OD-1. 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 Project the native fields and their values directly into the report, including
`version_check` corresponding to `SourceInfo.VersionCheck`. Use ConfigKit's `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 explanation. Compact diagnostic source legends can continue identifying sources
by ID, label, and filesystem path. by ID, label, and filesystem path.
### Required adaptation ### Completed adaptation
Update both dependency graphs, owning notices, native fixtures, and affected Both dependency graphs, owning notices, native fixtures, and affected consumer
consumer guidance. Review unkeyed literals and any equality/map-key assumptions: guidance were updated. The compatibility review accounted for unkeyed literals
ConfigKit's expanded `SourceInfo` contains a `Path` and is no longer comparable. 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) 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 describe this source-compatibility change. The existing provider model need not
be redesigned merely to adopt these additions. 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 ### ID-based prompt selection and descriptive labels
ckprompt uses native ID-only prompt selection. Remove the prompt-specific ckprompt uses native ID-only prompt selection. The prompt-specific `--version`
`--version` flag from named prompt inspection, requirements show, and requirements flag was removed from named prompt inspection, requirements show, and requirements
validate. Remove `PromptRequest.Version` and obsolete version-selector plumbing; validate, together with `PromptRequest.Version` and obsolete selector plumbing.
use `InspectPrompt(ctx, promptID)` and the revised native request types. The adapter uses `InspectPrompt(ctx, promptID)` and the revised native request
types.
Application version reporting remains governed by its existing identity contract. Application version reporting remains governed by its existing identity contract.
Version labels remain useful metadata. Update inspection/catalog report DTOs for Version labels remain useful metadata. Inspection/catalog report DTOs use the
the native optional representation. Use `version` for a prompt or collection's native optional representation: `version` for a prompt or collection's reported
reported version, omit the field when absent, and retain `""` when explicitly version, omitted when absent and retained as `""` when explicitly empty, as
empty, as accepted in OD-2. Selection continues to use the native ID-only API. accepted in OD-2. Selection continues to use the native ID-only API.
The standard requirements operations continue delegating discovery and concrete The standard requirements operations continue delegating discovery and concrete
preparation to PromptKit. Partial discovery remains a successful inspection; preparation to PromptKit. Partial discovery remains a successful inspection;
@@ -167,9 +177,10 @@ delivery behavior apply through the revised API.
### Explicit configuration and collections ### Explicit configuration and collections
Replace version-keyed prompt fixtures with one definition per prompt ID. Where The native fixtures and composed consumer now use one direct definition per
an application formerly supplied multiple definitions under one ID, it chooses prompt ID. Where an application formerly supplied multiple definitions under
which definition to install or gives distinct resources distinct IDs. 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. PromptKit's optional resource labels do not make that deployment choice.
Treat a root configuration `version` as the upstream source specification 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 catalog and smoke capabilities also need accurate CLI/API release notes. This
roadmap does not require a CommandKit version to mirror any upstream version. 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 The [completed implementation plan](implementation.md#stage-18-verify-the-complete-target-and-finish)
under the [upstream testing ownership policy](../policy/testing.md#upstream-integration-testing-ownership). 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 Verify that command inputs and context reach the intended native APIs, including
ID-only prompt requests, default/explicit listing filters, and smoke requests. ID-only prompt requests, default/explicit listing filters, and smoke requests.
Verify faithful representation of upstream-returned source evidence, optional Verify faithful representation of upstream-returned source evidence, optional