Pourquoi Claude Code s'oblige à lire les fichiers avant de les éditer

DEV - 18/04
Pourquoi Claude Code s'oblige à lire les fichiers avant de les modifier Claude Code modifie...

Pourquoi Claude Code s'oblige à lire les fichiers avant de les éditer

Claude Code édite chaque jour des milliers de fichiers pour les développeurs. Derrière chaque modification se trouve un système conçu pour empêcher la corruption des données, enregistrer les jetons et gérer les cas extrêmes auxquels vous n'auriez jamais pensé, comme les guillemets bouclés, les fichiers de périphérique infinis et les conditions de concurrence.

J'ai effectué une rétro-ingénierie du code source (v2.1.88) et j'ai trouvé des décisions d'ingénierie étonnamment intelligentes. Voici les plus intéressants.

La règle de lecture avant modification

Claude Code ne peut physiquement pas éditer un fichier qu'il n'a pas lu au préalable. Ce n'est pas une suggestion, c'est appliqué dans le code.

Lorsque le modèle d'IA appelle FileEditTool, la première chose que l'outil vérifie est si le fichier existe dans unreadFileStatecache. S'il n'y a aucun enregistrement d'une lecture précédente, la modification est rejetée avec une erreur.

Pourquoi? Parce que les LLM hallucinent.

Le modèle peut "se souvenir" d'un fichier contenantconst x = 1à la ligne 42, mais cela pourrait être faux - peut-être que cette ligne a été modifiée par un autre processus, ou que le modèle la confond avec un fichier similaire. Si la modification se déroule sur la base d'une mémoire hallucinée, cela pourrait corrompre le fichier.

En forçant la lecture avant édition,...
[Courte citation de 8% de l'article original]

Loading...