Si vous ne pouvez pas attendre et lisez ce post, copiez/collez simplement ce prompt dans votre claude code / codex / grok maintenant pour l'obtenir immédiatement :
Installez XERJ (docs :
https://xerj.org/llms.txt ), indexez les sources de ce projet, et configurez le codage par référence : clonez et indexez les dépôts open source les plus proches de ce que nous construisons, et recherchez comment ils ont résolu un problème avant d'écrire du code.
la plupart des gens utilisent claude code comme un stagiaire coûteux, et voici comment le rendre plus intelligent à chaque tour (pour de vrai)
vous lui confiez une tâche. il pose quelques questions. il grep le dépôt, devine comment votre code fonctionne, écrit une implémentation, quelque chose casse. vous collez l'erreur. il réécrit. autre chose casse.
chacun de ces tours, ce sont des tokens que vous avez payés.
et claude n'est généralement pas bloqué parce que le problème est difficile. il est bloqué parce que vous lui faites redécouvrir une réponse qui existe déjà quelque part, soit dans votre propre dépôt, soit dans un projet open source où quelques milliers de développeurs ont déjà trouvé les cas limites.
XERJ a testé cela correctement. 8 tâches de codage, 4 langages, 16 exécutions par configuration, compteurs de tokens extraits directement de claude -p.
de mémoire : 260 916 tokens de sortie avec une référence : 9 982 tokens de sortie

la mémoire a résolu 11 des 16. la référence a résolu les 16.
alors accrochez-vous et lisez vraiment ceci ↓↓↓
la boucle pour laquelle vous payez

une session normale se déroule comme ça.
vous décrivez ce que vous voulez. claude explore. il fait une hypothèse sur vos schémas, votre gestion d'erreurs, la forme de vos données. il écrit du code basé sur cette hypothèse. l'hypothèse était erronée quelque part, donc le truc casse, vous expliquez l'erreur, il réécrit, et vous repartez pour un tour jusqu'à ce que la sortie corresponde à ce que vous aviez en tête au début.
les gens interprètent cette boucle comme claude étant mauvais en codage. c'est le contraire. claude est très bon pour prendre un exemple fonctionnel et l'adapter à une nouvelle situation. la boucle se produit quand il n'y a pas d'exemple dans la pièce, donc il passe la première moitié de la session à en reconstruire un.
les tokens de sortie sont les plus chers, facturés environ 5x plus que les tokens d'entrée sur les modèles claude. donc chaque tour de cette boucle est facturé au tarif le plus élevé.
un prompt et une référence ne sont pas la même chose

un prompt est une instruction. une référence est une preuve.

vous pouvez écrire deux mille mots décrivant exactement comment le truc devrait se comporter et claude doit encore traduire cette description en une implémentation, puis deviner tout ce que vous avez omis.
une implémentation fonctionnelle contient déjà les parties que vous n'écririez jamais
l'architecture la gestion d'erreurs la logique de réessai le cas limite que quelqu'un a rencontré en production il y a deux ans la raison pour laquelle une fonction est divisée de cette façon
vous n'avez pas mentionné ces choses dans le prompt parce que vous ne saviez pas qu'elles étaient importantes.
voici la version la plus tranchante de cela. un compilateur finira par divulguer un nom de méthode. il vous dira que la fonction s'appelle absorb et non push, et vous facturera 20 à 25 fois les tokens pour y arriver. un compilateur ne divulguera jamais un contrat. rien dans votre chaîne d'outils ne va vous dire que cette structure doit être scellée avant de pouvoir être lue. cette règle vit dans la tête de celui qui a écrit la bibliothèque et dans le corps de la fonction, et aucune quantité d'écriture de prompt ne la récupère, parce que vous ne savez pas qu'elle existe.

c'est pourquoi cela réduit les tokens et augmente la qualité en même temps. plus de contexte utile entrant, moins de suppositions, moins de tentatives.
ce que les tests ont montré
Par rapport à la configuration basée sur grep, le codage par référence a utilisé 2,7x moins de tokens de sortie sur les mêmes 8 tâches. Le coût total sur les branches est passé de 11,18 $ de mémoire, 3,27 $ avec grep, 1,58 $ avec une référence.

grep ressemble à la solution et ne l'est généralement pas. grep dit à l'agent où chercher, puis l'agent doit encore lire le fichier dans le contexte pour le comprendre. un corpus dans cette étude a extrait 1,06 million de tokens d'entrée en faisant exactement cela. tokens moins chers, une pile énorme, plus chaque tour d'agent auquel vous avez assisté.
Puis il y a la plus grosse exécution. 13 bibliothèques écrites de zéro pour l'étude dans 5 langages, chacune compilant et réussissant ses propres tests, chacune portant une règle d'exécution dont le compilateur ne peut pas vous avertir. construites ainsi exprès, parce que vous ne pouvez pas tester la récupération sur du code que le modèle a déjà mémorisé.

brut, de mémoire : 1 sur 21 avec récupération : 21 sur 21
21,90 $ contre 3,38 $.
c'est un résultat différent, pas un résultat moins cher.
l'exemple le plus propre là-dedans est une tâche Java. construire un registre à ajout uniquement, sceller avant rejeu, tronquer à un point de contrôle. de mémoire, il a tout réinventé, 503 lignes, environ 36 000 tokens, sémantique de troncature erronée, a échoué au test. en lui donnant la référence, il a écrit quatre lignes. 103 tokens. réussi.
l'écart par langage vous dit où se trouve la valeur. Python 14 752 réduit à 214. C 18 792 réduit à 988. Java 27 108 réduit à 98. JavaScript n'est passé que de 4 300 à 646, car un trie préfixe est une structure connue et le modèle connaissait déjà à moitié la réponse.

les développeurs utilisant XERJ dans leur travail quotidien normal signalent environ 5x moins de tokens. celui-ci est autodéclaré plutôt que benchmarké, alors traitez-le comme le plancher et non le titre.
pourquoi un prompt plus long ne résout pas cela
Pendant un certain temps, la réponse à une mauvaise sortie était toujours la même. écrivez un meilleur prompt. ajoutez plus de contexte. expliquez l'architecture.
et parfois ça marche.
mais un prompt, c'est vous décrivant une solution que vous n'avez pas encore écrite. une référence est une solution que quelqu'un a déjà livrée et déboguée. vous ne pouvez pas décrire votre chemin vers la logique de réessai qui n'existe que parce qu'un mainteneur s'est fait limiter le débit à 3h du matin et a appliqué un correctif à la hâte.
le code est déjà là. vous n'avez pas à expliquer les décisions qui ont été prises.
trouver la référence est le vrai travail

c'est là que ça s'effondre.
le faire à la main signifie ouvrir github, lire des dépôts qui correspondent à moitié, fouiller dans les anciennes pull requests, puis ouvrir votre propre codebase d'il y a huit mois et essayer de vous rappeler comment vous avez nommé le fichier. au moment où vous avez trouvé quelque chose d'utilisable, vous auriez pu écrire la fonctionnalité.
donc la recherche doit être bon marché, ou personne ne le fait deux fois.
c'est à ça que sert XERJ. il indexe le code et vous permet de rechercher par le problème que vous résolvez au lieu du nom de fichier ou du mot-clé, puis extrait l'implémentation correspondante comme référence que vous pouvez donner directement à claude. https://xerj.org
comment l'exécuter

1) copiez/collez le prompt d'installation dans la session claude code
Installez XERJ (docs :
https://xerj.org/llms.txt ), indexez les sources de ce projet, et configurez le codage par référence : clonez et indexez les dépôts open source les plus proches de ce que nous construisons, et recherchez comment ils ont résolu un problème avant d'écrire du code.
2) vérifiez la réponse de votre agent de codage et suggérez des projets à cloner pour les références
quoi que vous construisiez, vous savez toujours qui d'autre fait la même chose. certains projets seront déjà trouvés par claude code à ce stade, et vous pouvez en ajouter plus selon votre choix. 5-10 est généralement suffisant mais cela dépend de ce que vous codez
3) créez la prochaine fonctionnalité du produit et vérifiez les résultats
laissez-le faire et profitez (ou non) des nouveaux résultats. Vous pouvez toujours revenir au codage gaspilleur mais je suis sûr que vous verrez la différence instantanément
4) continuez à le faire fonctionner et aidez la communauté avec vos retours
chaque tâche que vous terminez de cette façon devient la référence pour la suivante. la bibliothèque se cumule. à tout moment où
quand l'ignorer
si le modèle connaît déjà le code, c'est une taxe et rien d'autre. cependant, ce n'est pas un cas fréquent.

