Validate final registered sequence identities

This commit is contained in:
2026-10-23 21:43:54 +00:00
parent 41b5dff69b
commit 5af71a7533
7 changed files with 300 additions and 32 deletions

View File

@@ -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

View File

@@ -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.