Utiliser Claude Code en mission enterprise, c'est consommer des tokens à un rythme soutenu. Une session de travail intensive — feature complète, code review, debugging — peut atteindre 200 000 à 400 000 tokens d'entrée/sortie. À l'échelle d'un mois, la facture devient un sujet. Depuis 6 mois, j'utilise deux techniques complémentaires qui ont divisé ma consommation par presque deux sans réduire la qualité du travail produit : RTK et Caveman Mode.

Le problème : les tokens, c'est de l'argent

Claude Code mesure la consommation en tokens d'entrée et de sortie. Les tokens d'entrée incluent tout le contexte de la session : fichiers lus, historique de conversation, sorties des outils, contenu des fichiers de configuration. Les tokens de sortie sont les réponses de l'IA.

Deux sources de gaspillage dominent dans un workflow de développement classique :

RTK adresse le premier point. Caveman Mode adresse le second.

RTK : un wrapper qui rend les commandes prévisibles

RTK est un wrapper de commandes shell. Toutes les commandes exécutées par Claude Code sont préfixées par rtk :

rtk dotnet build Edenred.Smarter.slnx
rtk dotnet test tests/Application.Tests --no-build
rtk git fetch origin && rtk git checkout -b feat/mbois/LCT-44631 origin/develop
rtk npm install -g uipro-cli

RTK fonctionne comme un proxy transparent : il passe les commandes inconnues sans modification. Pour les commandes connues, il applique des filtres projet-spécifiques configurés en amont.

Ce que RTK fait concrètement

Pour dotnet test, RTK peut appliquer automatiquement :

# Sans RTK — sortie brute, 2000+ lignes
dotnet test → résultat : 3800 tokens de contexte injecté

# Avec RTK — sortie filtrée, erreurs seulement
rtk dotnet test → résultat : 180 tokens de contexte injecté

Pour dotnet build, RTK filtre les avertissements connus (false positifs SonarQube sur les générateurs de code) et ne remonte que les erreurs réelles. Claude Code reçoit un signal propre, pas du bruit.

Pourquoi le préfixe systématique ?

L'intérêt n'est pas seulement technique — c'est aussi comportemental. En configurant dans le CLAUDE.md que toutes les commandes portent le préfixe RTK, Claude Code développe un pattern cohérent. Il ne part pas dans des constructions ad hoc (dotnet test | grep -E "Failed|Error") qui varient selon le contexte et produisent des résultats imprévisibles. Le comportement devient auditable et reproductible d'une session à l'autre.

"La prévisibilité d'une IA dépend de la prévisibilité de son environnement. RTK est une contrainte qui libère — Claude Code sait exactement ce qu'il peut faire avec les commandes, et le fait systématiquement bien."

Configuration dans CLAUDE.md

# RTK
Always prefix shell commands with `rtk`.
It passes through unchanged if no filter exists.
Even in command chains:
  rtk git add . && rtk git commit -m "msg" && rtk git push

C'est tout. Une règle, deux lignes. Claude Code l'applique sur 100% de ses appels shell sans exception.

Caveman Mode : communiquer sans bruit

Caveman Mode est un protocole de communication injecté dans chaque échange via les hooks UserPromptSubmit de Claude Code. Le principe : supprimer tout ce qui ne porte pas d'information.

Ce qui disparaît

Sans Caveman Mode, une réponse type de Claude Code commence par :

Sure! I'd be happy to help you with that. The issue you're experiencing
is likely caused by the fact that the authentication middleware is
checking the token expiry using the wrong comparison operator...

Avec Caveman Mode activé :

Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:

La même information, sans les articles définis, les formules de politesse, les adverbes de remplissage (just, really, basically, actually, simply), le hedging (likely, probably, might be), et les reformulations du contexte que l'utilisateur connaît déjà.

Les niveaux de Caveman Mode

Le mode supporte trois niveaux selon l'intensité souhaitée :

Le mode full est le meilleur compromis au quotidien : l'information reste lisible, les économies sont significatives.

Les exceptions automatiques

Caveman Mode intègre une règle d'auto-clarté : il se suspend automatiquement pour :

Après ces passages, le mode reprend automatiquement. Le code, les commits et les PR ne sont jamais affectés — ils sont écrits normalement.

Configuration via les hooks

Le hook s'ajoute dans .claude/settings.json :

{
  "hooks": {
    "UserPromptSubmit": [
      {
        "command": "echo 'CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal.'"
      }
    ]
  }
}

Ce hook injecte les instructions de communication dans chaque prompt entrant. Claude Code reçoit la contrainte avant de traiter votre demande, et y répond en conséquence dès le premier token de sa réponse.

