From a6278a6d9f940948ec7745955d745523aaff0734 Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Sun, 18 Oct 2026 13:32:56 +0000 Subject: [PATCH] Mark the upgrade roadmap as implemented --- docs/roadmap/remediation.md | 12 +++- docs/roadmap/upgrades.md | 126 ++++++++++++++++++++---------------- 2 files changed, 80 insertions(+), 58 deletions(-) diff --git a/docs/roadmap/remediation.md b/docs/roadmap/remediation.md index 1b79bdc..d5296c8 100644 --- a/docs/roadmap/remediation.md +++ b/docs/roadmap/remediation.md @@ -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. diff --git a/docs/roadmap/upgrades.md b/docs/roadmap/upgrades.md index 74cb484..90063e4 100644 --- a/docs/roadmap/upgrades.md +++ b/docs/roadmap/upgrades.md @@ -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