Validate final registered sequence identities
This commit is contained in:
@@ -846,12 +846,21 @@ source acquisition. Unused and root registrations are allowed and have no effect
|
||||
Registration controls strict composition and supplies identity fields for parent
|
||||
lookup when surviving records in that sequence use `extends`. Dynamic selectors
|
||||
apply at strict-composition and inheritance destinations without requiring the
|
||||
application to enumerate mapping keys. Each underlay group
|
||||
and the main tier has independent duplicate-identity state. Precedence assembly
|
||||
is unchanged: a present higher-priority sequence replaces the lower sequence as
|
||||
one value, including at a registered path. Registration does not add a final
|
||||
identity check to defaults, application resolution, or the published typed
|
||||
configuration. The accepted rationale is recorded in
|
||||
application to enumerate mapping keys. Each underlay group and the main tier has
|
||||
independent duplicate-identity state. Precedence assembly is unchanged: a present
|
||||
higher-priority sequence replaces the lower sequence as one value, including at a
|
||||
registered path.
|
||||
|
||||
After effective secret lookup, the shared load lifecycle validates every matching
|
||||
sequence in the final typed projection before application semantic validation.
|
||||
This catches identities introduced by typed defaults, CLI assignment, or recorded
|
||||
resolution, in both ordinary and layered loads. Only actual sequences are checked;
|
||||
absent paths and other shapes remain the schema or application validator's concern.
|
||||
Identity fields are read from effective typed payload regardless of authored
|
||||
presence. Diagnostics use concrete collection and item paths and available source
|
||||
locations, and never include identity or credential values. The guarantee ends at
|
||||
successful publication; later caller mutations are outside it. The accepted
|
||||
rationale is recorded in
|
||||
[ADR 0014](adr/0014-sequence-placement-and-composition.md).
|
||||
The [maintained prompt catalog](consumers/README.md#identified-prompt-sequences)
|
||||
shows item path and glob imports, helper-supplied identity, and main-tier
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Sequence Identity And Combination Implementation Plan
|
||||
|
||||
Status: implementation in progress; Stages 1–26 complete.
|
||||
Status: implementation in progress; Stages 1–27 complete.
|
||||
|
||||
Audience: a Luna coding agent implementing one numbered stage per prompt, in
|
||||
order. This plan starts at commit
|
||||
@@ -913,6 +913,15 @@ Scope: the final-result guarantee, not another combination or inheritance phase.
|
||||
Validation: final identity, selector, facade, defaults/resolution/override, and
|
||||
secret tests plus the everyday check.
|
||||
|
||||
**Completion:** Added shared final identity validation to the ordinary and layered
|
||||
load lifecycle after effective secret lookup and before application validation.
|
||||
It traverses the final typed projection with compiled selectors and reports
|
||||
concrete paths and available locations without exposing identity or credential
|
||||
values. Added facade and lifecycle coverage for late defaults, CLI, resolution,
|
||||
dynamic namespaces, typed numeric equality, ignored unmatched shapes, and nil
|
||||
results on failure. Updated registration comments and the configuration contract.
|
||||
Verified focused facade and engine tests plus `./scripts/check.sh`.
|
||||
|
||||
## Stage 28 — Exercise Representative Consumer Workflows
|
||||
|
||||
Scope: a small number of meaningful integrations, not a Cartesian test matrix.
|
||||
|
||||
Reference in New Issue
Block a user