Document PromptKit adoption and release candidate

This commit is contained in:
2026-11-06 01:03:55 +00:00
parent 7f327758d8
commit e28ba63b59
12 changed files with 140 additions and 78 deletions

View File

@@ -25,7 +25,8 @@ defines the shared visibility policy.
Importing an integration does not install commands. The published ckconfig and Importing an integration does not install commands. The published ckconfig and
ckprompt v0.2.0 modules use core v0.3.0. The published 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 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. [consumer guide](docs/consumers/guide.md#module-selection) for migration details.
## Examples ## Examples

View File

@@ -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 quoting labels and paths. These fields project the selected ConfigKit source
records; CommandKit does not reload files or rerun version checks. See the 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) [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 for native evidence definitions.
[ConfigKit v0.8.0](https://gitea.maximumdirect.net/eric/ConfigKit/src/commit/137769f3f18a370c68444242fb5d88e620e307e5/inspection.go).
### Explain a configuration path ### 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 typed input, and shared state. Direct suite callbacks retain their own
implementation and lifecycle. implementation and lifecycle.
Prompt inspection uses an ID only. PromptKit returns any descriptive version Prompt inspection uses an ID only. The prompt format and native selection
metadata as an optional report field; there is no `--version` flag for selecting behavior remain owned by
a prompt version. 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).
[PromptKit v0.16.0](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/consumers/pkg-promptkit.md).
```text ```text
example promptkit show prompt customer/summary --format yaml 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 `--format text|yaml` (default `text`). These commands have no built-in
`--scope` selection; their namespace is `promptkit`. `--scope` selection; their namespace is `promptkit`.
Prompt YAML preserves native input order and uses an optional `version` field. Prompt YAML preserves native input order. The prompt hash is an opaque
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
owning-library equality value. owning-library equality value.
```yaml ```yaml
prompt_id: customer/summary prompt_id: customer/summary
version: "2"
prompt_hash: opaque-value prompt_hash: opaque-value
default_profile_id: customer-support default_profile_id: customer-support
inputs: 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 `--scope` flag. An explicitly empty profile or session value retains PromptKit's
native empty-string meaning. Requirements inspection does not require a profile native empty-string meaning. Requirements inspection does not require a profile
to be execution-ready. See the 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 for native configuration, selection, and requirements behavior. The built-in
flags other than `--var` are singleton bindings; when repeated, the last value flags other than `--var` are singleton bindings; when repeated, the last value
is used. Suite selectors retain their declared binding behavior. 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 contain `name`, `kind`, `supplied`, and `explanation`. `supplied` reports native
exact-key presence, including an explicitly empty value, independently of exact-key presence, including an explicitly empty value, independently of
`kind` and `complete`. Explanations and issue descriptions are upstream-owned `kind` and `complete`. Explanations and issue descriptions are upstream-owned
human-readable summaries, not machine-readable details. The optional `version` human-readable summaries, not machine-readable details.
key is omitted when absent and retained when supplied by PromptKit.
For a prompt with the template `{{if .mode}}{{input "notes"}}{{end}}` and no For a prompt with the template `{{if .mode}}{{input "notes"}}{{end}}` and no
input declarations, omitting `mode` can produce a partial report: input declarations, omitting `mode` can produce a partial report:
```yaml ```yaml
prompt_id: briefing prompt_id: briefing
version: "2"
profile_id: editorial profile_id: editorial
complete: false complete: false
inputs: 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 prepared execution snapshot. A successful report describes this preparation
invocation; it does not certify provider acceptance or guarantee later invocation; it does not certify provider acceptance or guarantee later
execution. See PromptKit's 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 Builder, engine-loading, and native validation errors use the operational path
(status `1`) with supported error identity and acquired diagnostics retained. (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 Each operation writes one bare YAML sequence, retaining provider order and
native identities: native identities:
- Prompt entries are `{id, version?}`. The optional `version` key is omitted - Prompt entries are `{id}`.
when absent and retained for a present empty or nonempty value.
- Profiles, backends, and namespaces are strings. - Profiles, backends, and namespaces are strings.
- Collection entries are `{namespace, version?}`, where `version` projects - Collection entries are `{namespace, version?}`, where `version` projects
PromptKit's optional release version. PromptKit's optional release version.
@@ -785,7 +777,6 @@ native identities:
```yaml ```yaml
- id: team/briefing - id: team/briefing
version: "2"
``` ```
```yaml ```yaml
@@ -796,7 +787,7 @@ native identities:
A catalog result is an inventory, not a readiness check or execution result. A catalog result is an inventory, not a readiness check or execution result.
The owning provider controls membership and order. Namespace filters are passed The owning provider controls membership and order. Namespace filters are passed
to PromptKit without local membership interpretation. See the 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. for native resource and selection definitions.
### PromptKit smoke testing ### 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. false, unknown/null, and incomplete values and does not add a readiness score.
The report includes `kind`, `supported`, `applicable`, `completed`, `reason`, The report includes `kind`, `supported`, `applicable`, `completed`, `reason`,
`target`, `facts`, `timing`, `attempts`, `usage`, and `failure`. Its target `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, settings, and settings-presence flags. Attempt entries retain their own facts,
timing, failure, and token-usage evidence. Durations use Go duration strings; timing, failure, and token-usage evidence. Durations use Go duration strings;
token counts preserve `value`, `known`, and `complete`. token counts preserve `value`, `known`, and `complete`.
@@ -859,14 +850,14 @@ applicable: null
completed: true completed: true
reason: http_diagnostics_unavailable reason: http_diagnostics_unavailable
target: target:
backend_id: "" backend_id: local
profile_id: spring profile_id: spring
prompt_id: briefing prompt_id: briefing
version: "1"
default_source_backend_id: "" default_source_backend_id: ""
selection_source: profile selection_source: profile
endpoint: https://example.invalid/v1 endpoint: https://example.invalid/v1
effective_settings: effective_settings:
backend_id: local
endpoint: https://example.invalid/v1 endpoint: https://example.invalid/v1
model: spring-model model: spring-model
temperature: 0 temperature: 0
@@ -939,9 +930,9 @@ operation causes. Syntax, operand, unsupported format, and conflicting
namespace selection are usage status `2`. namespace selection are usage status `2`.
Native configuration, selection, and diagnostic meanings remain owned by 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), 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://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/smoke_diagnostics.go), [smoke API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/smoke_diagnostics.go),
and [engine API](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/engine.go). and [engine API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/engine.go).
## Outcome status ## Outcome status

View File

@@ -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/ckconfig@v0.2.0` or
`go get go.maximumdirect.net/ckprompt@v0.2.0`. `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 The two integrations are independent optional imports. `ckprompt` uses the
public scope and error contracts from `ckconfig`; importing it does not add 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 `config` family. An application that wants both families passes both returned
@@ -32,8 +38,8 @@ core-only, ConfigKit-only, and composed applications.
## Go compatibility ## Go compatibility
Core and ckprompt declare a consumer minimum of Go 1.26.0; ckconfig Core declares a consumer minimum of Go 1.26.0; both current integration
v0.3.0 requires Go 1.27.0. The root module also modules require Go 1.27.0. The root module also
selects ReleaseKit v0.9.0 (`go.maximumdirect.net/releasekit`) as a Go tool, which 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 makes that tool's module graph part of the root consumer module requirements
even though production packages do not import ReleaseKit. The 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 requirements inspection, request validation, smoke testing, and an
application-owned `session restore` command. 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 ## Outcomes and ownership
Core classifies usage and operational failures while preserving application 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 Go declarations and GoDoc own exact exported contracts. ConfigKit owns
configuration decoding, validation, and provenance. PromptKit owns prompt configuration decoding, validation, and provenance. PromptKit owns prompt
formats, profile resolution, and inspection details. See the 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), [ConfigKit v1.1.0 source records](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/records.go),
[PromptKit engine methods](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/engine.go), [PromptKit engine methods](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/engine.go),
[configuration inspection](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/configuration_inspection.go), [configuration inspection](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/configuration_inspection.go),
[smoke diagnostics](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/smoke_diagnostics.go), [smoke diagnostics](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/smoke_diagnostics.go),
and [PromptKit v0.16.0 consumer guidance](https://gitea.maximumdirect.net/eric/promptkit/src/commit/9178f3eb91c2b2138caa78e22be93c048b4bc992/docs/consumers/pkg-promptkit.md). 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 ## ConfigKit v1.1 migration

View File

@@ -101,12 +101,18 @@ evidence, not build dependencies. Implemented contracts belong in CommandKit
under their canonical owners. under their canonical owners.
The root module does not traverse nested modules. Preserve the ignored `go.work` 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, and `go.work.sum`; use `GOWORK=off GOTOOLCHAIN=local` for dependency preparation
module suites, and examples during the ckconfig migration. Local ckprompt uses and independent module suites. With a Go 1.27.0 workspace containing all three modules, normal
the old ConfigKit identity and cannot compose with migrated local ckconfig. Its workspace discovery also validates local composition.
independent suite and composed example use published ckconfig v0.2.0; restore Run `GOWORK=off GOTOOLCHAIN=local go test ./...` separately from each module
full local workspace guidance after the coordinated ckprompt migration. directory. From the repository root, a workspace containing all three modules can
Run `go test ./...` separately from each module directory. 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 Format changed Go files with `gofmt`. The
[maintainer release procedure](release.md) owns candidate preparation and [maintainer release procedure](release.md) owns candidate preparation and

View File

@@ -35,8 +35,8 @@ module metadata.
## Release toolchain ## Release toolchain
The selected release toolchain is **Go 1.27.0**. Core and ckprompt declare a The selected release toolchain is **Go 1.27.0**. Core declares a
consumer minimum of **Go 1.26.0**; ckconfig requires **Go 1.27.0**. Maintainers 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 use Go 1.27.0 for dependency preparation, candidate validation, and ReleaseKit
execution. The execution. The
[consumer guide](consumers/guide.md#go-compatibility) and [consumer guide](consumers/guide.md#go-compatibility) and

View File

@@ -1,6 +1,6 @@
# PromptKit v0.18.0 implementation plan # 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 ## 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 ## 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`, 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 `docs/consumers/guide.md`, and the composed example README to match Stage 2's
reports and the selected dependency/configuration migration. Replace stale reports and the selected dependency/configuration migration. Replace stale

View File

@@ -7,9 +7,9 @@ Importing it does not install either command family.
## Module ## Module
The module path is `go.maximumdirect.net/ckprompt`. Version v0.2.0 uses 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.2.0`, `go.maximumdirect.net/commandkit v0.3.0`, `go.maximumdirect.net/ckconfig v0.3.0`,
and PromptKit v0.16.0. See the `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) [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. for callback, input, state, and acquisition contracts.

View File

@@ -7,10 +7,10 @@ import (
"io" "io"
"strconv" "strconv"
configkit "go.maximumdirect.net/configkit"
promptkit "go.maximumdirect.net/promptkit"
"go.maximumdirect.net/ckconfig" "go.maximumdirect.net/ckconfig"
commandkit "go.maximumdirect.net/commandkit" commandkit "go.maximumdirect.net/commandkit"
configkit "go.maximumdirect.net/configkit"
promptkit "go.maximumdirect.net/promptkit"
) )
// PromptRequest selects one named prompt for inspection. // PromptRequest selects one named prompt for inspection.
@@ -56,9 +56,9 @@ type NamespaceRequest struct {
type RequirementsRequest struct { type RequirementsRequest struct {
// Selection carries the configuration and overlay values supplied to the command. // Selection carries the configuration and overlay values supplied to the command.
Selection ckconfig.Selection Selection ckconfig.Selection
// Inspection forwards PromptKit's native prompt, version, profile, variable, // Inspection forwards PromptKit's native prompt, profile, variable, and session
// and session discovery context. Optional version, profile, and session // discovery context. Profile and session strings retain PromptKit's
// strings retain PromptKit's empty-value semantics. // empty-value semantics.
Inspection promptkit.RequirementInspectionRequest Inspection promptkit.RequirementInspectionRequest
} }

View File

@@ -7,5 +7,7 @@
// App.Register. Importing ckprompt installs neither family; callers compose its // App.Register. Importing ckprompt installs neither family; callers compose its
// declarations with core and ckconfig explicitly. Provider diagnostics remain // declarations with core and ckconfig explicitly. Provider diagnostics remain
// passive until the owning command submits them through the invocation // 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 package ckprompt

View File

@@ -2,45 +2,32 @@
## PromptKit ## 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 Copyright (C) 2026 Eric Rakestraw
SPDX-License-Identifier: LGPL-3.0-or-later SPDX-License-Identifier: LGPL-3.0-or-later
License and notices: [LGPL v3.0](../../LICENSE) | 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 ## 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 Copyright (C) 2026 Eric Rakestraw
SPDX-License-Identifier: LGPL-3.0-or-later SPDX-License-Identifier: LGPL-3.0-or-later
License and notices: [LGPL v3.0](../../LICENSE) | 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 ## 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). Selected module: `go.maximumdirect.net/releasekit` at `v0.9.0` (transitive Go tool requirement; not a runtime import).
Copyright (C) 2026 Eric Rakestraw Copyright (C) 2026 Eric Rakestraw

View File

@@ -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)

View File

@@ -1,8 +1,7 @@
# Composed consumer # Composed consumer
This example uses `go.maximumdirect.net/commandkit v0.3.0`, This example is part of the ckprompt module and uses core v0.3.0, ckconfig
`go.maximumdirect.net/ckconfig v0.2.0`, and v0.3.0, ConfigKit v1.1.0, and PromptKit v0.18.0. It requires Go 1.27.0.
`go.maximumdirect.net/ckprompt v0.2.0`.
This example composes application configuration, PromptKit configuration, This example composes application configuration, PromptKit configuration,
PromptKit comparison and catalogs, definition and requirements inspection, and 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 The application-scope comparison reports the changed default campaign and the
updated `campaigns.spring.model`. The PromptKit-scope comparison selects spring 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. The application input check requires `--limit=0` when `--campaign` is supplied.
Catalogs use the same selection-aware loader: the prompt catalog includes Catalogs use the same selection-aware loader: the prompt catalog includes
`briefing` version `1`, and the profile catalog includes the selected `autumn` `briefing`, and the profile catalog includes the selected `autumn` profile.
profile. Prompt inspection uses an ID only; its optional version is descriptive Prompt inspection uses an ID only. The default PromptKit bundle also contributes
metadata in the report, not a selector. The synthetic `field-notes` collection 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 provides one backend, profile, and prompt for collection discovery and native
namespace filtering. The example's shared run cache keys successful results by namespace filtering. The example's shared run cache keys successful results by
the complete supplied configuration/overlay selection and the supplied 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; run state. Catalog, inspection, and requirements commands do not call it;
inference smoke commands do. No model service or credentials are required. inference smoke commands do. No model service or credentials are required.
Native HTTP checks may retain unsupported or not-applicable observations because 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 return an operational outcome for a native diagnostic while still delivering
the complete aggregate report. the complete aggregate report.