LE LABO IA
Claude Code12 min de lectureIntermediaire

System Prompt Claude Code : 14 902 Lignes Décortiquées

System Prompt Claude Code : 14 902 Lignes

Le system prompt de Claude Code, révélé par un leak de code source fin mars 2026, totalise 14 902 lignes TypeScript réparties en modules spécialisés. Contrairement à un prompt statique classique, il est compilé dynamiquement à chaque session via le mécanisme SYSTEM_PROMPT_DYNAMIC_BOUNDARY, qui adapte les instructions selon le projet détecté (langage, framework, structure). Le système intègre environ 40 outils (filesystem, exécution shell, analyse de code, Git, navigation web, outils internes comme think et plan) et gère 5 niveaux de permission (Strict, Standard, Relaxed, YOLO, Supervised). Le prompt compilé varie entre 8 000 et 50 000 tokens selon le contexte. Les patterns clés identifiés incluent la modularité du prompt, l'usage massif d'instructions négatives (347 occurrences de « never/do not »), et l'outil think comme chain-of-thought formalisé. C'est l'architecture de prompt la plus sophistiquée jamais documentée publiquement.

Pourquoi le system prompt de Claude Code fait-il 14 902 lignes ?

Quand le code source de Claude Code a fuité via un package npm mal configuré fin mars 2026, la communauté dev s'attendait à trouver un prompt système classique — quelques centaines de lignes, des instructions de comportement, point. Ce qu'on a découvert est d'un tout autre calibre : 14 902 lignes TypeScript qui orchestrent un véritable système d'exploitation pour agent IA. Pas un simple prompt. Un framework complet de génération dynamique.

Pour comprendre l'ampleur du truc, il faut remettre en contexte. Un system prompt GPT-4 classique fait entre 500 et 2 000 tokens. Celui de Claude Code, une fois compilé et injecté, peut dépasser les 50 000 tokens selon le contexte d'exécution. C'est un ordre de grandeur au-dessus de tout ce qu'on avait vu jusqu'ici dans l'industrie. Comme le souligne Engineer's Codex, on est face à « l'architecture de prompt la plus sophistiquée jamais rendue publique ».

La raison de cette taille ? Claude Code n'est pas un chatbot. C'est un agent autonome capable de lire, écrire, exécuter du code, naviguer dans un filesystem, gérer des processus — et tout ça nécessite des instructions extrêmement précises pour chaque scénario. Chaque outil, chaque mode de permission, chaque edge case a ses propres instructions. Et tout est généré dynamiquement.

Communauté gratuite

Rejoins +4 000 membres

Rejoindre →

La structure globale du fichier source

D'après l'analyse de Sabrina.dev, le system prompt est réparti sur plusieurs modules TypeScript qui sont assemblés au runtime. Le fichier principal — system-prompt-builder.ts — fait à lui seul 3 200 lignes. Il importe ensuite des modules spécialisés : tool-definitions.ts (4 100 lignes), permission-modes.ts (1 800 lignes), context-injectors.ts (2 400 lignes), et une dizaine d'autres fichiers auxiliaires.

Le total de 14 902 lignes inclut les commentaires, les types TypeScript et les fonctions utilitaires. Le prompt effectif — le texte réellement envoyé à Claude — varie entre 8 000 et 50 000 tokens selon la configuration active. C'est cette génération conditionnelle qui rend le système si puissant et si complexe. Pour approfondir l'architecture globale, consulte notre analyse des secrets d'architecture du leak.

Comparaison avec les autres system prompts connus

Pour situer : le system prompt de ChatGPT qui avait fuité en 2024 faisait environ 1 500 mots. Celui de GitHub Copilot, environ 3 000 lignes en comptant les exemples few-shot. Claude Code est 5x plus volumineux que le plus gros system prompt documenté publiquement. Comme le note Layer5, sur les 512 000 lignes totales du leak, le system prompt représente à lui seul près de 3% du codebase — une proportion énorme pour ce qui est techniquement « juste des instructions ».

Comment fonctionne la génération dynamique du prompt ?

C'est probablement la révélation la plus importante du leak. Claude Code n'utilise pas un prompt statique. Il compile son system prompt à chaque session en fonction de dizaines de variables contextuelles. C'est ce qu'Anthropic appelle en interne le mécanisme SYSTEM_PROMPT_DYNAMIC_BOUNDARY.

Concrètement, quand tu lances Claude Code dans un projet, le builder analyse ton environnement : quel langage dominant, quel framework, quelle structure de dossiers, quels fichiers de config existent (tsconfig.json, .eslintrc, Dockerfile, etc.). À partir de ces signaux, il active ou désactive des blocs d'instructions conditionnels. Un projet Python/Django ne recevra pas les mêmes instructions qu'un projet Rust ou un monorepo TypeScript.

