Package analyze derives the human-facing insights the report surfaces: the
most-connected "god nodes", surprising cross-file connections, and file-level
import cycles. It mirrors the intent of the Python original's analyze.py,
trimmed to what the AST-only graph can support.
ImportCycles finds circular dependencies in the file-level import graph built
from imports_from edges. Cycles are bounded in length and deduplicated by
rotation, shortest first.
GodNodes returns the topN most-connected real entities. File-hub nodes,
external-dependency/concept nodes, and method stubs are excluded because they
accumulate edges mechanically without being meaningful abstractions.
Surprising returns up to topN cross-file edges between real entities, ranked
by how non-obvious they are (AMBIGUOUS > INFERRED > EXTRACTED, with a bonus
for bridging communities).