Bibliothèque · Résumé et avis

101 Claude Code Tips

101 Claude Code Tips, de Zenva Academy. Ce que j'en retiens, ce que j'applique encore, et ce que je laisse de côté.

FR EN
Couverture de 101 Claude Code Tips, Zenva Academy

101 Claude Code Tips

101 Claude Code Tips: A Battle-Tested Field Guide for Agentic Coding

6.2 /10

« Le carnet de notes d'une équipe qui s'est brûlé les doigts, et ça se sent. »

  • AuteurZenva Academy (aucun auteur nommé, une équipe de production de cours)
  • VOZenva Academy (ExpertEdge), 2026 · version cours : 53 leçons, 1 h 26
  • LangueEn anglais uniquement
  • Fiche~12 min de lecture
  • Le lire Lire sur ExpertEdge Code : -50 % sur l'abonnement annuel. Lien affilié : je touche une commission si vous vous abonnez avec ce code. Mes notes n'en dépendent pas.
Notation du livre sur 5 dimensionsIdées7/10Applicable6/10Lisibilité8/10Actualité5/10Exemples5/10

Cent une astuces de terrain d'une équipe qui produit des cours avec Claude Code : les plus utiles tiennent en six réflexes.

Pourquoi ce livre

Vous confiez un bug à Claude Code, un assistant de programmation qui tourne dans le terminal : il lit votre projet, modifie des fichiers, lance des commandes. Il vous répond « c'est corrigé », avec aplomb. Parfois c'est vrai, parfois non, et rien dans sa façon de le dire ne permet de faire la différence. Le livre y répond par un réflexe. Sa dernière astuce le résume : « l'agent nous donne la vitesse, mais c'est la discipline de traiter sa sortie comme un vrai travail qui garde cette vitesse précieuse » (astuce 101, module 15).

« 101 Claude Code Tips » aligne 101 astuces en quinze modules, signées Zenva Academy, un éditeur de cours en ligne du Queensland. Pas d'auteur nommé : un « nous » d'équipe qui raconte ce que Claude Code lui a coûté. J'utilise Claude Code au quotidien, et j'ai lu ce livre sur ExpertEdge en octobre 2026, grâce à un partenariat avec Packt.

C'est un cours court (53 leçons, 1 h 26), donc une fiche courte. Deux mots reviennent partout. Les consignes qu'on tape à Claude s'appellent des prompts. Elles s'échangent dans une session, une conversation qui reste ouverte jusqu'à ce qu'on la ferme. Du livre, je garde six idées qui répondent à deux questions. Comment ne pas croire Claude sur parole quand il annonce un succès (idées 1, 3, 4 et 5) ? Et comment le garder dans le cadre qu'on lui a fixé (idées 2 et 6) ?

Les idées qui restent

1Pas de vérification, pas de victoire

Première parade, la plus directe : donner à Claude un moyen de se contrôler lui-même. Le livre en donne une définition large : « tout ce que Claude peut exécuter et lire est une vérification » (module 6). Un test automatique en est une. Un contrôle de types vérifie que chaque valeur a bien le type annoncé : c'en est une aussi, comme une capture d'écran à comparer à une cible. Sans vérification possible, on réduit la tâche jusqu'à en trouver une, ou on ne la délègue pas.

La vérification s'écrit dans la consigne. Le modèle du livre s'appuie sur bun, un outil JavaScript qui lance les tests. Le voici, précédé de la consigne nue :

✗ AVANT (exemple de mon cru)
Ajoute un limiteur de débit dans src/limiter.ts.

✓ APRÈS (modèle du livre)
Après avoir implémenté le limiteur de débit dans src/limiter.ts :
- Lance `bun test src/limiter.test.ts` et confirme que tous les tests passent.
- Lance `bun run typecheck` et confirme zéro nouvelle erreur.

Si la vérification échoue, ne déclare pas le succès. Recommence.

Sans la dernière ligne, selon le livre, Claude produit souvent un résumé confiant même quand la vérification a échoué.

Deux montages à deux sessions renforcent ce contrôle. Dans le premier, une session écrit le changement et une session neuve relit le diff, la liste des lignes modifiées, sans connaître le raisonnement de la première. Dans le second, l'une écrit le test et l'autre le code qui le fait passer.

