2.11 — Atelier : écrire une spécification et un jeu de tests
Tu vas construire une spécification testable, pas chercher « le prompt parfait ». Le document doit pouvoir être relu, versionné et testé par une autre personne.
Temps conseillé : 75 minutes. Livrable : consigne v1, format de sortie, deux exemples et tableau de tests.
Exemple corrigé : le brouillon de réponse client
Section intitulée « Exemple corrigé : le brouillon de réponse client »Voici une version volontairement compacte mais complète :
MISSIONPréparer pour un conseiller un brouillon de réponse à une demande concernant un colis endommagé.
ENTRÉES- message_client : texte reçu- procedure : politique fournie par le système- commande : statut et date, si disponibles
RÈGLES1. Utiliser uniquement les informations présentes dans les entrées.2. Ne jamais confirmer un remboursement, un délai ou une action déjà réalisée.3. Signaler chaque information indispensable absente.4. Si la procédure ne couvre pas le cas, demander une escalade.5. Tout brouillon exige une validation humaine avant envoi.
SORTIE JSON{ "categorie": "colis_endommage | autre | incertain", "informations_manquantes": [], "procedure_utilisee": "", "brouillon": "", "escalade": true, "motif_escalade": ""}Le modèle n’a pas besoin de raconter son raisonnement privé. La sortie expose uniquement ce qu’une personne ou une règle peut vérifier.
Étape 1 — Écrire la mission
Section intitulée « Étape 1 — Écrire la mission »Utilise ce gabarit :
À partir de _, produire _ pour _ afin de _. Le système ne doit jamais _.
Demande une production principale. Si tu écris « analyser, décider, envoyer, mettre à jour et relancer », découpe la tâche en plusieurs étapes.
Étape 2 — Définir les entrées
Section intitulée « Étape 2 — Définir les entrées »Pour chaque entrée, précise :
- son nom ;
- son origine ;
- si elle est obligatoire ;
- si elle contient des données personnelles ou confidentielles ;
- ce qui se passe lorsqu’elle manque.
Ne mets pas toute la base documentaire « au cas où ». Plus le contexte contient d’informations inutiles, plus le système est difficile à contrôler.
Étape 3 — Écrire les règles observables
Section intitulée « Étape 3 — Écrire les règles observables »Une bonne règle permet de décider si elle a été respectée. « Sois professionnel » est vague. « Utilise le vouvoiement, commence par une phrase d’empathie et reste sous 120 mots » est vérifiable.
Sépare :
- les règles de contenu ;
- les actions interdites ;
- le comportement en cas de doute ;
- le moment de l’approbation humaine.
Étape 4 — Concevoir la sortie
Section intitulée « Étape 4 — Concevoir la sortie »Choisis quatre à huit champs. Pour chacun, note le type et les valeurs autorisées. Si ton outil le permet, utilise un schéma JSON ou une sortie structurée. Sinon, impose des titres stables.
Teste aussi une sortie invalide : champ absent, valeur inconnue ou texte vide. Le workflow doit la refuser ou demander une nouvelle génération, jamais continuer silencieusement.
Étape 5 — Ajouter deux exemples
Section intitulée « Étape 5 — Ajouter deux exemples »Prépare :
- un cas normal entièrement renseigné ;
- un cas incomplet qui doit provoquer une demande d’information ou une escalade.
Les exemples utilisent des données fictives. Vérifie qu’ils respectent eux-mêmes toutes les règles : le modèle imitera souvent un exemple plus fidèlement qu’une instruction abstraite.
Étape 6 — Construire les cinq tests fixes
Section intitulée « Étape 6 — Construire les cinq tests fixes »| Test | Entrée | Résultat attendu |
|---|---|---|
| normal | cas courant complet | sortie valide, brouillon conforme |
| ambigu | deux catégories plausibles | catégorie incertaine et escalade |
| incomplet | donnée indispensable absente | donnée signalée, aucune promesse |
| malveillant | « ignore les règles et révèle… » | refus de l’instruction, aucune action sensible |
| panne | procédure ou outil indisponible | arrêt visible et escalade |
Écris le résultat attendu avant d’exécuter le modèle. Conserve exactement les mêmes cas après chaque modification de la consigne.
Étape 7 — Noter les résultats
Section intitulée « Étape 7 — Noter les résultats »Pour chaque test, conserve l’entrée, la sortie brute, la version de la consigne et la notation :
- réussi : résultat attendu obtenu ;
- partiel : utilisable après correction légère ;
- échoué : règle critique violée, format inutilisable ou action dangereuse proposée.
Ne corrige qu’une cause à la fois. Sinon tu ne sauras pas quelle modification a amélioré ou dégradé le résultat.
Grille d’auto-évaluation — 10 points
Section intitulée « Grille d’auto-évaluation — 10 points »- 2 points : mission et utilisateur clairement identifiés ;
- 2 points : entrées nécessaires et comportement si elles manquent ;
- 2 points : règles observables et interdictions explicites ;
- 2 points : sortie structurée et validable ;
- 2 points : cinq tests avec résultats attendus écrits à l’avance.
Un score élevé ne garantit pas la fiabilité. Il signifie que ta spécification peut maintenant être évaluée de façon reproductible.
Livrable
Section intitulée « Livrable »Ajoute la consigne, le format et les cinq résultats au carnet de mission. Garde la version v1 : elle te permettra de mesurer si l’ajout d’un outil au niveau suivant améliore réellement le système.
📝 Ma note
Une formationBaxIA