Record agreed namespace default composition

This commit is contained in:
2026-11-06 18:21:14 +00:00
parent f63af12097
commit 9076cb2c9c

View File

@@ -194,8 +194,9 @@ output-contract overrides and appended-message controls.
Design independent prompt, profile, and backend defaults together. Native
`WithNamespaces` replaces all defaults on its new view; it has no partial-update
semantics. Omission must therefore have a deliberate meaning when a loader
already returns a scoped engine (OD-3).
semantics. Under the agreed OD-3 design, opt-in selectors combine explicitly
declared suite defaults with supplied overrides; they do not infer defaults
from a loader's engine view.
Qualified IDs pass through native selection unchanged. Captured references,
configuration inspection, and namespace/collection inventories retain their
@@ -366,8 +367,11 @@ Default tests remain offline and independent of real credentials.
Resolve and cover duplicate-name precedence across the two input forms.
- [ ] Output-contract override and appended-message flags remain outside this
adoption, with their operator use cases retained in future work.
- [ ] Namespace defaults, explicit clearing, qualified selections, and catalog
filters are forwarded according to the selected design.
- [ ] Opt-in namespace selectors combine declared suite defaults with supplied
fields in one native view update. Omission preserves each declared default;
explicit empty values clear only the selected default. Qualified selections
and catalog filters retain their native meanings. Custom scoped loaders remain
usable without the option.
- [ ] The full configuration suite retains six subcommands. Explanation
discovery and validation diagnostics are modes of existing commands, with
capability-aware help and selected mode/flag combination checks.
@@ -582,18 +586,27 @@ general-purpose request-building API follows from these CLI choices.
### OD-3: Namespace flags and loader defaults
**Recommendation:** make the standard namespace selectors opt-in with explicit
suite-owned namespace defaults. Compose supplied fields with those defaults,
then apply one native `WithNamespaces` call. Loaders using this option leave
default selection to that adapter. This gives omission and explicit empty
values predictable meanings without trying to read private engine state.
Without the option, existing scoped loaders continue as before.
**Agreed:** make the standard namespace selectors opt-in with explicit
application-supplied defaults for prompts, profiles, and backends in the suite.
`ckprompt` combines those defaults with the supplied CLI fields, then applies
one native `WithNamespaces` call. Loaders using this option leave namespace
default selection to that adapter rather than relying on hidden engine-view
state. Without the option, existing scoped loaders continue as before.
**Alternative:** pass presence-aware namespace choices to an acquisition
callback and let the application combine them with its existing loader defaults.
This accommodates applications whose defaults depend on domain input, but adds
consumer wiring and makes consistent behavior less automatic. Either design
must account for the native API replacing all three defaults at once.
Omitting a selector preserves its declared default. Supplying a namespace
replaces that default for the invocation; supplying an explicitly empty value
clears it. Each resource type is independent. For example, overriding the
prompt namespace must preserve the declared profile and backend defaults.
Qualified resource IDs pass through unchanged. Catalog namespace filters remain
separate from these resource-resolution defaults.
The standard option owns composition instead of requiring an application
callback to merge every selection. Applications needing custom namespace
selection can retain their own loading behavior without enabling the option.
**Remaining design:** select exact flag names, scoped convenience aliases,
and applicability to individual commands. These details are not settled by
agreement on default composition.
### OD-4: Configuration path and metadata presentation