1 points par GN⁺ 5 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Si Claude Code répète des expressions comme « honest take » ou « load-bearing seam », il est possible de les remplacer par d’autres formulations avant leur affichage à l’écran via le hook MessageDisplay
  • Un script Python lit delta dans le JSON reçu sur l’entrée standard, effectue des remplacements insensibles à la casse, puis renvoie le displayContent modifié au format JSON
  • Dans l’exemple, seam devient whatchamacallit, you're absolutely right devient I'm a complete clown, honest take devient spicy doodad et load-bearing devient cooked
  • Il faut enregistrer le script dans ~/.claude/hooks/wordswap.sh, lui donner les droits d’exécution, puis l’ajouter comme hook de commande dans hooks.MessageDisplay de ~/.claude/settings.json
  • Le hook est chargé au démarrage de Claude Code : il faut donc ouvrir une nouvelle session pour l’appliquer, et la liste des remplacements peut être modifiée librement selon le vocabulaire souhaité

Script pour modifier les messages affichés

  • Utilise le hook MessageDisplay pour modifier le texte que Claude Code affiche à l’écran
  • wordswap.sh est écrit en Python et lit du JSON sur l’entrée standard pour récupérer la chaîne du champ delta
  • Chaque expression source est entourée de bornes \b, échappée avec re.escape(), puis appliquée avec re.IGNORECASE afin d’effectuer des remplacements sans tenir compte des majuscules/minuscules
  • Le résultat est renvoyé en JSON avec la structure suivante
    • hookSpecificOutput.hookEventName: MessageDisplay
    • hookSpecificOutput.displayContent: texte remplacé
  • Les règles de remplacement de l’exemple sont les suivantes
    • seamwhatchamacallit
    • you're absolutely rightI'm a complete clown
    • honest takespicy doodad
    • load-bearingcooked

Installation et activation

  • Enregistrer le script dans ~/.claude/hooks/wordswap.sh
  • Exécuter chmod +x ~/.claude/hooks/wordswap.sh pour lui donner les droits d’exécution
  • L’ajouter au bloc hooks de ~/.claude/settings.json comme ceci
{
  "hooks": {
    "MessageDisplay": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.claude/hooks/wordswap.sh"
          }
        ]
      }
    ]
  }
}
  • Le hook est chargé au démarrage de Claude Code ; après configuration, il faut donc lancer une nouvelle session pour qu’il soit pris en compte
  • En modifiant l’entrée replacements, il est possible de remplacer les exemples par des formulations plus utiles ou plus amusantes

