Modules
Program Dependence Graph for Elixir and Erlang.
Shared analysis helpers for project-wide queries.
Runs structural validation and change-safety checks.
Explains one function, module, file, or line.
Shows a project-level map of modules, coupling, hotspots, depth, effects, boundaries, and data-flow summaries.
Shows GenServer state machines, missing message handlers, and hidden coupling.
Concurrency patterns — Task.async/await pairing, process monitors, spawn_link chains, and supervisor topology.
Analyze code with Reach and generate an interactive dependency graph.
Traces data flow, taint paths, and forward/backward slices.
Traces data flow from sources to sinks. Detects taint paths where untrusted input reaches dangerous operations.
Program slicing — finds the minimum set of statements that affect a value.
Builds call graph edges between function definitions.
Validates .reach.exs architecture policies against project structure.
Struct for an advisory refactoring candidate with confidence and proof.
Generates graph-backed refactoring candidates from cycles, effects, and pure regions.
Analyzes changed functions for risk, impact, and clone siblings.
Struct for a changed function with risk metadata.
Struct for changed-code analysis results.
Finds dead code — pure expressions whose values are never used.
Struct for a dead code finding.
Runs structural and performance smell checks over a loaded project.
Struct for an architecture policy violation.
Process-dictionary-cached clone detection dispatcher.
Struct for a clone family (a group of similar code fragments).
ExDNA-backed clone detection provider.
Struct for a single code fragment within a clone family.
Detects concurrency patterns (Task, spawn, GenServer calls).
Parses and normalizes .reach.exs architecture policy configuration.
Computes control dependence from CFG and post-dominators.
Translates IR nodes into control flow graph vertices and edges.
Computes data dependence (def-use chains) from IR.
Summarizes function dependencies (callers, callees, shared state).
Immediate dominator/post-dominator trees and dominance frontiers.
Effect classification for IR nodes.
Registry dispatching source files to language-specific frontends.
BEAM bytecode frontend for analyzing compiled .beam files.
Translates Elixir AST into Reach IR nodes.
Translates Erlang abstract forms into Reach IR nodes.
Gleam source frontend — parses .gleam files into Reach IR.
JavaScript source frontend — parses .js files into Reach IR.
Adjacency-list graph data structure with vertex and edge operations.
Graph traversal algorithms (BFS, DFS, reachability, SCC).
Resolves higher-order function references to concrete callees.
Internal Representation tree utilities.
Monotonic ID counter for IR node construction.
Utility functions for IR node inspection and traversal.
A node in the internal representation.
Finds advisory graph-backed refactoring candidates for one target function.
Builds agent-readable context bundles for a single target function.
Builds target-local data-flow summaries for mix reach.inspect.
Struct for a cross-function data flow edge summary.
Struct for a data flow node summary.
Struct for data inspection results.
Struct for a variable flow summary.
Builds dependency summaries for one target function.
Builds impact summaries for a target function.
Finds and explains relationship paths between two targets.
Struct for a single relationship path with evidence.
Struct for why-path query results.
Computes project-wide summaries including modules, hotspots, coupling, effects, depth, and data flow.
Struct for functions with multiple distinct side-effect kinds.
Struct for module coupling metrics including afferent, efferent, and instability.
Struct for a module dependency cycle with its components.
Struct for a function with cross-function data flow edges.
Struct for a cross-function data flow summary.
Struct for control nesting depth metrics of a function.
Struct for a call site with its classified effect.
Struct for a per-function effect classification row.
Struct for project-wide effect distribution.
Struct for complexity × callers hotspot metrics.
Struct for per-module coupling detail.
Struct for per-module complexity metrics.
Struct for project-level summary statistics.
Struct for a call with unresolved effect classification.
Struct for a cross-function reference edge.
Entry point for OTP analysis, covering GenServer, gen_statem, and supervisor patterns.
Analyzes GenServer and gen_statem state machines from IR to extract behaviours, state transforms, and missing handlers.
Struct representing a detected OTP behaviour with its callbacks and state transforms.
Struct representing a missing GenServer or gen_statem handler finding.
Struct holding the combined results of an OTP analysis run.
Struct representing a state transformation performed within an OTP callback.
Struct representing extracted supervisor child specifications.
Detects concurrency patterns such as tasks, spawns, monitors, and supervisors across project functions.
Struct holding the results of a concurrency pattern analysis.
Detects hidden coupling across modules via shared ETS tables, process dictionary keys, and message patterns.
Analyzes cross-process data dependencies by tracing effects through GenServer call/cast boundaries.
Detects GenServer.call sites where the reply value is discarded.
Extracts GenServer state access patterns, callbacks, and reply semantics from module IR.
Extracts gen_statem states, transitions, and event handlers from module IR.
Behaviour for library-specific analysis plugins.
Plugin for Ash framework action and resource semantics.
Plugin for Ecto query DSL, Repo calls, and schema semantics.
Plugin for GenStage producer/consumer semantics.
Shared helpers for plugin callback implementations.
Plugin for Jason encoding effect classification.
Plugin for Jido action, signal, and tool semantics.
Plugin for Oban worker and job semantics.
Plugin for OpenTelemetry span and context propagation.
Plugin for Phoenix conn, LiveView, and channel semantics.
Plugin for cross-language analysis of QuickBEAM (Elixir + JavaScript).
Multi-file project analysis.
Query API for filtering and searching project nodes and edges.
Behaviour and shared helpers for IR-based smell checks.
Detects module groups sharing the same public callback set.
Detects structural drift across clone families.
Pattern-based detection of suboptimal collection operations.
Detects compile-time/runtime config phase mismatches.
Detects mixed atom/string key access on the same map.
Detects repeated map literals that should be structs.
Detects non-idiomatic patterns such as guard equality and update-then-fetch.
Detects O(n²) patterns in loops and recursive functions.
Pattern-based detection of redundant pipeline operations.
Detects duplicate pure calls within the same function.
Detects string concatenation where iolists are more efficient.
Struct for smell check findings with location and evidence.
Shared helpers for smell checks including loop detection, statement pairs, and callbacks.
Macro DSL for ExAST-backed pattern smell checks.
Auto-discovers and lists all smell check modules.
Builds system dependence graph from per-function PDGs.
Taint and variable flow tracing through data dependence edges.
Struct for a single taint flow path.
Struct for flow trace results.
Plugin-dispatched trace pattern presets.
Backward and forward program slicing from a source location.
Struct for program slice results.
Struct for a single statement in a program slice.
Generates interactive HTML reports from project analysis.
Decomposes CFG into visualization blocks and edges.
Serializes graph data to JSON for frontend rendering.
Shared helpers for source extraction and line mapping.
Extracts and highlights source code snippets for blocks.
Mix Tasks
Generates an interactive HTML report for Elixir/Erlang/Gleam/JavaScript source files.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Removed compatibility task.
Shows GenServer state machines, missing message handlers, and hidden coupling.
Removed compatibility task.
Removed compatibility task.
Explains one function, module, file, or line.
Shows a project-level map of modules, coupling, hotspots, depth, effects, boundaries, and data-flow summaries.
Traces data flow, taint paths, and forward/backward slices.
Runs structural validation and change-safety checks.
Removed compatibility task.