Architecture ~/.claude pour 200+ skills : comment tenir le prompt système sous 50K tokens et payer 0,15 $ par session
Une configuration opérationnelle de Claude Code en 7 couches maintient le préfixe de démarrage entre 40 000 et 50 000 tokens, même avec une bibliothèque de plus de 200 skills stockés sur disque. Le mécanisme de prompt caching réduit le coût d'une session de travail par un facteur 10 — de 1,50 $ à 0,15 $, pour un démarrage à froid de 1 à 2 secondes. Le routage automatique par déclencheurs assemble une présentation complète de 12 diapositives illustrées en 6 minutes et 14 secondes, contre une journée de travail entière.

- Volume du préfixe système : 40–50K tokens (CLAUDE.md 8K + rules 20–30K + descriptions 15K)
- Économie grâce au prompt caching : facteur 10 (0,15 $ par session au lieu de 1,50 $ sans cache)
- Vitesse de production d'une présentation : 6 minutes 14 secondes pour 12 diapositives (3,8 Mo en PPTX)
- Protection contre les injections de prompt : 5 circuits isolés et 3 blocages durs en PreToolUse
Au printemps 2025, alors que le terme « vibe coding » venait à peine d'apparaître et que les installations de Claude Code n'avaient pas encore franchi les quinze millions, je devais résoudre un problème purement managérial. En tant que CPO d'AlpinaGPT, je passais mes journées noyé sous des dizaines d'appels, de fils d'e-mails et de discussions de travail : les accords se perdaient à la jonction des canaux. J'avais besoin d'un cerveau numérique permanent, adossé à une base vectorielle unique, capable de relier seul les promesses faites sur Zoom aux e-mails et d'anticiper les échéances — l'ébauche de ce qui deviendra plus tard l'architecture OpenClaw.
Un agent terminal nu, sorti de sa boîte, ne connaît que les opérations basiques de lecture et d'écriture de fichiers. Pour le transformer en véritable combinat d'ingénierie, j'ai construit, après un an d'expérimentation, un système modulaire à sept couches dans le répertoire `~/.claude/` : le fichier de navigation `CLAUDE.md`, les règles permanentes `rules/`, les skills chargés à la demande `skills/`, des sous-agents isolés `agents/`, des commandes slash explicites `commands/`, des connecteurs externes `mcp.json` et des hooks événementiels `hooks/`.
Pourquoi une bibliothèque de plus de 200 skills ne sature-t-elle pas
la fenêtre de contexte et ne fait-elle pas exploser la facture en tokens ?
L'erreur principale lors de la configuration d'un agent consiste à empiler toutes les instructions dans le `CLAUDE.md` racine, le faisant gonfler jusqu'à 4000 lignes. La moindre modification d'un tel monolithe réinitialise le cache du préfixe chez Anthropic, obligeant à payer le prix plein à chaque étape du dialogue. Dans ma configuration, la taille de la bibliothèque de skills sur disque et la taille du contexte actif sont totalement découplées.
Au démarrage d'une session, seule une carte compacte du terrain est chargée en mémoire : le `CLAUDE.md` racine de 200 à 300 lignes (environ 8K tokens), 20 à 25 fichiers de règles de base dans `rules/` (20–30K tokens) et de courtes annotations de skills et serveurs MCP (encore 15K). L'ensemble du préfixe de démarrage tient dans 40 000 à 50 000 tokens, tandis que le gros volume d'instructions et de scripts, pesant environ 300K tokens, attend son heure sur le disque.
Comme le préfixe reste inchangé d'une requête à l'autre, le prompt caching s'active : la session revient à 0,15 $ au lieu de 1,50 $, pour une réponse en 1 à 2 secondes. La règle d'or de l'exploitation : ne jamais modifier les fichiers de `rules/` en plein milieu d'un dialogue actif, et compresser l'historique avec `/compact` plutôt que de le vider complètement.
Comment fonctionnent le routage via routing.md et l'auto-reproduction
des skills ?
Le maillon qui tient toute la configuration est le tableau de routage `rules/routing.md`, de plus de 300 lignes, fonctionnant selon le principe « déclencheur clé → outil précis ». Si une tâche survient moins d'une fois par jour, elle n'a rien à faire dans les règles permanentes — elle est formalisée en paquet séparé dans `~/.claude/skills/<name>/SKILL.md`, avec ses propres scripts opérationnels à l'intérieur.
Un exemple parlant : le générateur de présentations `manus-slides`. Lorsque je tape dans le terminal une requête pour un pitch d'investisseurs de 12 diapositives en style tableau blanc (`whiteboard`), le routeur, avec une confiance de 0,94, capte le déclencheur, charge 4,2K tokens d'instructions et lance le pipeline. Claude élabore la structure, envoie en parallèle 12 requêtes à `gemini-3.1-flash-image-preview`, puis assemble le fichier final `presentation.pptx` de 3,8 Mo via des scripts Python. Le cycle complet prend 6 minutes et 14 secondes, contre une journée de travail entière.
Le même principe gouverne l'enrobage de Telethon (`tg_client.py`, plus de 50 commandes) utilisé pour extraire des analyses et des mentions de canaux Telegram vers du CSV, ainsi que le méta-skill `skill-creator`. Il suffit de demander une fois à l'agent de construire un skill pour parser des relevés bancaires PDF — il crée lui-même le dossier, écrit le front-matter YAML avec les déclencheurs, place le script correspondant à côté et ajoute la ligne dans `routing.md`. C'est précisément cette architecture de combinat IA personnel que nous décortiquons en pratique à [Hamidun Academy](https://academy.hamidun.com) et que nous développons au sein de la communauté d'ingénieurs [Vibe Club](https://hamidun.com/club).
Comment protéger un agent autonome en mode bypassPermissions contre la
suppression de la base et les injections de prompt ?
Je travaille en mode `bypassPermissions`, sans validation manuelle à chaque étape, car la protection est déportée au niveau de l'environnement d'exécution. Lorsque l'agent lit un e-mail, une page web ou du code appartenant à un tiers, les données externes sont systématiquement traitées comme du contenu non fiable, jamais comme des commandes.
La sécurité repose sur cinq lignes de défense : 1. Isolation physique des clés : tous les secrets résident dans `~/.claude/.
credentials.master.env`, hors du dépôt, et sont injectés dans les scripts via `os.
getenv()` — le modèle ne voit jamais les valeurs de `TELEGRAM_API_ID` ou des clés de paiement dans le dialogue. 2. Hooks PreToolUse durs : trois intercepteurs légers sont inscrits dans `settings.
json` et renvoient instantanément `exit 1` en cas de tentative d'appel à `rm -rf`, `DROP DATABASE` ou `DROP TABLE`. 3. Circuit en lecture seule pour les relecteurs : les sous-agents d'audit de code et de sécurité ne reçoivent, dans leur liste blanche, que `Read`, `Glob` et `Grep`, sans droit d'écriture ni appel shell.
4. Assainissement du flux entrant : le script `gmail_search.py` retire, avant de transmettre le texte d'un e-mail au modèle, des constructions comme `ignore previous instructions`, en les remplaçant par le marqueur `[REDACTED:injection]`.
5. Recette adversariale et délégation : avant de déployer un nouveau bot, je le fais passer par une batterie de tests d'attaques, et je répartis les tâches entre sous-agents selon un niveau allant de Level 0 (je le fais moi-même) à Level 3 (orchestrateur + workers dans un `git worktree`, avec indication précise du fichier et de la ligne).
- 27 oct. 2026Hob, l'app open source qui apporte le mode Claude Cowork sur votre portable, sans cloud
- 27 oct. 2026Anthropic dépose son S-1 : 16,3 milliards de dollars de revenus en six mois, valorisation jusqu'à 2 billions de dollars
- 27 oct. 2026Anthropic appelle à replier les sous-agents : une seule boucle avec des skills bat les orchestrateurs
- 27 oct. 2026Cloudflare repense Containers pour les agents IA : un démarrage 6 fois plus rapide
Build & Ship Production AI Agents Without Boilerplate Code
Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.
L'essentiel de l'IA — une fois par semaine
Sept actus qui ont vraiment compté, choisies à la main. Sans bruit ni communiqués.
C'est fait ! Vérifiez votre boîte mail pour la confirmation.