Retour aux articles

Les bonnes pratiques de prompting avec Claude Code

Claude Code est un outil puissant, mais chaque interaction consomme des tokens. Une mauvaise hygiène d'utilisation peut rapidement faire exploser votre consommation tout en dégradant la qualité des réponses. La bonne nouvelle ? Quelques réflexes simples permettent de diviser votre consommation par 2 ou 3.

Cet article vous présente les pratiques essentielles pour optimiser votre usage quotidien de Claude Code : gestion du contexte, configuration des MCP, et patterns de prompting efficaces.

Sommaire
  1. Comprendre le contexte et son impact
  2. Maîtriser les commandes essentielles
  3. Être concis et structuré
  4. Optimiser la configuration des MCP
  5. Patterns de prompting avancés
  6. Gestion de session et workflows
  7. Checklist session
  8. Erreurs courantes à éviter

Comprendre le contexte et son impact

Pourquoi le contexte explose votre consommation

À chaque message que vous envoyez, Claude Code transmet l'intégralité de la conversation au modèle. Cela signifie qu'une longue session consomme exponentiellement plus de tokens.

Visualisation simple :
Message 1 : 100 tokens envoyés
Message 2 : 300 tokens (les 100 précédents + 200 nouveaux)
Message 10 : 5000 tokens (tout l'historique)
Message 30 : 20000 tokens

Vous payez votre historique à chaque requête. C'est le piège numéro un.

La règle d'or : Une session = Un sujet

Ne mélangez jamais plusieurs sujets dans une même session. Chaque changement de contexte doit déclencher une nouvelle session propre.

Mauvaise pratique

[Session de 40 messages]
- Messages 1-15 : Debug backend
- Messages 16-25 : Styling React
- Messages 26-30 : Config nginx
- Messages 31-40 : Documentation

Les 40 messages portent le contexte des 4 sujets. Gaspillage massif.

Bonne pratique

[Session 1] Debug backend → /clear
[Session 2] Styling React → /clear
[Session 3] Config nginx → /clear
[Session 4] Documentation

Chaque session est isolée et légère.

Le contexte s'accumule à chaque message. Utilisez /clear dès que vous changez de sujet.

Maîtriser les commandes essentielles

claude Début session
/context Vérifier taille
/compact Si > 10k tokens
/clear Nouveau sujet

La commande /clear

Objectif : Efface complètement l'historique de la conversation.

Quand l'utiliser :

Vous venez de fixer un bug → /clear
Vous passez du Python au JavaScript → /clear
Vous terminez une review de code → /clear
Votre session a dépassé 25 messages → /clear

Important : Ne craignez pas de perdre le contexte. Si vous avez besoin d'informations de la session précédente, reformulez-les en une phrase dans votre nouvelle session.

La commande /compact

Objectif : Résume la conversation en conservant uniquement les informations essentielles.

Quand l'utiliser :

Différence /clear vs /compact :
/clear = Nouvelle session, ardoise vierge
/compact = Même session, version résumée

La commande /context

Objectif : Affiche le contenu actuel du contexte envoyé à Claude.

Pourquoi c'est crucial : C'est votre tableau de bord de consommation. Cette commande vous montre EXACTEMENT ce qui est envoyé à chaque requête.

=== Contexte actuel ===
- Historique : 18 messages (environ 12000 tokens)
- Fichiers lus : 3 fichiers (environ 2000 tokens)
- MCP actifs : filesystem, playwright, postgres (environ 2500 tokens)
- Contexte système : 1000 tokens
TOTAL estimé : 17500 tokens

Action selon le résultat :

Prenez le réflexe : /context tous les 10-15 messages pour surveiller votre consommation.

Être concis et structuré

Principe : Pas de bavardage

Claude n'a pas besoin de politesses ou de contexte narratif. Allez droit au but.

Inefficace (120 tokens)

Salut Claude ! J'espère que tu vas bien.
Alors voilà, j'ai un petit souci avec
mon code. En fait, hier j'ai essayé
de faire un truc mais ça n'a pas
marché. Je pense que c'est peut-être
lié à la base de données...

Efficace (25 tokens)

Bug : timeouts aléatoires GET /api/users
Stack : Flask + PostgreSQL + Redis
Fichier : src/api/users.py
Diagnostique la cause.

Gain : 75% de tokens économisés, information plus claire.

Pattern : La demande structurée

Organisez vos demandes complexes en sections claires :

CONTEXTE : [1 phrase]
PROBLÈME : [1-2 phrases]
OBJECTIF : [ce que vous voulez]
CONTRAINTES : [si pertinent]

Exemple réel :

CONTEXTE : API Flask en production, 200 req/min
PROBLÈME : 15% des requêtes POST /orders échouent avec "connection pool exhausted"
OBJECTIF : Identifier et corriger la fuite de connexions DB
CONTRAINTES : Pas de downtime possible

Fichier à auditer : src/api/orders.py

Grouper les demandes

Anticipez et regroupez les demandes liées en une seule instruction.

Inefficace (6 messages)

Vous : Crée validate_email
Claude : [crée]
Vous : Vérifie le format
Claude : [ajoute]
Vous : Et les domaines autorisés
Claude : [ajoute]
Vous : Et logger les erreurs
Claude : [ajoute]

Efficace (1 message)

Crée validate_email() qui :
- Vérifie format RFC 5322
- Accepte uniquement @company.com
- Log les tentatives invalides
- Retourne bool
- Inclut 5 tests unitaires

Regroupez toutes vos demandes en un seul message. Chaque aller-retour coûte l'intégralité du contexte.

Optimiser la configuration des MCP

Comprendre l'impact des MCP

Chaque MCP (Model Context Protocol) actif ajoute sa documentation complète au contexte de CHAQUE requête, même si vous ne l'utilisez pas.

MCP Impact par requête
Playwright (browser) ~1000 tokens
PostgreSQL ~700 tokens
Filesystem ~500 tokens
Git ~400 tokens

Attention : Avec 5 MCP actifs, vous payez ~3000 tokens de "taxe système" à chaque message, avant même d'avoir écrit quoi que ce soit.

Règle : Désactiver par défaut, activer au besoin

La plupart du temps, vous n'avez besoin que de 1 ou 2 MCP maximum.

Tâche MCP nécessaires MCP inutiles
Refactoring Python filesystem browser, database, git
Tests E2E UI filesystem, playwright database, git
Review de code filesystem tous les autres
Optimisation SQL filesystem, postgres browser, web

Comment désactiver les MCP

Ouvrez votre fichier de configuration (~/.config/claude/settings.json) et ajoutez "disabled": true :

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-playwright"],
      "disabled": true
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "disabled": true
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem"],
      "disabled": false
    }
  }
}

