Skip to content

Glossary

A symbol or file that is alive by definition — a root for reachability. Production entries come from package.json (main, module, bin, exports) and conventional files (src/index.ts); test entries come from your test-runner config.

The graph Necro builds with the TypeScript compiler API: nodes are top-level declarations, edges are references between them. The basis for reachability.

Every reference edge is tagged by the kind of file it originates in — production or test. This two-color tagging is what lets Necro distinguish alive from test-only.

Whether a symbol can be reached from an entry point by following edges. Necro runs it in two colors (prod, then prod+test).

The confidence level of a dead-code finding: certain / likely / maybe. Only certain is flagged auto-fix eligible (for the planned --fix).

What a finding asserts: dead (unreachable) or test-only (reachable only via tests).

A region containing dynamic dispatch that static analysis can’t resolve — dynamic import(), eval, or computed member access. A tainted dead candidate is downgraded to maybe rather than condemned.

The list of signals (each / / ) plus a verdict line that accompanies every finding.

Change Risk Anti-Patterns — a public metric (complexity² × (1 − coverage)³ + complexity) Necro computes as one input to its risk hotspot ranking (weighted by git churn). Requires a coverage report; without one, hotspots fall back to complexity × churn.