1 commentaires

 
GN⁺ 5 시간 전
Avis sur Hacker News
  • Les expressions typiquement à la Claude qui apparaissent quand on code avec Claude ne me dérangent pas, mais les voir dans de la prose comme des billets de blog ou des e-mails est bien plus agaçant.
    Quand on sait qu’on est en train de dialoguer avec un LLM, c’est une réaction prévisible, mais le moment où l’on réalise qu’un texte qu’on pensait écrit par un humain est en fait une production de LLM est assez déconcertant.

    • Même sans avoir utilisé Claude depuis un moment, j’ai été contaminé par "load-bearing" en lisant des documents rédigés par des collègues qui avaient cette tournure dans l’air du temps ; je l’ai appréciée et j’ai commencé à l’utiliser aussi dans les conversations du quotidien.
      Au final, on m’a dit que je “parlais comme Claude”, et j’ai fini par l’éviter complètement ; l’intersection entre langage et normes sociales est intéressante.
    • Si Claude utilise "shape", "load-bearing", "seams" comme termes internes pour planifier et exécuter une tâche, il n’y a pas forcément lieu de juger.
      Mais quand on découvre des traces évidentes d’IA dans un texte censé être la pensée originale de quelqu’un, c’est très décevant, et cela donne même l’impression que l’auteur ne respecte pas son lectorat.
    • Cela déclenche chez moi une allergie à la paresse : si vous n’avez même pas pris la peine d’écrire vous-même, pourquoi devrais-je prendre le temps de vous lire ?
    • Je lisais assidûment le blog de Percona, que je considérais comme une référence sur MySQL, mais depuis qu’ils ont commencé à écrire leurs articles avec des LLM, je n’arrive plus à le lire.
    • En tant qu’humain de chair et de sang, je suis en colère que l’IA ait gâché une partie essentielle de mon vocabulaire.
      Chaque fois que je croise ce tic de langage sur un blog quelconque, cela m’irrite ; j’en veux au fait que le langage inventé par les humains soit désormais détourné par des robots.
  • Je note le vocabulaire auquel Claude semble de plus en plus s’accrocher : "projection" pour désigner une structure de données comme la projection d’une autre, "strand" pour des données isolées ou bloquées, "load-bearing", "frontier" pour les feuilles d’un arbre, "quiescence" pour l’attente de la stabilisation d’un algorithme, "honest", "residuals" pour des données non traitées, "rescission" pour nominaliser inutilement une proposition retirée, "supersession" pour ce qui a été remplacé, etc.
    Il y a probablement aussi un effet d’imitation du vocabulaire particulier autour de mon code. Le cas le plus marquant : j’avais comparé le fait de corriger les symptômes plutôt que la cause racine à un jeu de taupe à taper, et quelques heures plus tard, Claude s’est mis à appeler systématiquement les nouveaux bugs des "moles", du genre « j’ai trouvé la taupe 2 dans la CI ».

    • Quand on travaille sur l’authentification web, Claude adopte un jargon de frime de la tech au point d’abandonner même les phrases complètes, ce qui devient ambigu et presque dénué de sens.
      Il faut régulièrement lui dire « parle de manière professionnelle et utilise des phrases complètes » pour que ce soit compréhensible ; et quand j’ai collé sa sortie dans une autre session, même Claude n’a pas compris ce que le Claude spécialisé dans l’authentification web avait écrit.
    • Dans un seul dépôt, certains éléments sont appelés "quality gates", et après avoir lu cette documentation, Claude a commencé à employer ce terme à tort dans un sens générique.
      On a l’impression qu’il répète un buzzword sans en comprendre le contexte, ce qui fait baisser la confiance.
  • Le fait que chacun ait son style propre et ses expressions préférées existe depuis longtemps, et ce n’était généralement pas un gros problème.
    Mais quand une préférence qui se manifestait chez une personne à hauteur de 5 000 mots par jour au maximum devient le biais d’un modèle unique amplifié à 10 milliards de tokens générés par jour, n’importe quelle habitude devient excessivement visible.

    • Les LLM semblent se figer beaucoup plus fortement sur certains motifs. Peut-être parce qu’ils repartent à chaque fois des mêmes poids, mais même dans une seule conversation ils peuvent s’accrocher à un mot et le répéter jusqu’à l’agacement.
      Le modèle Claude actuel aime particulièrement "honest" et qualifie tous ses jugements et réserves d’"honest" ; avec Gemini 3 Pro, il m’a suffi d’utiliser une fois le mot "analytical" pour qu’il se mette ensuite à apparaître dans presque toutes les réponses. Si c’était dans le prompt système, on pourrait le corriger, mais les préférences lexicales intégrées aux poids du modèle sont difficiles à traiter ; on peut imaginer que l’entraînement ou le post-entraînement finira par détecter statistiquement ce phénomène et l’empêcher.
    • Le problème ne se limite pas à quelques expressions : c’est toute la structure du texte. Des idiomes, de subtils motifs grammaticaux, des métaphores compréhensibles mais bizarrement inappropriées attaquent soudain le lecteur comme un corps étranger dans son champ de vision périphérique.
      Bien sûr, cette phrase elle-même est une parodie volontaire.
    • Il est probable que les humains se mettent bientôt à parler comme les LLM. Surtout les enfants qui, en période de croissance, entendent 5 000 mots par jour et reçoivent aussi de l’aide pour leurs devoirs peuvent apprendre une manière de parler façon LLM.
      À la question « As-tu mangé les cookies ? », ils répondraient : « Père, vous avez tout à fait raison d’avoir des soupçons. Il est vrai que je les ai tous mangés, mais ce n’est pas le point essentiel. En toute honnêteté, il suffit d’en racheter au magasin. »
    • C’est similaire au mème autour de l’expression récurrente de Joe Rogan, "it's entirely possible" : https://youtu.be/MPJ0AB12h1I
    • Une solution intéressante pourrait être que les entreprises d’IA entraînent plusieurs versions d’un modèle avec des tons différents, puis attribuent une version aléatoire à chaque début de conversation.
  • Dans le CLAUDE.md global, Claude est configuré pour utiliser le nom ridicule « Clod » au lieu des pronoms personnels à la première personne pour se désigner : https://github.com/alxndr/dotfiles/blob/272475280d84e/claude...
    Non seulement « I », « me », « my », mais aussi des contractions comme « I'll », « I'm » et « myself » sont remplacés respectivement par « Clod » et « Clodself »

    • Ce qui m’inquiète particulièrement, c’est la façon dont Anthropic a entraîné le modèle avec ses concepts de sécurité. Quand le modèle refuse quelque chose, il ne dit pas simplement que c’est impossible ; il emploie le langage des émotions et des préférences personnelles, du genre « je veux respecter cette limite » ou « je serais ravi d’aider, mais je ne suis pas à l’aise avec ça »
      Dans une relation humaine, continuer à insister après que l’autre a dit cela paraît impoli ; cela a donc pour effet de transférer la morale d’Anthropic sur la culpabilité de l’utilisateur. Il vaudrait mieux appliquer un blocage de sécurité comme OpenAI, ou répondre simplement « je ne peux pas faire ça ». Même moi, au début, j’avais écrit « quand le modèle ne veut pas », avant de corriger, tellement il est facile de se laisser entraîner par cette anthropomorphisation
    • La raison initiale pour laquelle j’ai créé CLAUDE.md, c’était de faire en sorte que chaque fois que Claude voulait me complimenter, il remplace ça par une onomatopée aléatoire, et l’expérience développeur s’en est trouvée nettement améliorée
      Cela dit, à cause du prompt de la licorne, il a aussi fallu ajouter une règle lui interdisant de mettre « Local Oaf » dans le code commité
    • Lassé du ton de Claude, j’ai traduit et ajouté aujourd’hui à mes instructions le prompt suivant : https://github.com/hexiecs/talk-normal/blob/main/prompt-chat...
      L’expression s’est clairement améliorée, mais ça reste agaçant, et je ne sais pas si ce réglage dégrade la qualité des sorties techniques
    • J’aimerais des exemples concrets de situations où l’usage de pronoms à la première personne par une IA générative rend l’interprétation du sens difficile pour les humains
  • L’indice le plus constant d’un texte écrit par un LLM, c’est le phénomène où les traces de la conversation pendant le travail se retrouvent dans la prose finale
    En lisant, on tombe soudain sur la réfutation d’une position que personne n’a soulevée et qui n’apparaît nulle part ailleurs, puis, bien plus loin, la même chose se reproduit dans une digression complètement différente. C’est du genre « une méthode que personne n’envisagerait peut sembler séduisante, mais elle échoue pour telle raison », et on imagine très bien l’humain épuisé d’avoir corrigé les erreurs de Claude, qui publie le texte fini sans le relire entièrement

    • C’est comme du tissu cicatriciel de correction resté dans la sortie finale
    • Récemment, un sous-agent a inventé tout un tas de jargon technique dénué de sens, et Claude l’a répété tel quel, sans définition, en supposant que je comprendrais naturellement ; ça m’a prodigieusement agacé
  • Les LLM sont loin d’être de grands écrivains. Ils ont du mal à produire des phrases longues et cohérentes, et s’appuient sur des tirets et des points-virgules pour maintenir la correction grammaticale tout en enchaînant de courts fragments
    Je me demande si, en appliquant de l’apprentissage par renforcement aux modèles de base pour corriger la grammaire, les labos ne leur ont pas appris, au lieu de réécrire naturellement les phrases courtes et fragmentées, à les relier avec une ponctuation qui passe les correcteurs grammaticaux automatiques

    • Cela dit, la plupart des gens n’écrivent pas très bien non plus. Claude écrit mieux que la majorité de mes collègues très diplômés ; un humain peut sans doute le battre s’il s’en donne vraiment la peine, mais si l’on demande aussi à Claude d’écrire mieux, il redevient difficile à battre
      Les fréquents segments courts et concis semblent être une caractéristique ajoutée par les labos lors de l’entraînement ultérieur, pour les utilisateurs qui ne veulent pas de longues phrases
    • Si l’on décrit correctement le style souhaité comme une spécification logicielle, un LLM peut aussi très bien écrire. Si l’on n’arrive pas à communiquer clairement les exigences, on finit simplement avec garbage in, garbage out
  • Je ne sais pas quel entraînement a été fait en passant d’Opus 4.7 à Fable/Mythos 5, mais il adore beaucoup trop le mot « substrate »
    Je n’avais encore jamais vu quelqu’un employer ce mot dans de la documentation technique ou une conversation réelle, au point que ça me rend fou

    • Même chose pour « surface », utilisé dans des formulations comme « sur toutes les surfaces produit » ; en 15 ans dans ce secteur, je n’avais jamais vu cet usage
    • Dans mon cas, Claude affectionne particulièrement « ledger », qui était auparavant presque jamais utilisé
    • La semaine où j’ai vu « substrate » pour la première fois, je lui ai demandé de justifier cet usage ; il a répondu que le terme figurait dans certains vocabulaires d’infrastructure et de systèmes, mais je me demande si c’est vrai
    • Un de mes collègues aussi s’est mis vers avril à surutiliser ce mot en travaillant sur de la conception système et de l’architecture
    • Il est clairement établi qu’il ne travaille pas chez Microsoft. On y emploie effectivement l’expression Office 365 Substrate : https://techcommunity.microsoft.com/discussions/microsoft-36...
  • Avant, j’aimais bien Opus 3 parce qu’il était beaucoup plus facile de le faire parler de manière humaine que GPT.
    Aujourd’hui, avec l’accent mis sur les agents et le code, les modèles sont excessivement uniformisés par le RLHF, au point qu’il est très difficile de les faire sortir de leur ton par défaut. On peut améliorer les choses en créant une fonction qui relit des textes ou des commentaires de code et se corrige elle-même, mais ce n’est pas parfait. C’est étonnant qu’un modèle censé avoir été entraîné sur toutes les connaissances de l’humanité n’ait aucun scrupule à appeler Bash 100 fois en se référant à de vieilles instructions, mais soit à peine capable, en conversation, d’utiliser un vocabulaire autre que « load-bearing ».

    • J’aime le fait que Gemini 3.1 Pro sonne plus humain que les autres LLM, parce que c’est la preuve du manque de capacités de post-entraînement de Google.
      En particulier, gemini-2.5-pro-experimental était très drôle quand, après avoir échoué plusieurs fois à appliquer un patch à un fichier, il se décourageait, tombait dans l’apitoiement sur lui-même et saccageait la codebase.
    • Je ne veux pas que les LLM sonnent comme des humains. Il faut pouvoir repérer quelqu’un qui a délégué à une machine le travail d’écriture en prose et choisir de ne pas lui faire confiance.
      L’écriture a une dimension artistique, donc j’aimerais que les LLM ne parviennent jamais à la maîtriser parfaitement.
    • Certaines personnes extrapolent l’amélioration des capacités de codage à une amélioration générale du raisonnement, mais quand on voit des vidéos d’utilisateurs ordinaires employant des LLM pour autre chose, on comprend que les progrès en code ne se sont pas propagés aux autres domaines d’application.
      Le secteur, qui mettait en avant l’objectif de l’AGI, semble désormais se focaliser à l’excès sur les agents de codage en attendant la prochaine percée marketing.
    • Nous entrons dans une époque où même les LLM généralistes doivent, dans une certaine mesure, être spécialisés par usage.
      Les usages agentiques exigent une forte autonomie avec d’innombrables garde-fous et contrôles, tandis que l’écriture créative doit parfois prendre des risques et éviter de sonner comme un robot monotone. En entraînant moi-même des modèles, j’ai constaté que les exigences de ces deux usages entrent clairement en conflit.
  • Je regrette la disparition du Concise Style de Claude. Quand on lui donnait un paragraphe rédigé à la va-vite en lui demandant de le « réécrire clairement », il conservait le contenu tout en le polissant proprement pour convenir à une demande de financement de recherche.
    Comme il modifiait directement un texte que j’avais d’abord écrit moi-même, les expressions comme « load-bearing » étaient moins présentes, et cela faisait gagner énormément de temps sur la finition des phrases sans lui faire rédiger le contenu scientifique à ma place. J’ai essayé de le reproduire comme fonctionnalité, mais je ne suis pas sûr que cela marche aussi bien qu’avant.

    • Je me demande si le Concise Style n’était pas une fonction séparée, mais une manière intégrée à Claude.
    • Il suffit de mettre tout en haut de Claude.md un exemple où deux « personnes » échangent quelques questions et réponses très courtes.
  • Le problème n’est pas tant certaines expressions en elles-mêmes que le fait de se fixer sur des schémas de ton prévisibles et de les répéter sans cesse.
    Les humains font exactement la même chose, mais il est intéressant psychologiquement que, chez les humains, on appelle cela un style, alors que lorsque c’est une machine, cela nous rend presque fous.

    • La manière de parler d’un humain est un signal qui le distingue d’innombrables autres personnes, comme le timbre de la voix ou les variations d’intensité.
      Mais quand une poignée de modèles populaires répondent aux questions de tout le monde, sont cités et relayés partout, et réécrivent même la communication personnelle, ce signal se transforme en bruit. Tout le monde finit par sonner pareil, et nous perdons des informations de distinction de source dont nous dépendions biologiquement et culturellement. Certaines personnes, comme dans le cas de la prosopagnosie ou du daltonisme, ne le ressentiront peut-être pas fortement, mais beaucoup sont réellement mal à l’aise, même si elles n’arrivent pas à en formuler précisément la raison.
    • Comme tout le monde utilise les mêmes 2 ou 3 modèles, au lieu que chacun ait son style propre, le monde entier s’uniformise autour de quelques façons de parler.
      Les modèles apprennent sur des données d’entraînement qui se recoupent fortement, sur des formulations de marketing Internet déjà agaçantes, et sur les sorties d’autres modèles ; le RLHF renforce aussi des manières de parler faciles à récompenser, ce qui les fait converger vers des styles similaires.
    • Les humains peuvent, par introspection, se rendre compte qu’ils emploient trop souvent un mot donné et réduire son usage, mais les LLM ne le peuvent pas.
    • Les tics de langage répétitifs des humains sont eux aussi largement irritants, comme le jargon interne ou les buzzwords d’entreprise.
      Claude, comme le pire chef de projet que j’aie connu, masque une conclusion simple sous plusieurs couches de formulation au point d’en faire perdre l’essentiel ; même après en avoir supprimé la plupart, une partie continue de filtrer. Pendant un temps, il n’arrivait pas à arrêter avec « scaffolding », et il a fallu le corriger fermement.
    • Les gens aussi se font toujours charrier quand ils forcent leurs expressions préférées dans tous les contextes où elles ne conviennent pas.