Document PromptKit adoption and release candidate
This commit is contained in:
@@ -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
|
||||||
|
|||||||
41
docs/cli.md
41
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
|
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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
34
integrations/ckprompt/docs/releases/v0.3.0.md
Normal file
34
integrations/ckprompt/docs/releases/v0.3.0.md
Normal 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)
|
||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user