Lesson 1/17 7 min

Anatomy of a good prompt

Learn the CRTSE framework to write prompts that produce professional-quality code.

FR EN

Le problème : prompt vague, code vague

Imaginez que vous demandez à un architecte : "Construis-moi une maison." Sans préciser le nombre de pièces, le terrain, le budget, le style... vous obtiendrez quelque chose, mais probablement pas ce que vous vouliez.

Avec l'IA, c'est pareil. La qualité de la réponse dépend directement de la qualité de la question. Un prompt vague produit du code générique. Un prompt structuré produit du code qui correspond exactement à votre besoin.

Voici un exemple concret :

Mauvais prompt

Fais-moi un formulaire de contact

Bon prompt (CRTSE)

Mon projet est un site vitrine PHP 8 pour un artisan plombier. Tu es un développeur senior spécialisé sécurité web. Crée un formulaire de contact avec validation côté serveur, protection CSRF et anti-spam honeypot. Code PSR-12, gestion d'erreurs complète. Voici la structure actuelle de mon HTML : [exemple]

Le premier prompt produit un formulaire HTML basique sans validation. Le second produit du code production-ready avec sécurité intégrée. Même IA, résultat radicalement différent.

Le framework CRTSE

Le framework CRTSE est une méthode simple pour structurer vos prompts. Cinq lettres, cinq éléments, zéro improvisation :

C : Contexte Décrivez votre projet et stack R : Rôle Quel expert l'IA doit-elle incarner T : Tâche Une seule action, précise et atomique S : Standards Qualité attendue, conventions, tests E : Exemples Montrez votre style de code existant
Lettre Élément Description

Les 5 éléments en détail

Contexte : Décrivez votre projet, votre stack technique, et vos contraintes. L'IA n'a aucune idée de votre environnement si vous ne lui dites pas. Un site WordPress et une API Node.js n'appellent pas le même code.

Rôle : Donner un rôle à l'IA change radicalement la qualité de sa réponse. "Tu es un développeur senior PHP spécialisé en sécurité" produit du code très différent de "tu es un assistant". Le rôle déclenche les bons réflexes : un expert sécurité pense aux injections SQL, un expert UX pense à l'accessibilité.

Tâche : Soyez spécifique et atomique. Une tâche = un prompt. Ne demandez pas "crée-moi un site complet" mais "crée la fonction de validation du formulaire de contact". Plus la tâche est précise, plus le résultat est utilisable.

Standards : Précisez vos exigences de qualité : gestion d'erreurs, conventions de code, tests, commentaires. Sans standards, l'IA produit du code qui marche mais qui n'est pas maintenable.

Exemples : Montrez votre style de code existant. L'IA reproduit ce qu'elle voit. Si vous lui donnez un exemple avec des noms de variables en français et des commentaires JSDoc, elle fera pareil.

L'erreur du prompt unique

Le piège classique : tout demander en un seul prompt. "Crée-moi une application de gestion de tâches complète avec authentification, base de données, API REST et interface."

Résultat ? Du code superficiel qui ne gère aucun cas limite. L'IA produit un prototype, pas une application.

La bonne approche : découper en tâches atomiques. Chaque prompt = une fonctionnalité précise, un fichier, une fonction. Vous gardez le contrôle, vous comprenez chaque morceau, et vous pouvez itérer sur chaque partie indépendamment.

Règle d'or : si votre prompt fait plus de 10 lignes, c'est qu'il essaie de faire trop de choses. Découpez-le.

The problem: vague prompt, vague code

Imagine asking an architect: "Build me a house." Without specifying the number of rooms, the land, the budget, the style... you will get something, but probably not what you wanted.

With AI, it is the same. The quality of the answer directly depends on the quality of the question. A vague prompt produces generic code. A structured prompt produces code that matches your exact needs.

Here is a concrete example:

Bad prompt

Make me a contact form

Good prompt (CRTSE)

My project is a PHP 8 brochure site for a plumber. You are a senior developer specialized in web security. Create a contact form with server-side validation, CSRF protection, and honeypot anti-spam. PSR-12 code, complete error handling. Here is my current HTML structure: [example]

The first prompt produces a basic HTML form with no validation. The second produces production-ready code with built-in security. Same AI, radically different result.

The CRTSE framework

The CRTSE framework is a simple method to structure your prompts. Five letters, five elements, zero improvisation:

C — Context Describe your project and stack R — Role Which expert should the AI embody T — Task One precise, atomic action S — Standards Expected quality, conventions, tests E — Examples Show your existing code style
Letter Element Description

The 5 elements in detail

