Settle override syntax and pass-through loading policy
This commit is contained in:
@@ -37,7 +37,7 @@ The published ckprompt v0.2.0 retains its earlier dependencies; see the
|
|||||||
|
|
||||||
The [PromptKit v0.19.0 roadmap](promptkit-v0.19.0.md) owns the proposed adoption,
|
The [PromptKit v0.19.0 roadmap](promptkit-v0.19.0.md) owns the proposed adoption,
|
||||||
the agreed shared core report output prerequisite, operator CLI additions for
|
the agreed shared core report output prerequisite, operator CLI additions for
|
||||||
PromptKit and ConfigKit, open decisions, and completion checklist. Scope is
|
PromptKit and ConfigKit, recorded decisions, and completion checklist. Scope is
|
||||||
agreed in principle and remains subject to roadmap review. Implementation has
|
agreed in principle and remains subject to roadmap review. Implementation has
|
||||||
not started. Use released upstream contracts
|
not started. Use released upstream contracts
|
||||||
only; do not inspect or monitor unreleased work in anticipation of adoption.
|
only; do not inspect or monitor unreleased work in anticipation of adoption.
|
||||||
@@ -96,9 +96,11 @@ projections. Further presentation refinements should follow practical feedback.
|
|||||||
Transient acquisition overrides are included as an opt-in loader capability in
|
Transient acquisition overrides are included as an opt-in loader capability in
|
||||||
[roadmap OD-11](promptkit-v0.19.0.md#od-11-transient-configuration-overrides).
|
[roadmap OD-11](promptkit-v0.19.0.md#od-11-transient-configuration-overrides).
|
||||||
Comparison overrides follow OD-9's independent-side model and use the same
|
Comparison overrides follow OD-9's independent-side model and use the same
|
||||||
ordinary Go numeric policy as CLI provider parameters. Loader composition and
|
ordinary Go numeric policy as CLI provider parameters. OD-11 selects assignment
|
||||||
unusual path syntax remain design tasks. Persistent configuration editing remains
|
syntax without support for paths containing `=` and pass-through delivery during
|
||||||
deferred.
|
normal loading, leaving configuration semantics and errors to ConfigKit.
|
||||||
|
All numbered roadmap decisions are settled; API signatures and wiring remain
|
||||||
|
implementation tasks. 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,
|
||||||
|
|||||||
@@ -148,8 +148,8 @@ or diagnostics subcommand is planned.
|
|||||||
Transient configuration overrides are included under OD-11 as an opt-in loader
|
Transient configuration overrides are included under OD-11 as an opt-in loader
|
||||||
capability. `config validate --set /workers=0` and
|
capability. `config validate --set /workers=0` and
|
||||||
`config show --set /server/port=8080` apply temporary overrides during acquisition
|
`config show --set /server/port=8080` apply temporary overrides during acquisition
|
||||||
without editing source files. Unusual pointer keys, loader composition, and
|
without editing source files. OD-11 selects simple assignment syntax and normal
|
||||||
supplemental input grammar remain to be finalized. Comparison
|
load-time forwarding; paths containing `=` are unsupported by these flags. Comparison
|
||||||
overrides follow OD-9's independent-side model: `--set` affects only the left
|
overrides follow OD-9's independent-side model: `--set` affects only the left
|
||||||
side and `--against-set` only the right.
|
side and `--against-set` only the right.
|
||||||
|
|
||||||
@@ -624,7 +624,7 @@ incidental formatting detail in tests.
|
|||||||
content, aggregate presentation, and automatic format policy as the MVP target.
|
content, aggregate presentation, and automatic format policy as the MVP target.
|
||||||
Specify the public API, reusable template helpers,
|
Specify the public API, reusable template helpers,
|
||||||
and internal conversion design under the agreed JSON representation contract.
|
and internal conversion design under the agreed JSON representation contract.
|
||||||
Resolve outstanding acquisition/binding grammar and flag collisions; use
|
Design the acquisition/binding wiring and flag collision handling; use
|
||||||
concrete examples to review report details during implementation rather than
|
concrete examples to review report details during implementation rather than
|
||||||
reopening accepted scope.
|
reopening accepted scope.
|
||||||
2. **Implement shared core report output.** Deliver the agreed automatic format
|
2. **Implement shared core report output.** Deliver the agreed automatic format
|
||||||
@@ -836,6 +836,11 @@ Default tests remain offline and independent of real credentials.
|
|||||||
and `--against-set` only to the right; omission supplies no CLI override records
|
and `--against-set` only to the right; omission supplies no CLI override records
|
||||||
for that side. Native errors and returned provenance are preserved. No tests
|
for that side. Native errors and returned provenance are preserved. No tests
|
||||||
independently re-establish ConfigKit override semantics.
|
independently re-establish ConfigKit override semantics.
|
||||||
|
- [ ] Override flags accept only `POINTER=JSON`, split at the first `=`. Help
|
||||||
|
documents unsupported paths containing `=`; no alternate record syntax,
|
||||||
|
escaping scheme, or override-file option is added. Forward records through
|
||||||
|
normal acquisition without CommandKit conflict resolution, deduplication,
|
||||||
|
precedence rules, or retries with altered values. Preserve upstream errors.
|
||||||
- [ ] Default validation remains concise; `--details` selects the additional
|
- [ ] Default validation remains concise; `--details` selects the additional
|
||||||
diagnostic report with a text template. Core automatically selects text when
|
diagnostic report with a text template. Core automatically selects text when
|
||||||
that template is supplied, while explicit formats still win. Changing format
|
that template is supplied, while explicit formats still win. Changing format
|
||||||
@@ -912,9 +917,10 @@ now agreed above. Remaining details are listed under
|
|||||||
CLI JSON number decoding for both integrations, namespace applicability, and
|
CLI JSON number decoding for both integrations, namespace applicability, and
|
||||||
independent comparison defaults are agreed. OD-9 is settled: explicit-empty
|
independent comparison defaults are agreed. OD-9 is settled: explicit-empty
|
||||||
application selectors remain with application-declared bindings for this release.
|
application selectors remain with application-declared bindings for this release.
|
||||||
The remaining open decision is OD-11, covering unusual-path grammar and loader
|
OD-11's assignment syntax and pass-through loading policy are also settled.
|
||||||
composition. Exact helper signatures, typed binding composition, flag collision
|
All numbered decisions below are resolved for this adoption. Exact helper
|
||||||
handling, and report layouts remain implementation choices, not unresolved scope.
|
signatures, typed binding composition, loader wiring, flag collision handling,
|
||||||
|
and report layouts remain implementation choices, not unresolved scope.
|
||||||
|
|
||||||
### OD-1: Preview command and report presentation
|
### OD-1: Preview command and report presentation
|
||||||
|
|
||||||
@@ -1426,10 +1432,26 @@ application acquisition as native ConfigKit overrides. This enables validation,
|
|||||||
inspection, and comparison of temporary settings through consistent CLI syntax.
|
inspection, and comparison of temporary settings through consistent CLI syntax.
|
||||||
Providers that do not accept overrides retain their existing operations. No
|
Providers that do not accept overrides retain their existing operations. No
|
||||||
source file is edited, and no general application-internal convenience API is
|
source file is edited, and no general application-internal convenience API is
|
||||||
required. The loader contract must state how it combines these records with
|
required. Supply parsed records during the normal configuration load, like any
|
||||||
any existing application-owned overrides; the generic adapter cannot inject
|
other explicitly supplied CLI overrides; the generic adapter cannot inject
|
||||||
them into an arbitrary loader after the load has completed.
|
them into an arbitrary loader after the load has completed.
|
||||||
|
|
||||||
|
**Agreed input syntax:** support only `POINTER=JSON`, split at the first `=`.
|
||||||
|
Paths containing `=` are unsupported by `--set` and `--against-set`. Document
|
||||||
|
this limitation in help; do not add alternate JSON-record syntax, an escaping
|
||||||
|
scheme, or an override-file option. This limits these flags rather than banning
|
||||||
|
such keys elsewhere in configuration. The JSON value may itself contain `=`.
|
||||||
|
|
||||||
|
**Agreed loading boundary:** CommandKit parses supplied assignments, preserves
|
||||||
|
explicit values and safe source labels, and passes the records to the appropriate
|
||||||
|
loader and comparison side. ConfigKit owns path validity, duplicate/overlap
|
||||||
|
handling, precedence, resolution, and validation. If the normal load returns a
|
||||||
|
ConfigKit error, preserve and report it through the existing diagnostic/outcome
|
||||||
|
path. CommandKit does not deduplicate records, resolve conflicts, invent a
|
||||||
|
combination or precedence policy for application-owned overrides, or retry with
|
||||||
|
altered values. Application loading retains its existing responsibilities.
|
||||||
|
Exact loader signatures and wiring remain implementation design tasks.
|
||||||
|
|
||||||
**Agreed numeric conversion:** adopt the ordinary Go numeric policy in OD-2 for
|
**Agreed numeric conversion:** adopt the ordinary Go numeric policy in OD-2 for
|
||||||
both `--set` and `--against-set`, including nested objects and arrays. Integer
|
both `--set` and `--against-set`, including nested objects and arrays. Integer
|
||||||
syntax uses `int64`, with `uint64` for larger representable nonnegative values;
|
syntax uses `int64`, with `uint64` for larger representable nonnegative values;
|
||||||
@@ -1453,27 +1475,21 @@ Repeat the same `--set` assignments as `--against-set` assignments when both
|
|||||||
sides should use them. There is no shared CLI override baseline and no
|
sides should use them. There is no shared CLI override baseline and no
|
||||||
`--against-clear-set` flag is needed to undo inheritance.
|
`--against-clear-set` flag is needed to undo inheritance.
|
||||||
|
|
||||||
Prefer inline assignments for ordinary one-value experiments. This is the
|
Implement the selected handoff without reimplementing upstream behavior:
|
||||||
largest remaining loader integration design item; revisit scope explicitly if
|
|
||||||
the required acquisition changes prove disproportionate rather than silently
|
|
||||||
dropping the agreed feature. Settle these details before implementation:
|
|
||||||
|
|
||||||
- Split at the first `=`; JSON supplies typed null, boolean, string, numeric,
|
- Split at the first `=`; JSON supplies typed null, boolean, string, numeric,
|
||||||
array, and object values, with the agreed numeric policy above. An unambiguous
|
array, and object values, with the agreed numeric policy above.
|
||||||
alternate input form may be needed for pointer keys containing `=`.
|
|
||||||
- Forward explicit records only, with safe display labels such as `--set`,
|
- Forward explicit records only, with safe display labels such as `--set`,
|
||||||
never raw value-bearing arguments as provenance labels. Preserve native
|
never raw value-bearing arguments as provenance labels. Preserve native
|
||||||
duplicate/overlap handling rather than silently collapsing assignments.
|
duplicate/overlap handling rather than silently collapsing assignments.
|
||||||
- Follow the released mapping-path constraints, including root/index and
|
- Let ConfigKit enforce its released mapping-path constraints, including
|
||||||
schema-version restrictions, without extending them into a generic patch
|
root/index and schema-version restrictions, without introducing a generic
|
||||||
language. Empty, false, zero, and null remain intentional supplied values.
|
patch language. Empty, false, zero, and null remain intentional supplied values.
|
||||||
- Reflect native CLI origins and subsequent resolution in existing reports.
|
- Reflect native CLI origins and subsequent resolution in existing reports.
|
||||||
Test CommandKit parsing, forwarding, and outcome/report adaptation, leaving
|
Test CommandKit parsing, forwarding, and outcome/report adaptation, leaving
|
||||||
ConfigKit's override algorithm to its own tests.
|
ConfigKit's override algorithm to its own tests.
|
||||||
|
|
||||||
A structured override file is not selected as the primary interface: it handles
|
Application-specific typed flags remain available, but are not a substitute for
|
||||||
complex values and unusual keys well but adds file setup to ordinary one-value
|
the selected standard CLI capability. No persistent configuration mutation is
|
||||||
experiments. It remains a possible supplemental form if needed to resolve the
|
authorized by this decision. OD-11 requires no further operator-policy decision
|
||||||
open grammar cases. Application-specific typed flags remain available, but are
|
for this adoption.
|
||||||
not a substitute for the selected standard CLI capability. No persistent
|
|
||||||
configuration mutation is authorized by this decision.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user