Align reporting contracts and documentation
This commit is contained in:
18
docs/cli.md
18
docs/cli.md
@@ -114,7 +114,7 @@ and usage guidance go to `Streams.Err`.
|
||||
The shared `--format` flag selects `text`, `yaml`, or `json` for reports
|
||||
submitted through the core reporter. When omitted, a report's text template
|
||||
selects text; otherwise scalar values and nonempty string lists use text, while
|
||||
structured values and empty collections use YAML. Explicit text without a
|
||||
structured values, empty collections, and null use YAML. Explicit text without a
|
||||
template uses YAML for structured values. Invalid or empty format values are
|
||||
usage errors. Raw output, help, completion, and diagnostics are not encoded as
|
||||
reports.
|
||||
@@ -537,7 +537,7 @@ separate evidence and does not replace a nonzero difference outcome.
|
||||
For ConfigKit-backed scopes, ConfigKit compares frozen effective typed values
|
||||
after defaults and resolution; source or provenance differences alone do not
|
||||
create a change. PromptKit delegates its native comparison to ConfigKit. The
|
||||
report contains `additions`, `changes`, and `deletions`. Additions and changes
|
||||
concise report contains `additions`, `changes`, and `deletions`. Additions and changes
|
||||
preserve semantic paths and contain right-side values provided by the native
|
||||
comparison. Deletions contain canonical JSON
|
||||
Pointer paths. Explicit null is a value; it is not a deletion. Changed sequences
|
||||
@@ -545,7 +545,7 @@ and native structural replacement regions stay atomic.
|
||||
|
||||
ConfigKit pairs sensitivity across both loads. A concealed change can therefore
|
||||
appear even when its two safe snapshots are equal. For those ConfigKit-backed
|
||||
comparisons, the report omits separate redaction and hidden-change metadata: a
|
||||
comparisons, the concise report omits separate redaction and hidden-change metadata: a
|
||||
reported masked region changed, but that does not mean every member inside it
|
||||
changed. Marker-looking public strings stay ordinary strings. An empty
|
||||
comparison succeeds with this shape:
|
||||
@@ -561,7 +561,7 @@ automatically applicable patch. Exceptional whole-root empty/null transitions
|
||||
can be ambiguous because the report has no root envelope; ordinary field-level
|
||||
null values and deletions retain their distinction.
|
||||
|
||||
Successful comparisons return status `0`, including empty results.
|
||||
Without `--check`, successful comparisons return status `0`, including empty results.
|
||||
Unsupported scopes and format errors are usage errors; input checks retain the
|
||||
existing usage/operational classification. Load and native comparison failures
|
||||
are operational and preserve supported error identity.
|
||||
@@ -804,7 +804,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://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/engine.go).
|
||||
[`Engine.ValidateRequest` API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/engine.go).
|
||||
|
||||
Builder, engine-loading, and native validation errors use the operational path
|
||||
(status `1`) with supported error identity and acquired diagnostics retained.
|
||||
@@ -867,7 +867,7 @@ identities. YAML examples follow:
|
||||
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.18.0 consumer guide](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/d9f6aad30509e538fc73ea16710df3a3ec084502/docs/consumers/pkg-promptkit.md)
|
||||
[PromptKit v0.20.0 consumer guide](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/docs/consumers/pkg-promptkit.md)
|
||||
for native resource and selection definitions.
|
||||
|
||||
### PromptKit smoke testing
|
||||
@@ -1016,9 +1016,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.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).
|
||||
PromptKit. See the [v0.20.0 consumer guide](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/docs/consumers/pkg-promptkit.md),
|
||||
[smoke API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/smoke_diagnostics.go),
|
||||
and [engine API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/engine.go).
|
||||
|
||||
## Outcome status
|
||||
|
||||
|
||||
@@ -18,17 +18,17 @@ installed at the application root, not as group children.
|
||||
The published matched releases are core v0.3.0, ckconfig v0.2.0, and ckprompt v0.2.0.
|
||||
The published ckconfig v0.3.0 uses ConfigKit v1.1.0 and does not compose
|
||||
with ckprompt v0.2.0, which retains ckconfig v0.2.0 and ConfigKit v0.8.0.
|
||||
Update application imports and dependency versions together; old and new core
|
||||
paths have distinct Go type identities. Install core with
|
||||
Install core with
|
||||
`go get go.maximumdirect.net/commandkit@v0.3.0` and either integration 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
|
||||
PromptKit v0.20.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.
|
||||
compose all three local modules. The current integration source uses APIs that
|
||||
require the upcoming core and ckconfig releases; independent validation follows
|
||||
their publication and dependency alignment.
|
||||
|
||||
The two integrations are independent optional imports. `ckprompt` uses the
|
||||
public scope and error contracts from `ckconfig`; importing it does not add the
|
||||
@@ -142,6 +142,13 @@ use `Output()` or `RenderOutput()` for deliberate raw output. Use `Warn`, `Info`
|
||||
[CLI reference](../cli.md#reporting) owns flag grammar, visibility, prefixes,
|
||||
and status behavior.
|
||||
|
||||
Reports use JSON serialization to establish the common value representation
|
||||
for YAML and JSON. A text template receives the original value; without one,
|
||||
text uses readable scalar or string-list output and YAML for structured values.
|
||||
The CLI's shared format selection and the writer-level `RenderReport` use the
|
||||
same rules. Use `DecodeYAMLReport` only for safe upstream inspection YAML that
|
||||
must become a report value; ordinary strings are not parsed as YAML.
|
||||
|
||||
Return terminal text with `Failure(message, details...)`, `Usage(message,
|
||||
details...)`, or `WithExplanation` on a domain outcome. Attach an optional Go
|
||||
error separately with `WithCause`. A cause is preserved for inspection, but it
|
||||
@@ -167,15 +174,6 @@ invocation are safe concurrently, but concurrent submission order is not
|
||||
specified. The caller owns the writers passed to `Execute`; CommandKit does not
|
||||
close them.
|
||||
|
||||
### Migrating from the previous reporting API
|
||||
|
||||
| Previous API | Current API |
|
||||
| --- | --- |
|
||||
| `invocation.Streams.Out` / `.Err` | `invocation.Reporter().Output()` and categorized reporter methods. `Streams` remains the argument to `App.Execute`. |
|
||||
| `Failure(err)` / `Usage(err)` | `Failure("operator-facing explanation").WithCause(err)` / `Usage("usage explanation").WithCause(err)`. Choose the explanation deliberately; the cause alone is not printed. |
|
||||
| `Outcome.Diagnostics` or terminal `SeverityError` | Submit independent messages through reporter methods. Put failure context in `Explanation`; provider `Acquired.Diagnostics` remains passive data for the owning integration to submit. |
|
||||
| `ReportIncomplete`, `DiagnosticDelivery`, or `DeliveryError` | Inspect `Outcome.Presentation.Output` and `.Diagnostics`, including each `DeliveryResult.State`, `RenderError`, and `WriteError`. |
|
||||
|
||||
## Application-owned aliases
|
||||
|
||||
Pass commands and aliases together as declarations. Integration factories can
|
||||
@@ -266,6 +264,8 @@ parses CLI records but cannot add them to an already-loaded result. The
|
||||
engine's captured configuration. Add that scope to a `ckconfig.Suite` to expose
|
||||
it under `config` with validate/show/sources/explain and native diff operations;
|
||||
it does not install PromptKit catalog, definition, or requirements commands.
|
||||
Its override feature is disabled because the released PromptKit configuration
|
||||
loader does not accept ConfigKit override records.
|
||||
|
||||
`ckprompt.FromEngine(loadEngine)` supplies nine callbacks: prompt, profile,
|
||||
backend, namespace, and collection catalogs; named prompt, profile, and backend
|
||||
@@ -396,19 +396,7 @@ 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.
|
||||
[namespace API](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/namespaces.go).
|
||||
|
||||
## Outcomes and ownership
|
||||
|
||||
@@ -423,23 +411,7 @@ 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 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
|
||||
|
||||
Ckconfig v0.3.0 uses `go.maximumdirect.net/configkit v1.1.0`
|
||||
and Go 1.27.0. Consumers must migrate ConfigKit imports and values passed to
|
||||
ckconfig: the old and new package paths have distinct type identities. Source
|
||||
reports rename `destination_unresolved` to `destination_is_fallback` and
|
||||
`version_check` to `version_evidence`, and add `empty_import_selections`.
|
||||
|
||||
The upstream [v0.9 migration notes](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/docs/releases/v0.9.0.md),
|
||||
[v0.10 notes](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/docs/releases/v0.10.0.md),
|
||||
[v1.0 migration notes](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/docs/releases/v1.0.0.md),
|
||||
and [v1.1 notes](https://forge.maximumdirect.net/base-layer/configkit/src/commit/191015e289d7f2b91abb9fdd9c4f2f5cf75b4de9/docs/releases/v1.1.0.md)
|
||||
cover source-root `configkit` controls becoming `config`, import requiredness
|
||||
and defaults, collection registration and operations, removed APIs, and CLI
|
||||
assignment order.
|
||||
[PromptKit engine methods](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/engine.go),
|
||||
[configuration inspection](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/configuration_inspection.go),
|
||||
[smoke diagnostics](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/smoke_diagnostics.go),
|
||||
and [PromptKit v0.20.0 consumer guidance](https://forge.maximumdirect.net/base-layer/promptkit/src/commit/8ff9aa3efdc9f16b9d2729e0a29ea083eb3c3eaf/docs/consumers/pkg-promptkit.md).
|
||||
|
||||
@@ -103,8 +103,8 @@ 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
|
||||
and independent module suites. With a Go 1.27.0 workspace containing all three modules, normal
|
||||
workspace discovery also validates local composition.
|
||||
and independent module suites once released requirements are aligned. Until then,
|
||||
the integrations require a Go 1.27.0 workspace containing all three modules.
|
||||
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:
|
||||
@@ -133,30 +133,31 @@ or publishing.
|
||||
|
||||
## Current public examples
|
||||
|
||||
The maintained consumers compile with their owning module suites and run without
|
||||
external services. The PromptKit smoke examples use local fixtures and the
|
||||
example's configured client:
|
||||
The maintained consumers run without external services using the aligned local
|
||||
workspace. The PromptKit smoke examples use local fixtures and the example's
|
||||
configured client:
|
||||
|
||||
```sh
|
||||
GOWORK=off GOTOOLCHAIN=local go run ./examples/core workspace greet --count=0 --tag=first --tag second
|
||||
(cd integrations/ckconfig/examples/simple && GOWORK=off GOTOOLCHAIN=local go run . config show)
|
||||
(cd integrations/ckconfig/examples/simple && GOWORK=off GOTOOLCHAIN=local go run . config diff --config fixtures/before.yml --against-config fixtures/after.yml)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . config validate --scope all --campaign spring --limit=0)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . config diff --scope app --config fixtures/before.yml --against-config fixtures/after.yml)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . config diff --scope promptkit --config fixtures/before.yml --against-config fixtures/after.yml --campaign spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list prompts --config fixtures/before.yml --campaign spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list profiles --config fixtures/after.yml --campaign autumn --format yaml)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list backends --namespace team)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list namespaces --kind prompt --kind profile)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit list collections)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit show prompt briefing --campaign spring --format yaml)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit requirements show briefing --campaign spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit requirements show briefing --campaign spring --var mode=full --format yaml)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit requirements validate briefing --campaign spring --input topic=fixtures/topic.txt)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit requirements validate briefing --campaign spring --input topic=fixtures/topic.txt --var mode=full --input notes=fixtures/notes.txt --format yaml)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit test reachability --campaign spring --prompt briefing --profile spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . promptkit test all --campaign spring --prompt briefing --profile spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOWORK=off GOTOOLCHAIN=local go run . session restore session-42 --campaign spring)
|
||||
GOTOOLCHAIN=local go run ./examples/core workspace greet --count=0 --tag=first --tag second
|
||||
(cd integrations/ckconfig/examples/simple && GOTOOLCHAIN=local go run . config show)
|
||||
(cd integrations/ckconfig/examples/simple && GOTOOLCHAIN=local go run . config diff --config fixtures/before.yml --against-config fixtures/after.yml)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . config validate --scope all --campaign spring --limit=0)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . config diff --scope app --config fixtures/before.yml --against-config fixtures/after.yml)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . config diff --scope promptkit --config fixtures/before.yml --against-config fixtures/after.yml --campaign spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit list prompts --config fixtures/before.yml --campaign spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit list profiles --config fixtures/after.yml --campaign autumn --format yaml)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit list backends --namespace team)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit list namespaces --kind prompt --kind profile)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit list collections)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit show prompt briefing --campaign spring --format yaml)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit show prepared briefing --campaign spring --input topic=sprint --profile spring --extra-params '{"campaign":"preview"}')
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit requirements show briefing --campaign spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit requirements show briefing --campaign spring --var mode=full --format yaml)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit requirements validate briefing --campaign spring --input-file topic=fixtures/topic.txt)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit requirements validate briefing --campaign spring --input-file topic=fixtures/topic.txt --var mode=full --input-file notes=fixtures/notes.txt --format yaml)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit test reachability --campaign spring --prompt briefing --profile spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . promptkit test all --campaign spring --prompt briefing --profile spring)
|
||||
(cd integrations/ckprompt/examples/composed && GOTOOLCHAIN=local go run . session restore session-42 --campaign spring)
|
||||
```
|
||||
|
||||
The [consumer guide](consumers/guide.md) explains how their public API usage
|
||||
|
||||
@@ -14,7 +14,7 @@ The core, ckconfig, and ckprompt modules declare
|
||||
|
||||
The root facade owns captured canonical command declarations, application-owned
|
||||
routing rules, binding conversion, invocation coordination, the per-App
|
||||
registries, standard help/version commands, invocation reporting, and outcome
|
||||
registries, standard help/version commands, shared report rendering, invocation reporting, and outcome
|
||||
finalization.
|
||||
Its dependency graph has no ConfigKit or PromptKit integration dependency.
|
||||
Applications provide typed callbacks and install routing rules alongside the
|
||||
@@ -90,8 +90,9 @@ acquisitions or comparison callback.
|
||||
`integrations/ckprompt` owns PromptKit engine loading, configuration-scope
|
||||
adaptation and native comparison, plus optional prompt/profile/backend/namespace/
|
||||
collection catalogs, named inspection, native requirements discovery,
|
||||
concrete request validation, and native smoke testing. Validation and smoke
|
||||
testing delegate to PromptKit and are independently opted into a suite. Smoke
|
||||
concrete request validation, prepared-request preview, and native smoke testing.
|
||||
Validation, preview, and smoke testing delegate to PromptKit and are independently
|
||||
opted into a suite. Smoke
|
||||
operations use the application's native engine and its configured client or
|
||||
probes. The integration uses public core and ckconfig contracts plus PromptKit's
|
||||
public APIs. It does not add a configuration family when its declaration is
|
||||
|
||||
@@ -213,8 +213,8 @@ Factories need not run after a failure and remain uninvoked during construction,
|
||||
installation, help, version, and scope discovery.
|
||||
|
||||
For two-selection configuration comparison, prepare and check each side's input
|
||||
separately with its scope identity and selection, applying the same applicable
|
||||
converted selector values to both. Finish both checks before initializing shared
|
||||
separately with its scope identity and selection, applying only the selectors
|
||||
supplied for that side. Finish both checks before initializing shared
|
||||
state once and invoking the integration-owned pair provider. The
|
||||
[consumer guide](../consumers/guide.md#configkit-scopes) and linked GoDoc own the
|
||||
provider lifecycle; the [CLI reference](../cli.md#compare-configuration-selections)
|
||||
@@ -346,8 +346,8 @@ errors instead of inventing a parallel override policy or retrying with altered
|
||||
values. Application loading and application-owned overrides retain their own
|
||||
responsibilities.
|
||||
|
||||
The [CLI reference](../cli.md#show-effective-configuration) owns current native
|
||||
report formats and operation-specific preparation and delivery timing. Semantic
|
||||
The [CLI reference](../cli.md#show-effective-configuration) owns current report
|
||||
formats and operation-specific preparation and delivery timing. Semantic
|
||||
comparison exposes the adopted upstream comparison API and carries its evidence
|
||||
through the provider boundary; it does not introduce a CommandKit equality engine.
|
||||
|
||||
|
||||
@@ -73,6 +73,9 @@ integration where correctness depends on that interaction. Internal package
|
||||
tests own focused mechanisms.
|
||||
Boundary checks protect selected architectural constraints; behavioral evidence
|
||||
protects invocation semantics and ownership through conversions.
|
||||
For shared reports, compare logical values and selected evidence rather than
|
||||
YAML formatting or mapping order. Preserve sequence ordering only where the
|
||||
relevant contract gives it meaning.
|
||||
|
||||
Do not infer concurrent-dispatch support from fresh invocation state. Test
|
||||
concurrency guarantees only if deliberately selected. Coverage targets, race
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Shared reporting and PromptKit v0.20.0 implementation plan
|
||||
|
||||
Status: implementation in progress; Stages 1–22 complete.
|
||||
Status: implementation in progress; Stages 1–23 complete.
|
||||
|
||||
## Scope, authority, and execution
|
||||
|
||||
@@ -831,6 +831,12 @@ do not reimplement native resolution tests.
|
||||
|
||||
## Stage 23: Canonical contracts and obsolete infrastructure audit
|
||||
|
||||
**Complete.** Audited the output inventory and public boundaries, removed
|
||||
unused YAML report tags, aligned current documentation and policy wording, and
|
||||
tidied integration dependencies. The workspace suites and 20 development example
|
||||
commands passed with Go 1.27.0; independent integration validation awaits the
|
||||
released dependencies.
|
||||
|
||||
Review every path in the feature roadmap's
|
||||
[output inventory](promptkit-v0.20.0.md#output-implementation-inventory).
|
||||
Remove remaining handler-local format inputs, validators, encoders, legacy
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Shared report output, PromptKit v0.20.0 adoption, and ConfigKit operator CLI
|
||||
|
||||
Status: agreed feature roadmap; implementation has not started. The numbered
|
||||
Status: agreed feature roadmap; implementation is in progress. The numbered
|
||||
decisions and final review clarifications are settled. The
|
||||
[implementation plan](implementation.md) owns staged execution and concrete API
|
||||
and transition choices; native resource report fields follow upstream. Practical
|
||||
@@ -673,7 +673,8 @@ the plan; the checklist here defines the target acceptance boundaries.
|
||||
Select focused boundary tests under the [testing policy](../policy/testing.md).
|
||||
The ownership and Go-native policy work is complete in
|
||||
[architecture.md](../policy/architecture.md#ownership-boundaries). The checks below
|
||||
cover implementation and its documentation, which remain pending.
|
||||
cover implementation and its documentation across the staged work; final
|
||||
release-dependent checks remain pending.
|
||||
The checklist concerns core reporting and adapter/CLI behavior; it does not ask
|
||||
CommandKit to retest PromptKit rendering, schema, namespace, or ConfigKit
|
||||
resolution algorithms.
|
||||
|
||||
Reference in New Issue
Block a user