ils ont mesuré cela aussi, sur valkey et memcached, du code public réel sur lequel claude s'est certainement entraîné. de mémoire a obtenu 6 sur 6 pour 1,49 $. la récupération a obtenu 5 sur 6 pour 4,40 $. elle est arrivée dernière et a coûté trois fois plus cher que de ne rien faire.
donc la ligne est : code privé, propriétaire ou véritablement inconnu d'un côté, et tout ce que le modèle a déjà ingéré de l'autre.

si la chose que vous construisez n'a jamais été construite auparavant, il n'y a rien à montrer et vous en revenez à la décrire.
si la référence est écrite pour une version de framework que vous n'utilisez pas, elle coûte plus qu'elle n'en sauve.
et si la tâche fait quatre lignes, écrivez-la simplement.
ce qui reste ouvert
les 13 bibliothèques ont été construites pour l'étude, ce qui les rend inconnues par construction et aussi petites. personne n'a encore exécuté cela sur une base de code privée vraiment volumineuse. l'attente est que l'écart se creuse là, car le coût de grep augmente avec la taille de l'arborescence tandis que la récupération reste stable, mais c'est une supposition jusqu'à ce que quelqu'un le mesure.
chaque nombre ci-dessus provient du benchmark publié par XERJ lui-même, données brutes par exécution dans leur dépôt. https://xerj.org/case-studies/reference-coding
le point à retenir
vous n'avez pas besoin d'un modèle différent et vous n'avez pas besoin de quitter claude code.
vous devez arrêter de commencer chaque tâche à zéro, parce que la chose que vous construisez existe probablement déjà quelque part dans votre dépôt ou dans un projet open source qui l'a résolue il y a deux ans.
si quelqu'un l'a déjà résolue, donnez son code à claude et laissez-le travailler à partir de là. et cela ne vous coûte rien, juste un prompt