Astuce : Créez plusieurs versions de ce fichier selon vos besoins :

Pour lancer Claude Code avec une configuration spécifique, utilisez l'option --mcp-config :

# Lancer avec la config minimale
claude --mcp-config ~/.config/claude/settings-minimal.json

# Lancer pour du backend
claude --mcp-config ~/.config/claude/settings-backend.json

# Créer des alias dans votre .bashrc ou .zshrc
alias claude-mini="claude --mcp-config ~/.config/claude/settings-minimal.json"
alias claude-back="claude --mcp-config ~/.config/claude/settings-backend.json"
alias claude-front="claude --mcp-config ~/.config/claude/settings-frontend.json"

Désactivez tous les MCP sauf filesystem par défaut. Activez les autres uniquement quand nécessaire.

Patterns de prompting avancés

Pattern : Instructions sans explication

Par défaut, Claude aime expliquer ce qu'il fait. C'est pédagogique mais coûteux.

Standard

Vous : Crée une fonction de validation
Claude : Je vais créer une fonction
qui valide les mots de passe selon
les critères de sécurité standards.
Elle vérifiera la longueur minimale,
la présence de caractères spéciaux...
[code]

Optimisé

Vous : Crée une fonction de validation.
Code uniquement, sans explication.

Claude : [code directement]

Ajoutez toujours "code uniquement" ou "action directe" quand vous n'avez pas besoin d'explications.

Pattern : Lecture ciblée de fichiers

Ne faites pas lire des fichiers entiers si vous n'avez besoin que d'une section.

Inefficace

Vous : Lis src/api/users.py (500 lignes)
Claude : [lit tout]
Vous : Regarde juste get_user_by_id

Vous avez payé pour 500 lignes alors que vous en vouliez 20.

Efficace

Vous : Lis uniquement la fonction
get_user_by_id dans src/api/users.py

Ou utilisez grep pour cibler.

Pattern : Commandes directes

Pour les actions simples, demandez l'action directement sans préambule.

Inefficace

Vous : Est-ce que tu peux lancer les
tests unitaires pour voir s'il y a
des erreurs ?

Efficace

Vous : pytest

Pour les actions bash standard, soyez minimaliste :

