Demandez à un assistant de code IA de corriger un bug dans un service inconnu, et observez ce qu'il fait en premier : il commence à lire. Il ouvre un fichier, puis un autre, puis cherche un nom de fonction et en ouvre quatre de plus. Chaque passage coûte des tokens et du temps, et l'agent arrive encore à moitié aveugle à la modification — ayant échantillonné la base de code plutôt que de la comprendre.
Codna inverse cet ordre. Il lit l'intégralité du dépôt avant que l'agent n'écrive une seule ligne, construisant une carte structurelle du projet entier en quelques millisecondes. Les agents lisent votre code. Codna le comprend.
Pourquoi un assistant de code IA lit à l'aveugle
Un dépôt volumineux n'est pas un dossier de texte. C'est un graphe — d'imports, de sites d'appel, de définitions de types, et des conventions tacites qu'une équipe a accumulées au fil des années. Lorsqu'un agent de codage IA parcourt ce graphe fichier par fichier, il paie deux fois : une fois en tokens dépensés à relire ce qu'il a déjà vu, et une fois en erreurs commises parce qu'il n'a jamais vu la partie qui comptait.
L'échec est rarement spectaculaire. L'agent corrige le symptôme et passe à côté du helper partagé trois répertoires plus loin. Il duplique un utilitaire qui existe déjà. Il modifie une signature sans remarquer les sept appelants en aval. Aucun de ces cas n'est un échec de raisonnement. Ce sont des échecs de contexte — le modèle n'a jamais eu accès à suffisamment de la base de code pour faire mieux.
La plupart des mauvaises modifications IA ne sont pas des erreurs de raisonnement. Ce sont des erreurs de contexte manquant.
La solution habituelle consiste à envoyer plus de texte : remplir le prompt de fichiers en espérant que les lignes pertinentes s'y trouvent quelque part. Cela échange un problème contre un autre. Les fenêtres de contexte se remplissent, les coûts augmentent, et le signal dont l'agent a réellement besoin se noie sous tout ce dont il n'a pas besoin.
Cartographier d'abord, agir ensuite
Le principe de Codna est que comprendre une base de code et la modifier sont deux tâches distinctes, qui doivent s'exécuter sur deux moteurs différents. Le moteur de cartographie effectue le travail structurel coûteux une seule fois et le maintient à jour. L'agent de codage se charge de l'écriture, en arrivant avec un contexte précis plutôt qu'une liste de lecture.
Cette cartographie s'effectue pour zéro token. Codna indexe le dépôt par analyse statique plutôt qu'en faisant passer le code source dans un modèle de langage — construire et actualiser la carte d'un projet d'un million de lignes ne coûte donc rien en inférence. Le budget du modèle est dépensé là où il est rentable — sur la modification elle-même, et non à redécouvrir le projet depuis zéro à chaque session.
Le résultat est un assistant de codage propulsé par l'IA qui traite le contexte de la base de code comme une infrastructure. La carte est toujours là, toujours à jour, et interrogeable à l'instant où un agent en a besoin.
Comprendre. Corriger. Évoluer.
La boucle comporte quatre étapes, exécutées dans l'ordre à chaque intervention de l'agent.
Premièrement, Codna cartographie le dépôt — en analysant le projet pour produire un index structurel des fichiers, symboles, dépendances et graphes d'appel. Deuxièmement, il comprend cette carte, en résolvant les relations entre les éléments afin qu'une requête sur une fonction tienne compte du code qui l'appelle et de celui dont elle dépend. Troisièmement, lorsqu'une tâche arrive, Codna récupère le contexte — extrayant la tranche exacte de la base de code que la modification concerne, et rien de plus. Quatrièmement, il guide l'agent, en lui transmettant ce contexte ciblé pour que l'agent de codage intervienne avec la même conscience qu'un ingénieur senior porterait en tête.
Comprendre. Corriger. Évoluer. Le choix des termes est délibéré. La compréhension précède la correction parce qu'une correction sans compréhension est une supposition — et l'évolution — refactorisations, migrations, amélioration progressive d'un système dans le temps — n'est sûre que lorsque chaque modification est ancrée dans l'ensemble.
Ce que change un contexte précis
Lorsque l'agent cesse de lire à l'aveugle, la différence se voit dans le travail, pas dans la démo.
- Les modifications atterrissent au bon endroit parce que l'agent peut voir chaque appelant de la fonction qu'il touche
- La consommation de tokens diminue parce que le modèle ne paie plus pour relire les fichiers à chaque tour
- Les refactorisations deviennent plus sûres, la carte révélant le rayon d'impact complet d'une modification avant qu'elle ne soit déployée
- La prise en main d'un dépôt inconnu cesse d'être un jeu de devinettes — la structure est déjà tracée
C'est la frontière entre un agent de codage IA et une véritable intelligence de code. L'un lit autant qu'il peut se le permettre. L'autre sait quoi lire avant de commencer. Parmi les outils d'assistance au code IA, la distinction est facile à manquer lors d'un essai rapide et impossible à manquer sur un trimestre de travail réel — c'est ce qui sépare une autocomplétion habile du meilleur assistant de code IA pour une base de code que vous devez réellement maintenir.
Conçu pour les dépôts que vous avez déjà
Codna s'exécute sur de vrais projets — les grands, les stratifiés, les partiellement non documentés, pas les exemples soignés d'un tutoriel. Il fonctionne aux côtés des agents de codage que les équipes utilisent déjà, y compris en tant qu'assistant de code IA pour VS Code, de sorte que la carte informe les outils que les développeurs utilisent plutôt que de les remplacer. L'objectif n'a jamais été d'ajouter une fenêtre de plus. C'était de faire en sorte que l'agent dans la fenêtre que vous avez arrive en sachant déjà où il se trouve.
À mesure que les systèmes grandissent, l'écart entre lire le code et le comprendre ne fait que se creuser, et les assistants qui le comblent seront ceux qui cartographient avant d'agir. Codna est disponible, et il est conçu pour cet avenir — où comprendre la base de code est la première chose que font vos outils, et non la dernière.