Glossary
Entry point
Section titled “Entry point”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.
Symbol graph
Section titled “Symbol graph”The graph Necro builds with the TypeScript compiler API: nodes are top-level declarations, edges are references between them. The basis for reachability.
Edge kind (prod / test)
Section titled “Edge kind (prod / test)”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.
Reachability
Section titled “Reachability”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).
Verdict
Section titled “Verdict”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.
Evidence chain
Section titled “Evidence chain”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.