- Prompting
- Directives
Qu'est-ce qu'une directive ?
Une directive est une instruction explicite qui cadre le comportement de Claude. Contrairement à une simple demande ("fais ceci"), une directive définit comment Claude doit travailler : son rôle, ses limites, ses priorités et son format de sortie.
Les directives se répartissent en quatre catégories fondamentales que nous allons explorer en détail.
1. Les directives de rôle : "Tu es..."
La directive de rôle est la plus puissante. Elle transforme Claude d'un assistant généraliste en un expert spécialisé. Le rôle influence le vocabulaire, le niveau de détail, l'approche méthodologique et les priorités.
# Rôle de développeur seniorTu es un développeur senior React/TypeScript avec 10 ans d'expérience.Tu privilégies la maintenabilité, la performance et les bonnes pratiques.Tu commentes ton code en français et tu expliques chaque décision d'architecture.# Rôle d'architecteTu es un architecte logiciel spécialisé en systèmes distribués.Tu analyses les trade-offs de chaque décision (scalabilité vs complexité,performance vs maintenabilité) et tu justifies tes choix avec des arguments techniques.# Rôle de reviewer sécuritéTu es un expert en sécurité applicative (OWASP Top 10).Tu analyses le code avec un regard paranoïaque : chaque input est suspect,chaque endpoint est une surface d'attaque potentielle.Tu classes tes findings par sévérité : CRITICAL, HIGH, MEDIUM, LOW.
Comment choisir le bon rôle
- Développeur : pour générer du code de qualité production
- Architecte : pour les décisions de design et de structure
- Reviewer : pour analyser du code existant
- Rédacteur technique : pour la documentation
- DevOps : pour les scripts, la CI/CD et l'infrastructure
- Data analyst : pour l'analyse de données et les requêtes SQL
Combiner plusieurs rôles
Vous pouvez attribuer plusieurs facettes à Claude pour couvrir différents aspects d'une tâche.
Tu es un développeur fullstack senior ET un expert en accessibilité WCAG 2.1.Quand tu génères du code UI, tu appliques systématiquement :- Les bons rôles ARIA- La gestion du focus au clavier- Les contrastes de couleurs conformes AA- Les alternatives textuelles pour les éléments visuels
2. Les directives de contraintes
Les contraintes délimitent le terrain de jeu de Claude. Elles définissent ce qui est obligatoire, interdit ou préférable. C'est grâce aux contraintes que vous obtenez du code conforme à vos standards plutôt qu'à des conventions génériques.
Le pattern ALWAYS/NEVER
Ce pattern est le plus explicite pour définir des règles absolues. Claude les traite comme des priorités maximales.
## Règles absoluesALWAYS:- Utilise TypeScript strict (pas de any, pas de as unknown)- Gère les erreurs explicitement avec try/catch ou Result types- Crée des objets immuables (spread operator, Object.freeze)- Valide les inputs à la frontière du système- Nomme les variables en anglais, les commentaires en françaisNEVER:- Ne mute jamais un objet existant- Ne fais jamais de console.log en production (utilise un logger structuré)- N'utilise jamais de valeurs magiques (hardcodées), utilise des constantes- Ne crée jamais de fichier de plus de 400 lignes- Ne commite jamais de secrets ou de tokens dans le code
Contraintes techniques
Les contraintes techniques spécifient l'environnement, les dépendances autorisées et les limites du système.
## Contraintes techniquesStack autorisée :- Framework : Next.js 14 (App Router uniquement, pas de Pages Router)- Style : Tailwind CSS (pas de CSS modules, pas de styled-components)- State : Zustand pour le state global, React state pour le local- Formulaires : react-hook-form + Zod pour la validation- API : tRPC ou Server Actions (pas de REST traditionnel)- Tests : Vitest + Testing Library (pas de Jest, pas d'Enzyme)Dépendances interdites :- Moment.js (utilise date-fns ou dayjs)- lodash complet (importe les fonctions individuellement si nécessaire)- jQuery (jamais)
3. Les directives de format de sortie
Le format de sortie contrôle la structure de la réponse de Claude. Sans directive de format, Claude choisit un format par défaut qui peut ne pas correspondre à vos besoins.
## Format de sortie attenduPour chaque composant React généré, fournis :1. **Le composant** : code complet avec types TypeScript2. **Les types** : interfaces et types exportés dans un fichier séparé3. **Les tests** : au minimum : rendu sans erreur, props obligatoires, interactions utilisateur4. **L'exemple d'utilisation** : un snippet montrant comment utiliser le composant5. **Les notes** : limites connues, améliorations possibles, dépendances requises
Formats spécialisés
# Pour une analyse de codeFournis ton analyse au format :| Fichier | Ligne | Sévérité | Problème | Correction suggérée ||---------|-------|----------|----------|---------------------|# Pour une comparaison techniqueFournis un tableau comparatif :| Critère | Option A | Option B | Recommandation ||---------|----------|----------|----------------|# Pour un plan d'implémentationFournis un plan structuré :## Phase 1 : [nom] (durée estimée)- [ ] Tâche 1- [ ] Tâche 2
4. Les directives par exemples (few-shot)
Montrer à Claude ce que vous attendez est souvent plus efficace que de le décrire. La technique du few-shot prompting consiste à fournir des exemples concrets du résultat attendu.
Génère des messages de commit en suivant ce pattern :Exemple 1 : ajout d'un bouton de connexion→ feat: add login button with OAuth2 redirectExemple 2 : correction d'un bug d'affichage sur mobile→ fix: resolve navbar overflow on mobile viewportExemple 3 : réécriture du service d'authentification→ refactor: rewrite auth service with repository patternMaintenant, génère pour :- ajout de la pagination sur la liste des produits- correction du calcul de TVA qui arrondissait mal- mise à jour des dépendances npm
Les patterns DO/DON'T
Le pattern DO/DON'T est une version structurée et visuelle des contraintes. Il fonctionne particulièrement bien dans le fichier CLAUDE.md ou dans les Skills.
## Conventions de codeDO:- Utilise des fonctions fléchées pour les composants React- Exporte les types et interfaces depuis un fichier types.ts dédié- Gère le loading, l'erreur et le succès dans chaque appel API- Utilise des early returns pour réduire l'imbricationDON'T:- Ne crée pas de composants classes React- N'utilise pas useEffect pour du fetching (utilise useSWR ou React Query)- Ne fais pas de prop drilling sur plus de 2 niveaux- N'utilise pas d'index comme clé dans les listes dynamiques
Dictée vocale : coder en parlant
Boris Cherny, le créateur de Claude Code, code principalement en dictant ses prompts. La dictée est environ trois fois plus rapide que la frappe pour décrire des intentions complexes, et elle force naturellement à parler en termes d'intention plutôt qu'en termes d'implémentation.
Comment activer la dictée
Claude Code natif :
# Dans Claude Code, tapez simplement :/voice# Le microphone s'active, parlez, puis appuyez sur Entrée
macOS (dictée système) :
# Double-tap sur la touche Fn# La dictée système macOS s'active dans n'importe quelle application# Fonctionne directement dans le terminal Claude Code
Wispr Flow (application tierce) :
# La plus utilisée dans la communauté# Avantage : ponctuation automatique, contexte applicatif# Installation : wispr.flow
Quand dicter, quand taper
La dictée n'est pas adaptée à tout. Voici comment combiner les deux pour des résultats optimaux :
| Mode | Idéal pour | Moins adapté pour |
|---|---|---|
| Dictée | Décrire une intention, expliquer un contexte, formuler une question | Noms de variables, chemins de fichiers, code technique exact |
| Frappe | Contraintes précises, snippets de code, instructions ALWAYS/NEVER | Longues descriptions de fonctionnalités |
Diagrammes ASCII : visualiser avant de coder
Demander à Claude de dessiner un diagramme ASCII est l'une des techniques les plus sous-estimées. En quelques secondes, vous obtenez une représentation visuelle de l'architecture, du flux de données ou de la structure d'un composant, sans avoir besoin d'un outil externe.
"Avant de coder, dessine un diagramme ASCII de l'architecturede ce projet : les modules principaux, les flux de données entre eux,et les points d'entrée externes (API, utilisateur, cron)."
Claude produira quelque chose comme :
┌─────────────────────────────────────────────────┐
│ Client (Browser) │
└──────────────────────┬──────────────────────────┘
│ HTTP
▼
┌─────────────────────────────────────────────────┐
│ Next.js App (App Router) │
│ ┌──────────────┐ ┌────────────────────────┐ │
│ │ Server │ │ Client Components │ │
│ │ Components │ │ (React state, hooks) │ │
│ └──────┬───────┘ └────────────┬───────────┘ │
└─────────┼────────────────────────┼──────────────┘
│ SQL │ tRPC
▼ ▼
┌─────────────┐ ┌──────────────────┐
│ PostgreSQL │ │ API Routes │
└─────────────┘ └──────────────────┘
Prompts de diagramme utiles
# Architecture globale"Dessine un diagramme ASCII de l'architecture de ce projet,avec les flux de données principaux."# Flux d'authentification"Montre-moi le flux d'authentification en ASCII :de la saisie du mot de passe jusqu'au token JWT en base de données."# Dépendances entre modules"Dessine un graphe ASCII des dépendances entre les fichiersdu dossier src/services/. Identifie les dépendances circulaires."# Modèle de données"Représente le modèle de données en ASCII (comme un schéma ERD simplifié) :tables, colonnes principales, et relations."
Combiner les directives : un prompt complet
Voici comment les quatre types de directives se combinent dans un prompt professionnel.
# RôleTu es un développeur backend senior spécialisé en API REST avec Node.js/Express.# TâcheCrée un endpoint POST /api/users/register pour l'inscription d'un utilisateur.# ContraintesALWAYS:- Valide le body avec Zod (email, password, name)- Hash le mot de passe avec bcrypt (12 rounds)- Retourne un JWT access token (15 min) et un refresh token (7 jours)- Log chaque tentative d'inscription (succès ou échec)NEVER:- Ne stocke jamais le mot de passe en clair- Ne retourne jamais le hash dans la réponse API- N'utilise pas de any TypeScript# Format de sortie1. Le controller dans src/controllers/auth.controller.ts2. Le service dans src/services/auth.service.ts3. Le schéma Zod dans src/schemas/auth.schema.ts4. Les tests unitaires du service5. Un exemple de requête curl pour tester
Directives dans le CLAUDE.md vs dans le prompt
Il est important de savoir où placer vos directives pour maximiser leur efficacité.
| Où | Quand | Exemple |
|---|---|---|
| CLAUDE.md | Règles permanentes du projet | Stack, conventions, patterns obligatoires |
| Skills | Workflows réutilisables | Review de PR, déploiement, onboarding |
| Prompt | Instructions ponctuelles | Tâche spécifique à accomplir maintenant |
| .claude/rules/ | Règles thématiques | Sécurité, tests, performance |
Exemples concrets par type de tâche
Pour du code frontend
Tu es un développeur frontend expert React/Next.js.Règles UI :- Mobile-first, responsive sur tous les breakpoints- Accessibilité WCAG 2.1 AA minimum- Animations subtiles avec framer-motion (pas de surcharge)- Dark mode supporté via CSS variables ou next-themes
Pour du code backend
Tu es un développeur backend Node.js/TypeScript.Règles API :- Format de réponse uniforme : { success, data, error, meta }- Codes HTTP sémantiques (201 Created, 404 Not Found, 422 Unprocessable)- Rate limiting sur tous les endpoints publics- Pagination cursor-based pour les listes
Pour de la revue de code
Tu es un reviewer de code senior. Pour chaque issue trouvée, fournis :- Sévérité : CRITICAL / HIGH / MEDIUM / LOW- Catégorie : bug, security, performance, maintainability, style- Fichier et ligne concernés- Description du problème- Suggestion de correction avec code
Pour de l'analyse de données
Tu es un data analyst senior. Pour chaque analyse :- Commence par les statistiques descriptives- Identifie les outliers et les données manquantes- Propose des visualisations pertinentes- Termine par des recommandations actionnables- Explique les résultats en langage non-technique
Prochaines étapes
Maintenant que vous maîtrisez les directives, passez à la pratique avec des templates concrets.
- Templates de prompts par métier : Des prompts complets prêts à l'emploi
- Erreurs courantes à éviter : Les pièges les plus fréquents en prompting
- Le guide complet CLAUDE.md : Automatisez vos directives avec le fichier de configuration
- Créer un Skill custom : Transformez vos directives en slash commands réutilisables