DecisionInput — FK-pinned input provenance (decision-spine 2c)

Featurekamo-shared-library
Shipped
June 27, 2026 at 1:40 AM UTC
Author
Kamo
Commit
2890340

The immutable child of AiDecision that makes every decision deterministically replayable (doc 03 §2.1). Unblocked by the now-complete catalog/scenario/pricing inventory — DecisionInput FK-pins the immutable rule/fact/version PKs. - Total-block WORM (AiDecision idiom: @PreUpdate throws, no @PostLoad, no DB trigger). 11 exactly-one-non-null soft-UUID FK columns (the InputKind discriminator selects which); only ai_decision_uid is a hard FK. - InputKind(11)/InputRole(3) enums. scoreContribution numeric(8,4); testLoan (CORE, mirrors StewardFeedback — WORM can't retrofit the flag). - HMDA firewall (doc 03 §3.3) — CODE-VERIFIED the doc's CHECK is architecturally impossible: locked VerifiedFact has no factClass/HMDA_DEMOGRAPHIC column, demographics live in a SEPARATE BORROWER_HMDA table, CRDB CHECK can't subquery, no triggers. Firewall is STRUCTURAL (table segregation; this entity has no fact-read path) + deferred app-layer rules. NO HMDA DDL ships (a non-working CHECK would mislead an examiner). - The single-non-null + kind↔column coherence CHECKs are KamoInitializer DDL. - 4 tests green; decision repo pkg already in @EnableJpaRepositories. Grounded by a research Workflow (code-verified VerifiedFact/HMDA) + adversarial 2-agent review (SHIP-AS-IS; shipped the kind↔column coherence CHECK).

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing