Document configuration comparison behavior

This commit is contained in:
2026-10-11 22:00:22 +00:00
parent f0853d1000
commit 8b46e12da7
11 changed files with 170 additions and 123 deletions

View File

@@ -18,29 +18,20 @@ an idea here does not select its syntax, API, priority, or delivery date.
## Deferred capability targets
### DIFF-01: semantic configuration comparison
### PromptKit configuration comparison
Expose comparison of two independently resolved selections of one scope using
owning-library public comparison APIs. [ADR 0008](../adr/0008-semantic-configuration-diff.md)
owns native comparison, paired safe disclosure, and the reduced default report.
The target includes a YAML-only report of safe changed regions; completed
comparisons succeed whether or not they find differences.
ConfigKit-backed `config diff` is implemented by `ckconfig` for scopes that
declare that capability. `ckprompt.ConfigScope` does not declare comparison.
Reassess PromptKit's supported public comparison capabilities before planning a
PromptKit comparison. Do not reach into ConfigKit internals or infer comparison
semantics from rendered YAML.
The initial review of ConfigKit v0.5.0 and PromptKit v0.12.0 did not find the
public comparison support needed for that target. ConfigKit v0.7.0 introduced
`configkit.Diff`, retained in v0.7.1, which supplies native comparison and paired
safe changed-region snapshots. CommandKit still uses ConfigKit v0.5.0; dependency
adoption and comparison delivery are targeted by the
[ConfigKit roadmap](configkit.md). Assess PromptKit's supported
public comparison capabilities separately. Rendered YAML and sibling internals
are not substitutes for the owning library's public comparison contract.
### Comparison extensions
The ConfigKit roadmap records accepted selection syntax and the paired provider
API, with lifecycle recorded in
[ADR 0012](../adr/0012-typed-configuration-comparison-pairs.md). The selected report
shape is recorded in that roadmap. Independent per-side domain selectors and
an optional assertion mode remain outside that delivery. Add public types and
handlers with their implementation rather than exposing placeholders.
Independent per-side domain selectors and an optional assertion mode remain
unselected extensions to the delivered ConfigKit comparison. Consider them only
for a concrete consumer need and a deliberate API/behavior decision under the
relevant ADRs.
### CAT-01: PromptKit catalogs