Layers
How the 5 layers talk to each other. Arrow weight = number of module-to-module dependencies (explicit, non-test). Red arrows are the ones the architecture rules forbid.
Rule checks
From Agents.md: impl modules depend on public modules — never on another feature's impl.
Left: modules that depend on it. Right: what it depends on. Dashed = added implicitly by uzumConfig { use…() }. Red = rule violation.
Feature-area coupling
Rows depend on columns. Each cell counts module-level edges between two areas (top 24 areas by traffic). Dark cells off the platform columns are the tangles worth untying.
| Severity | Module | Finding | Owner |
|---|
Blast radius
Modules that transitively depend on it — roughly what recompiles when its ABI changes.
Widest fan-out
Direct dependencies. High numbers on an impl mean it knows too much.
Change hotspots
Commits in the last 180 days touching the module. Big and busy with few tests = risk.
Change together
Module pairs most often modified in the same commit — hidden coupling that the build graph may not show.
Detekt baseline
Issues parked in .config/detekt/baseline.xml, by rule.
Legacy View UI
XML layouts still shipped per module (Compose functions total: ).