Priority
P0 — top engineering priority. This epic tracks the complete five-part AST/static-analysis accuracy audit.
Why this is first priority
The checked-in verification artifact reports mypy normalized TP=3, FP=0, FN=68 (4.23% recall), with most false negatives attributed to discovery before propagation. The artifact may predate current source, but the audit reproduced concrete false negatives, false positives, established-empty inventories, and benchmark-integrity risks.
The objective is not to claim complete Python runtime reachability. It is to maximize accuracy within declared static subsets while making ambiguity, unsupported behavior, and incompleteness explicit.
Workstreams
Correctness and inventory foundations
Semantic propagation and framework execution
Isolation, effects, and extensibility
Architecture decision
Retain CPython AST for framework registration/source ranges and mypy for typed calls. Add dual snapshots, bounded CFG/callable/receiver analysis, and a versioned evidence graph. SCIP, Pyright, tree-sitter, LibCST, CodeQL, and runtime traces are complementary providers or differential oracles, not wholesale replacements.
Program-level gates
Validation policy
- Controlled/property-based call-graph and FastAPI program generation.
- Baseline/target delete-add, rename, and move metamorphic tests.
- Secure AST versus sandboxed runtime route-census differential tests.
- mypy versus optional SCIP/Pyright definition/call-target disagreements stored as review fixtures.
- Raw exact and normalized real-world metrics, confidence tiers, discovery/propagation attribution, unresolved coverage, and negative-control specificity.
- Missing and
not_evaluable labels must never be treated as negatives.
Explicit limits
Dynamic imports, reflection, plugins, monkeypatching, descriptors, native extensions, runtime configuration, and unobserved production behavior remain fundamental static-analysis limits. Runtime observations may confirm edges; their absence cannot prove non-reachability.
Related roadmap/issues: #20, #97, #99, #100, #101, #104, #107, #109, #110, #144, #148.
Priority
P0 — top engineering priority. This epic tracks the complete five-part AST/static-analysis accuracy audit.
Why this is first priority
The checked-in verification artifact reports mypy normalized
TP=3, FP=0, FN=68(4.23% recall), with most false negatives attributed to discovery before propagation. The artifact may predate current source, but the audit reproduced concrete false negatives, false positives, established-empty inventories, and benchmark-integrity risks.The objective is not to claim complete Python runtime reachability. It is to maximize accuracy within declared static subsets while making ambiguity, unsupported behavior, and incompleteness explicit.
Workstreams
Correctness and inventory foundations
include_routerand route-subclass compatibilitySemantic propagation and framework execution
Isolation, effects, and extensibility
Architecture decision
Retain CPython AST for framework registration/source ranges and mypy for typed calls. Add dual snapshots, bounded CFG/callable/receiver analysis, and a versioned evidence graph. SCIP, Pyright, tree-sitter, LibCST, CodeQL, and runtime traces are complementary providers or differential oracles, not wholesale replacements.
Program-level gates
conditional/unavailable, never established-empty inventory.Validation policy
not_evaluablelabels must never be treated as negatives.Explicit limits
Dynamic imports, reflection, plugins, monkeypatching, descriptors, native extensions, runtime configuration, and unobserved production behavior remain fundamental static-analysis limits. Runtime observations may confirm edges; their absence cannot prove non-reachability.
Related roadmap/issues: #20, #97, #99, #100, #101, #104, #107, #109, #110, #144, #148.