Context — Describe your project, your tech stack, and your constraints. The AI has no idea about your environment unless you tell it. A WordPress site and a Node.js API do not call for the same code.

Role — Giving the AI a role radically changes the quality of its response. "You are a senior PHP developer specialized in security" produces very different code from "you are an assistant". The role triggers the right reflexes: a security expert thinks about SQL injections, a UX expert thinks about accessibility.

Task — Be specific and atomic. One task = one prompt. Do not ask "create me a complete site" but "create the validation function for the contact form". The more precise the task, the more usable the result.

Standards — Specify your quality requirements: error handling, code conventions, tests, comments. Without standards, the AI produces code that works but is not maintainable.

Examples — Show your existing code style. The AI reproduces what it sees. If you give it an example with French variable names and JSDoc comments, it will do the same.

The single-prompt mistake

The classic trap: asking for everything in one prompt. "Create me a complete task management app with authentication, database, REST API and interface."

Result? Superficial code that handles no edge cases. The AI produces a prototype, not an application.

The right approach: break it into atomic tasks. Each prompt = one precise feature, one file, one function. You keep control, you understand each piece, and you can iterate on each part independently.

Golden rule: if your prompt is more than 10 lines, it is trying to do too many things. Break it up.

Avec l'IA

Copiez ce prompt amélioré dans Claude et comparez avec le prompt basique 'Fais-moi un formulaire de contact' :

Contexte : Je développe un site vitrine en PHP 8 pour un artisan plombier. Le site utilise Bootstrap 5 et jQuery. Rôle : Tu es un développeur senior PHP spécialisé en sécurité web. Tâche : Crée un formulaire de contact avec nom, email, téléphone et message. Ajoute la validation côté serveur, la protection CSRF et un honeypot anti-spam. Standards : Code PSR-12, gestion d'erreurs avec try/catch, commentaires en français. Exemple : Voici comment je nomme mes variables : $user_name, $user_email (snake_case).
Ré-explique sans regarder

Sans relire le prompt copié plus haut : à quoi servent les lettres R (Rôle) et E (Exemples) de CRTSE, et pourquoi changent-elles concrètement le code produit ?

Une bonne explication dit : le Rôle (« tu es un dev senior spécialisé sécurité ») oriente les réflexes du modèle (un expert sécurité pense CSRF, injections) au lieu de produire un code passe-partout. Les Exemples montrent ton style réel (nommage, conventions) : l'IA reproduit ce qu'elle voit, donc le code revient cohérent avec ta base au lieu d'imposer un style étranger.
Accepter ou rejeter ce prompt

Un collègue te montre le prompt qu'il s'apprête à envoyer à l'IA. Ton rôle de relecteur : l'accepter tel quel ou le rejeter, et dire pourquoi.

Tu es un développeur senior PHP expert en sécurité.
Crée-moi toute l'authentification de mon site :
inscription, connexion, mot de passe oublié, vérification
email, rôles admin/user, et la base de données qui va avec.
Code propre et sécurisé.
Rejeter. Le Rôle est bon, mais la Tâche n'est pas atomique : il demande inscription, connexion, reset, vérification email, rôles ET le schéma de base, le tout en un prompt. C'est exactement l'erreur du prompt unique : tu obtiendras un prototype superficiel qui ne gère aucun cas limite. Manquent aussi le Contexte précis (stack, version, framework existant) et un Exemple de style. Le bon réflexe : un prompt par brique (d'abord « crée la fonction d'inscription avec hachage du mot de passe et validation »), puis itérer.
Exercice : Améliorez le prompt

Le prompt ci-dessous est trop vague. Réécrivez-le en utilisant le framework CRTSE. Votre prompt doit contenir au moins : un contexte (projet/stack), un rôle, une tâche précise, des standards de qualité, et un exemple.

Rappel libre

Sans remonter dans la leçon : que veulent dire les cinq lettres de CRTSE, dans l'ordre ?

C = Contexte (ton projet et ta stack), R = Rôle (l'expert que l'IA doit incarner), T = Tâche (une seule action, précise et atomique), S = Standards (qualité, conventions, tests), E = Exemples (ton style de code existant). L'idée clé : un prompt structuré produit du code adapté, un prompt vague produit du code générique.
Quel est le premier élément du framework CRTSE ?
Pourquoi donner des exemples de code à l'IA ?
Faut-il demander tout le projet en un seul prompt ?
Next step

You now know how to structure a clean prompt. But a good prompt is useless if the AI knows nothing about your project: the next lesson, context engineering, shows how to feed it the right context (files, conventions, constraints) so its answers actually fit.

Lesson 2: Context engineering →
Besoin d'un développeur pour votre projet ?

Réponse sous 24h · Sans engagement