"Caveman Mode n'est pas du manque de respect — c'est du respect du temps. La politesse en communication humaine compense l'absence de contexte partagé. Avec un outil qui connaît votre projet, elle ne fait qu'ajouter de la friction."

Mesures concrètes sur 30 jours de mission

Sur ma mission actuelle (plateforme enterprise .NET 10, 8 devs, base de code 180k LOC), voici les chiffres mesurés sur un mois de travail intensif avec Claude Code :

−52% tokens/session (Caveman Mode full)
−68% tokens de contexte shell (RTK + filtres)
×2.1 features livrées vs mois précédent

Le gain sur les tokens shell est plus élevé que le gain sur les réponses parce que les sorties de commandes non filtrées sont proportionnellement très coûteuses : une seule exécution de dotnet test sur une solution de 50 projets peut injecter autant de tokens que 20 échanges conversationnels.

Ce que ça change dans la pratique

La réduction de tokens a un effet secondaire souvent sous-estimé : la fenêtre de contexte disponible reste propre plus longtemps. Claude Code peut travailler sur des features plus longues sans atteindre la limite de contexte. Les sessions durent plus longtemps sans dégradation de la cohérence.

Sur ma mission, nous avons mesuré une augmentation de la durée moyenne des sessions de 35 min à 58 min avant le premier signal de compression de contexte. C'est 23 minutes de travail continu supplémentaires par session, sans interruption pour "recharger" le contexte.

Setup complet : 4 étapes

Voici le setup exact que j'utilise, reproductible sur n'importe quel projet .NET avec Claude Code :

Étape 1 — Installer RTK

RTK s'installe comme un outil global sur votre machine de développement. Une fois installé, la commande rtk est disponible dans votre PATH et agit comme proxy pour toutes vos commandes.

Étape 2 — Configurer CLAUDE.md

# RTK
Always prefix shell commands with `rtk`.
It passes through unchanged if no filter exists.
Even in command chains: `rtk git add . && rtk git commit -m "msg"`

# Commandes projet
rtk dotnet build Solution.slnx
rtk dotnet test Solution.slnx --no-build
rtk dotnet format Solution.slnx --verify-no-changes

Étape 3 — Configurer le hook Caveman Mode

// .claude/settings.json
{
  "hooks": {
    "UserPromptSubmit": [
      {
        "command": "echo 'CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal.'"
      }
    ]
  }
}

Étape 4 — Ajuster le niveau si nécessaire

Commencez par le niveau full. Si vous trouvez les réponses trop telegraphiques pour les explications architecturales complexes, passez en lite. Si vous faites une session de debugging pur et que vous voulez aller vite, basculez en ultra pour cette session.

// Commandes de contrôle pendant une session
/caveman lite    // moins agressif
/caveman full    // défaut recommandé
/caveman ultra   // debugging intensif
stop caveman     // désactiver complètement
normal mode      // identique à stop caveman

Pièges à éviter

Deux erreurs que j'ai faites en configurant ce setup :

1. Appliquer Caveman Mode aux sorties de revue de code. Le mode full sur une code review génère des findings trop concis — il manque le "pourquoi" derrière chaque suggestion. J'ai ajouté une règle explicite dans CLAUDE.md : les reviews et les analyses de sécurité s'écrivent en mode normal, pas en caveman.

2. Oublier RTK dans les séquences git complexes. Sur les worktrees (plusieurs branches en parallèle), il y a des commandes qui ne passent pas par RTK parce qu'elles sont construites dynamiquement. J'ai ajouté dans CLAUDE.md : even in command chains, pour que Claude Code ne génère jamais de séquence sans le préfixe.

Est-ce applicable hors .NET ?

Oui. RTK est agnostique au langage — c'est un wrapper shell. Il fonctionne aussi bien avec npm test, pytest, cargo build ou go test. Les filtres sont configurables par commande, indépendamment de l'écosystème technique.

Caveman Mode est encore plus universel — il opère sur la couche communication, pas sur le code. Il s'applique à n'importe quel workflow Claude Code, quelle que soit la technologie du projet.

En résumé

Les tokens ne sont pas une ressource infinie. Les optimiser, c'est non seulement réduire les coûts — c'est aussi travailler avec une IA qui reste cohérente plus longtemps, sur des sessions plus denses, avec moins de friction. RTK filtre le bruit côté commandes. Caveman Mode filtre le bruit côté communication. Ensemble, ils définissent un contrat clair entre vous et l'outil : chaque token injecté dans le contexte doit porter de l'information utile.

C'est du Kaizen appliqué à l'IA — améliorer le système, pas seulement l'utiliser.

Vous voulez optimiser votre setup Claude Code ?

Je configure Claude Code pour les équipes .NET : hooks, CLAUDE.md, skills, workflows TDD.
Résultats mesurables dès la première semaine.

✉ Me contacter Voir les offres IA →