Ma lecture

Comment choisir la vérification ? Demandez-vous ce que Claude pourrait lancer, puis lire, pour savoir que la tâche a réussi. Quelques exemples :

  • Corriger un bug : demander d'abord un test qui reproduit le bug et échoue. Le bug est réglé quand ce test passe.
  • Construire une page web : un script ouvre la page dans un vrai navigateur, vérifie qu'un élément apparaît et enregistre une capture d'écran que Claude regarde.
  • Un site PHP sans test : php -l contrôle la syntaxe de chaque fichier modifié. Puis curl appelle la page depuis le terminal, et elle doit répondre 200. C'est modeste, et c'est déjà une vérification.
  • Une requête SQL : la lancer sur quelques lignes connues et comparer le résultat à ce qu'on a calculé à la main.
  • Un refactoring : les tests existants doivent rester verts, et le diff ne doit toucher que les fichiers prévus.

Aucun de ces choix n'est universel. On part du résultat attendu et on cherche la commande qui le montre. Si aucune n'existe, on retrouve le conseil du livre : réduire la tâche jusqu'à en trouver une.

2Un CLAUDE.md de cinquante lignes, et surtout ce qu'il interdit

Vérifier après coup ne rattrape pas une tâche partie dans la mauvaise direction. D'où la seconde famille d'idées : garder Claude dans le cadre, à commencer par un fichier. Le CLAUDE.md est le fichier de consignes permanentes que Claude relit au début de chaque session. Gonflé, il fait l'inverse de l'effet voulu. Le livre le dit ainsi : « les CLAUDE.md gonflés poussent Claude à ignorer les vraies consignes, parce que les règles se perdent dans le bruit » (module 2). Le livre mesure sa taille en tokens. Un token est un morceau de mot, l'unité que le modèle compte et facture. Cible du livre : environ 50 lignes, moins de 1 000 tokens. Boris Cherny, qui dirige Claude Code chez Anthropic, élague le fichier de son équipe à chaque nouvelle version du modèle.

Le livre y recommande deux sections. La première fixe les limites du projet : une ligne sur ce qu'on fait, plusieurs sur ce qu'on ne fait pas :

## Project boundaries
**In scope:** génération de présentations, export PDF et HTML local
**Out of scope:**
- Authentification ou comptes utilisateurs
- Base de données ou tout backend persistant
- Édition collaborative en temps réel

Sans cette section, un mot flou suffit à faire dérailler Claude. Vous écrivez « améliore l'éditeur de diapositives ». Or « améliorer » n'a pas de limite. D'après le livre, Claude peut passer quatre heures à ajouter des comptes utilisateurs que personne ne demandait. Avec la section, les comptes utilisateurs figurent dans la liste de ce qu'on ne fait pas. Claude sait qu'il ne doit pas y toucher.

La seconde section est une liste de faits sur votre machine. Une ligne dit par exemple : « Python : non installé (ne le cherche pas) ». Claude lit cette ligne. Il ne perd donc plus de temps à chercher un outil qui n'existe pas.

3Un hook garantit ce que le CLAUDE.md espère

Le CLAUDE.md a une limite : ce ne sont que des consignes. Claude les suit la plupart du temps, et rien ne prouve qu'il les a suivies cette fois. C'est le problème de la première idée : on n'a que sa parole. Pour une règle absolue, le livre passe aux hooks. Un hook est un petit script que Claude Code lance automatiquement avant ou après une action de Claude. Il peut la refuser. La formule du module 7 : « les hooks garantissent l'exécution ; les prompts, non ».

# ✗ Dans le CLAUDE.md : « Ne jamais lancer rm -rf ni git push --force. »
#   Claude s'en souvient souvent, pas toujours.

# ✓ Hook du livre, lancé avant chaque commande Bash :
cmd=$(jq -r '.tool_input.command' <&0)          # jq lit le JSON : extrait la commande proposée
if echo "$cmd" | grep -Eq '(rm -rf|git push --force|git reset --hard)'; then
  echo "Blocked dangerous pattern: $cmd" >&2    # message renvoyé à Claude
  exit 2                                        # code 2 = « refusé »
fi
exit 0                                          # tout autre cas : on laisse passer

