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

@@ -1,11 +1,11 @@
# 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.
## 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
[release policy](../policy/release.md#release-documentation-and-preparation).
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
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)
remains unpublished. Publication and hosted delivery remain separate operations
under the [release procedure](../release.md).
The published ckprompt v0.2.0 retains its earlier dependencies; see the
[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
### 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.
Revisit standardized syntax and binding support for explicitly replacing a
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
or public helper API is selected.
### Configuration inspection extensions
The [working roadmap](promptkit-v0.20.0.md#shared-configuration-capabilities)
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.
Persistent configuration editing remains deferred.
Discovery, import defaults, collection identities, and field-level resolution
recording remain available through application loaders. Discovery tracing,
@@ -81,28 +57,8 @@ application loading and startup.
### PromptKit inspection and selection extensions
The [PromptKit v0.20.0 roadmap](promptkit-v0.20.0.md#targeted-end-state)
owns native prompt/profile/backend resource inspection, concrete request preview,
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.
General-purpose helpers for application-internal PromptKit use remain outside
CommandKit's ownership boundary. The following CLI extensions are deferred.
- **Output-contract override flags.** Deferred from the current adoption. 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
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
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
The [shared core report output prerequisite](promptkit-v0.20.0.md#shared-core-report-output-prerequisite)
owns application-selected content, core rendering, universal/automatic format
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.
XML is outside current consideration; Markdown and other renderers remain
unselected.
Error-conversion helpers such as `WarnError` remain deferred pending demonstrated
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.
- Shell completion extensions, including alias discovery described above and
dynamic discovery of configured or remote values.
- Persistent configuration mutation. Transient CLI overrides are selected under
roadmap OD-11; field metadata and provenance inspection are scoped under
[configuration inspection extensions](#configuration-inspection-extensions).
- Persistent configuration mutation. Transient CLI overrides and field metadata
inspection are available through the standard configuration suite.
- Credential diagnostics beyond PromptKit's native smoke checks and additional
live provider probes.
- 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
injection, and concurrent-dispatch guarantees.
Execution, serving, and session operations remain application-owned. The
[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.
Execution, serving, and session operations remain application-owned.
The [architecture policy](../policy/architecture.md#command-and-application-ownership)
recommends shared vocabulary; the [CLI reference](../cli.md#registered-command-syntax)
owns implemented grammar.

View File

@@ -1,6 +1,6 @@
# 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
@@ -926,6 +926,28 @@ version; hosted delivery remains separately tracked under the release procedure.
## 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.
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

View File

@@ -1,10 +1,10 @@
# Shared report output, PromptKit v0.20.0 adoption, and ConfigKit operator CLI
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
beta feedback will guide presentation refinements.
Status: implementation complete. Core v0.4.0 and ckconfig v0.4.0 are published;
the ckprompt v0.3.0 candidate is prepared for separate publication. The
[implementation plan](implementation.md) records stage completion and validation;
native resource report fields follow upstream. Practical beta feedback will guide
presentation refinements.
Reading guide: the core prerequisite sections own shared mechanics; resource
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).
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 across the staged work; final
release-dependent checks remain pending.
cover the completed implementation, documentation, and dependency validation.
The checklist concerns core reporting and adapter/CLI behavior; it does not ask
CommandKit to retest PromptKit rendering, schema, namespace, or ConfigKit
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
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
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,
invalid formats before acquisition, flag collisions, and invocation isolation.
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
order, and redaction. Unsupported serialization/conversion remains observable.
Ordinary strings are not implicitly parsed as YAML; mapping order is not a test
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.
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
lifecycle. Changing format does not change selected content or detail level.
Cover handler-selected submission after cancellation for acquired smoke and
aggregate-validation evidence, without imposing that behavior on ordinary
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;
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,
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 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
zero/false/empty values across formats. No per-field report mirror or backend
completion is added. Help distinguishes resource inspection, preparation,
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.
Help/completion require no acquisition. Preserve native not-found errors,
cancellation, acquisition diagnostics, and delivery failures. Boundary tests
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.
Smoke aggregation preserves ordered results and partial failure/cancellation
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
projection. It makes no model call and retains no execution handle. Help explains
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,
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,
and ordinary float approximation. The private helper documents the policy and
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
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
references. Cover reordered/interleaved flags, conversion failures, and fresh
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
defaults/catalog filters. Requirements help explains profile identity; cover
prompt-default fallback and short explicit profile selection without rewriting
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
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.
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,
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
coordination do not mask outcomes. Aggregate validation submits one document
with reached-scope evidence after stopping on acquisition failure/cancellation;
no unvisited scope is reported valid. Test the changed delivery timing and
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
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
independently; command-wide controls and the shared-state lifecycle remain
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
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
errors/provenance. Help documents unsupported `=` paths. No alternate input,
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:
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
delivery timing. Keep contracts consistent with architecture policy and replace
obsolete native-YAML/document-order guidance in testing policy. The ADRs own
architectural rationale; these presentation and selector changes need no separate
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.
The [implementation plan](implementation.md) owns the concrete verification