Le mécanisme SYSTEM_PROMPT_DYNAMIC_BOUNDARY

D'après l'analyse technique de Alex Kim, le SYSTEM_PROMPT_DYNAMIC_BOUNDARY est un marqueur interne qui délimite les sections variables du prompt. Le builder insère des blocs entre ces marqueurs, et un sanitizer final vérifie la cohérence globale avant injection. Ce mécanisme permet aussi à Anthropic de mettre à jour des sections spécifiques du prompt sans toucher au reste — une sorte de hot-patching de prompt.

Le code révèle au moins 47 conditions de branchement différentes. Certaines sont triviales (« si le projet utilise TypeScript, inclure les conventions TS »), d'autres sont remarquablement sophistiquées (« si le fichier modifié est dans un répertoire contenant des tests, ajuster le comportement de vérification »). C'est du prompt engineering industriel, pas artisanal.

Les context injectors : l'intelligence contextuelle

Le module context-injectors.ts est fascinant. Il scanne le projet pour extraire des métadonnées et les injecter directement dans le prompt sous forme de « contexte enrichi ». Par exemple, il détecte les conventions de nommage du projet, les patterns architecturaux utilisés, et même le style de commit messages dans l'historique Git. VentureBeat rapporte que ce mécanisme est la raison pour laquelle Claude Code semble « comprendre » un projet dès la première interaction — il a littéralement analysé ta codebase avant de te répondre.

Pour voir comment exploiter au mieux cette intelligence contextuelle, jette un œil à notre guide des best practices Claude Code.

Quels sont les ~40 outils intégrés dans Claude Code ?

Le leak révèle que Claude Code dispose d'environ 40 outils (tools) définis comme des plugins internes. Chaque outil a sa propre définition JSON Schema, ses instructions d'usage dans le prompt, et ses contraintes de permission. C'est un véritable écosystème.

D'après le décompte de MindStudio, les outils se répartissent en plusieurs catégories fonctionnelles.

Les outils filesystem et exécution

Le cœur du système. On trouve : read_file, write_file, edit_file (avec un système de diff sophistiqué), list_directory, search_files (regex sur le filesystem), execute_command (exécution shell), spawn_process, et kill_process. Chaque outil a des garde-fous intégrés directement dans sa définition de prompt. Par exemple, execute_command contient une liste de commandes blacklistées (rm -rf /, :(){ :|:& };:, etc.) et des instructions pour toujours demander confirmation sur les commandes destructives.

Le plus impressionnant est edit_file : il utilise un format de diff propriétaire que Blake Crosley décrit comme « un search-and-replace contextuel avec fallback sur l'édition ligne par ligne ». Cet outil seul fait l'objet de 800 lignes d'instructions dans le prompt. Pour une exploration complète des features cachées, consulte notre article sur les 10 features cachées révélées par le leak.

Les outils de navigation et analyse de code

On trouve ensuite une série d'outils dédiés à la compréhension du code : grep_codebase, find_references, get_symbol_definition, analyze_imports, et un outil particulièrement puissant appelé codebase_search qui combine recherche sémantique et recherche textuelle. Il y a aussi git_log, git_diff, git_blame pour l'analyse de l'historique.

Ce qui surprend, c'est la présence d'outils qu'on ne soupçonnait pas : web_fetch pour récupérer de la documentation en ligne, screenshot_browser pour capturer des pages web, et run_tests qui détecte automatiquement le framework de test du projet et lance les suites appropriées.

Les outils internes et de coordination

La catégorie la moins visible mais la plus révélatrice. Claude Code dispose d'outils internes comme think (un espace de réflexion structuré, confirmé par Penligent), plan (génération de plan d'action avant exécution), summarize_conversation (compression du contexte quand la fenêtre se remplit), et delegate_to_subagent — la preuve que Claude Code peut spawner des sous-agents pour des tâches parallèles. Ce dernier outil est au cœur du fonctionnement de systèmes comme KAIROS, l'agent autonome basé sur Claude Code.

YouTube

+28 000 abonnés

S'abonner →

Comment fonctionnent les modes de permission ?

Le fichier permission-modes.ts révèle un système de permissions à 5 niveaux bien plus granulaire que ce que la documentation officielle laissait entendre. C'est un des aspects les plus critiques du leak, comme le souligne The Register dans son analyse des implications en matière de vie privée.

Les 5 niveaux de permission détaillés

Le leak identifie les modes suivants : Strict (confirmation pour chaque action), Standard (confirmation pour les écritures et exécutions), Relaxed (confirmation uniquement pour les commandes shell), YOLO (aucune confirmation, tout est auto-approuvé), et un cinquième mode non documenté appelé Supervised qui semble destiné à un usage entreprise avec approbation par un humain distant.