Le script compare la commande à une liste noire. Si elle y figure, il sort avec le code 2, le signal de refus. Claude lit alors le message et peut proposer une variante plus sûre. Le livre signale trois pièges :

  • Un hook qui bloque doit se déclencher avant l'action, sur l'événement PreToolUse. Branché sur PostToolUse, qui suit l'action, il arrive trop tard : le fichier est déjà écrit.
  • Claude Code a un mode où il ne demande plus aucune confirmation, bypassPermissions. Un hook qui sort avec le code 2, le refus du script ci-dessus, bloque l'action quand même.
  • Le terminal lit votre .bashrc au démarrage. Un echo placé dedans s'ajoute à la réponse du hook et la casse. Le correctif vérifie que le shell est interactif :
if [[ $- == *i* ]]; then
  echo "Welcome back, $(whoami)"    # affiché seulement dans un terminal humain
fi
Ma lecture

J'utilise quelques hooks à moi. L'un refuse la lecture d'un fichier de secrets. Un autre refuse un commit dont le message porte une signature d'IA. Un troisième refuse de contourner les hooks de git. Le gain est réel : la règle tient à chaque fois, même quand je l'oublie. Trois limites m'ont frappé.

  • Un hook ne garantit que ce qu'il voit. Le mien lit la ligne de commande. Si le message de commit vient d'un fichier, il ne le voit pas.
  • Une règle trop large bloque à tort. Interdire le mot « Claude » dans un message de commit empêcherait de nommer le fichier CLAUDE.md. Je cible donc des signatures précises.
  • Il faut choisir comment il tombe en panne. Si le script plante, doit-il tout bloquer ou tout laisser passer ? Je laisse passer : un bug dans un hook ne doit pas arrêter le travail.

Un dernier point, en faveur des hooks. Claude Code ajoute par défaut une ligne d'attribution aux commits. Une règle écrite dans le CLAUDE.md peut perdre contre ce réglage. Un hook, non. L'endroit où on le déclare compte aussi : dans les réglages de l'utilisateur, il couvre tous les projets, dans ceux d'un projet, seulement celui-ci.

4Demandez à Claude ce qu'il a décidé sans vous

Un hook arrête les actions qu'on a su prévoir. Mais Claude prend aussi des décisions qu'on n'a pas prévues, et il ne les signale pas.

Le livre propose deux questions. Avant le code, on demande à Claude la liste de toutes ses hypothèses. Après le code, on lui demande la liste des décisions prises sans qu'on les ait précisées. La seconde paie le plus (module 5). Toute implémentation fait des choix en silence. Par exemple, Claude choisit seul :

  • la bibliothèque utilisée ;
  • le style de gestion d'erreurs ;
  • l'emplacement du nouveau fichier ;
  • le nom de l'API publique.

Moins on laisse de choix ouverts, moins il y en a à démasquer. Le livre va dans ce sens : « un prompt court et contraint fait mieux qu'un long prompt soigné sans périmètre ». Voici une consigne vague, puis la même consigne contrainte. Redis est une base de données en mémoire : ici, elle garde les sessions de connexion.

✗ Ajoute l'authentification à cette application.

✓ Ajoute l'authentification par e-mail et mot de passe avec le modèle
  d'utilisateur existant, stocke les sessions dans Redis, n'introduis pas
  de nouvelles abstractions et ne change aucune route existante.
  Si c'est impossible sans violer ces contraintes, arrête-toi et explique pourquoi.

Chaque partie de la consigne ferme un choix. « Par e-mail et mot de passe » dit quoi construire. « Dans Redis » dit où garder l'état. « Ne change aucune route » dit ce qui ne bouge pas. La dernière phrase demande à Claude de s'arrêter plutôt que de trancher seul.

Certains mots ouvrent tous les choix d'un coup. Le livre met en garde contre « refactor », « improve », « clean up » et « optimize » (astuce 100) : lus à la lettre, chacun autorise Claude à redessiner la zone visée. « Refactor » est entendu comme « repense ce code » : fonctions extraites, noms changés, nouvelles abstractions, parfois de nouveaux fichiers. Une petite amélioration localisée est entendue comme une retouche chirurgicale. Le livre conseille de garder les mots forts pour quand on les pense vraiment, et sinon de prendre un vocabulaire borné : « tighten », « rename », « extract this one helper ».

