Exclude reference-only facts from god-class & hotspots fan-in (GAP-XL… - #92
Merged
Merged
Conversation
…-15)
test_ref/file_ref nodes are indexed into the coupling graph, so their
RelCalls edges landed in the reverse adjacency map and were counted as
dependents by the two reverse-index explainers — inflating fan-in and
centrality and, worse, drifting the outlier threshold so genuine
findings dropped below the cut. The plugin contract promised "no other
explainer is affected"; it was.
Add Graph.ArchitecturalReverse(), which filters reverse edges by source
fact kind, and point god-class and hotspots at it. orphans,
impact_analysis, traverse and find_path keep the unfiltered Reverse() —
they intentionally surface those references.
Explainer read-path + a derived index only; facts.jsonl is byte-identical,
so no cacheVersion bump and no golden regeneration.
Tests: facts.TestArchitecturalReverse_ExcludesReferenceKinds,
{godclass,hotspots}.TestExplain_ExcludesTestRefFanIn.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…-15)
test_ref/file_ref nodes are indexed into the coupling graph, so their RelCalls edges landed in the reverse adjacency map and were counted as dependents by the two reverse-index explainers — inflating fan-in and centrality and, worse, drifting the outlier threshold so genuine findings dropped below the cut. The plugin contract promised "no other explainer is affected"; it was.
Add Graph.ArchitecturalReverse(), which filters reverse edges by source fact kind, and point god-class and hotspots at it. orphans, impact_analysis, traverse and find_path keep the unfiltered Reverse() — they intentionally surface those references.
Explainer read-path + a derived index only; facts.jsonl is byte-identical, so no cacheVersion bump and no golden regeneration.
Tests: facts.TestArchitecturalReverse_ExcludesReferenceKinds, {godclass,hotspots}.TestExplain_ExcludesTestRefFanIn.