code_index: graphe d'appels v2 — cascade de résolution à confiance#5
Merged
Conversation
Remplace la résolution par nom brute (v1) par une cascade état-de-l'art sans compilateur (scope/stack graphs, SCIP, cascade Codebase-Memory) : - $this->/self::/parent:: résolus dans la classe englobante + sa hiérarchie (extends/implements/use trait) — attaque les ~54 % d'appels dynamiques PHP ; - Class::m / new Class via use/namespace (PHP) ou import (TS/PY) ; - fonction libre : import-exact / même-namespace / même-fichier / nom unique, sinon ambigu — chaque arête porte sa confiance. Toute résolution contrainte à la MÊME LANGUE (un new Date() JS ne vise plus une classe PHP Date). Garde-fous primitives conservés (fanout + fréquence d'appel, appliqués avant la résolution globale par nom pour ne pas absorber range()/push()). Arêtes fortes (≥0.7) jamais élaguées. code_impact v2 : buckets Certain/Probable/Incertain (certitude = min des confiances sur le chemin), regroupement par sous-système (repo + dossier de tête), classement par centralité PageRank + fan-in (calculés au build). Artefact graph-v2. Sur le périmètre complet : ~58,6k arêtes dont ~31k fortes (48 %) — la moitié des liens désormais haute-confiance vs résolution plate v1. 16 tests graph, suite verte.
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.
Enrichissement Phase 4 (état de l'art)
Remplace la résolution par nom brute (v1) par une cascade de résolution à score de confiance — l'état de l'art accessible sans compilateur (scope/stack graphs GitHub, SCIP Sourcegraph, cascade « Codebase-Memory »). Aucun labo IA ne publie de recette call-graph type Contextual Retrieval ; Anthropic prône au contraire la recherche agentique. On adopte donc la cascade OSS/académique + la moitié « analyse » de GraphRAG.
Résolution
$this->m()/self::m()/parent::m()→ classe englobante + hiérarchie (extends/implements/use trait) — 0.95 (attaque les ~54 % d'appels dynamiques PHP) ;Class::m()/new Class()→ classe viause/namespace (PHP) ou import (TS/PY) — 0.90 ;Contrainte same-langue (un
new Date()JS ne vise plus une classe PHPDate). Garde-fous primitives conservés et appliqués avant la résolution globale par nom (sinon une fonction homonyme d'un builtin absorberange()/push()). Arêtes fortes (≥0.7) jamais élaguées.code_impact v2
Buckets Certain / Probable / Incertain (certitude = min des confiances sur le chemin), regroupement par sous-système (repo + dossier de tête), classement par centralité PageRank + fan-in (calculés au build, façon repo-map Aider).
Résultat
Périmètre complet : ~58,6k arêtes dont ~31k fortes (48 %) vs résolution plate v1. Les cas réels valident :
vent_deg3(3 dups) → tout en Incertain + ambiguïté signalée ;get_accumulation_…→ Certains via hiérarchie$this. 16 tests graph, suitecode_indexverte (70).