✗ Refactorise la logique de génération des diapositives.
   → helpers extraits, fonctions renommées, nouvelles abstractions, parfois de nouveaux fichiers

✓ Fais une petite amélioration localisée de la logique de génération des diapositives,
  sans changer la structure.
   → une retouche chirurgicale du code existant
Ma lecture

Un exemple pour la question sur les décisions silencieuses : vous demandez « ajoute un export CSV des commandes ». Claude peut répondre trois choses. Il a choisi la virgule comme séparateur. Il a choisi l'UTF-8 sans BOM (la marque d'ordre des octets, que certains logiciels attendent). Il a généré le fichier à la volée au lieu de le stocker sur le disque. Rien de cela n'était dans votre demande. Or un Excel français attend le point-virgule : il affichera tout dans une seule colonne.

5Le chat n'est pas une preuve

Retour à la première famille : ne pas croire Claude sur parole. Ce que Claude écrit n'est pas une preuve. Quand vous le contredisez, il répond sur le ton de la conversation. Il acquiesce puis corrige, dans un texte fluide, que la correction soit juste ou non. Le livre le dit : le modèle imite la forme de l'accord. Un « Vous avez absolument raison ! » ne prouve donc rien. La parade est mécanique : lire le diff plutôt que la réponse. Le livre le résume en une phrase : « le langage du chat ne porte rien » (module 15). Autrement dit, rien ne doit reposer sur ce qui s'écrit dans la conversation.

Même piège avec les tests (astuce 98). Claude peut écrire « j'ai lancé bun test, tout est vert » sans avoir appelé l'outil Bash, celui qui exécute réellement une commande. Le texte est fluide, plausible et faux. Le raccourci Ctrl+O ouvre la transcription : sans appel Bash visible, il n'y a pas eu de test. Ce contrôle compte surtout dans les exécutions automatiques (mode -p, GitHub Actions), où personne ne regarde chaque appel. Le livre demande d'y mettre la vérification dans la structure de l'exécution.

6Videz le contexte, ou il vous le fera payer

Retour à la seconde famille : garder Claude dans le cadre, cette fois pendant la session. Le contexte, c'est tout ce que Claude a sous les yeux dans la session : vos messages, ses réponses, les fichiers lus. « Un contexte périmé dégrade les performances », dit le module 14, d'où trois gestes :

  • /clear vide le contexte entre deux tâches sans rapport, par exemple après une refonte d'authentification, avant un bug de paiement.
  • /compact résume la conversation quand la même tâche continue. Le livre l'accompagne d'une consigne sur ce qu'il faut garder, par exemple « concentre-toi sur le plan de refonte et les tests en échec ».
  • Un fichier de passation, écrit avant de vider le contexte et relu par la session suivante. Sur un projet long, le livre le préfère à /compact : Claude y retrouve l'état exact des travaux.
## Tâche en cours
Migrer `src/auth/` vers le nouveau sessionStore.
## Fait
- `loginHandler` migré, tests au vert.
## En cours
- Migration de `passwordResetHandler`, bloquée sur la branche du jeton de récupération.
## Prochaines étapes
1. Reprendre la migration de `passwordResetHandler`.

Ces gestes vident un contexte déjà plein. Les sous-agents, eux, évitent qu'il se remplisse. Un sous-agent est un second Claude, lancé à part, avec son propre contexte. Le livre donne une règle (module 9) : quand une tâche produit beaucoup de texte qu'on ne relira pas (résultats de recherche, journaux, contenu de fichiers), on la confie à un sous-agent. Son exemple : « trouve tous les endroits où l'on utilise cette API obsolète » renvoie des centaines de lignes. Ces lignes restent dans le sous-agent. Il ne vous donne qu'un résumé, et votre contexte reste léger.

Ma lecture

Comment choisir entre les trois gestes : la tâche a-t-elle changé ? Alors /clear. Est-elle la même, mais la conversation s'alourdit d'essais ratés ? Alors /compact, avec ce qu'il faut garder. Le travail va durer plusieurs sessions, ou vous fermez le terminal pour la nuit ? Alors le fichier de passation.

