2026-08-01T05:55:41.820Z
La mémoire de code Claude: vérifier ce qui est chargé et survivre
Inventer les sources de mémoire Claude Code, dériver la portée de capture et la réduction de démarrage, et vérifier une décision critique après le redémarrage ou la compaction.
La mémoire Claude Code doit être utilisée comme un contrat d'entrée de version, sans être jugée par le fait que l'agent semble familier avec le projet. Une configuration saine comporte trois éléments de preuve: les sources attendues chargées, leur contenu n'a pas dérivé ou été tronqué, et une décision critique de projet peut encore être reproduite après un redémarrage ou une compaction. Cette norme compte parce que memory fait maintenant référence à plusieurs mécanismes. Claude Code lit les instructions CLAUDE.md maintenues par l'homme et garde également un répertoire de mémoire automatique écrit par l'agent. Les deux peuvent être présents pendant que le mauvais champ d'action est actif. Les deux peuvent être en cours sur le disque alors qu'ils sont absents du moment qui compte. Et il n'y a pas non plus de frontière d'application: la documentation d'Anthropic décrit explicitement ces fichiers comme un contexte. Si une action doit être bloquée, utilisez un contrôle déterministe tel qu'un crochet PreToolUse . La méthode par défaut est simple: conserver des règles d'équipe durables dans un projet court CLAUDE.md , transférer des instructions conditionnelles dans des règles de parcours, conserver la mémoire automatique comme un indice concis et vérifier l'ensemble de source en direct avant de déboguer le modèle. Traiter la mémoire comme un contrat de source chargée La documentation actuelle du Code Claude décrit deux systèmes complémentaires: Sources Écrivain Appétit typique Comportement de démarrage Les meilleures preuves Gestion de CLAUDE.md Organisation Chaque utilisateur Chargée au lancement /context ou InstructionsLoaded Utilisateur ~/.claude/CLAUDE.md Individuellement Chaque projet Chargée au lancement /context Projet CLAUDE.md ou .claude/CLAUDE.md L'équipe Référentiel Chargée au lancement /context plus le hash du fichier CLAUDE.local.md Individuellement Projet actuel Chargé au lancement lorsque les paramètres locaux sont activés /context plus le hash du fichier CLAUDE.md à nids Propriétaire d'équipe ou de composant Sous directory Chargé quand Claude lit dans ce sous arbre InstructionsLoaded .claude/rules/ .md L'équipe L'échelle globale ou la trajectoire Chargement de fichier de lancement ou de correspondance InstructionsLoaded La mémoire automatique MEMORY.md Claude Référentiel partagé entre les arbres de travail Les 200 premières lignes ou 25KB /memory , vérification des dossiers, et un canary Le tableau expose la première classe de défaillance: déclaré n'est pas chargé . /memory est utile pour trouver et modifier les emplacements configurés. /context répond à la question plus étroite de savoir quels fichiers de mémoire ont atteint la conversation actuelle. Le crochet InstructionsLoaded , ajouté dans le code Claude 2.1.69, convient le mieux lorsque le temps de chargement paresseux et la raison sont importants. Le remplacement d'un diagnostic par un autre produit un faux état vert. L'ordre de chargement est aussi important. Claude Code passe des annuaires plus larges vers le répertoire de travail. Des fichiers plus spécifiques arrivent plus tard, mais le système concatenera les instructions plutôt que de traiter le fichier le plus proche comme une suppression nette. Deux règles contradictoires restent donc deux parties contradictoires du contexte. La réponse sûre est d'éliminer la contradiction, pas de compter sur la position. Les importations ajoutent une autre limite. Un projet CLAUDE.md peut inclure un autre fichier avec @path , jusqu'à quatre sauts récurrents selon la documentation actuelle. Une importation en dehors du répertoire de travail doit être approuvée dès sa première rencontre. La division d'un grand fichier en importations peut faciliter la maintenance, mais elle ne réduit pas le contexte de démarrage car le contenu importé est toujours chargé. La mémoire automatique a une limite différente. Seules les 200 premières lignes ou les 25KB de MEMORY.md , quelle que soit la limite qui arrive en premier, entrent dans une nouvelle conversation. Les détails des dossiers de thèmes sont lus sur demande. Depuis le code Claude 2.1.211, les commentaires HTML à niveau de bloc et de frontmatter sont exclus lors de la mesure de la portion chargée. Une écriture réussie au delà du capot n'est donc pas une lecture réussie dans le futur. Classifier comme couverture partielle , pas persistance saine. Construisez un manifeste avant de blâmer le rappel Une vérification utile ne recueille pas d'injonctions, de transcriptions ou de contenu de mémoire. Il enregistre les chemins de source, la portée, la taille, le temps de modification, un digeste SHA 256, les importations et le mode de chargement documenté. L'artefact reproduisable utilisé pour cet article accepte un référentiel, un répertoire de travail et un indice de mémoire automatique optionnel: Sa sortie s'arrête délibérément sans prétendre qu'un modèle a suivi une instruction: Le fichier complémentaire crée un fichier d'instructions racine, un fichier local de répertoire de travail, une règle de cheminée, un fichier de décision importé et un index de mémoire automatique de 205 lignes. L'essai ne passe que lorsque l'audit: détecte les deux fichiers d'instructions de lancement; résolve l'importation sans lire son contenu dans le rapport; la règle est marquée comme ayant un champ de trajet; marque la couverture de démarrage de la mémoire automatique comme partielle à la limite de la ligne; produit un hash pour chaque source observée; et refuse de rendre un verdict sans preuve. Ce dernier refus est important. Les hashs de fichiers prouvent la détection des changements, pas l'adhésion. /context prouve l'inclusion, pas que le modèle a appliqué la décision correcte. Même InstructionsLoaded prouve un événement, pas le résultat prévu. La chaîne de preuve doit être additive: 1. Inventory: la source existe là où le résolveur documenté peut la trouver. 2. Intégrité: son digestion et son temps de modification correspondent à la révision attendue. 3. Inclusion: /context ou un événement InstructionsLoaded indique qu'il est entré en session. 4. Décision: un canary déterministe produit la réponse prévue spécifique au projet. 5. Outcome: la commande, le fichier ou le livrable résultant passe sa propre vérification. Par exemple, ne demandez pas Vous souvenez vous de notre processus de libération? Un oui fluide est indéputable. Conserver une décision non secrète telle que les versions de production utilisent scripts/release all.sh ; les poussées directes vers la branche de sortie sont interdites. Ensuite, demandez le point d'entrée de sortie approuvé dans une nouvelle session. Comparer la réponse à cette décision exacte, et toujours vérifier la commande de libération réelle séparément avant toute mutation. Retour d'essai et compactage en tant que limites différentes Un redémarrage et /compact ne suivent pas la même voie. Lors d'une conversation fraîche, Claude Code charge l'ensemble de source configuré pour l'heure de lancement et la partie visible du démarrage de la mémoire automatique. La mémoire automatique est locale, bien que les versions actuelles de Claude Code partagent la même configuration de projet et le même répertoire de mémoire automatique sur les arbres de travail d'un référentiel Git. Un test réussi dans un arbre de travail ne prouve donc pas la synchronisation avec une autre machine ou un environnement cloud. Après /compact , le projet root CLAUDE.md est lu et injecté à nouveau. Les fichiers CLAUDE.md enlisés ne sont pas automatiquement ré injectés; ils reviennent lorsque Claude lit plus tard un fichier dans leur sous répertoire. Cela crée une fenêtre d'incertitude étroite mais réelle. Si une règle de composant critique ne vit que dans un fichier encastré, une réponse immédiatement après la compression peut être plausible avant que cette règle ne soit à nouveau chargée. Utilisez un protocole en deux parties: La frontière Installation Les Canaries Condition de passage Réinitialiser Terminer la session, commencer à partir du même référentiel et du même répertoire de travail Demandez une décision critique au niveau des racines Les sources attendues figurent dans /context ; la réponse correspond à la décision Compaction Entrez le sous arbre pertinent, confirmez sa source nichée, puis exécutez /compact Demandez une fois avant et une fois après la réouverture d' un fichier correspondant La réponse après lecture correspond; les preuves de chargement enregistrent à nouveau la source nichée Arbre de travail Exécuter à partir de deux arbres de travail du même référentiel Inspecter le chemin de mémoire automatique et une décision partagée Les deux résolvent la même mémoire de projet, sans prétendre à la synchronisation entre machines Indice surdimensionné Mettre un canary inoffensif au delà de la limite de démarrage documentée dans un appareil d'essai Commencez une nouvelle conversation sans ouvrir un fichier de sujet Le canary doit être traité comme étant indisponible, ce qui prouve que l'audit détecte une couverture partielle. Ne mettez pas un vrai secret, un dossier de clientèle, une demande privée ou une pièce d'identité de production dans un canary. La question devrait dépendre d'une décision opérationnelle inoffensive dont la réponse attendue peut être comparée avec précision. Le compromis est que plus d'instrumentation peut devenir plus de contexte. Les événements InstructionsLoaded et les manifestes de fichiers sont des preuves compactes; copier des fichiers d'instructions entiers dans des journaux ne l'est pas. Je préfère les chemins, les hashes, le type de source, la raison de chargement, la fraîcheur et un résultat canarien limité. Gardez le contenu sur l'hôte. Utilisez un verdict opérationnel Utilisez ces états au lieu d'une seule zone de codage mémoire fonctionne: Santé: Les sources attendues sont intactes et chargées, le canary survit à la limite testée et le résultat de la tâche résultante est vérifié. Attendez: une approbation d'importation externe ou une décision humaine est légitimement en suspens. Partiel: l'indice de mémoire automatique traverse une plage de démarrage, ou une source nichée n'a pas été rechargée après compression. Drifted: un hash source modifié sans une mise à jour de décision révisée. Conflict: deux sources chargées prescrivent un comportement incompatible. Incertain: fichier preuve et comportement en direct désaccord, ou preuve d'inclusion n'est pas disponible. La règle d'exploitation est la suivante: ne répare jamais la mémoire de la prose seule . Identifiez d'abord la couche de preuves manquantes. Ne déplacez une règle que si son champ d'application est erroné. Réduire un indice uniquement lorsque la couverture de démarrage est partielle. Supprimez une contradiction plutôt que d'ajouter une copie plus forte. L'escalade lorsque le canarien échoue malgré les sources intactes et chargées. Le modèle de santé prévu de Sidewisp inclut la mémoire et la continuité du contexte, ainsi que la disponibilité, les outils, l'exécution, les résultats et les coûts. La frontière utile ici est le diagnostic: une future intégration pourrait rapporter la fraîcheur de la source, la couverture partielle et la continuité de la décision sans télécharger le contenu de la mémoire. Il ne doit pas prétendre qu'un hash de fichier prouve un travail utile. Sidewisp est actuellement en préversion privée. Son moteur de surveillance de la production et son adaptateur Claude Code ne sont généralement pas expédiés. Le site public et le système d'articles sont en direct; rejoignez l'aperçu si vous voulez ce genre de vue de santé de la preuve première autour des agents que vous exécutez déjà. Les sources: Documentation de la mémoire Claude Code, Claude code changelog et Statut du produit Sidewisp.