From e28ba63b59a0a9e8e8bdbe62b69e42a39a4fffcd Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Fri, 6 Nov 2026 01:03:55 +0000 Subject: [PATCH] Document PromptKit adoption and release candidate --- README.md | 3 +- docs/cli.md | 41 ++++++-------- docs/consumers/guide.md | 54 ++++++++++++++++--- docs/development.md | 18 ++++--- docs/release.md | 4 +- docs/roadmap/implementation.md | 4 +- integrations/ckprompt/README.md | 6 +-- integrations/ckprompt/adapters.go | 10 ++-- integrations/ckprompt/doc.go | 4 +- integrations/ckprompt/docs/oss/attribution.md | 25 +++------ integrations/ckprompt/docs/releases/v0.3.0.md | 34 ++++++++++++ .../ckprompt/examples/composed/README.md | 15 +++--- 12 files changed, 140 insertions(+), 78 deletions(-) create mode 100644 integrations/ckprompt/docs/releases/v0.3.0.md diff --git a/README.md b/README.md index c140ebc..2a0c1b4 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,8 @@ defines the shared visibility policy. Importing an integration does not install commands. The published ckconfig and ckprompt v0.2.0 modules use core v0.3.0. The published ckconfig v0.3.0 uses ConfigKit v1.1.0 and does not compose with -ckprompt v0.2.0; the published v0.2.0 pair remains matched. See the +ckprompt v0.2.0; the published v0.2.0 pair remains matched. Current ckprompt +source aligns with ckconfig v0.3.0; its v0.3.0 candidate is not yet published. See the [consumer guide](docs/consumers/guide.md#module-selection) for migration details. ## Examples diff --git a/docs/cli.md b/docs/cli.md index 45173bf..50a2adf 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -401,8 +401,7 @@ Text output begins with the scope heading and prints the same source fields, quoting labels and paths. These fields project the selected ConfigKit source records; CommandKit does not reload files or rerun version checks. See the [ConfigKit v1.1.0 source records](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/records.go) -for native evidence definitions. Ckprompt v0.2.0 uses -[ConfigKit v0.8.0](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/inspection.go). +for native evidence definitions. ### Explain a configuration path @@ -533,10 +532,9 @@ catalogs. Its loader receives invocation context, configuration selection, typed input, and shared state. Direct suite callbacks retain their own implementation and lifecycle. -Prompt inspection uses an ID only. PromptKit returns any descriptive version -metadata as an optional report field; there is no `--version` flag for selecting -a prompt version. The prompt format and native selection behavior remain owned by -[PromptKit v0.16.0](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/consumers/pkg-promptkit.md). +Prompt inspection uses an ID only. The prompt format and native selection +behavior remain owned by +[PromptKit v0.18.0](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/docs/consumers/pkg-promptkit.md). ```text example promptkit show prompt customer/summary --format yaml @@ -548,14 +546,11 @@ Both commands require one ID operand and accept `--config`, `--overlay`, and `--format text|yaml` (default `text`). These commands have no built-in `--scope` selection; their namespace is `promptkit`. -Prompt YAML preserves native input order and uses an optional `version` field. -The key is omitted when PromptKit returns no version and is retained when the -version is present, including an empty string. The prompt hash is an opaque +Prompt YAML preserves native input order. The prompt hash is an opaque owning-library equality value. ```yaml prompt_id: customer/summary -version: "2" prompt_hash: opaque-value default_profile_id: customer-support inputs: @@ -625,7 +620,7 @@ The `promptkit` namespace identifies the operation, so there is no built-in `--scope` flag. An explicitly empty profile or session value retains PromptKit's native empty-string meaning. Requirements inspection does not require a profile to be execution-ready. See the -[PromptKit v0.16.0 consumer guide](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/consumers/pkg-promptkit.md) +[PromptKit v0.18.0 consumer guide](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/docs/consumers/pkg-promptkit.md) for native configuration, selection, and requirements behavior. The built-in flags other than `--var` are singleton bindings; when repeated, the last value is used. Suite selectors retain their declared binding behavior. @@ -642,15 +637,13 @@ retained. Input metadata preserves null versus an empty string. Variable entries contain `name`, `kind`, `supplied`, and `explanation`. `supplied` reports native exact-key presence, including an explicitly empty value, independently of `kind` and `complete`. Explanations and issue descriptions are upstream-owned -human-readable summaries, not machine-readable details. The optional `version` -key is omitted when absent and retained when supplied by PromptKit. +human-readable summaries, not machine-readable details. For a prompt with the template `{{if .mode}}{{input "notes"}}{{end}}` and no input declarations, omitting `mode` can produce a partial report: ```yaml prompt_id: briefing -version: "2" profile_id: editorial complete: false inputs: @@ -733,7 +726,7 @@ configuration and credential checks. It does not make a model call or retain a prepared execution snapshot. A successful report describes this preparation invocation; it does not certify provider acceptance or guarantee later execution. See PromptKit's -[`Engine.ValidateRequest` API](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/engine.go). +[`Engine.ValidateRequest` API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/engine.go). Builder, engine-loading, and native validation errors use the operational path (status `1`) with supported error identity and acquired diagnostics retained. @@ -776,8 +769,7 @@ values are forwarded in order. Collections have no namespace or kind filter. Each operation writes one bare YAML sequence, retaining provider order and native identities: -- Prompt entries are `{id, version?}`. The optional `version` key is omitted - when absent and retained for a present empty or nonempty value. +- Prompt entries are `{id}`. - Profiles, backends, and namespaces are strings. - Collection entries are `{namespace, version?}`, where `version` projects PromptKit's optional release version. @@ -785,7 +777,6 @@ native identities: ```yaml - id: team/briefing - version: "2" ``` ```yaml @@ -796,7 +787,7 @@ native identities: A catalog result is an inventory, not a readiness check or execution result. The owning provider controls membership and order. Namespace filters are passed to PromptKit without local membership interpretation. See the -[PromptKit v0.16.0 consumer guide](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/consumers/pkg-promptkit.md) +[PromptKit v0.18.0 consumer guide](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/docs/consumers/pkg-promptkit.md) for native resource and selection definitions. ### PromptKit smoke testing @@ -845,7 +836,7 @@ A single report projects the native smoke report into YAML. It preserves native false, unknown/null, and incomplete values and does not add a readiness score. The report includes `kind`, `supported`, `applicable`, `completed`, `reason`, `target`, `facts`, `timing`, `attempts`, `usage`, and `failure`. Its target -contains selected IDs, optional `version`, selection source, endpoint, effective +contains selected IDs, selection source, endpoint, effective settings, and settings-presence flags. Attempt entries retain their own facts, timing, failure, and token-usage evidence. Durations use Go duration strings; token counts preserve `value`, `known`, and `complete`. @@ -859,14 +850,14 @@ applicable: null completed: true reason: http_diagnostics_unavailable target: - backend_id: "" + backend_id: local profile_id: spring prompt_id: briefing - version: "1" default_source_backend_id: "" selection_source: profile endpoint: https://example.invalid/v1 effective_settings: + backend_id: local endpoint: https://example.invalid/v1 model: spring-model temperature: 0 @@ -939,9 +930,9 @@ operation causes. Syntax, operand, unsupported format, and conflicting namespace selection are usage status `2`. Native configuration, selection, and diagnostic meanings remain owned by -PromptKit. See the [v0.16.0 consumer guide](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/consumers/pkg-promptkit.md), -[smoke API](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/smoke_diagnostics.go), -and [engine API](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/engine.go). +PromptKit. See the [v0.18.0 consumer guide](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/docs/consumers/pkg-promptkit.md), +[smoke API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/smoke_diagnostics.go), +and [engine API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/engine.go). ## Outcome status diff --git a/docs/consumers/guide.md b/docs/consumers/guide.md index a850d44..e16a526 100644 --- a/docs/consumers/guide.md +++ b/docs/consumers/guide.md @@ -24,6 +24,12 @@ paths have distinct Go type identities. Install core with `go get go.maximumdirect.net/ckconfig@v0.2.0` or `go get go.maximumdirect.net/ckprompt@v0.2.0`. +The current ckprompt source targets ckconfig v0.3.0, ConfigKit v1.1.0, and +PromptKit v0.18.0 using their `go.maximumdirect.net` identities. Its v0.3.0 +release is a candidate, not a published release. A Go 1.27.0 workspace may +compose all three local modules; independent tests with `GOWORK=off` exercise +the declared releases. + The two integrations are independent optional imports. `ckprompt` uses the public scope and error contracts from `ckconfig`; importing it does not add the `config` family. An application that wants both families passes both returned @@ -32,8 +38,8 @@ core-only, ConfigKit-only, and composed applications. ## Go compatibility -Core and ckprompt declare a consumer minimum of Go 1.26.0; ckconfig -v0.3.0 requires Go 1.27.0. The root module also +Core declares a consumer minimum of Go 1.26.0; both current integration +modules require Go 1.27.0. The root module also selects ReleaseKit v0.9.0 (`go.maximumdirect.net/releasekit`) as a Go tool, which makes that tool's module graph part of the root consumer module requirements even though production packages do not import ReleaseKit. The @@ -338,6 +344,40 @@ combines app and PromptKit config scopes, comparison and catalogs, named and requirements inspection, request validation, smoke testing, and an application-owned `session restore` command. +### Namespace views + +An application can return a scoped PromptKit view from its own engine loader: + +```go +func loadScopedEngine(ctx context.Context, selection ckconfig.Selection, input Input, state State) (*promptkit.Engine, error) { + engine, err := loadEngine(ctx, selection, input, state) + if err != nil { + return nil, err + } + return engine.WithNamespaces(promptkit.Namespaces{ + Prompt: "editorial", Profile: "team", Backend: "providers", + }) +} +``` + +These are independent defaults for unqualified caller-supplied prompt, profile, +and backend names; qualified IDs pass through. Stored references and configuration +inspection are unchanged, while namespace and collection inventories remain global. +Catalog `--namespace` filters are separate from these defaults. See the released +[namespace API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/namespaces.go). + +### PromptKit configuration migration + +The current integration uses identified resource lists and keeps PromptKit's +native default OpenRouter bundle. Loaders can opt out with +`promptkit.WithBundledOpenRouter(false)`. Catalogs and configuration reports +expose the supplied engine's inventory and native source evidence. The +[upstream migration guide](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/docs/consumers/configuration-migration.md) +covers list records, inheritance, source-root controls, and import requiredness. +Prompt catalog, prompt and requirements inspection, and smoke target reports no +longer carry descriptive prompt versions; collection release labels and source +version evidence retain their own meanings. + ## Outcomes and ownership Core classifies usage and operational failures while preserving application @@ -350,11 +390,11 @@ signal handling, and exit mapping; `Execute` never exits the process. Go declarations and GoDoc own exact exported contracts. ConfigKit owns configuration decoding, validation, and provenance. PromptKit owns prompt formats, profile resolution, and inspection details. See the -[ConfigKit v0.8.0 inspection API for ckprompt v0.2.0](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/inspection.go), -[PromptKit engine methods](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/engine.go), -[configuration inspection](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/configuration_inspection.go), -[smoke diagnostics](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/smoke_diagnostics.go), -and [PromptKit v0.16.0 consumer guidance](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/consumers/pkg-promptkit.md). +[ConfigKit v1.1.0 source records](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/records.go), +[PromptKit engine methods](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/engine.go), +[configuration inspection](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/configuration_inspection.go), +[smoke diagnostics](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/smoke_diagnostics.go), +and [PromptKit v0.18.0 consumer guidance](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/docs/consumers/pkg-promptkit.md). ## ConfigKit v1.1 migration diff --git a/docs/development.md b/docs/development.md index 8b9b82c..534b46f 100644 --- a/docs/development.md +++ b/docs/development.md @@ -101,12 +101,18 @@ evidence, not build dependencies. Implemented contracts belong in CommandKit under their canonical owners. The root module does not traverse nested modules. Preserve the ignored `go.work` -and `go.work.sum`; use `GOWORK=off GOTOOLCHAIN=local` for dependency preparation, -module suites, and examples during the ckconfig migration. Local ckprompt uses -the old ConfigKit identity and cannot compose with migrated local ckconfig. Its -independent suite and composed example use published ckconfig v0.2.0; restore -full local workspace guidance after the coordinated ckprompt migration. -Run `go test ./...` separately from each module directory. +and `go.work.sum`; use `GOWORK=off GOTOOLCHAIN=local` for dependency preparation +and independent module suites. With a Go 1.27.0 workspace containing all three modules, normal +workspace discovery also validates local composition. +Run `GOWORK=off GOTOOLCHAIN=local go test ./...` separately from each module +directory. From the repository root, a workspace containing all three modules can +also run: + +```sh +GOTOOLCHAIN=local go test ./... +GOTOOLCHAIN=local go test ./integrations/ckconfig/... +GOTOOLCHAIN=local go test ./integrations/ckprompt/... +``` Format changed Go files with `gofmt`. The [maintainer release procedure](release.md) owns candidate preparation and diff --git a/docs/release.md b/docs/release.md index 17611a2..8f445f8 100644 --- a/docs/release.md +++ b/docs/release.md @@ -35,8 +35,8 @@ module metadata. ## Release toolchain -The selected release toolchain is **Go 1.27.0**. Core and ckprompt declare a -consumer minimum of **Go 1.26.0**; ckconfig requires **Go 1.27.0**. Maintainers +The selected release toolchain is **Go 1.27.0**. Core declares a +consumer minimum of **Go 1.26.0**; both integrations require **Go 1.27.0**. Maintainers use Go 1.27.0 for dependency preparation, candidate validation, and ReleaseKit execution. The [consumer guide](consumers/guide.md#go-compatibility) and diff --git a/docs/roadmap/implementation.md b/docs/roadmap/implementation.md index fae5839..7b9646d 100644 --- a/docs/roadmap/implementation.md +++ b/docs/roadmap/implementation.md @@ -1,6 +1,6 @@ # PromptKit v0.18.0 implementation plan -Status: Stages 1–5 complete; Stages 6–7 remain. +Status: Stages 1–6 complete; Stage 7 remains. ## Authority and execution @@ -208,6 +208,8 @@ public types and native bundle. Its tests remain part of ckprompt's suite. ## Stage 6: Update current guidance, notices, and the candidate note +**Complete.** Current guidance, namespace loader wiring, dependency attribution, and the unpublished v0.3.0 candidate note are updated. Local Markdown destinations and fragments were checked. + 1. Update ckprompt GoDoc/README, root README where affected, `docs/cli.md`, `docs/consumers/guide.md`, and the composed example README to match Stage 2's reports and the selected dependency/configuration migration. Replace stale diff --git a/integrations/ckprompt/README.md b/integrations/ckprompt/README.md index 62d4e60..1629064 100644 --- a/integrations/ckprompt/README.md +++ b/integrations/ckprompt/README.md @@ -7,9 +7,9 @@ Importing it does not install either command family. ## Module -The module path is `go.maximumdirect.net/ckprompt`. Version v0.2.0 uses -`go.maximumdirect.net/commandkit v0.3.0`, `go.maximumdirect.net/ckconfig v0.2.0`, -and PromptKit v0.16.0. See the +The module path is `go.maximumdirect.net/ckprompt`. This source uses Go 1.27.0, +`go.maximumdirect.net/commandkit v0.3.0`, `go.maximumdirect.net/ckconfig v0.3.0`, +`go.maximumdirect.net/configkit v1.1.0`, and `go.maximumdirect.net/promptkit v0.18.0`. See the [consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#promptkit-configuration-and-definitions) for callback, input, state, and acquisition contracts. diff --git a/integrations/ckprompt/adapters.go b/integrations/ckprompt/adapters.go index a3e6a26..b5ba0f2 100644 --- a/integrations/ckprompt/adapters.go +++ b/integrations/ckprompt/adapters.go @@ -7,10 +7,10 @@ import ( "io" "strconv" - configkit "go.maximumdirect.net/configkit" - promptkit "go.maximumdirect.net/promptkit" "go.maximumdirect.net/ckconfig" commandkit "go.maximumdirect.net/commandkit" + configkit "go.maximumdirect.net/configkit" + promptkit "go.maximumdirect.net/promptkit" ) // PromptRequest selects one named prompt for inspection. @@ -56,9 +56,9 @@ type NamespaceRequest struct { type RequirementsRequest struct { // Selection carries the configuration and overlay values supplied to the command. Selection ckconfig.Selection - // Inspection forwards PromptKit's native prompt, version, profile, variable, - // and session discovery context. Optional version, profile, and session - // strings retain PromptKit's empty-value semantics. + // Inspection forwards PromptKit's native prompt, profile, variable, and session + // discovery context. Profile and session strings retain PromptKit's + // empty-value semantics. Inspection promptkit.RequirementInspectionRequest } diff --git a/integrations/ckprompt/doc.go b/integrations/ckprompt/doc.go index 59ea61e..3a6c242 100644 --- a/integrations/ckprompt/doc.go +++ b/integrations/ckprompt/doc.go @@ -7,5 +7,7 @@ // App.Register. Importing ckprompt installs neither family; callers compose its // declarations with core and ckconfig explicitly. Provider diagnostics remain // passive until the owning command submits them through the invocation -// reporter, separately from any terminal explanation. +// reporter, separately from any terminal explanation. This module uses +// PromptKit v0.18.0 and its native engine inventory, including configured +// bundled resources. package ckprompt diff --git a/integrations/ckprompt/docs/oss/attribution.md b/integrations/ckprompt/docs/oss/attribution.md index a80af87..7421c11 100644 --- a/integrations/ckprompt/docs/oss/attribution.md +++ b/integrations/ckprompt/docs/oss/attribution.md @@ -2,45 +2,32 @@ ## PromptKit -Selected module: `gitea.maximumdirect.net/eric/promptkit` at `v0.16.0`. +Selected module: `go.maximumdirect.net/promptkit` at `v0.18.0`. Copyright (C) 2026 Eric Rakestraw SPDX-License-Identifier: LGPL-3.0-or-later License and notices: [LGPL v3.0](../../LICENSE) | -[LICENSE](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/LICENSE). +[LICENSE](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/LICENSE). -[Source](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992). +[Source](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502). ## ConfigKit -Selected module: `gitea.maximumdirect.net/eric/ConfigKit` at `v0.8.0` (direct dependency). +Selected module: `go.maximumdirect.net/configkit` at `v1.1.0` (direct dependency). Copyright (C) 2026 Eric Rakestraw SPDX-License-Identifier: LGPL-3.0-or-later License and notices: [LGPL v3.0](../../LICENSE) | -[LICENSE](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/LICENSE). +[LICENSE](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/LICENSE). -[Source](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5). +[Source](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9). ## ReleaseKit -Selected module: `gitea.maximumdirect.net/eric/ReleaseKit` at `v0.4.1` (transitive Go tool requirement; not a runtime import). - -Copyright (C) 2026 Eric Rakestraw - -SPDX-License-Identifier: LGPL-3.0-or-later - -License and notices: [LGPL v3.0](../../LICENSE) | -[LICENSE](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/2d5a8110c61e31daf8698766114ae305d0e0e469/LICENSE). - -[Source](https://gitea.maximumdirect.net/eric/ReleaseKit/src/commit/2d5a8110c61e31daf8698766114ae305d0e0e469). - -## ReleaseKit (vanity module) - Selected module: `go.maximumdirect.net/releasekit` at `v0.9.0` (transitive Go tool requirement; not a runtime import). Copyright (C) 2026 Eric Rakestraw diff --git a/integrations/ckprompt/docs/releases/v0.3.0.md b/integrations/ckprompt/docs/releases/v0.3.0.md new file mode 100644 index 0000000..504e4f4 --- /dev/null +++ b/integrations/ckprompt/docs/releases/v0.3.0.md @@ -0,0 +1,34 @@ +# CommandKit ckprompt v0.3.0 + +## Summary + +This candidate adopts `go.maximumdirect.net/promptkit v0.18.0`, +`go.maximumdirect.net/configkit v1.1.0`, and +`go.maximumdirect.net/ckconfig v0.3.0`, while retaining `go.maximumdirect.net/commandkit v0.3.0`. It requires +Go 1.27.0. Existing configuration, catalog, inspection, validation, and smoke +operations continue to forward the selected engine's native results. + +## Migration + +Change PromptKit and ConfigKit imports to `go.maximumdirect.net/promptkit` and +`go.maximumdirect.net/configkit`. Update loaders and consumers together because +values from the old and new paths have distinct Go type identities. Migrate +PromptKit prompt, profile, and backend maps to lists with explicit IDs, and +update source builders, inheritance, import requiredness, and source-root +controls as needed. See the pinned [upstream migration guide](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/docs/consumers/configuration-migration.md). + +Prompt catalogs, prompt and requirements inspections, and smoke targets no +longer include descriptive prompt versions. Update report consumers accordingly; +collection release labels and source version evidence remain. Configuration +inspection now exposes native normalized values and source evidence, and +native comparisons treat lists atomically. + +PromptKit's default OpenRouter bundle supplies a backend and root profiles. +They appear in catalog and configuration reports when enabled. Applications +that need an application-only inventory may choose +`promptkit.WithBundledOpenRouter(false)` in their engine loader. Review smoke +selections and configure appropriate clients and HTTP probes for the application. + +[COPYRIGHT](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckprompt/v0.3.0/integrations/ckprompt/COPYRIGHT) | +[LICENSE](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckprompt/v0.3.0/integrations/ckprompt/LICENSE) | +[ATTRIBUTION](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckprompt/v0.3.0/integrations/ckprompt/docs/oss/attribution.md) diff --git a/integrations/ckprompt/examples/composed/README.md b/integrations/ckprompt/examples/composed/README.md index 41fbc99..3696aec 100644 --- a/integrations/ckprompt/examples/composed/README.md +++ b/integrations/ckprompt/examples/composed/README.md @@ -1,8 +1,7 @@ # Composed consumer -This example uses `go.maximumdirect.net/commandkit v0.3.0`, -`go.maximumdirect.net/ckconfig v0.2.0`, and -`go.maximumdirect.net/ckprompt v0.2.0`. +This example is part of the ckprompt module and uses core v0.3.0, ckconfig +v0.3.0, ConfigKit v1.1.0, and PromptKit v0.18.0. It requires Go 1.27.0. This example composes application configuration, PromptKit configuration, PromptKit comparison and catalogs, definition and requirements inspection, and @@ -72,12 +71,12 @@ and the suites' GoDoc for initialization timing and ownership. The application-scope comparison reports the changed default campaign and the updated `campaigns.spring.model`. The PromptKit-scope comparison selects spring -on both sides and reports the native engine change under the spring profile. +on both sides and reports the native engine change in the atomic profiles list. The application input check requires `--limit=0` when `--campaign` is supplied. Catalogs use the same selection-aware loader: the prompt catalog includes -`briefing` version `1`, and the profile catalog includes the selected `autumn` -profile. Prompt inspection uses an ID only; its optional version is descriptive -metadata in the report, not a selector. The synthetic `field-notes` collection +`briefing`, and the profile catalog includes the selected `autumn` profile. +Prompt inspection uses an ID only. The default PromptKit bundle also contributes +profiles and a backend to the engine inventory and source reports. The synthetic `field-notes` collection provides one backend, profile, and prompt for collection discovery and native namespace filtering. The example's shared run cache keys successful results by the complete supplied configuration/overlay selection and the supplied @@ -103,7 +102,7 @@ The example injects a small in-memory `promptkit.LLMClient` through its shared run state. Catalog, inspection, and requirements commands do not call it; inference smoke commands do. No model service or credentials are required. Native HTTP checks may retain unsupported or not-applicable observations because -the example does not configure a network probe. An aggregate smoke command can +the selected local backend does not configure a network probe. An aggregate smoke command can return an operational outcome for a native diagnostic while still delivering the complete aggregate report.