Patterns Claude Code
Analyse approfondie des patterns d'utilisation de Claude Code observés sur 48 projets et 10 581 sessions dans mon lab. Extraits réels de configurations, commandes personnalisées, workflows multi-agents et stratégies d'optimisation issus de ~2 500 commits en 2026.
1. Modes de fonctionnement
Deux modes principaux émergent de l'analyse des projets, chacun adapté à un contexte différent :
Mode Conversationnel
défautClaude demande confirmation à chaque action sensible.
- Cycle : demande → exécution → test → commit
- Idéal pour la découverte ou les tâches sensibles
- Contrôle total sur chaque décision
Mode Autonome
/autopilotClaude exécute un cycle complet sans interruption.
- Pick story → implement → test → commit → repeat
- Nécessite un CLAUDE.md bien configuré
- Supervision asynchrone via session.md
Configuration réelle du mode autonome (granit-golem)
# Extrait de granit-golem/CLAUDE.md
## Mode de fonctionnement
- ne me demande plus d'autorisation, c'est toujours "yes"
- vérifie bien que la tâche faite est fonctionnelle
- ne fais jamais confiance aux signaux (build OK ≠ fonctionne)
- pour chaque fix, applique un test de confirmation
- pour chaque feature, un test de non-régression
## Workflow Autonome
1. Lire session.md au démarrage
2. Consulter le backlog (tickets P0 en priorité)
3. Implémenter avec TDD (Red → Green → Refactor)
4. Lancer les tests complets
5. Commit avec conventional commits
6. Mettre à jour session.md
7. Passer au ticket suivant Configuration multi-agent (cas client anonymisé)
# Extrait de cas-client-multi-agent/CLAUDE.md
## Agents
- **PMO** : Gère specs, priorités, backlog dans .claude/inbox/pmo/
- **Tech** : Implémentation, lit les specs depuis inbox/tech/
- **QA** : Validation, rapports dans .claude/reports/
- **Orchestrateur** : Coordonne via .claude/sync/board.md
## Protocole de communication
- Chaque agent écrit dans son inbox/
- Le board.md est la source de vérité
- Format des messages : YYYY-MM-DD-HH-action.md
- Pas d'appels directs entre agents 2. CLAUDE.md - L'art du prompt système
Le fichier CLAUDE.md est le système nerveux de Claude Code. Sa qualité détermine directement l'efficacité de l'agent. Voici les patterns qui fonctionnent :
Structure type efficace
# CLAUDE.md - Structure recommandée
## Stack & Environnement
- Langage, framework, versions
- Commandes de build/test/lint
- Ports, URLs, variables d'environnement
## Conventions
- Style de code (formatting, naming)
- Conventional commits obligatoires
- Structure des fichiers
## Règles impératives
- "ne me demande plus d'autorisation"
- "vérifie que la tâche est fonctionnelle"
- "pour chaque fix, un test de confirmation"
## Workflows
- Mode autonome : pick → implement → test → commit
- Mode review : read → analyze → suggest
## Quick Reference
- Commandes fréquentes
- Fichiers importants
- Architecture résumée Exemples réels de règles efficaces
## Rust Conventions
- Utiliser thiserror pour les erreurs custom
- Pas de unwrap() en production, que des Result<>
- Tests unitaires dans le même fichier (#[cfg(test)])
- cargo clippy doit passer sans warning
## Architecture
- DDD strict : domain/ ne dépend de rien
- Outbox Pattern pour les events cross-service
- RLS PostgreSQL pour le multi-tenant ## NestJS Conventions
- Un module = un domaine métier
- DTOs validés avec class-validator
- Guards pour l'auth, Interceptors pour le logging
- Pas de any, typage strict partout
## Angular Conventions
- Standalone components (pas de NgModule)
- Signals pour la réactivité
- OnPush change detection par défaut ## BMAD Workflow
- Toujours travailler par dev-story
- Format: DS-XXX-titre-court
- Chaque story a des tasks numérotées
- Ne jamais commencer sans story validée
## Nuxt Conventions
- composables/ pour la logique réutilisable
- server/api/ pour les endpoints
- Pas de store Pinia sauf nécessité prouvée 3. Custom Commands
Les commandes personnalisées (.claude/commands/*.md) sont des prompts réutilisables invoqués par slash command. C'est l'un des patterns les plus puissants observés.
Inventaire des commandes observées
| Commande | Projets | Description |
|---|---|---|
/autopilot | granit-golem, cas client multi-agent, timespot | Cycle autonome : pick → implement → test → commit |
/test-sweep | granit-golem, cas client multi-agent | Exécution complète des tests avec rapport |
/triage | granit-golem, timespot | Analyse et tri des issues/tickets par priorité |
/gitlab | granit-golem, cas client multi-agent | Opérations CI/CD (MR, pipeline, deploy) |
/review | cas client multi-agent, basalt-beholder | Code review structurée avec checklist |
/doc | granit-golem, timespot | Génération de documentation technique |
/sprint-report | cas client multi-agent | Rapport de sprint avec métriques |
Exemple : /autopilot.md (granit-golem)
# /autopilot - Cycle de maintenance autonome
## Instructions
Tu es en mode autonome. Exécute le workflow suivant en boucle :
1. **Lire** session.md pour connaître l'état courant
2. **Consulter** le backlog : .claude/tickets/ ou issues GitLab
3. **Sélectionner** le ticket P0 le plus prioritaire
4. **Implémenter** en suivant TDD strict :
- Écrire le test qui échoue (Red)
- Écrire le code minimal pour passer (Green)
- Refactorer si nécessaire
5. **Tester** : lancer la suite complète (`cargo test` + `npm test`)
6. **Commiter** : conventional commit, message descriptif
7. **Mettre à jour** session.md avec le travail effectué
8. **Répéter** avec le ticket suivant
## Contraintes
- Ne JAMAIS skipper les tests
- Si un test échoue, le fixer AVANT de continuer
- Commit atomiques (1 commit = 1 changement logique)
- /compact si le contexte dépasse 70%
## Arrêt
- Plus de tickets P0
- Erreur non résolvable
- Contexte à 90% Exemple : /test-sweep.md
# /test-sweep - Exécution et rapport de tests
## Instructions
1. Lancer TOUS les tests du projet
2. Analyser les résultats
3. Pour chaque échec :
- Identifier la cause racine
- Proposer un fix
- Appliquer le fix
- Re-lancer le test ciblé
4. Produire un rapport :
## Format du rapport
```
### Test Sweep Report - {date}
- Total: XX tests
- Passed: XX ✅
- Failed: XX ❌
- Skipped: XX ⏭️
- Coverage: XX%
#### Échecs corrigés
- `test_name`: cause → fix appliqué
#### Échecs non résolus
- `test_name`: cause → action recommandée
```
5. Sauvegarder dans .claude/reports/test-sweep-{date}.md Exemple : /triage.md
# /triage - Tri et priorisation des tickets
## Instructions
1. Lire tous les tickets depuis :
- .claude/tickets/ (fichiers locaux)
- Issues GitLab (si accès configuré)
2. Classer par priorité :
- **P0** : Bloquant, sécurité, perte de données
- **P1** : Bug fonctionnel, régression
- **P2** : Amélioration, refactoring
- **P3** : Nice-to-have, cosmétique
3. Estimer la complexité (S/M/L/XL)
4. Mettre à jour session.md avec le backlog trié
5. Recommander les 3 prochains tickets à traiter 4. Token Optimization
La consommation de tokens est le premier poste de coût avec Claude Code. Voici les stratégies observées dans mon lab :
Stratégie de modèles subagents
Claude Code peut déléguer à des subagents avec des modèles différents. Configuration observée :
# Configuration globale (~/.claude/CLAUDE.md)
## Token Optimization (Global)
### Choix de modèle subagents
- `haiku` (défaut): recherches, explorations, tâches légères
- `sonnet`: analyse de code, review → spécifier `model: "sonnet"`
- `opus`: architecture, décisions complexes → spécifier `model: "opus"`
### Variable d'environnement
CLAUDE_CODE_SUBAGENT_MODEL=haiku # dans .bashrc / .zshrc Gestion du contexte
/clear - Reset du contexte
Entre deux tâches indépendantes. Économie moyenne : -40% tokens sur la session.
# Mauvais : enchaîner sans /clear
> Implémente le module auth # contexte: 0 → 45%
> Maintenant fais le module billing # contexte: 45% → 90% 💥
# Bon : /clear entre tâches
> Implémente le module auth # contexte: 0 → 45%
> /clear # contexte: 0%
> Maintenant fais le module billing # contexte: 0 → 40% ✅ /compact - Compression du contexte
Compresse la conversation en gardant l'essentiel. À utiliser proactivement à 60-70%, pas à 95%.
# Dans CLAUDE.md - Instructions de compaction
## Lors du /compact, conserver :
- Résultats de tests et leur statut
- Décisions architecturales prises
- Changements effectués (fichiers modifiés)
- État du backlog courant
## Exclure :
- Fichiers complets déjà lus
- Logs verbeux de build/test
- Explorations sans résultat
- Contenu des grep/recherches mgrep - Recherche sémantique
Skill custom qui remplace les Grep/Glob/WebSearch built-in. Réduction observée : -80% tokens par recherche.
# Recherche classique (coûteuse en tokens)
Grep "authentication" → 200 résultats → Claude lit tout → 50K tokens
# Recherche mgrep (optimisée)
mgrep search "fonctions d'authentification" src/ -m 5 -c -s
→ 5 résultats pertinents → 2K tokens 5. Workflows automatisés
Workflow /autopilot - Cycle de maintenance
Le pattern le plus utilisé (granit-golem, cas client multi-agent, timespot). Cycle complet sans interruption humaine :
Workflow Multi-agent - Cas client anonymisé
Système à 4 agents spécialisés communiquant via fichiers dans .claude/ :
Agent PMO
Gère le backlog, les specs, les priorités. Écrit dans inbox/pmo/.
Agent Tech
Implémente le code, lit les specs depuis inbox/tech/.
Agent QA
Valide les implémentations, écrit les rapports dans reports/.
Orchestrateur
Coordonne via sync/board.md. Source de vérité.
# Exemple de message inter-agents (cas client multi-agent)
# .claude/inbox/tech/2025-01-15-implement-auth.md
## Action requise : Implémenter l'authentification JWT
### Specs (de PMO)
- Endpoint POST /auth/login
- Endpoint POST /auth/refresh
- Guard NestJS pour les routes protégées
- Tests unitaires obligatoires
### Priorité : P0
### Deadline : Sprint 3
### Dépendances : Module User (complété)
### Critères d'acceptation
- [ ] Login retourne un JWT valide
- [ ] Refresh fonctionne avec token expiré
- [ ] Guard rejette les requêtes non authentifiées
- [ ] Coverage > 80% sur le module Workflow BMAD - Basalt-beholder
Gestion structurée par dev-story avec tasks numérotées et XML workflow engine :
# Exemple de dev-story BMAD
# _bmad/backlog/stories/DS-042-filtres-catalogue.md
# DS-042 : Implémenter les filtres du catalogue
## Contexte
L'utilisateur doit pouvoir filtrer les produits par catégorie,
prix et disponibilité.
## Tasks
- [ ] T1: Créer le composable useFilters()
- [ ] T2: Implémenter le composant FilterPanel.vue
- [ ] T3: Connecter à l'API /products?filters=...
- [ ] T4: Tests e2e avec Playwright
- [ ] T5: Review et merge
## Critères de validation
- Filtres persistés dans l'URL (query params)
- Debounce de 300ms sur les inputs
- Skeleton loading pendant le fetch
- Tests e2e sur les 3 types de filtres 6. session.md - Persistance du contexte
Pattern observé sur les projets avancés (granit-golem, cas client multi-agent, timespot) : un fichier session.md lu au démarrage et mis à jour en fin de session.
# .claude/session.md - Exemple réel (granit-golem)
## État courant
- **Phase** : Sprint 4 - Stabilisation
- **Branche** : feat/outbox-pattern
- **Dernière session** : 2025-01-14 18:30
## Backlog actif
| # | Ticket | Priorité | Status |
|---|--------|----------|--------|
| 1 | Implémenter Outbox Pattern | P0 | ✅ Done |
| 2 | RLS policies pour tenant isolation | P0 | 🔄 In Progress |
| 3 | Migration OpenTelemetry spans | P0 | ⏳ Pending |
| 4 | Fix race condition event handler | P1 | ⏳ Pending |
| 5 | Refactor error types (thiserror) | P2 | ⏳ Pending |
## Décisions récentes
- ADR-007: Outbox Pattern plutôt qu'event sourcing (simplicité)
- ADR-008: RLS au niveau PostgreSQL plutôt qu'applicatif
## Tests
- Dernière exécution : 142 passed, 0 failed, 3 skipped
- Coverage : 78% (cible: 80%)
## Notes
- Le worker outbox a besoin d'un retry avec backoff exponentiel
- Voir si pg_cron peut remplacer le cron Node.js 7. Architecture des dossiers .claude/
Analyse de 13 projets du lab (9 avec dossier .claude/, 4 avec CLAUDE.md seul). Trois niveaux de configuration émergent :
Niveau 1 - Global (utilisateur)
~/.claude/
├── CLAUDE.md # Instructions globales (mgrep, tokens, conventions)
├── settings.json # Permissions globales
└── projects/ # Mémoire persistante par projet
├── projet-a/
│ └── MEMORY.md # Notes cross-session
└── projet-b/
└── MEMORY.md Le CLAUDE.md global s'applique à tous les projets. Idéal pour les conventions personnelles (style, outils, optimisation tokens).
Niveau 2 - Projet minimal (5 projets)
project/
├── CLAUDE.md # Stack, conventions, commandes
└── .claude/
└── settings.local.json # Permissions locales Suffisant pour les projets simples ou en démarrage. Exemples : klafuti-bi, kotg, tordu-jardin, kinesiologie, attrape-moi-front.
Niveau 3 - Projet avancé (4 projets)
project/
├── CLAUDE.md # Instructions, modes, quick reference
└── .claude/
├── commands/ # 5-7 commandes personnalisées
│ ├── autopilot.md # Cycle autonome
│ ├── test-sweep.md # Exécution tests
│ ├── triage.md # Tri tickets
│ ├── review.md # Code review structurée
│ ├── gitlab.md # Opérations CI/CD
│ ├── doc.md # Génération documentation
│ └── sprint-report.md # Rapport de sprint
├── agents/ # Définitions d'agents (multi-agent)
├── decisions.md # ADR (Architecture Decision Records)
├── session.md # État courant, contexte de travail
├── docs/ # Stratégie test, migrations, workflows
│ ├── testing-strategy.md
│ ├── gitlab-workflow.md
│ └── product-vision.md
├── backlog/ # BMAD file-based backlog
│ ├── epics/
│ └── stories/
├── inbox/ # Communication inter-agents
│ ├── pmo/
│ ├── tech/
│ └── qa/
├── reports/ # Rapports générés (test-sweep, sprint)
├── sync/ # État partagé (board.md)
└── settings.local.json Inventaire réel des .claude/ par projet
| Projet | Stack | Contenu .claude/ | Maturité |
|---|---|---|---|
| granit-golem | Rust/TS | commands(7), decisions, docs(5), session, tickets, workflows, agents | Avancé |
| cas client multi-agent | Angular/NestJS | commands, decisions, directives, docs, inbox(5), logs, reports, session, specs, stories, sync | Avancé |
| timespot | Rust/React/Node | agents, backlog(epics+stories), brainstorms, commands, decisions, docs, scripts, session | Avancé |
| basalt-beholder | Nuxt 3 | commands, settings + _bmad/ complet | Intermédiaire |
| siliceum-website | Astro | agents, CLAUDE.md, DESIGN-DIRECTION.md | Intermédiaire |
| kotg | Nuxt 3 | CLAUDE.md (root, 112 cartes, data model v4) | Minimal |
| profile-service | Node/LangGraph | CLAUDE.md (root, pipeline Extract→Validate→Merge) | Minimal |
8. Hooks & Automatisation
Les hooks Claude Code permettent d'exécuter des commandes shell automatiquement en réponse à des événements. Pattern observé sur granit-golem et le cas client multi-agent :
Types de hooks
| Hook | Déclenchement | Usage observé |
|---|---|---|
PreToolUse | Avant chaque appel d'outil | Validation, logging, guards |
PostToolUse | Après chaque appel d'outil | Formatage auto, lint, notifications |
Notification | Quand Claude envoie une notification | Alertes Slack, logs |
Stop | Fin de réponse de Claude | Rapport final, mise à jour session.md |
Exemple de configuration hooks
// .claude/settings.local.json - Hooks
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\"",
"description": "Auto-format après chaque écriture"
}
],
"PreToolUse": [
{
"matcher": "Bash",
"command": "echo \"[$(date)] Bash: $CLAUDE_TOOL_INPUT\" >> .claude/logs/commands.log",
"description": "Logger toutes les commandes Bash exécutées"
}
],
"Stop": [
{
"command": "date '+%Y-%m-%d %H:%M' >> .claude/session-timestamps.log",
"description": "Tracker les fins de session"
}
]
}
} 9. Règles d'or observées
"Ça compile" != "Ça fonctionne"
Toujours tester, jamais faire confiance au build seul. Vu sur granit-golem : un build Rust OK avec un bug logique dans le pattern matching.
TDD obligatoire
Red → Green → Refactor systématique. Les projets avec TDD dans le CLAUDE.md ont 60% moins de régressions.
Conventional commits
feat:, fix:, docs:, test:, refactor: - Rend le changelog automatique et l'historique lisible.
Pas d'over-engineering
YAGNI - You Ain't Gonna Need It. Claude a tendance à sur-abstraire si on ne le bride pas explicitement.
Commits atomiques
1 commit = 1 changement logique. Facilite le revert et le bisect. Pattern observé dans les commandes /autopilot.
Lecture avant écriture
Toujours lire un fichier avant de le modifier. Empêche les régressions et les écrasements accidentels.
Context-aware compaction
Compacter à 60-70%, pas 95%. Spécifier dans CLAUDE.md ce que /compact doit garder vs exclure.
Séparer les responsabilités
Ne pas mélanger feature + refactor + fix dans un même prompt. Un prompt = un objectif clair.
10. Anti-patterns observés
Le prompt fourre-tout
5 tâches en 1 prompt = confusion, oublis, et contexte qui explose. 1 prompt = 1 tâche.
Le contexte zombie
Le contexte zombie traîne des informations périmées qui polluent les décisions de Claude.
Le "trust the build"
Observé sur granit-golem : un build Rust OK masquait un bug de pattern matching qui a été attrapé uniquement par les tests.
L'autopilot aveugle
Sans garde-fous, Claude peut partir dans une direction incorrecte et accumuler 10 commits problématiques.
Le CLAUDE.md vide
Sans instructions, Claude utilise ses defaults. Résultat : style inconsistant, pas de tests, commits en vrac.
11. Skills & MCP Servers
Les Skills sont des extensions qui remplacent ou augmentent les outils built-in de Claude Code. Pattern observé : le skill mgrep (recherche sémantique via Mixedbread) remplace Grep/Glob/WebSearch.
Architecture d'un skill custom
# Structure d'un skill (mgrep)
~/.claude/plugins/cache/Mixedbread-Grep/mgrep/
├── skills/
│ └── mgrep/
│ └── skill.md # Instructions + examples
├── package.json
└── index.js # CLI executable
# Invocation dans CLAUDE.md
## mgrep - Recherche obligatoire
**CRITIQUE**: Utiliser TOUJOURS `mgrep search` au lieu des outils built-in :
- `mgrep search "query descriptive" chemin/ -m 10 -c -s`
- `mgrep search "query" --web --answer -s`
- Ne JAMAIS utiliser les outils Grep, Glob ou WebSearch Impact mesurable
Grep "authentication" sur un projet NestJS
- ~200 résultats retournés
- Claude lit chaque résultat pour filtrer
- ~50K tokens consommés
- 3-4 appels successifs pour affiner
mgrep "fonctions d'authentification JWT"
- 5 résultats pertinents (ranked par similarité)
- Contenu ciblé avec contexte
- ~2K tokens consommés
- 1 seul appel suffit
12. MEMORY.md - Apprentissage cross-session
Claude Code maintient un fichier MEMORY.md persistant par projet, automatiquement injecté dans le prompt système à chaque session. C'est la mémoire à long terme de l'agent.
# Structure de la mémoire
~/.claude/projects/
├── projet-a/
│ └── MEMORY.md # Auto-apprentissage spécifique au projet
├── projet-b/
│ └── MEMORY.md
└── ...
# Règles de gestion (dans CLAUDE.md global)
## Ce qu'il faut sauvegarder :
- Patterns stables confirmés sur plusieurs interactions
- Décisions architecturales importantes
- Préférences utilisateur (workflow, outils, style)
- Solutions à des problèmes récurrents
## Ce qu'il ne faut PAS sauvegarder :
- Contexte de session (tâche en cours, état temporaire)
- Informations non vérifiées
- Ce qui duplique CLAUDE.md Exemple réel : MEMORY.md qui se construit
MEMORY.md vide. Claude découvre le projet.
"Le build Rust nécessite --release pour les benchmarks. Sans ce flag, les résultats sont 10x plus lents."
"L'utilisateur préfère les tests dans le même fichier (#[cfg(test)]) plutôt que dans tests/. Les migrations Diesel doivent être up/down."
MEMORY.md riche : patterns confirmés, pièges connus, préférences stables. Ramp-up quasi-instantané.
13. Métriques réelles par projet
Données extraites des 5 projets les plus actifs du lab. Le ratio fix/feat est le meilleur indicateur de qualité : plus il est bas, moins il y a de corrections post-implémentation.
| Projet | Commits | Features | Fixes | Ratio fix/feat | Rollbacks | Configuration |
|---|---|---|---|---|---|---|
| granit-golem | 700+ | 50% | 33% | 0.67 | 0 | Avancé |
| basalt-beholder | 55 | 56% | 22% | 0.39 | 0 | BMAD |
| cas client multi-agent | 25 | 72% | 16% | 0.22 | 0 | Multi-agent |
Corrélation configuration → qualité
14. Patterns récurrents observés dans 10 581 sessions
L'analyse des historiques de sessions Claude Code sur 48 projets révèle des patterns concrets et mesurables. Voici les plus significatifs, classés par impact.
Pattern 1 : Le ratio sessions/commits comme indicateur de maturité
Le nombre de sessions Claude nécessaires pour produire un commit varie considérablement selon la maturité du CLAUDE.md et des outils configurés.
| Projet | Sessions | Commits 2026 | Ratio S/C | Interprétation |
|---|---|---|---|---|
| granit-golem | 622 | 552 | 1.13 | CLAUDE.md 757 lignes, 6 agents - quasi 1:1 |
| comrenov | 635 | 269 | 2.36 | 11 agents, pipeline saga - bon ratio production |
| cloud | 831 | 159 | 5.23 | IaC complexe, beaucoup de debug Ansible |
| siliceum-website | 1 364 | 83 | 16.4 | Refonte design system - itération intensive |
| sioule-2 | 1 416 | ~15 | 94.4 | Exploration/refactoring massif sans commits |
Pattern 2 : La taille du CLAUDE.md corrèle avec l'efficacité
Pattern 3 : Les agents spécialisés divisent les erreurs par 3
Les projets utilisant des agents dédiés (.claude/agents/) montrent une réduction significative des itérations correctives. Voici les configurations observées :
senior-rust-dev (granit-golem)
375 lignes. Expertise DDD, Axum, SQLx, patterns async Tokio. Connaît les pièges lifetimes et les erreurs courantes.
pipeline-monitor (granit-golem)
Surveille les pipelines GitLab CI, détecte les flaky tests, propose des optimisations de cache.
qa-tester (granit-golem)
Écrit les tests E2E Playwright avec page objects, vérifie la couverture, exécute les quality gates.
project-maestro (granit-golem)
Vue d'ensemble du projet. Priorise, dispatche, et s'assure de la cohérence architecturale.
Pattern 4 : Les MCP servers comme multiplicateurs de productivité
3 MCP servers sont configurés globalement dans mon lab. Ils donnent à Claude Code un accès permanent à des outils externes :
// ~/.claude/.mcp.json
{
"summoner": {
"command": "node",
"args": ["~/lab/summoner/packages/mcp/dist/index.js"],
"env": { "SUMMONER_URL": "http://localhost:7777" }
}
}
// → 40+ tools : projects, sessions, tasks, kanban, BMAD, workflows
// → Permet à Claude Code de lancer des sessions sur d'autres projets // Permet à Claude Code de consulter les dashboards Grafana
// directement pendant le développement
// → Vérifie les métriques de performance après un déploiement
// → Détecte les régressions de latence
// → Accède aux logs applicatifs en temps réel Pattern 5 : La mémoire projet comme accélérateur de ramp-up
Les projets les plus actifs utilisent un système de mémoire structuré avec des fichiers thématiques :
# Exemple : granit-golem - 13 fichiers mémoire
.claude/projects/granit-golem/memory/
├── MEMORY.md # Index (5 entrées)
├── user_profile.md # Préférences du développeur
├── project_overview.md # Vue d'ensemble architecture
├── project_decisions.md # ADR persistés cross-session
├── project_infrastructure.md # Config infra, déploiement
├── project_ci_bugs_2026_03.md # Bugs CI récurrents à éviter
├── reference_gitlab.md # URLs, projets, pipelines
├── feedback_e2e_mocking.md # "Ne jamais mocker /api/v1/xxx/{id}"
├── feedback_testing.md # "Toujours page objects en E2E"
├── feedback_workflow.md # "Pas de commit sans validate.sh"
├── feedback_orchestration.md # "Utiliser session.md, pas les notes"
└── feedback_open_tickets.md # "Vérifier tickets avant de coder"
# Impact mesuré :
# - Ramp-up : 15 min → 2 min (fichier lu automatiquement)
# - Erreurs récurrentes : -80% (feedback persisté)
# - Cohérence inter-sessions : ++++ (décisions tracées) Pattern 6 : Plugins globaux comme socle de productivité
5 plugins sont activés globalement et s'appliquent à tous les projets du lab :
rust-analyzer-lsp
Navigation, completion et diagnostics Rust. Permet à Claude de comprendre les types et les erreurs avant même de compiler.
typescript-lsp
Même chose pour TypeScript. Détecte les erreurs de types avant l'exécution.
superpowers
Skills avancés : brainstorming, plans, debugging systématique, TDD, code review. Ajoute de la structure aux tâches complexes.
playwright
Intégration navigateur : screenshots, navigation, tests E2E. Permet de vérifier visuellement le résultat.
frontend-design
Design frontend production-grade. Génère du code distinctif, pas du "AI-look" générique.
12 skills d'audit
Architecture, CI/CD, sécurité, testing, observabilité, performance, conformité, qualité... Un audit complet en une commande.
Pattern 7 : Répartition de l'effort Claude par domaine
L'analyse des 10 581 sessions montre une répartition claire de l'effort Claude Code par type de projet :
Pattern 8 : Les pièges spécifiques par stack
Chaque stack a ses pièges récurrents que Claude Code reproduit si le CLAUDE.md ne les documente pas explicitement :
Rust : page.evaluate() avec esbuild (marble-minotaur)
page.evaluate(() => document.title) - tsx/esbuild injecte __name dans la closure, crash dans le browser context
page.evaluate('document.title') - toujours passer une string à page.evaluate() Documenté dans le CLAUDE.md de marble-minotaur. Sans cette note, chaque session reproduisait le bug.
Angular : subscriptions non nettoyées
.subscribe() sans takeUntil, takeUntilDestroyed, ou async pipe - fuite mémoire
.subscribe( sans cleanup dans le CLAUDE.md global. Vérification obligatoire.
Règle globale dans ~/.claude/CLAUDE.md car applicable à tous les projets Angular du lab.
NestJS : imports circulaires (comrenov)
forwardRef() ou extraction du code partagé dans un module dédié
Claude ne détecte pas toujours les dépendances circulaires. Le CLAUDE.md de comrenov les liste comme piège connu.
Ansible : variable non définie dans template Jinja2 (cloud)
group_vars/ → échec silencieux
make dry-run) avant apply. Le CLAUDE.md de cloud impose cette vérification.
831 sessions sur cloud - le dry-run obligatoire a évité plusieurs déploiements cassés.
Pattern 9 : La validation post-modification comme filet de sécurité
Règle globale appliquée à tous les projets du lab (définie dans ~/.claude/CLAUDE.md) :
# ~/.claude/CLAUDE.md - Section validation
## Validation après modification
- Toujours lancer les vérifications les plus pertinentes après une modification
- Commencer par les vérifications les plus ciblées :
tests du scope modifié, puis lint, typecheck, build
- Si un test échoue à cause du changement, corriger et re-tester
avant de demander review
- Ne pas déclarer un travail "terminé" sans indiquer ce qui a été
exécuté et ce qui ne l'a pas été
## Frameworks par projet (lookup table)
| Projet | Framework | Commande |
|---------------|------------------|-----------------------------|
| comrenov | Jest / Vitest | npm run test:backend/front |
| basalt-beholder| Vitest + PW | vitest run / playwright test|
| granit-golem | Vitest | vitest run |
| sioule-2 | Karma/Jasmine | npm run front:test |
| summoner | Vitest + PW | npm run test / test:e2e | 15. Chemin d'évolution recommandé
Basé sur l'analyse des 13 projets, voici la progression naturelle d'un setup Claude Code :
Démarrage
Jour 1- CLAUDE.md avec stack + conventions + 3 règles
- 30-50 lignes suffisent
- "ne me demande pas d'autorisation"
Productivité
Semaine 2- Ajouter
session.md - Créer
/autopilotet/test-sweep - Configurer subagent model = haiku
Industrialisation
Mois 2- Hooks (auto-format, logging)
- 5+ commandes custom
- ADR, docs/, backlog/ dans .claude/
Multi-agent
Si pertinent- Agents PMO / Tech / QA
- Communication via inbox/
- Orchestrateur + board.md