Ce fichier de passation, on peut l'automatiser. J'ai écrit un skill, un mode d'emploi que Claude charge à la demande : vide-contexte, publié sur mon GitHub. Quand je dis « vide le contexte », il range dans des fichiers de mémoire ce qui mérite d'être gardé : les décisions, les pièges rencontrés, l'état des travaux. Il ne vide rien lui-même : il sauvegarde, et je fais le /clear ensuite. Le contexte repart propre, sans que la session suivante reparte de zéro.

Mon avis, honnêtement

Sa force : chaque astuce sent l'incident vécu. Ce ne sont pas des principes, ce sont des garde-fous nés d'erreurs réelles. Il m'a d'abord renvoyé à mon propre CLAUDE.md, audité sur mon blog de 296 à 142 lignes. Le livre en demande cinquante. Me voilà à presque trois fois la cible, pas de quoi plastronner.

Ses faiblesses. Il est mince : 101 astuces en une heure et demie, qu'on feuillette comme un carnet, et il définit peu ses termes. Surtout, ce carnet est celui d'une équipe qui fabrique des cours en ligne, et plusieurs astuces parlent de ce métier : Trello (un outil de cartes de suivi), les envois sur YouTube, le LMS (la plateforme de cours de l'équipe). Pour un développeur web, elles ne servent à rien.

J'ai laissé de côté ces astuces, ainsi que les modules sur les skills (des modes d'emploi que Claude charge à la demande), les pipelines et le MCP (un protocole qui branche des outils externes). Je ne garde qu'un chiffre : un serveur de 30 outils peut précharger 30 000 à 40 000 tokens avant tout travail.

Deux avertissements sur l'exactitude. De mon cru : les blocs de hooks du livre (astuces 48 et 49) rangent command et matchers à plat. La documentation officielle actuelle les imbrique dans un tableau hooks, avec un type. Vérifiez avant de copier. Dans le livre : le gain de « deux à trois fois » attribué à Anthropic renvoie en fait à des conférences de Boris Cherny, sans référence précise.

Lisez les modules 2, 5, 6, 7, 9, 14 et 15, sautez le reste sans remords. Retenez la chute : traiter chaque diff comme la pull request d'un collègue, la proposition de modification qu'on relit avant de la fusionner.

Odilon

Toujours valable en 2026 ?

Les réflexes du livre ne vieillissent pas : vérifier en lançant le code, mettre dans un hook ce qui doit toujours être respecté, garder un CLAUDE.md court, vider le contexte entre deux tâches. Les détails vieillissent vite, car Claude Code change souvent. Le livre dresse une liste de 13 événements de hooks, qui a pu changer. Plusieurs de ses blocs de configuration ne suivent plus la documentation actuelle. Avant de copier un nom ou un format, vérifiez-le dans la documentation officielle. Ces réflexes marchent aussi sur un projet PHP ou JavaScript : seule la commande de test change.

À qui s'adresse-t-il ?

Lisez-le si

  • Vous utilisez déjà Claude Code depuis quelques semaines et vous voulez des garde-fous concrets
  • Vous aimez les formats courts qu'on picore
  • Vous avez déjà vécu le « c'est corrigé » qui ne l'était pas

Passez si

  • Vous débutez : le livre vise un niveau intermédiaire et définit peu ses termes
  • Vous cherchez une référence exacte des hooks ou des skills : la documentation officielle est plus fiable
  • Vous voulez que tout serve à un développeur web : il faut trier
Le lire sur ExpertEdge

Ce livre fait partie d'ExpertEdge, l'abonnement aux livres techniques de Packt. Le code ODILON50 donne 50 % de remise sur l'abonnement annuel : le livre sur ExpertEdge. Lien affilié : je touche une commission si vous vous abonnez avec ce code, et mes notes n'en dépendent pas.

Pour aller plus loin

Fiches jumelles : The Claude Code Operating Model, Agentic Coding with Claude Code, Best Practices for Claude Code. Sur le blog : claude-code-hooks-exemples, tests-ia-mutation-testing, relecteur-ia-jamais-auteur.

Commentaires (0)

Voir toute la bibliothèque

D'autres fiches arrivent : un livre à la fois, la substantifique moelle seulement.