diff --git a/docs/roadmap/promptkit-v0.19.0.md b/docs/roadmap/promptkit-v0.19.0.md index a048b81..a7fc730 100644 --- a/docs/roadmap/promptkit-v0.19.0.md +++ b/docs/roadmap/promptkit-v0.19.0.md @@ -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