Ajoutez "code uniquement" ou "sans explication" pour économiser 40-60% de tokens sur les réponses.

Gestion de session et workflows

Workflow : Feature complète

Approche inefficace

[Session unique de 2h avec 50 messages]
- Brainstorming
- Implémentation itérative
- Tests
- Documentation
- Corrections

Contexte massif, gaspillage énorme.

Approche efficace

[Session 1 - Planning] 10 msg → /clear
[Session 2 - Implem] 15 msg → /clear
[Session 3 - Tests] 8 msg → /clear
[Session 4 - Docs] 5 msg

38 messages en 4 sessions légères.

Workflow : Debugging

Le debugging a tendance à faire exploser le contexte avec des logs et stack traces.

Stratégie en 3 temps :

TEMPS 1 - Diagnostic (session courte)
Vous : Bug sur POST /orders : timeouts
Logs : [20 lignes pertinentes]
Code : src/api/orders.py
Diagnostique la cause probable.
Claude : Cause probable : connection pool leak ligne 45
Vous : /clear

TEMPS 2 - Correction (nouvelle session)
Vous : Corrige le connection pool leak dans src/api/orders.py ligne 45
Claude : [corrige]
Vous : /clear

TEMPS 3 - Validation (nouvelle session)
Vous : pytest tests/test_orders.py
Claude : [lance les tests]

Découpez les grosses tâches en sessions courtes et focalisées. /clear entre chaque étape.

Checklist session

Avant de commencer

  • Quel est mon objectif précis pour cette session ?
  • De quels MCP ai-je réellement besoin ?
  • Ai-je préparé toutes les informations nécessaires ?

Pendant la session

  • Est-ce que je reste sur le même sujet ? (sinon → /clear)
  • Ma session dépasse-t-elle 20 messages ? (→ /compact ou /clear)
  • Est-ce que je répète des informations déjà données ?
  • Est-ce que je demande des explications inutiles ?

Tous les 10-15 messages

  • Taper /context pour vérifier la taille du contexte
  • Si > 10000 tokens : décider entre /compact ou /clear

Erreurs courantes à éviter

Erreur 1 : La session-fleuve

Symptôme : Une session qui dure des heures avec 60+ messages sur des sujets variés.

Impact : Consommation de 50000+ tokens alors que 10000 auraient suffi.

Solution : Imposez-vous une limite de 25 messages par session.

Erreur 2 : Tous les MCP activés par défaut

Symptôme : Vous n'avez jamais touché à votre settings.json.

Impact : 2000-3000 tokens de "taxe" par message.

Solution : Désactivez tout sauf filesystem, puis activez au cas par cas.

Erreur 3 : Lire des fichiers volumineux en entier

Symptôme : "Lis src/main.py" alors que le fichier fait 1000 lignes.

Impact : 1000+ tokens consommés inutilement.

Solution : Utilisez grep ou demandez des lectures ciblées.

Erreur 4 : Demander des explications systématiques

Symptôme : Claude explique longuement avant chaque action.

Impact : 40-60% de tokens en plus.

Solution : Ajoutez "code uniquement, sans explication".

Erreur 5 : Ne jamais utiliser /context

Symptôme : Vous ne savez pas combien de tokens consomme votre session.

Impact : Vous naviguez à l'aveugle.

Solution : Tapez /context tous les 10-15 messages.

Conclusion

Optimiser votre usage de Claude Code, c'est adopter une hygiène simple :

  1. Une session = Un sujet : /clear entre chaque changement de contexte
  2. Moins de 25 messages par session : Au-delà, /compact ou /clear
  3. Vérifier le contexte régulièrement : /context tous les 10-15 messages
  4. Désactiver les MCP inutiles : Seul filesystem est nécessaire 80% du temps
  5. Être concis et structuré : Pas de bavardage, informations groupées
  6. Action directe : "Code uniquement" quand pas besoin d'explications

À retenir : Ces pratiques peuvent réduire votre consommation de 50 à 70% sans impacter votre productivité. Au contraire, des sessions courtes et focalisées produisent de meilleurs résultats.

Commencez par un seul réflexe : taper /context avant vos grosses requêtes. Vous verrez immédiatement l'impact de votre contexte. Puis ajoutez progressivement les autres pratiques.

Vous avez des questions ou d'autres techniques à partager ? Contactez-moi ou retrouvez-moi sur LinkedIn.

Thomas Bourimech

Thomas Bourimech

Développeur & Intégrateur IA freelance

thomasbourimech.com