Align ckprompt with released dependencies

This commit is contained in:
2026-11-07 11:23:15 +00:00
parent 668c609062
commit 2f43f78f76
14 changed files with 116 additions and 163 deletions

View File

@@ -25,9 +25,8 @@ defines the shared visibility policy.
Importing an integration does not install commands. Core v0.4.0 is published; Importing an integration does not install commands. Core v0.4.0 is published;
the published ckconfig and ckprompt v0.2.0 modules use core v0.3.0. The published the published ckconfig and ckprompt v0.2.0 modules use core v0.3.0. The published
ckconfig v0.3.0 uses ConfigKit v1.1.0 and does not compose with 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. Current ckconfig ckprompt v0.2.0; the published v0.2.0 pair remains matched. Published ckconfig
source uses core v0.4.0. Current ckprompt source requires a newer v0.4.0 uses core v0.4.0; the current ckprompt candidate selects both. See the
ckconfig release and is developed in an aligned workspace. See the
[consumer guide](docs/consumers/guide.md#module-selection) for dependency details. [consumer guide](docs/consumers/guide.md#module-selection) for dependency details.
## Examples ## Examples

View File

@@ -23,10 +23,10 @@ Install the current core with `go get go.maximumdirect.net/commandkit@v0.4.0`.
For the older matched integration set, select core v0.3.0 and the corresponding For the older matched integration set, select core v0.3.0 and the corresponding
ckconfig or ckprompt v0.2.0 release together. ckconfig or ckprompt v0.2.0 release together.
The ckconfig v0.4.0 candidate uses published core v0.4.0 and ConfigKit v1.1.0. Published ckconfig v0.4.0 uses core v0.4.0 and ConfigKit v1.1.0. The ckprompt
The current ckprompt source targets core v0.4.0, ckconfig v0.3.0, ConfigKit v0.3.0 candidate targets those releases and PromptKit v0.20.0. A Go 1.27.0
v1.1.0, and PromptKit v0.20.0. Its APIs require the upcoming ckconfig release; workspace may compose the three local modules; independent tests also use the
a Go 1.27.0 workspace composes the local modules until that dependency is aligned. declared released dependencies.
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

View File

@@ -103,9 +103,8 @@ 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
and independent module suites once released requirements are aligned. ckconfig and independent module suites. The integrations select released core v0.4.0;
can be validated independently against released core v0.4.0; ckprompt still ckprompt also selects released ckconfig v0.4.0.
requires the aligned workspace until its ckconfig requirement is updated.
Run `GOWORK=off GOTOOLCHAIN=local go test ./...` separately from each module Run `GOWORK=off GOTOOLCHAIN=local go test ./...` separately from each module
directory. From the repository root, a workspace containing all three modules can directory. From the repository root, a workspace containing all three modules can
also run: also run:

View File

@@ -1,11 +1,11 @@
# Future work # Future work
Status: pending release and integration work, plus future capability proposals. Status: pending ckprompt publication and future capability proposals.
No delivery dates are selected here. No delivery dates are selected here.
## Purpose and authority ## Purpose and authority
Completed roadmaps, implementation plans, and review findings have been retired. Earlier completed roadmaps, implementation plans, and review findings have been retired.
This document preserves unfinished work and unselected ideas under the This document preserves unfinished work and unselected ideas under the
[release policy](../policy/release.md#release-documentation-and-preparation). [release policy](../policy/release.md#release-documentation-and-preparation).
The completed PromptKit v0.18.0 adoption roadmap and implementation plan remain The completed PromptKit v0.18.0 adoption roadmap and implementation plan remain
@@ -26,51 +26,27 @@ an idea here does not select its syntax, API, priority, or delivery date.
### ckprompt release ### ckprompt release
The PromptKit v0.18.0 adoption is complete. The The PromptKit v0.20.0 adoption is complete. The
[ckprompt v0.3.0 candidate](../../integrations/ckprompt/docs/releases/v0.3.0.md) [ckprompt v0.3.0 candidate](../../integrations/ckprompt/docs/releases/v0.3.0.md)
remains unpublished. Publication and hosted delivery remain separate operations remains unpublished. Publication and hosted delivery remain separate operations
under the [release procedure](../release.md). under the [release procedure](../release.md).
The published ckprompt v0.2.0 retains its earlier dependencies; see the The published ckprompt v0.2.0 retains its earlier dependencies; see the
[consumer guide](../consumers/guide.md#module-selection) for module selection. [consumer guide](../consumers/guide.md#module-selection) for module selection.
### PromptKit v0.20.0 adoption
The [PromptKit v0.20.0 roadmap](promptkit-v0.20.0.md) owns the agreed adoption,
the shared core reporting/input prerequisites, operator CLI additions for
PromptKit and ConfigKit, recorded decisions, and completion checklist. It targets
a clean alpha adoption without backward-compatibility provisions or consumer
migration guidance. Implementation has not started. Use released upstream
contracts only; do not inspect or monitor unreleased work in anticipation of
adoption.
## Future capability targets ## Future capability targets
### Comparison extensions ### Comparison extensions
The [working roadmap](promptkit-v0.20.0.md#additional-configkit-operator-workflows)
owns independent comparison selections (OD-9), assertion outcomes (OD-10), and
optional detailed reports (OD-5). These accepted plans do not change currently
implemented behavior.
General collection-clearing support is deferred pending a concrete consumer need. General collection-clearing support is deferred pending a concrete consumer need.
Revisit standardized syntax and binding support for explicitly replacing a Revisit standardized syntax and binding support for explicitly replacing a
nonempty application-default selector collection with an empty collection. nonempty application-default selector collection with an empty collection.
This is separate from clearing configuration lists through OD-11's transient This is separate from clearing configuration lists through transient
overrides and does not reinstate comparison inheritance. No clearing grammar overrides and does not reinstate comparison inheritance. No clearing grammar
or public helper API is selected. or public helper API is selected.
### Configuration inspection extensions ### Configuration inspection extensions
The [working roadmap](promptkit-v0.20.0.md#shared-configuration-capabilities) Persistent configuration editing remains deferred.
owns metadata/path discovery (OD-4), detailed comparison (OD-5), failed-load
evidence and aggregate validation (OD-6), focused inspection/filters (OD-8), and
transient overrides (OD-11). The six-command suite, selected output behavior,
and pass-through override policy are defined there. Implementation belongs in
`ckconfig`, with PromptKit exposing native evidence through its configuration
scope. Use the shared core reporting prerequisite and thin projections;
presentation refinements should follow implementation and beta feedback.
All numbered decisions are settled; exact APIs and wiring remain implementation
work. Persistent configuration editing remains deferred.
Discovery, import defaults, collection identities, and field-level resolution Discovery, import defaults, collection identities, and field-level resolution
recording remain available through application loaders. Discovery tracing, recording remain available through application loaders. Discovery tracing,
@@ -81,28 +57,8 @@ application loading and startup.
### PromptKit inspection and selection extensions ### PromptKit inspection and selection extensions
The [PromptKit v0.20.0 roadmap](promptkit-v0.20.0.md#targeted-end-state) General-purpose helpers for application-internal PromptKit use remain outside
owns native prompt/profile/backend resource inspection, concrete request preview, CommandKit's ownership boundary. The following CLI extensions are deferred.
applicable request flags, namespace selection, and the shared configuration
inspection extensions. The [resource inspection plan](promptkit-v0.20.0.md#resource-inspection)
includes backend inspection through the released upstream API. Execution flags
will be public reusable `ckprompt` collections for standard and application-owned
CLI commands, composed through existing core bindings.
[Roadmap OD-2](promptkit-v0.20.0.md#od-2-request-controls-and-provider-parameter-grammar)
records the agreed canonical naming, scoped convenience aliases, integration
installation collection, selected text/file input forms, and CLI JSON number
policy. Numeric conversion uses ordinary Go types and a small internal helper
with policy comments, behind a narrow public core CLI JSON parser. Collections
and aliases use existing declarations; cross-flag text/file precedence uses the
roadmap's ordered typed input prerequisite.
Output-contract overrides and appended-message flags are deferred below.
These are CLI features; general-purpose helpers for
application-internal PromptKit use are outside CommandKit's ownership boundary.
[Roadmap OD-3](promptkit-v0.20.0.md#od-3-namespace-flags-and-loader-defaults)
records the agreed namespace-selector applicability, including the limited role
of profile selection in requirements inspection. That selection follows the
released upstream identity requirement; it does not change prompt dependencies.
- **Output-contract override flags.** Deferred from the current adoption. A - **Output-contract override flags.** Deferred from the current adoption. A
possible future operator task is validating or previewing one prompt with a possible future operator task is validating or previewing one prompt with a
@@ -124,11 +80,6 @@ released upstream identity requirement; it does not change prompt dependencies.
Deferring flags does not remove native appended messages from preview reports Deferring flags does not remove native appended messages from preview reports
when an application builder supplies them. when an application builder supplies them.
[Roadmap OD-2](promptkit-v0.20.0.md#od-2-request-controls-and-provider-parameter-grammar)
selects inline text and explicit file input for single-prompt validation and
preview. Native API availability alone does not select further CLI syntax or
require a convenience API for application execution.
### Alias completion and discovery ### Alias completion and discovery
The delivered [shell completion feature](../cli.md#shell-completion) provides The delivered [shell completion feature](../cli.md#shell-completion) provides
@@ -145,15 +96,8 @@ steps. No delivery date or final API is selected here.
### Reporting extensions ### Reporting extensions
The [shared core report output prerequisite](promptkit-v0.20.0.md#shared-core-report-output-prerequisite) XML is outside current consideration; Markdown and other renderers remain
owns application-selected content, core rendering, universal/automatic format unselected.
selection, JSON representation conventions, text templates, and safe YAML input
conversion. Text, YAML, and JSON land together; new core formats work through the
same report API. The [output inventory](promptkit-v0.20.0.md#output-implementation-inventory)
identifies report paths and preserves explicit raw/help/diagnostic boundaries.
OD-6 defines one aggregate validation report and its changed delivery timing.
XML is outside current consideration; Markdown and other renderers are not
selected for this adoption.
Error-conversion helpers such as `WarnError` remain deferred pending demonstrated Error-conversion helpers such as `WarnError` remain deferred pending demonstrated
value; applications can already use `report.Warn(err.Error())`. Terminal redraw value; applications can already use `report.Warn(err.Error())`. Terminal redraw
@@ -183,9 +127,8 @@ operator or consumer need and an appropriate ownership/behavior decision:
and output-file management or reloadable export. and output-file management or reloadable export.
- Shell completion extensions, including alias discovery described above and - Shell completion extensions, including alias discovery described above and
dynamic discovery of configured or remote values. dynamic discovery of configured or remote values.
- Persistent configuration mutation. Transient CLI overrides are selected under - Persistent configuration mutation. Transient CLI overrides and field metadata
roadmap OD-11; field metadata and provenance inspection are scoped under inspection are available through the standard configuration suite.
[configuration inspection extensions](#configuration-inspection-extensions).
- Credential diagnostics beyond PromptKit's native smoke checks and additional - Credential diagnostics beyond PromptKit's native smoke checks and additional
live provider probes. live provider probes.
- Additional component identity registration and domain artifact catalogs. - Additional component identity registration and domain artifact catalogs.
@@ -194,10 +137,7 @@ operator or consumer need and an appropriate ownership/behavior decision:
- Backend selection or replacement, a plugin framework, general dependency - Backend selection or replacement, a plugin framework, general dependency
injection, and concurrent-dispatch guarantees. injection, and concurrent-dispatch guarantees.
Execution, serving, and session operations remain application-owned. The Execution, serving, and session operations remain application-owned.
[request preview proposal](promptkit-v0.20.0.md#preview-and-request-flags)
exposes native preparation and rendering as an agreed operator inspection target;
implementation has not started.
The [architecture policy](../policy/architecture.md#command-and-application-ownership) The [architecture policy](../policy/architecture.md#command-and-application-ownership)
recommends shared vocabulary; the [CLI reference](../cli.md#registered-command-syntax) recommends shared vocabulary; the [CLI reference](../cli.md#registered-command-syntax)
owns implemented grammar. owns implemented grammar.

View File

@@ -1,6 +1,6 @@
# Shared reporting and PromptKit v0.20.0 implementation plan # Shared reporting and PromptKit v0.20.0 implementation plan
Status: implementation in progress; Stages 1–25 complete. Status: implementation complete; Stages 1–26 complete.
## Scope, authority, and execution ## Scope, authority, and execution
@@ -926,6 +926,28 @@ version; hosted delivery remains separately tracked under the release procedure.
## Stage 26: Final ckprompt alignment and end-to-end verification ## Stage 26: Final ckprompt alignment and end-to-end verification
**Complete.** ckprompt v0.3.0 selects published core v0.4.0 and ckconfig
v0.4.0, ConfigKit v1.1.0, and PromptKit v0.20.0. All three standalone suites
and all three workspace suites passed with Go 1.27.0. Offline tidy left all
module files unchanged. Fifteen documented standalone consumer invocations and
16 additional workflows passed; the two invalid-fixture invocations returned
their expected failures, as did native type rejection for zero/list overrides.
Comparison assertions returned status 3, null overrides retained native evidence,
and preview and smoke commands used the local fake client. ckprompt publication
and hosted delivery remain separate operations.
The tested fixtures are identified by Git blob IDs:
| Consumer | Fixture | Blob |
| --- | --- | --- |
| simple | `before.yml` | `8192e75eb483dc5e206956632ecc36a641ead935` |
| simple | `after.yml` | `a5fc1041a8756cfa8487b8abf9ed2e551bdba0d9` |
| simple | `invalid.yml` | `455a1af8e1dd11cb728fce4334fb10d1b1d4ce2b` |
| composed | `before.yml` | `9fc0c68178fea64b5ab5a46e547e25f82baf8c17` |
| composed | `after.yml` | `e1c77fd6004b3114728c245648e01998e6a45858` |
| composed | `topic.txt` | `4c1c8cf49d7b36c033b144ff0ec064f832f11283` |
| composed | `notes.txt` | `4a5e2c8ddb220ae2bbc50868baab9cbbaa0a6263` |
Pin released core and ckconfig versions providing the new APIs in ckprompt. Pin released core and ckconfig versions providing the new APIs in ckprompt.
Download and tidy with GOWORK off; retain real sums. Update the unpublished Download and tidy with GOWORK off; retain real sums. Update the unpublished
ckprompt candidate note (or fresh minor selected in Stage 24) with the final ckprompt candidate note (or fresh minor selected in Stage 24) with the final

View File

@@ -1,10 +1,10 @@
# Shared report output, PromptKit v0.20.0 adoption, and ConfigKit operator CLI # Shared report output, PromptKit v0.20.0 adoption, and ConfigKit operator CLI
Status: agreed feature roadmap; implementation is in progress. The numbered Status: implementation complete. Core v0.4.0 and ckconfig v0.4.0 are published;
decisions and final review clarifications are settled. The the ckprompt v0.3.0 candidate is prepared for separate publication. The
[implementation plan](implementation.md) owns staged execution and concrete API [implementation plan](implementation.md) records stage completion and validation;
and transition choices; native resource report fields follow upstream. Practical native resource report fields follow upstream. Practical beta feedback will guide
beta feedback will guide presentation refinements. presentation refinements.
Reading guide: the core prerequisite sections own shared mechanics; resource Reading guide: the core prerequisite sections own shared mechanics; resource
inspection and OD-1 through OD-11 own integration behavior. The overview links inspection and OD-1 through OD-11 own integration behavior. The overview links
@@ -673,8 +673,7 @@ the plan; the checklist here defines the target acceptance boundaries.
Select focused boundary tests under the [testing policy](../policy/testing.md). Select focused boundary tests under the [testing policy](../policy/testing.md).
The ownership and Go-native policy work is complete in The ownership and Go-native policy work is complete in
[architecture.md](../policy/architecture.md#ownership-boundaries). The checks below [architecture.md](../policy/architecture.md#ownership-boundaries). The checks below
cover implementation and its documentation across the staged work; final cover the completed implementation, documentation, and dependency validation.
release-dependent checks remain pending.
The checklist concerns core reporting and adapter/CLI behavior; it does not ask The checklist concerns core reporting and adapter/CLI behavior; it does not ask
CommandKit to retest PromptKit rendering, schema, namespace, or ConfigKit CommandKit to retest PromptKit rendering, schema, namespace, or ConfigKit
resolution algorithms. resolution algorithms.
@@ -683,112 +682,112 @@ Default tests remain offline and independent of real credentials.
The linked sections own behavior; these checks cover consequential boundaries The linked sections own behavior; these checks cover consequential boundaries
rather than prescribing one test per line or exact cosmetic snapshots. rather than prescribing one test per line or exact cosmetic snapshots.
- [ ] Public report/writer APIs, the CLI JSON parser, and ordered typed input - [x] Public report/writer APIs, the CLI JSON parser, and ordered typed input
composition are documented. Maintained consumers exercise applicable APIs, and composition are documented. Maintained consumers exercise applicable APIs, and
both integrations build independently. Core has no integration dependency. both integrations build independently. Core has no integration dependency.
- [ ] Universal format selection follows the agreed precedence and logical shapes. - [x] Universal format selection follows the agreed precedence and logical shapes.
Cover explicit choices, templates, scalars, empty/nonempty collections, null, Cover explicit choices, templates, scalars, empty/nonempty collections, null,
invalid formats before acquisition, flag collisions, and invocation isolation. invalid formats before acquisition, flag collisions, and invocation isolation.
New formats require no handler changes or local allowlists. New formats require no handler changes or local allowlists.
- [ ] JSON interpretation and explicit safe-YAML conversion preserve selected - [x] JSON interpretation and explicit safe-YAML conversion preserve selected
field omissions, numeric values, type/presence/null/empty distinctions, sequence field omissions, numeric values, type/presence/null/empty distinctions, sequence
order, and redaction. Unsupported serialization/conversion remains observable. order, and redaction. Unsupported serialization/conversion remains observable.
Ordinary strings are not implicitly parsed as YAML; mapping order is not a test Ordinary strings are not implicitly parsed as YAML; mapping order is not a test
requirement. Do not substitute runtime configuration for inspection snapshots. requirement. Do not substitute runtime configuration for inspection snapshots.
- [ ] Templates receive original Go values and standard template behavior. - [x] Templates receive original Go values and standard template behavior.
Explicit YAML/JSON does not execute a template; errors never trigger fallback. Explicit YAML/JSON does not execute a template; errors never trigger fallback.
Untemplated text follows the selected scalar/string-list or YAML rules. Untemplated text follows the selected scalar/string-list or YAML rules.
- [ ] Invocation and writer APIs share rendering; quiet mode, domain outcomes, - [x] Invocation and writer APIs share rendering; quiet mode, domain outcomes,
cause identity, cancellation, and presentation failures retain their agreed cause identity, cancellation, and presentation failures retain their agreed
lifecycle. Changing format does not change selected content or detail level. lifecycle. Changing format does not change selected content or detail level.
Cover handler-selected submission after cancellation for acquired smoke and Cover handler-selected submission after cancellation for acquired smoke and
aggregate-validation evidence, without imposing that behavior on ordinary aggregate-validation evidence, without imposing that behavior on ordinary
inspection or restarting canceled work. inspection or restarting canceled work.
- [ ] Every path in the [output inventory](#output-implementation-inventory) is - [x] Every path in the [output inventory](#output-implementation-inventory) is
reviewed. Remove obsolete per-command format plumbing and duplicate encoders; reviewed. Remove obsolete per-command format plumbing and duplicate encoders;
preserve explicit raw output, help, and diagnostic boundaries. preserve explicit raw output, help, and diagnostic boundaries.
- [ ] `config show --scope all` submits the agreed scope-keyed mapping, including - [x] `config show --scope all` submits the agreed scope-keyed mapping, including
a one-scope aggregate. Single-scope output remains unwrapped. Cover safe values, a one-scope aggregate. Single-scope output remains unwrapped. Cover safe values,
fields named `scope`/`config`, and failure before combined display. fields named `scope`/`config`, and failure before combined display.
- [ ] Dependency versions/checksums, attribution, and candidate notes match the - [x] Dependency versions/checksums, attribution, and candidate notes match the
selected v0.20.0/ConfigKit releases. Canonical docs and examples describe the selected v0.20.0/ConfigKit releases. Canonical docs and examples describe the
selected contracts without legacy report/API variants or migration guidance. selected contracts without legacy report/API variants or migration guidance.
- [ ] Resource commands pass native prompt/profile/backend reports to core, - [x] Resource commands pass native prompt/profile/backend reports to core,
preserving returned message content, field omissions, and explicit preserving returned message content, field omissions, and explicit
zero/false/empty values across formats. No per-field report mirror or backend zero/false/empty values across formats. No per-field report mirror or backend
completion is added. Help distinguishes resource inspection, preparation, completion is added. Help distinguishes resource inspection, preparation,
credential references, and configuration provenance. credential references, and configuration provenance.
- [ ] Backend inspection is independently optional, wired by `FromEngine`, and - [x] Backend inspection is independently optional, wired by `FromEngine`, and
uses the selected ID, applicable configuration selectors, and backend namespace. uses the selected ID, applicable configuration selectors, and backend namespace.
Help/completion require no acquisition. Preserve native not-found errors, Help/completion require no acquisition. Preserve native not-found errors,
cancellation, acquisition diagnostics, and delivery failures. Boundary tests cancellation, acquisition diagnostics, and delivery failures. Boundary tests
establish faithful forwarding and reporting, not upstream resolution rules. establish faithful forwarding and reporting, not upstream resolution rules.
- [ ] Authentication response-limit evidence and smoke preparation errors retain - [x] Authentication response-limit evidence and smoke preparation errors retain
native unknown facts, supported causes, and outcomes, including no-report cases. native unknown facts, supported causes, and outcomes, including no-report cases.
Smoke aggregation preserves ordered results and partial failure/cancellation Smoke aggregation preserves ordered results and partial failure/cancellation
evidence in one report. Default tests need no live credentials or model calls. evidence in one report. Default tests need no live credentials or model calls.
- [ ] OD-1 preview forwards the request, calls preparation once, and hands native - [x] OD-1 preview forwards the request, calls preparation once, and hands native
`PreparedRun` data to core unless a concrete presentation need warrants a small `PreparedRun` data to core unless a concrete presentation need warrants a small
projection. It makes no model call and retains no execution handle. Help explains projection. It makes no model call and retains no execution handle. Help explains
the prompt-ID argument, resource I/O, and rendered-content disclosure. the prompt-ID argument, resource I/O, and rendered-content disclosure.
- [ ] OD-2 collections work in standard and application-owned commands with their - [x] OD-2 collections work in standard and application-owned commands with their
own typed inputs. Preserve selected subsets, omission/empty/zero values, own typed inputs. Preserve selected subsets, omission/empty/zero values,
upstream retry defaults, authoritative builders, and native map replacement. upstream retry defaults, authoritative builders, and native map replacement.
- [ ] CLI JSON parsing follows OD-2 for provider objects and configuration values. - [x] CLI JSON parsing follows OD-2 for provider objects and configuration values.
Cover nested values, integer boundaries, decimal/exponent forms, range errors, Cover nested values, integer boundaries, decimal/exponent forms, range errors,
and ordinary float approximation. The private helper documents the policy and and ordinary float approximation. The private helper documents the policy and
its limits; no arbitrary-precision fallback or public numeric framework appears. its limits; no arbitrary-precision fallback or public numeric framework appears.
- [ ] Canonical flags and scoped aliases follow OD-2; generated aliases cover - [x] Canonical flags and scoped aliases follow OD-2; generated aliases cover
enabled/applicable bindings, preserve presence, and do not claim unrelated enabled/applicable bindings, preserve presence, and do not claim unrelated
application spellings. Canonical-only and convenient installation both work. application spellings. Canonical-only and convenient installation both work.
- [ ] Ordered composition selects the last text/file occurrence for each input - [x] Ordered composition selects the last text/file occurrence for each input
name, including mixed aliases, while retaining literal empty text and file name, including mixed aliases, while retaining literal empty text and file
references. Cover reordered/interleaved flags, conversion failures, and fresh references. Cover reordered/interleaved flags, conversion failures, and fresh
invocations. No prompt-input flags are added to smoke tests. invocations. No prompt-input flags are added to smoke tests.
- [ ] OD-3 namespace composition and applicability match the native boundary. - [x] OD-3 namespace composition and applicability match the native boundary.
Cover defaults, explicit clearing, qualified IDs, and preservation of unrelated Cover defaults, explicit clearing, qualified IDs, and preservation of unrelated
defaults/catalog filters. Requirements help explains profile identity; cover defaults/catalog filters. Requirements help explains profile identity; cover
prompt-default fallback and short explicit profile selection without rewriting prompt-default fallback and short explicit profile selection without rewriting
configured references. Custom scoped loaders remain usable without the option. configured references. Custom scoped loaders remain usable without the option.
- [ ] The six-command configuration suite and optional provider capabilities - [x] The six-command configuration suite and optional provider capabilities
match installed help/completion metadata. Providers supply only enabled match installed help/completion metadata. Providers supply only enabled
capabilities; help, version, and capability discovery never trigger acquisition. capabilities; help, version, and capability discovery never trigger acquisition.
- [ ] OD-4 explanation modes, filters, and bare-help behavior distinguish explicit - [x] OD-4 explanation modes, filters, and bare-help behavior distinguish explicit
root selection, current/historical-only paths, and unavailable metadata. root selection, current/historical-only paths, and unavailable metadata.
Preserve native paths/history; do not assert upstream resolution algorithms. Preserve native paths/history; do not assert upstream resolution algorithms.
- [ ] OD-5 concise/detailed diff reuse the same native records and loads. Cover - [x] OD-5 concise/detailed diff reuse the same native records and loads. Cover
additions/deletions, missing versus null, redaction/hidden changes, empty results, additions/deletions, missing versus null, redaction/hidden changes, empty results,
atomic sequence changes, and delivery failure through the shared renderers. atomic sequence changes, and delivery failure through the shared renderers.
- [ ] OD-6 validation and failed-load source evidence preserve failure and - [x] OD-6 validation and failed-load source evidence preserve failure and
unavailable-versus-empty distinctions. Filters and known duplicate-message unavailable-versus-empty distinctions. Filters and known duplicate-message
coordination do not mask outcomes. Aggregate validation submits one document coordination do not mask outcomes. Aggregate validation submits one document
with reached-scope evidence after stopping on acquisition failure/cancellation; with reached-scope evidence after stopping on acquisition failure/cancellation;
no unvisited scope is reported valid. Test the changed delivery timing and no unvisited scope is reported valid. Test the changed delivery timing and
separate operation/presentation failures without promising writer rollback. separate operation/presentation failures without promising writer rollback.
- [ ] OD-8 focused values and source selection respect capability availability, - [x] OD-8 focused values and source selection respect capability availability,
one-scope path selection, absent versus null, unknown IDs, and acquisition one-scope path selection, absent versus null, unknown IDs, and acquisition
failure. Filters retain source references without changing validation outcomes. failure. Filters retain source references without changing validation outcomes.
- [ ] OD-9 comparisons cover left-only, right-only, both/neither, and partially - [x] OD-9 comparisons cover left-only, right-only, both/neither, and partially
specified sides, including repeated values and supplied state. Each side starts specified sides, including repeated values and supplied state. Each side starts
independently; command-wide controls and the shared-state lifecycle remain independently; command-wide controls and the shared-state lifecycle remain
shared. Explicit-empty application selectors stay application-defined. shared. Explicit-empty application selectors stay application-defined.
- [ ] OD-10 assertion outcomes distinguish equality, changes, usage, and failures; - [x] OD-10 assertion outcomes distinguish equality, changes, usage, and failures;
concealed changes count. Ordinary diff behavior and nonzero domain outcomes concealed changes count. Ordinary diff behavior and nonzero domain outcomes
survive presentation failure according to the reporting contract. survive presentation failure according to the reporting contract.
- [ ] OD-11 parses only the selected assignment syntax, forwards explicit values - [x] OD-11 parses only the selected assignment syntax, forwards explicit values
and safe labels to the correct side during loading, and preserves upstream and safe labels to the correct side during loading, and preserves upstream
errors/provenance. Help documents unsupported `=` paths. No alternate input, errors/provenance. Help documents unsupported `=` paths. No alternate input,
deduplication, conflict/precedence policy, or altered-value retry is added. deduplication, conflict/precedence policy, or altered-value retry is added.
- [ ] Maintained simple/composed consumers demonstrate the new CLI tasks and - [x] Maintained simple/composed consumers demonstrate the new CLI tasks and
failure workflow with deterministic fixtures. Code remains proportionate: failure workflow with deterministic fixtures. Code remains proportionate:
thin projections, one shared rendering implementation, and focused tests. thin projections, one shared rendering implementation, and focused tests.
- [ ] Update CLI/API contracts, release notes, and examples with the implementation, - [x] Update CLI/API contracts, release notes, and examples with the implementation,
including report framing, independent comparison selections, and validation including report framing, independent comparison selections, and validation
delivery timing. Keep contracts consistent with architecture policy and replace delivery timing. Keep contracts consistent with architecture policy and replace
obsolete native-YAML/document-order guidance in testing policy. The ADRs own obsolete native-YAML/document-order guidance in testing policy. The ADRs own
architectural rationale; these presentation and selector changes need no separate architectural rationale; these presentation and selector changes need no separate
successor records. Current documentation must match the landed scope. successor records. Current documentation must match the landed scope.
- [ ] Final independent-module and aligned-workspace suites pass with dependency - [x] Final independent-module and aligned-workspace suites pass with dependency
identities recorded. Deferred features remain outside this adoption. identities recorded. Deferred features remain outside this adoption.
The [implementation plan](implementation.md) owns the concrete verification The [implementation plan](implementation.md) owns the concrete verification

View File

@@ -7,7 +7,7 @@ itself.
## Module ## Module
The module path is `go.maximumdirect.net/ckconfig`. The v0.4.0 candidate requires Go The module path is `go.maximumdirect.net/ckconfig`. Version v0.4.0 requires Go
1.27.0 and uses `go.maximumdirect.net/commandkit v0.4.0` and 1.27.0 and uses `go.maximumdirect.net/commandkit v0.4.0` and
`go.maximumdirect.net/configkit v1.1.0`; it does not import PromptKit. See the `go.maximumdirect.net/configkit v1.1.0`; it does not import PromptKit. See the
[consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#configkit-scopes) [consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#configkit-scopes)

View File

@@ -1,7 +1,7 @@
# Simple consumer # Simple consumer
This example imports `go.maximumdirect.net/ckconfig` and This example imports `go.maximumdirect.net/ckconfig` and
`go.maximumdirect.net/commandkit`; the ckconfig v0.4.0 candidate uses core `go.maximumdirect.net/commandkit`; ckconfig v0.4.0 uses core
v0.4.0, ConfigKit v1.1.0, and Go 1.27.0. Set `GOWORK=off GOTOOLCHAIN=local` v0.4.0, ConfigKit v1.1.0, and Go 1.27.0. Set `GOWORK=off GOTOOLCHAIN=local`
for the commands below. for the commands below.

View File

@@ -8,12 +8,10 @@ Importing it does not install either command family.
## Module ## Module
The module path is `go.maximumdirect.net/ckprompt`. This source uses Go 1.27.0, The module path is `go.maximumdirect.net/ckprompt`. This source uses Go 1.27.0,
`go.maximumdirect.net/commandkit v0.4.0`, `go.maximumdirect.net/ckconfig v0.3.0`, `go.maximumdirect.net/commandkit v0.4.0`, `go.maximumdirect.net/ckconfig v0.4.0`,
`go.maximumdirect.net/configkit v1.1.0`, and `go.maximumdirect.net/promptkit v0.20.0`. See the `go.maximumdirect.net/configkit v1.1.0`, and `go.maximumdirect.net/promptkit v0.20.0`. See the
[consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#promptkit-configuration-definitions-and-requirements) [consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#promptkit-configuration-definitions-and-requirements)
for callback, input, state, and acquisition contracts. for callback, input, state, and acquisition contracts.
The current source requires the aligned local workspace until a new ckconfig
release supplies its APIs.
## Example ## Example

View File

@@ -85,8 +85,9 @@ root): `docs/policy/meta.md`, `docs/policy/agents.md`,
`docs/policy/documentation.md`, `docs/policy/release.md`, and `docs/policy/documentation.md`, `docs/policy/release.md`, and
`docs/policy/oss.md`; the root `AGENTS.md` orientation after the knowledge-graph `docs/policy/oss.md`; the root `AGENTS.md` orientation after the knowledge-graph
instructions; and the Policy Reading Guide in `docs/development.md`, adapted for instructions; and the Policy Reading Guide in `docs/development.md`, adapted for
the core module. The release policy uses baseline the core module. The documentation policy uses baseline
`e833faddf120c789a9b45348edaf75720de16348`; the remaining material uses baseline `beb5f191470a9daef2383981a6bfd02232490ab4`; the release policy uses
`e833faddf120c789a9b45348edaf75720de16348`; the remaining material uses
`d84a38ebab26f048cafbe59a2246700c35d29843`. `d84a38ebab26f048cafbe59a2246700c35d29843`.
Copyright (C) 2026 Eric Rakestraw Copyright (C) 2026 Eric Rakestraw
@@ -97,12 +98,16 @@ License and notices: [CC BY-SA 4.0](licenses/CC-BY-SA-4.0.txt) |
[COPYRIGHT](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/COPYRIGHT) | [COPYRIGHT](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/COPYRIGHT) |
[LICENSE](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/LICENSE) | [LICENSE](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843/LICENSE) |
[COPYRIGHT](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348/COPYRIGHT) | [COPYRIGHT](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348/COPYRIGHT) |
[LICENSE](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348/LICENSE). [LICENSE](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348/LICENSE) |
[COPYRIGHT](https://gitea.maximumdirect.net/eric/policy/src/commit/beb5f191470a9daef2383981a6bfd02232490ab4/COPYRIGHT) |
[LICENSE](https://gitea.maximumdirect.net/eric/policy/src/commit/beb5f191470a9daef2383981a6bfd02232490ab4/LICENSE).
[Source](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843). [Source](https://gitea.maximumdirect.net/eric/policy/src/commit/d84a38ebab26f048cafbe59a2246700c35d29843).
[Source](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348). [Source](https://gitea.maximumdirect.net/eric/policy/src/commit/e833faddf120c789a9b45348edaf75720de16348).
[Source](https://gitea.maximumdirect.net/eric/policy/src/commit/beb5f191470a9daef2383981a6bfd02232490ab4).
## go-yaml v4 ## go-yaml v4
Selected module: `go.yaml.in/yaml/v4` at `v4.0.0-rc.6`. Selected module: `go.yaml.in/yaml/v4` at `v4.0.0-rc.6`.

View File

@@ -1,33 +1,27 @@
# CommandKit ckprompt v0.3.0 # CommandKit ckprompt v0.3.0
## Summary CommandKit ckprompt v0.3.0 adopts PromptKit v0.20.0 and ConfigKit v1.1.0,
and requires CommandKit core v0.4.0, ckconfig v0.4.0, and Go 1.27.0.
The integration uses shared core reporting for text, YAML, and JSON output.
This candidate adopts `go.maximumdirect.net/promptkit v0.18.0`, Prompt, profile, and backend commands report PromptKit's native resource
`go.maximumdirect.net/configkit v1.1.0`, and inspections. Applications may opt into prepared-request preview, concrete
`go.maximumdirect.net/ckconfig v0.3.0`, while retaining `go.maximumdirect.net/commandkit v0.3.0`. It requires request validation, smoke testing, and namespace selectors independently.
Go 1.27.0. Existing configuration, catalog, inspection, validation, and smoke Reusable request flag collections support application-owned commands;
operations continue to forward the selected engine's native results. `ckprompt.Declarations` installs the standard family with scoped aliases.
Literal and file inputs retain their command-line order. Provider parameters
can be supplied for preparation and applicable diagnostics.
## Migration The PromptKit configuration scope exposes native metadata and load-failure
evidence through ckconfig, including independent comparison selections,
detailed differences, and validation findings. Smoke reports retain native
evidence and operation failures separately from presentation failures.
Change PromptKit and ConfigKit imports to `go.maximumdirect.net/promptkit` and This pre-1.0 release changes resource report shapes, input flags, formatting,
`go.maximumdirect.net/configkit`. Update loaders and consumers together because and configuration comparison behavior. Applications should update declarations
values from the old and new paths have distinct Go type identities. Migrate and report consumers to the current [CLI reference](../../../../docs/cli.md#promptkit-definition-inspection)
PromptKit prompt, profile, and backend maps to lists with explicit IDs, and and [consumer guide](../../../../docs/consumers/guide.md#promptkit-configuration-definitions-and-requirements).
update source builders, inheritance, import requiredness, and source-root Applications continue to own engine construction, credentials, and execution.
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) | [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) | [LICENSE](https://forge.maximumdirect.net/base-layer/commandkit/src/tag/integrations/ckprompt/v0.3.0/integrations/ckprompt/LICENSE) |

View File

@@ -1,9 +1,7 @@
# Composed consumer # Composed consumer
This example is part of the ckprompt module and uses core v0.4.0, ckconfig This example is part of the ckprompt module and uses core v0.4.0, ckconfig
v0.3.0, ConfigKit v1.1.0, and PromptKit v0.20.0. It requires Go 1.27.0. v0.4.0, ConfigKit v1.1.0, and PromptKit v0.20.0. It requires Go 1.27.0.
The current work uses the aligned local workspace until the required ckconfig
release is published.
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
@@ -138,7 +136,6 @@ the selected campaign but leaves artifact bindings to the operator. The
`requirements show` commands remain discovery reports: partial discovery can `requirements show` commands remain discovery reports: partial discovery can
succeed even when a concrete request would fail validation. succeed even when a concrete request would fail validation.
Use the aligned local workspace to test the three current sources, as described in Run `GOWORK=off go test ./...` from this example directory to check it against
the [developer guide](../../../../docs/development.md#documentation-validation). its declared dependencies. The [developer guide](../../../../docs/development.md#documentation-validation)
Once released dependency requirements are aligned, `GOWORK=off go test ./...` also describes aligned workspace tests.
from this example directory checks it against its declared dependencies.

View File

@@ -3,7 +3,7 @@ module go.maximumdirect.net/ckprompt
go 1.27.0 go 1.27.0
require ( require (
go.maximumdirect.net/ckconfig v0.3.0 go.maximumdirect.net/ckconfig v0.4.0
go.maximumdirect.net/commandkit v0.4.0 go.maximumdirect.net/commandkit v0.4.0
go.maximumdirect.net/configkit v1.1.0 go.maximumdirect.net/configkit v1.1.0
go.maximumdirect.net/promptkit v0.20.0 go.maximumdirect.net/promptkit v0.20.0

View File

@@ -10,10 +10,10 @@ github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
go.maximumdirect.net/ckconfig v0.3.0 h1:1FceT13Qe9J7V5knWPiJhwSNwxrZnYPH8HoloYpWLgs= go.maximumdirect.net/ckconfig v0.4.0 h1:7MpI/jIy+3BZrVME5rhKQibh5U9IA3s97BUJ2EOG41s=
go.maximumdirect.net/ckconfig v0.3.0/go.mod h1:NKFBVr2TyDNGGIWgwijGqg5WFoSUL2F8FiKRlNo9TLw= go.maximumdirect.net/ckconfig v0.4.0/go.mod h1:Mk6QOfHrFy00uE0/gw9h6/Y9LcdTShVEzM/oI/HGDns=
go.maximumdirect.net/commandkit v0.3.0 h1:RCmg2GS8uzlLSJCIqarpn1uFDec0W3ylNNRRPT6kUFE= go.maximumdirect.net/commandkit v0.4.0 h1:bWqflDWDn98FUCgh+0e+w6LGmvWIkaeJK519H7PjD2Y=
go.maximumdirect.net/commandkit v0.3.0/go.mod h1:ZS98DewKNVBygKVDoh5MFD09CnPlP37dS9pVsID5Eoc= go.maximumdirect.net/commandkit v0.4.0/go.mod h1:ZS98DewKNVBygKVDoh5MFD09CnPlP37dS9pVsID5Eoc=
go.maximumdirect.net/configkit v1.1.0 h1:UzXN2ZMnEkcL0O4YSLqD9qd9M1gb/NWCHQR/H8AaQzA= go.maximumdirect.net/configkit v1.1.0 h1:UzXN2ZMnEkcL0O4YSLqD9qd9M1gb/NWCHQR/H8AaQzA=
go.maximumdirect.net/configkit v1.1.0/go.mod h1:s1zLJ9GGB/1Q4a+aOHMLISonJxWFgNWpA6SpPlOafeA= go.maximumdirect.net/configkit v1.1.0/go.mod h1:s1zLJ9GGB/1Q4a+aOHMLISonJxWFgNWpA6SpPlOafeA=
go.maximumdirect.net/promptkit v0.20.0 h1:ZpwbjiCZWXdnnZ26RuWKoOco0jFnaAX8m2tQAX7ZlnM= go.maximumdirect.net/promptkit v0.20.0 h1:ZpwbjiCZWXdnnZ26RuWKoOco0jFnaAX8m2tQAX7ZlnM=