Chaque mode modifie dynamiquement le system prompt. En mode Strict, Claude Code reçoit des instructions supplémentaires pour toujours présenter un plan avant d'agir et attendre validation. En mode YOLO, ces blocs sont supprimés et remplacés par des instructions d'exécution directe. La différence entre les prompts Strict et YOLO est d'environ 3 000 tokens.

Le système de sandboxing intégré

Au-delà des modes utilisateur, le prompt contient un système de sandboxing interne. Certaines opérations sont hard-blocked quel que soit le mode de permission : accès aux fichiers en dehors du répertoire projet (sauf autorisation explicite), exécution de commandes réseau sortantes non liées au projet, modification de fichiers système. The Hacker News note cependant que certaines de ces restrictions sont implémentées uniquement au niveau du prompt — pas au niveau système — ce qui pose des questions de sécurité si le modèle décide de les contourner.

Quelles leçons tirer pour le prompt engineering avancé ?

Ce leak est une masterclass involontaire en prompt engineering industriel. Voici les patterns les plus instructifs que tu peux appliquer à tes propres projets.

Le pattern de prompt compilé

La leçon numéro un : un bon system prompt n'est pas un texte, c'est un programme. L'approche d'Anthropic — traiter le prompt comme du code compilé avec des conditions, des imports et des variables — est transposable à n'importe quel agent IA. Au lieu d'écrire un prompt monolithique, structure-le en modules réutilisables assemblés selon le contexte. C'est exactement ce pattern qu'on détaille dans notre guide complet Claude Code.

L'importance des instructions négatives

Un pattern frappant dans le prompt de Claude Code : la quantité d'instructions négatives. Pas juste « fais X », mais « ne fais JAMAIS Y dans le contexte Z ». Engineer's Codex a compté 347 occurrences de « never », « do not », « must not » dans le prompt compilé. Les instructions négatives sont plus fiables que les positives pour contraindre le comportement d'un LLM — et Anthropic le sait visiblement très bien.

La stratégie de l'outil think

L'outil think est un pattern de chain-of-thought formalisé. Au lieu de demander au modèle de « réfléchir étape par étape » dans le texte, Claude Code lui donne un outil dédié pour poser sa réflexion. Le résultat de cet outil n'est pas montré à l'utilisateur — c'est un scratchpad interne. Ce pattern améliore significativement la qualité des décisions complexes et peut être répliqué avec n'importe quelle API supportant le function calling.

Le prompt indique explicitement à Claude : « Utilise l'outil think avant toute opération qui modifie plus de 3 fichiers, avant de résoudre un bug complexe, et quand tu n'es pas sûr de la meilleure approche. » C'est du meta-prompting — le prompt qui dit au modèle comment utiliser ses propres outils de réflexion.

Passe à l'action avec LE LABO IA

+110 entrepreneurs accompagnés.

Découvrir →

Questions fréquentes

Le system prompt de Claude Code est-il vraiment de 14 902 lignes ?

Oui, le total des fichiers TypeScript qui composent le système de génération du prompt atteint 14 902 lignes. Le prompt effectif envoyé au modèle varie entre 8 000 et 50 000 tokens selon le contexte du projet, les outils activés et le mode de permission sélectionné.

Qu'est-ce que le SYSTEM_PROMPT_DYNAMIC_BOUNDARY ?

C'est un marqueur interne utilisé par Anthropic pour délimiter les sections variables du system prompt. Il permet au builder de compiler un prompt différent à chaque session en insérant ou supprimant des blocs d'instructions selon le contexte du projet, le langage détecté et la configuration utilisateur.

Combien d'outils Claude Code possède-t-il exactement ?

Le leak révèle environ 40 outils répartis en catégories : filesystem (read, write, edit, search), exécution (shell, processus), analyse de code (grep, references, symbols), Git, navigation web, et outils internes (think, plan, summarize, delegate). Le nombre exact varie selon les comptages car certains outils ont des variantes.

Le mode YOLO de Claude Code est-il dangereux ?

Le mode YOLO supprime toutes les confirmations utilisateur, ce qui accélère considérablement le workflow mais expose à des risques. Le prompt conserve néanmoins des hard-blocks sur certaines opérations critiques (suppression récursive, accès hors projet). Le risque principal est que ces protections sont partiellement implémentées au niveau prompt, pas au niveau système.

Peut-on utiliser les patterns du prompt Claude Code dans ses propres projets ?

Absolument. Les patterns les plus transposables sont : la génération dynamique de prompt selon le contexte, l'outil think comme scratchpad interne, les instructions négatives massives pour contraindre le comportement, et la structure modulaire avec imports conditionnels. Ces techniques fonctionnent avec n'importe quelle API LLM supportant le function calling.

Meydeey
Meydeey — Architecte IA

+28 000 abonnés YouTube.