Skip to content

Understanding results

Every finding has a verdict (what Necro asserts) and, for dead code, a confidence tier (how sure it is). The tier drives what Necro is willing to do automatically.

TierConditionWhat it meansAuto-fix eligible
certainprivate scope, 0 references, no taint nearbySafe to remove✅ yes
likelyexported, 0 internal references, not an entry, no taintProbably dead, but external consumers are invisible❌ no — confirm first
maybetaint nearby (dynamic import, reflection) or public APIAmbiguous — quarantined, not condemned❌ never

The maybe tier is the false-positive sink: rather than guess, Necro reports the ambiguity with reasons. Only certain findings are eligible for automatic removal (planned --fix); everything else needs a human.

  • dead — unreachable from any production entry point. Tiered as above.
  • test-only — reachable, but only through test files. Production-dead. See The test-only verdict. Reported, never auto-removed.

Alive code (reachable from a production entry) is not reported.

Findings print worst-first: certainlikelymaybetest-only, then by file and line. Use --top N to see only the worst N.

You’ll see • coverage: not available in evidence chains. Coverage ingestion (lcov/c8) — which would let Necro confirm a symbol is never executed at runtime — is planned. Until then, tiers are computed from static signals alone.