- Claude Code est largement utilisé dans des projets personnels comme dans des environnements de monorepo d’entreprise, avec un récapitulatif de ses composants clés et de l’usage concret de ses fonctionnalités avancées
- La clé d’une exploitation efficace des agents réside dans la qualité de la PR finale, pas dans le style de sortie ou l’UI, avec pour objectif une délégation de type « shoot and forget »
- Le cœur de la codebase est le fichier
CLAUDE.md, qui sert de « constitution » en définissant les règles de comportement de l’agent et l’usage des outils
- Diverses fonctionnalités comme la gestion du contexte, les slash commands, les sous-agents, les Hooks et les GitHub Actions (GHA) permettent d’améliorer le niveau de collaboration et d’automatisation
- La distinction entre Skills et MCP (Model Context Protocol) est clarifiée pour mettre en avant une architecture d’agents souple, centrée sur le scripting
- Le texte propose un guide concret pour faire évoluer Claude Code d’un simple outil CLI vers une infrastructure IA de développement de niveau entreprise
- J’utilise énormément Claude Code
- Pour mes projets hobby, je le lance plusieurs fois par semaine sur une VM, avec
--dangerously-skip-permissions pour transformer immédiatement une idée en code
- Au travail, mon équipe met en place des règles et des outils AI-IDE, et notre équipe d’ingénierie consomme des dizaines de milliards de tokens par mois rien que pour la génération de code
- Le marché des agents CLI est encombré avec Claude Code, Gemini CLI, Cursor et Codex CLI, mais la vraie concurrence se joue entre Anthropic et OpenAI
- Pourtant, quand on discute avec des développeurs, le choix des outils repose souvent sur des éléments superficiels
- Comme une implémentation de fonctionnalité « chanceuse » ou la « vibe » d’un system prompt préféré
- À ce stade, tous ces outils sont déjà d’un très bon niveau
- Certains se concentrent aussi de manière excessive sur le style de sortie ou l’UI
- Une flatterie du type « you're absolutely right! » n’est pas un bug particulièrement notable
- C’est plutôt le signe que l’utilisateur est trop impliqué dans la boucle
- Ma philosophie d’usage centrale, c’est « Shoot and Forget »
- On procède dans l’ordre : délégation, mise en place du contexte, exécution de la tâche
- Un outil se juge à la PR finale, on l’évalue sur le résultat et non sur le chemin parcouru
- Cet article est une réflexion sur l’ensemble de l’écosystème, fondée sur mes derniers mois d’expérience avec Claude Code
- Presque toutes les fonctionnalités que j’utilise (et celles que je n’utilise pas)
- Le fichier
CLAUDE.md de base
- Des slash commands personnalisées
- L’univers puissant des Subagents, Hooks et GitHub Actions
- Comme le texte est devenu assez long, il est plutôt recommandé de l’utiliser comme référence que de le lire intégralement
CLAUDE.md : la constitution de l’agent
Compact, Context, Clear : gérer la fenêtre de contexte
- Vérifier l’état d’utilisation de la fenêtre de 200k tokens avec la commande
/context
- Même avec Sonnet-1M, il n’est pas certain que toute la fenêtre de contexte soit utilisée efficacement
- Dans une nouvelle session sur un monorepo, environ 20k tokens (10 %) sont consommés par défaut, les 180k restants servant au travail de modification (et se vident vite)
- Trois workflows principaux
/compact (à éviter) : la compression automatique est opaque, génère des erreurs et manque d’optimisation, donc à éviter autant que possible
/clear + /catchup (redémarrage simple) : méthode de reboot par défaut, on efface l’état avec /clear, puis on lit tous les fichiers modifiés de la branche git avec un /catchup personnalisé
- « Document & Clear » (redémarrage complexe) : pour les gros travaux, Claude déverse le plan et l’avancement dans un fichier
.md → /clear → dans une nouvelle session, lecture du .md puis reprise
Slash commands personnalisées
- Les slash commands sont de simples raccourcis pour des prompts fréquemment utilisés, rien de plus, rien de moins
- Configuration minimale
/catchup : prompt pour lire tous les fichiers modifiés de la branche git
/pr : assistant pour nettoyer le code, le mettre en staging et préparer la PR
- Une liste complexe de commandes personnalisées est un antipattern
- La force centrale d’un agent comme Claude : produire des résultats utiles et fusionnables à partir de presque n’importe quelle entrée en langage naturel
- Forcer des ingénieurs (ou des non-ingénieurs) à apprendre une liste indispensable de « commandes magiques » pour faire leur travail = échec
- L’objectif est de construire un agent avec un
CLAUDE.md plus intuitif et de meilleurs outils
Subagent personnalisés
- En théorie, un mécanisme de gestion du contexte puissant
- Tâche complexe : contexte d’entrée de
X tokens + contexte de travail de Y tokens + réponse de Z tokens
N tâches = (X + Y + Z) * N tokens dans la fenêtre principale
- Solution par Subagent : déléguer les tâches
(X + Y) * N à des agents spécialisés, puis ne renvoyer que la réponse finale de Z tokens
- En pratique, les Subagents personnalisés créent deux nouveaux problèmes
- Filtrage du contexte : lors de la création d’un Subagent
PythonTests, tout le contexte de test est masqué à l’agent principal → raisonnement global impossible → obligation d’appeler le Subagent pour savoir comment valider son propre code
- Imposition d’un workflow humain : forcer Claude à suivre un workflow rigide défini par un humain → lui dire comment déléguer devient en soi le problème que l’agent devrait résoudre
-
Personnellement, je préfère la fonctionnalité Task(...)
- Création d’un clone d’agent générique avec la fonctionnalité intégrée
Task(...) de Claude
- Placer tout le contexte essentiel dans
CLAUDE.md
- L’agent principal décide quand et comment déléguer une tâche à sa propre copie
- Conserve les avantages d’économie de contexte des Subagents tout en supprimant leurs inconvénients
- L’agent gère lui-même son orchestration de façon dynamique
- Appelée architecture « Master-Clone » dans "Building Multi-Agent Systems (Part 2)"
- Fortement préférée au modèle « Lead-Specialist » induit par les Subagents personnalisés
Resume, Continue, History
- Usage basique
- Utilisation fréquente de
claude --resume et claude --continue
- Redémarrage rapide d’un terminal bogué ou d’une ancienne session
- Reprise d’une session d’il y a quelques jours avec
claude --resume pour résumer comment contourner une erreur spécifique → améliorer CLAUDE.md et les outils internes
- Usage avancé
- Claude Code stocke tout l’historique des sessions dans
~/.claude/projects/
- Possession de scripts exploitant les données brutes d’historique des sessions
- Exécution de méta-analyses sur les logs : recherche d’exceptions récurrentes, de demandes d’autorisation, de motifs d’erreur → amélioration du contexte fourni à l’agent
Hooks
- Cruciaux dans les dépôts d’entreprise : non utilisés sur les projets perso
- Règles déterministes de type « must-do » qui complètent les recommandations « should-do » de
CLAUDE.md
- Deux types
- Hook de blocage à l’étape du commit (Block-at-Submit) : stratégie principale
- Encapsuler toutes les commandes
Bash(git commit) avec un Hook PreToolUse
- Vérifier le fichier
/tmp/agent-pre-commit-pass (créé uniquement quand le script de test valide tous les tests)
- Si le fichier est absent, le commit est bloqué → Claude est forcé dans une boucle « test-correction » jusqu’à ce que le build réussisse
- Hook d’indice : Hook simple et non bloquant, qui fournit un retour « fire-and-forget » quand l’agent exécute une solution de second choix
- Non-usage délibéré des Hooks de blocage à l’écriture (sur
Edit ou Write)
- Bloquer l’agent en plein milieu de son plan provoque confusion ou « frustration »
- Il est bien plus efficace de vérifier le résultat final terminé à l’étape du commit
Mode planning
- Pour les gros changements fonctionnels avec un IDE IA, le planning est indispensable
- Projets perso : usage exclusif du mode planning intégré
- Permet de s’aligner avant de lancer Claude
- Définit comment builder et quels « checkpoints d’inspection » nécessitent une interruption du travail et l’affichage des résultats
- Son usage régulier construit une forte intuition sur le minimum de contexte nécessaire pour obtenir un bon plan sans que Claude rate l’implémentation
- Monorepo d’entreprise : début du déploiement d’un outil de planning personnalisé basé sur le SDK Claude Code
- Similaire au mode plan natif, mais avec un prompt ciblé pour aligner la sortie sur les formats de conception technique existants
- Intègre nativement l’application des bonnes pratiques internes (de la structure du code jusqu’à la confidentialité des données et à la sécurité)
- Permet aux ingénieurs de « vibe plan » de nouvelles fonctionnalités comme des architectes seniors (du moins, c’est la promesse)
Skills
- D’accord avec Simon Willison : les Skills sont (probablement) plus importants que MCP
- Évolution du modèle mental de l’autonomie des agents en 3 étapes
- Single Prompt : donner tout le contexte à l’agent dans un seul énorme prompt (fragile, non scalable)
- Tool Calling : modèle d’agent « classique », avec des outils fabriqués à la main et une abstraction du réel pour l’agent (mieux, mais crée de nouveaux goulots d’étranglement d’abstraction et de contexte)
- Scripting : donner à l’agent un accès à l’environnement brut (binaires, scripts, documentation) → l’agent écrit du code à la volée pour interagir
- Les Agent Skills sont clairement la fonctionnalité suivante : la mise en produit officielle de la couche « Scripting »
- Si vous préférez déjà la CLI à MCP, vous bénéficiez déjà implicitement des avantages des Skills
- Les fichiers
SKILL.md offrent une façon plus structurée, partageable et découvrable de documenter ces CLI et scripts et de les exposer à l’agent
- Les Skills sont la bonne abstraction : elles formalisent un modèle d’agent basé sur le « scripting », plus robuste et plus flexible que le modèle rigide de type API représenté par MCP
MCP (Model Context Protocol)
- L’existence des Skills ne signifie pas que MCP est mort (voir "Everything Wrong with MCP")
- Problème précédent : beaucoup construisaient des MCP affreux et lourds en contexte, avec des dizaines d’outils reflétant une API REST (
read_thing_a(), read_thing_b(), update_thing_c())
- Le modèle « Scripting » (officialisé avec les Skills) est une meilleure approche, mais il faut un moyen sûr d’accéder à l’environnement → d’où un rôle nouveau et plus ciblé pour MCP
-
Nouveau rôle de MCP : passerelle de données
- Au lieu d’une API obèse, fournir quelques outils puissants de haut niveau dans une passerelle simple et sûre
download_raw_data(filters…)
take_sensitive_gated_action(args…)
execute_code_in_environment_with_state(code…)
- Rôle de MCP : gérer l’authentification, le réseau et les frontières de sécurité, non pas abstraire le réel pour l’agent, puis se faire oublier
- Fournir un point d’entrée à l’agent → l’agent réalise le vrai travail avec du scripting et du contexte
markdown
- Seul MCP actuellement utilisé : Playwright (justifié car l’environnement est complexe et avec état)
- Tous les outils sans état (Jira, AWS, GitHub) ont été migrés vers de simples CLI
SDK Claude Code
- Claude Code n’est pas seulement un CLI interactif, c’est aussi un SDK puissant pour créer une toute nouvelle génération d’agents, pour les tâches de développement comme hors développement
- Sur la plupart des nouveaux projets perso, il est désormais utilisé comme framework d’agents par défaut plutôt que des outils comme LangChain ou CrewAI
- Trois principaux modes d’utilisation
- Scripting parallèle à grande échelle : pour les refactorings massifs, corrections de bugs et migrations, sans utiliser le chat interactif
- Écrire un simple script bash qui lance en parallèle
claude -p "in /pathA change all refs from foo to bar"
- Bien plus scalable et contrôlable que de faire gérer des dizaines de tâches de subagents par un agent principal
- Création d’outils de chat internes : parfait pour encapsuler des processus complexes dans une interface de chat simple pour des utilisateurs non techniques
- Ex. : un installeur qui, en cas d’erreur, bascule sur le SDK Claude Code pour résoudre le problème utilisateur
- Ex. : un outil interne de type "v0-at-home" permettant à l’équipe design de vibe-coder des maquettes front-end avec le framework UI maison (garantit une haute fidélité des idées, et un usage plus direct dans le code front-end de production)
- Prototypage rapide d’agents : le cas d’usage le plus courant, pas limité au développement
- Quand il y a une idée de tâche agentique (par ex. un "agent d’investigation des menaces" utilisant un CLI custom ou MCP)
- Construire et tester rapidement un prototype avec le SDK Claude Code avant de committer tout le scaffolding de déploiement
GitHub Action (GHA) Claude Code
- L’une des fonctionnalités préférées et les plus sous-estimées : concept simple (exécuter Claude Code dans GHA), mais cette simplicité fait sa puissance
- Similaire à l’agent en arrière-plan de Cursor ou à l’UI web managée de Codex, mais bien plus personnalisable
- Contrôle total du conteneur et de l’environnement → meilleur accès aux données
- Contrôles de sandboxing et d’audit bien plus puissants que dans d’autres produits
- Prend en charge toutes les fonctionnalités avancées comme Hook et MCP
-
Cas d’usage
- Créer un outil custom de type "PR depuis n’importe où"
- Possibilité de déclencher une PR depuis Slack, Jira, ou même une alerte CloudWatch
- GHA renvoie une PR entièrement testée après correction de bug ou ajout de fonctionnalité
- Flywheel piloté par les données
- Les logs GHA = les logs complets de l’agent
- À l’échelle de l’entreprise, revue régulière des logs pour repérer les erreurs communes, erreurs bash et pratiques d’ingénierie non alignées
- Flywheel : bug → amélioration de CLAUDE.md/CLI → meilleur agent
$ query-claude-gha-logs --since 5d | claude -p "see what the other claudes were getting stuck on and fix it, then put up a PR"
settings.json
- Certaines configurations sont essentielles, pour les projets perso comme pour le travail
HTTPS_PROXY/HTTP_PROXY : pour le débogage
- Inspecter le trafic brut pour voir les prompts exacts envoyés par Claude
- Outil puissant de sandboxing réseau fin pour les agents en arrière-plan
MCP_TOOL_TIMEOUT/BASH_MAX_TIMEOUT_MS : augmenter les valeurs
- Préférence pour l’exécution de commandes longues et complexes, et les timeouts par défaut sont souvent trop conservateurs
- Incertitude sur leur nécessité depuis les tâches bash en arrière-plan, mais conservés par précaution
ANTHROPIC_API_KEY : au travail, utiliser une clé API entreprise (via apiKeyHelper)
- Passer d’une licence "par siège" à une tarification "à l’usage" (un modèle bien plus adapté à cette façon de travailler)
- Compte tenu des écarts massifs d’usage entre développeurs (rapport de 1 à 100 observé entre ingénieurs)
- Permettre aux ingénieurs d’expérimenter des scripts LLM non Claude Code avec un seul compte entreprise
"permissions" : auditer régulièrement la liste des commandes que Claude est autorisé à exécuter automatiquement
Conclusion
- Il y avait beaucoup à couvrir, mais j’espère que cela sera utile
- Si vous n’utilisez pas encore d’agents en CLI comme Claude Code ou Codex CLI, il faut s’y mettre
- Il existe très peu de bons guides sur ces fonctionnalités avancées, et la seule façon d’apprendre est de se lancer directement
2 commentaires
Discussion sur Hacker News
Nous synchronisons nos fichiers avec AGENTS.md pour assurer la compatibilité avec d’autres IDE IA
En regardant ça récemment, j’ai vu que la méthode recommandée par Anthropic consiste à mettre simplement une ligne
@AGENTS.mddans le fichierCLAUDE.md, et à placer le vrai contenu dans AGENTS.mdDocumentation associée : Claude Code Best Practices
J’aime vraiment beaucoup cet article sur MCP
J’apprécie l’idée selon laquelle « MCP ne devrait pas être une API complexe, mais une passerelle minimaliste qui gère l’authentification, le réseau et les frontières de sécurité, puis s’efface »
Article lié
Malgré tout, je n’utilise presque jamais MCP. J’aimerais qu’il se concentre sur l’authentification (auth)
Lien de référence : post sur X
C’est un peu dommage qu’un article de 3 000 mots soit considéré comme « trop long, à garder seulement en référence »
J’aimerais voir une version encore plus longue avec des exemples concrets
J’utilise une routine de redémarrage simple avec
/clearet/catchuppour réinitialiser l’état de Claude et lui faire relire les fichiers modifiésIl est probable que la commande
/compactfinisse bientôt par remplir ce rôle/compact, c’est presque inutilisableMême quand il affiche « 0% context remaining », environ 30 % sont en réalité réservés pour la compression
Et malgré ça, une fois sur deux la compression échoue ou tombe sur une limite de l’API
C’est aussi une bonne idée d’utiliser Claude Code pour améliorer sa propre configuration
Je recommande de passer en mode plan et d’utiliser le prompt suivant :
« Lis ce document (How I use every Claude Code feature) et dis-moi comment améliorer ma configuration Claude Code »
J’ai abandonné la maintenance de CLAUDE.md parce que Claude ne suit même pas correctement des consignes simples
Par exemple, même si je lui demande de nommer les scripts générés
<foo>.aigen.ts, il ignore cette instruction une fois sur deuxDu coup, je contourne le problème en injectant directement le contexte dans le prompt à chaque fois
Est-ce que je suis le seul à avoir ce problème ?
J’ai obtenu des résultats similaires sur plusieurs projets
Quelqu’un disait que « si vous n’utilisez pas d’agent en CLI, vous devriez vous y mettre », et je me demande si c’est vraiment meilleur que l’app Cursor
Cursor est pratique parce qu’on peut sélectionner une portion de code précise et faire Cmd-L pour dire « corrige cette partie »
Envoyer des fragments de code via la CLI me semble un peu fastidieux
L’UX légère et l’efficacité sont toutes deux meilleures. Claude fonctionne le mieux dans CC
gh, etc.)En voyant la formule « Claude Code n’est pas un simple CLI, c’est un SDK permettant de créer de nouveaux agents », j’ai trouvé que ça avait un style d’écriture IA, et ça m’a fatigué
J’ai eu l’impression que le lecteur n’était pas respecté
Cet article me paraît être un bon exemple, car on voit que l’auteur l’a vraiment lu et édité
En revanche, copier-coller une sortie d’IA telle quelle mérite d’être critiqué
Moi, au contraire, je me suis senti respecté et je l’ai lu jusqu’au bout
Ces outils sont intéressants, mais je me demande si le secteur n’est pas encore en train de se concentrer sur la technologie elle-même plutôt que sur le client
(Ça me rappelle l’essai de Paul Graham, « Top idea in your mind »)
Si un produit est développé vite et à bas coût mais qu’il est truffé de bugs, ça n’a aucun intérêt
Pour l’IA, c’est pareil : les CEO la voient surtout comme un moyen de réduire les effectifs, mais la technologie n’est pas encore à un niveau où elle apporte un bénéfice concret au client
Les chatbots IA ne font que rendre les clients encore plus agacés
La vitesse de progression de Claude Code est étonnamment rapide
Il s’améliore tellement en continu qu’on doit apprendre quelque chose de nouveau chaque semaine
Si ça ajoutait des fonctionnalités sans ralentir mon Mac M4 (64 Go de RAM), là ce serait vraiment de la magie
C'est bien, mais ..