Argus.Analyses.Coverage (Panoptes v0.13.0)

Copy Markdown View Source

Coverage and precision meta-analysis.

Measures the extractor pipeline itself rather than the analyzed code. Every fallback to a "dynamic" placeholder is recorded as an imprecision fact, and passive Datalog rules derive "recognized shape but no detail extracted" findings from the existing Layer 2 fact base.

Running this analysis tells Argus developers exactly where the extractors are losing information — the raw feedback loop for iterative precision work. It's a developer-facing meta-analysis, not a correctness check, and is excluded from the default correctness set.

How it's different from other analyses

Unlike every other analysis in Argus, coverage opts the pipeline into imprecision tracing. Argus.Analysis.run/3 sets trace_imprecision: true automatically when it sees this analysis name, so the per-process flag in Argus.Extractor.Helpers flips on inside each extractor worker. No other analysis populates the imprecision relation.

Output relations

  • imprecision_event(category, func, relation, reason) — raw fallback events emitted by the extractors. One row per track_dynamic/track_imprecision call site that fired.
  • coverage_supervisor_no_children(sup) — supervisor recognized but no static or dynamic children recovered.
  • coverage_genserver_isolated(mod) — GenServer module with zero observed sync_call/async_cast traffic.
  • coverage_ets_unused(name) — named ETS table with no observed read or write operations.
  • coverage_named_process_unreachable(name, mod) — registered name with no sync or async traffic targeting it.