type: initiative slug: grain-fanout-risk title: Grain Inference and Fanout Risk workstream: context-catalog-nimble owner: data-ai-engineer-architect status: ready_for_eng milestone: m1-ft-analytics-analyst-pilot tasks: - task-m1-ai-context-grain-fanout-risk-signals - research-deterministic-column-fanout-risk-signals-and-ai-context-surfacing
{{ initiative_progress_bar("context-catalog-nimble", "grain-fanout-risk") }}
Infer candidate model grain, join multiplicity profiles, and fanout risk scores from profiling stats and relationship graph. Surface warnings to agents and compile-time linting.
Three-phase implementation adding new modules to dataface/core/inspect/:
grain_detector.py): Detect per-table grain from existing profiler stats (PK, uniqueness, naming). No new DB queries.join_multiplicity.py): Classify relationship cardinality (1:1, 1:N, N:1, N:M) and compute fanout factors from existing column stats.fanout_risk.py): Score join risk (none → critical) with actionable recommendations. Wire into MCP tools and compile-time warnings.Phase 4 (multi-hop path analysis) is deferred to M2+.
See spec.md for full phased plan, output schemas, algorithms, non-goals, and acceptance criteria.