- Ya
- 26 Juni 2026, 19:29 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 39e46b9
The §8.1 step-2 eligibility-first filter substrate (the cell conjunct; guideline_rule + AUS gate AND in later). - MlosEligibilityMatrix (mlos_eligibility_matrix): per **************** effective-dated; REUSES locked URLA **************** via @Enumerated(STRING) on new columns (FK-free, never edits them); guidelineVersionId soft-FK (nullable until guidelines). - MlosEligibilityCell (mlos_eligibility_cell): typed eligibility window — fico_low/high, property_type (locked PropertyTypeUrla), units_low/high, loan_amount_low/high, state_set_id (FK MlosValueSet), limit_value. Pricing/limit numbers raw BigDecimal (catalog convention). - MlosMatrixType {MAX_LTV,MAX_CLTV,MAX_DTI} — discriminator for which ratio limit_value caps. - EligibilityCellMatcher (ungated @Component) + ScenarioFacts reuse + EligibilityOutcome **************** + EligibilityResult: locate the containing cell across **************** RATIO-DISPATCH by matrix_type (ltv/cltv/dti) tested vs limit; missing required attr → CANNOT_PRICE (hoisted before coverage); state fail-closed; overlap → most-restrictive (surfaced in detail). 12 EligibilityCellMatcherTest green. Enum-reuse + spec from research workflow; adversarially reviewed (2-agent): fixed matrix_type ratio dispatch + hoisted-ratio CANNOT_PRICE + overlap observability + dropped unhonored OTHER. NO KamoInitializer code change (catalog repo pkg registered Slice 1) — re-run only.