Ce plugin Claude Code écrit 94 % de code en moins (ponytail)
BBetter Stack
Computing/SoftwareSmall Business/StartupsManagement
Transcript
00:00:00Vous le connaissez. Queue de cheval, lunettes ovales, il est dans l'entreprise depuis plus longtemps que le contrôle de version.
00:00:06Vous lui montrez 50 lignes, il les regarde, ne dit rien et les remplace par une seule.
00:00:11C'est la description épique de cette nouvelle bibliothèque appelée Ponytail, ce qui, je suppose, est assez
00:00:17facile à identifier. Nous connaissons tous ce développeur 10x qui correspond parfaitement à cette description. Mais Ponytail
00:00:23est en fait un outil vraiment cool. Il fait en sorte que votre agent de codage IA pense comme le développeur senior le plus paresseux
00:00:29de la pièce. Et c'est en fait un compliment. Donc, dans cette vidéo, nous allons examiner Ponytail,
00:00:35voir comment il fonctionne, et faire quelques démos amusantes pour découvrir si ce type est vraiment à la hauteur.
00:00:41Ça va être très amusant, alors plongeons dedans.
00:00:48La mission de Ponytail est donc simple. Garder tout très concis, éliminer le superflu que les agents IA produisent habituellement
00:00:55et essayer de trouver la solution la plus simple possible à un problème.
00:01:00C'est un peu similaire à Caveman, qui était la bibliothèque qui faisait en sorte que les agents de codage IA parlent moins,
00:01:06dépensant ainsi moins de jetons, ce sur quoi James a également fait une excellente vidéo ici. Donc l'idée principale
00:01:12derrière cela est d'adopter le principe YAGNI, qui signifie “you ain't gonna need it” (vous n'en aurez pas besoin). C'est en fait une
00:01:18idée de génie logiciel des années 90. Et l'idée centrale est de ne pas construire quelque chose avant d'en
00:01:25avoir réellement besoin. N'ajoutez pas de couche d'abstraction, n'installez pas de bibliothèque, n'écrivez pas la classe.
00:01:31Si le problème peut être résolu sans cela, alors résolvez-le simplement sans cela. Et Ponytail intègre cela directement
00:01:37dans votre agent en lui donnant une échelle de décision qu'il doit gravir avant d'écrire quoi que ce soit. Est-ce que cela a besoin
00:01:43d'exister ? Une bibliothèque standard peut-elle le gérer ? Existe-t-il une fonctionnalité native de la plateforme pour cela ? Y a-t-il
00:01:50déjà une dépendance installée qui fait cela ? Cela peut-il être une ligne de code ? Seulement si chacune de ces
00:01:57réponses est non, alors il écrit réellement du nouveau code. Et même alors, il le garde au minimum requis
00:02:04pour le faire fonctionner.
00:02:05Et si nous regardons certains de leurs exemples, en particulier l'exemple de la boîte de dialogue modale, nous obtenons une image claire de
00:02:11cette méthodologie. Un agent normal, lorsqu'on lui demande d'ajouter une boîte de dialogue modale pour la confirmation de suppression,
00:02:18cherchera immédiatement à installer une bibliothèque Radix UI comme le dialogue React et vous donnera une
00:02:25dépendance et un portail, une superposition, une racine, un déclencheur, un wrapper de contenu, juste pour afficher une boîte avec deux
00:02:34boutons. Mais Ponytail regarde cela et dit, hé, le navigateur a déjà un élément de dialogue. Il capture
00:02:41le focus automatiquement. Et il se ferme sur échap, affiche une toile de fond avec un seul sélecteur CSS,
00:02:49et il est pris en charge dans tous les principaux navigateurs depuis 2022. Donc, au lieu de 30 lignes dans un paquet NPM,
00:02:58vous obtenez huit lignes et zéro dépendance. Et ce petit commentaire Ponytail ici
00:03:04vous dit exactement ce qu'il a sauté et pourquoi il l'a fait. Donc, si un jour vous décidez réellement de mettre à niveau
00:03:11vers la version Radix ou quelque chose de plus sophistiqué, vous savez où aller et où cela a été différé.
00:03:16Donc, c'est paresseux, mais ce n'est pas irresponsable. Et en embrassant cette paresse, Ponytail prétend être capable
00:03:22de réduire vos coûts de 47 à 77 %. Et ils donnent réellement des références derrière cette affirmation. Alors regardons-les
00:03:29un instant. Nous avons trois méthodes ici : sans compétence, avec Caveman, et avec Ponytail.
00:03:36Et trois modèles et cinq tâches quotidiennes. Dix exécutions par cellule et pour chacune d'elles le résultat médian. Et
00:03:43crucialement, ils vérifient aussi l'exactitude. Une ligne de code cassée qui obtient un bon score sur les lignes de code échouera sur
00:03:50l'exactitude. Donc, il ne s'agit pas juste d'écrire moins de choses, cela doit réellement fonctionner. Et il y a aussi une intéressante
00:03:56mise en garde qui mérite d'être notée. Le coût reflète les appels en une seule fois qui renvoient la compétence à chaque fois. En d'autres termes,
00:04:03le benchmark fonctionne en envoyant un nouvel appel API pour chaque test. Et chaque fois qu'il fait cela, il inclut
00:04:10l'ensemble des règles de Ponytail dans l'invite. Donc, dans le benchmark, Ponytail est pénalisé pour le coût de
00:04:16ses propres instructions sur chaque test. Dans la vraie vie, vous payez pour ces instructions environ une fois
00:04:22par session. Et après cela, elles sont mises en cache. Cela signifie que le chiffre de 47 à 77 % moins cher est en fait
00:04:29en dessous de la réalité. Dans une session de travail réelle répartie sur plusieurs invites, l'avantage de coût est encore plus grand
00:04:36parce que ce coût d'injection de compétence est amorti sur l'ensemble de la conversation. Cela dit, il y a une
00:04:42critique légitime qui mérite d'être mentionnée. Un article de blog récemment publié par Colin Eberhardt souligne
00:04:48que si vous remplacez réellement Ponytail par trois mots simples, “follow Yagni principles” (suivre les principes Yagni), les résultats
00:04:55de cela correspondent presque parfaitement au score de référence de Ponytail. Et en élaborant à sept mots, “follow Yagni
00:05:03principles and one liner solutions” (suivre les principes Yagni et les solutions en une ligne), il a en fait battu le benchmark. Alors est-ce que Ponytail est magique ou est-ce juste une invite bien emballée ?
00:05:11Honnêtement, c'est une question juste. Mais je dirais que l'emballage est le produit. Vous obtenez les bonnes règles
00:05:18injectées automatiquement à travers différents agents avec des commandes, des outils d'audit, et un registre de profondeur en plus. De plus,
00:05:25Ponytail a d'autres fonctionnalités cool. “Follow Yagni” dans votre invite système ne vous donne pas la
00:05:31fonctionnalité d'audit Ponytail ou la fonctionnalité de revue Ponytail. Mais testons maintenant avec un exemple simple.
00:05:37Donc ici, j'ai deux instances de Cloud Code ouvertes et sur l'une d'elles, je vais installer le plugin Ponytail
00:05:44pour la portée locale uniquement. Et l'autre sera une simple instance Cloud Code par défaut sans
00:05:49plugins activés. Je vais leur donner à tous les deux la même invite pour construire une application de tableau de bord météo qui détecte l'emplacement de l'utilisateur
00:05:56et affiche les conditions météorologiques actuelles ainsi que d'autres fonctionnalités. Et je vais exécuter la même
00:06:02invite sur les deux instances, à la seule exception que sur celle de Ponytail, je vais aussi lui demander
00:06:08d'utiliser la compétence Ponytail car parfois elle ne la prend pas automatiquement. Donc après quelques
00:06:12moments, nous voyons que la version Ponytail a déjà terminé la tâche en moins d'une minute, tandis que la
00:06:18version par défaut est toujours en train de calculer. Et aussi nous voyons un aperçu très concis de ce qu'elle a construit et ce que Ponytail
00:06:25a choisi de ne pas faire pour une efficacité maximale. Et comme nous pouvons le voir ici, elle a choisi d'avoir tout dans un seul fichier HTML.
00:06:34Pendant ce temps, sur la fenêtre par défaut, la tâche a été terminée en deux minutes et 30 secondes. Et nous pouvons déjà voir que cette
00:06:41version est beaucoup plus lourde. Nous avons trois fichiers séparés et cette version est exécutée en utilisant un serveur Python.
00:06:48Donc, bien que ce ne soit en aucun cas un mauvais résultat, c'est beaucoup plus sur-ingénieré que la première version.
00:06:54Mais regardons comment ils fonctionnent. Donc d'abord, voici la version sans Ponytail.
00:07:00Et bien que l'application soit superbe et que l'interface utilisateur soit magnifique et que l'API récupère les informations comme prévu,
00:07:07je suis assez déçu qu'il n'ait pas détecté mon emplacement automatiquement comme je l'ai demandé.
00:07:12Et au lieu de cela, il me montre Londres comme résultat par défaut. Mais maintenant, si nous passons à la version Ponytail,
00:07:19ici nous pouvons clairement voir qu'à l'ouverture, il demande à obtenir mon emplacement actuel, puis affiche la météo
00:07:25correspondant à cet emplacement. Donc, bien que l'interface utilisateur ne soit peut-être pas aussi fantaisiste et que l'application soit peut-être plus sommaire,
00:07:33elle a suivi les instructions plus précisément que la version par défaut, ce qui est assez surprenant, pour être honnête.
00:07:39Et enfin, regardons l'utilisation. Et ici, nous pouvons voir que oui, en effet, la version avec Ponytail
00:07:45a fini par être 50 % moins chère que la version par défaut. Et elle a aussi produit beaucoup moins de lignes de code.
00:07:52Et comme nous venons de le voir, elle était même meilleure en termes de fonctionnalité que la version par défaut.
00:07:58Donc, cela prouve que Ponytail fonctionne bien comme prévu, et produit effectivement un code plus léger.
00:08:04Donc, puisque ce test a été si réussi, j'ai décidé de faire quelque chose d'encore plus intéressant.
00:08:09Que se passe-t-il si je combine Caveman et Ponytail ensemble pour une efficacité maximale ? Qu'est-ce que cela nous donnera ?
00:08:17Donc cette fois, j'ai activé les deux plugins dans un nouveau répertoire et j'ai réexécuté la même invite.
00:08:22Et une fois de plus, la tâche a été terminée en moins d'une minute et la sortie était assez similaire.
00:08:28Et j'avais toutes les mêmes fonctionnalités. Donc ça a fonctionné comme prévu.
00:08:32Mais si nous regardons la sortie, elle ne différait pas trop de la version Ponytail et le combo Caveman
00:08:37plus Ponytail a fini par être même légèrement plus cher que la version Ponytail autonome.
00:08:44Donc, cela montre que les combiner ne vous donne pas vraiment d'amélioration majeure.
00:08:49Donc, vous pouvez vous contenter d'utiliser Caveman ou mieux, opter pour Ponytail.
00:08:54Si nous pouvons croire leurs benchmarks qu'il est effectivement meilleur que Caveman.
00:08:58Voilà, les amis. C'est Ponytail en résumé.
00:09:02Je suis honnêtement et sincèrement impressionné par la sortie positive que Claude a pu produire
00:09:07avec la compétence Ponytail tout en réduisant le superflu et en maintenant la qualité en même temps.
00:09:13Je suppose que cela montre simplement qu'une grande partie de nos solutions de codage sont probablement sur-ingénierées
00:09:19et parfois, moins c'est en effet mieux si vous l'utilisez de la bonne façon.
00:09:23Donc, je vais certainement garder Ponytail comme plugin dans ma configuration Claude Code
00:09:29et probablement l'utiliser pour de futurs projets.
00:09:31Mais que pensez-vous de Ponytail ? L'avez-vous essayé ?
00:09:34Allez-vous l'utiliser ? Faites-le-nous savoir dans la section des commentaires ci-dessous.
00:09:37Et les amis, si vous aimez ce genre de analyses techniques,
00:09:40veuillez me le faire savoir en écrasant ce bouton “like” sous la vidéo.
00:09:44Et n'oubliez pas non plus de vous abonner à notre chaîne.
00:09:47C'était Andrus de BetterStack et je vous verrai dans les prochaines vidéos.