KamoCRM

Bulletins + bulletin-change provenance + effective-basis applicability (Phase-2 Slice 10)

Featurekamo-shared-library
Shipped
26 ஜூன், 2026 அன்று 9:47 PM UTC
Author
Kamo
Commit
cd51a4e

Closes the doc-02 §6.3 catalog entity inventory. Bulletins are the investor change announcements that spawn new catalog versions and supersede predecessors (§6.5). - MlosBulletin (mlos_bulletin, WORM): investorId FK, title, issued_at, effective_from (LocalDate), effective_basis (BulletinEffectiveBasis LOCK/NOTE/FUNDING/APPLICATION), pipeline_grandfather, supersedes_id self-FK, source_document_id FK, status (BulletinStatus DRAFT/ACTIVE/SUPERSEDED). Content-frozen WORM guard (no effective_until window; corrections = a new bulletin). - MlosBulletinChange (mlos_bulletin_change): change_type, target_product_id, created_guideline/ **************** (at most one — none for RETIRED/MODIFIED), action — the bulletin->version provenance chain. 4 enums. - BulletinApplicabilityResolver (ungated) + LoanEffectiveDates + tri-state BulletinApplicability: encodes the §6.5 compliance rule (misapplying effective_basis is a compliance error) — applies iff ACTIVE + basis-date >= effective_from + not grandfathered; missing basis date -> INDETERMINATE (defer, never silently "old terms"); grandfather uses an EXPLICIT pipelineEntryDate (commitment milestone), not a hardcoded application date. 14 tests green. Adversarially reviewed (2-agent): fixed MEDIUM (grandfather hardcoded applicationDate + internal contradiction -> explicit pipelineEntryDate), LOW (missing-basis fail-direction -> tri-state INDETERMINATE), + javadoc (at-most-one created_version, supersession caller-contract). NO KamoInitializer code change.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing