Comment donner à votre agent de codage IA une « définition du terminé » claire
Par VCA Newsroom
Lorsqu'un collègue humain se saisit d'un ticket vague, il comble les lacunes par son jugement et pose des questions. Un agent de codage IA ne fait ni l'un ni l'autre. Il lit votre demande, écrit le code, exécute les vérifications qu'il peut, et déclare la fonctionnalité terminée — souvent sans poser la moindre question de clarification. Comme le dit un guide, lorsque vous confiez des exigences floues à un agent, « le jeu ne se résorbe pas — il se construit ».
Cela fait de votre définition du terminé la chose la plus déterminante que vous puissiez écrire. Ce guide explique comment en rédiger une sur laquelle un agent peut réellement agir.
Critères d'acceptation vs. définition du terminé
Deux notions liées, qu'il vaut mieux garder distinctes :
- Les critères d'acceptation sont propres à la fonctionnalité : ce que ce travail précis doit faire pour être considéré comme correct.
- La définition du terminé est à l'échelle du projet : les points de contrôle qualité que toute modification doit franchir avant d'être livrée — tests, revue, documentation, aucun secret commité.
Voyez les critères d'acceptation comme « avons-nous construit la bonne chose » et la définition du terminé comme « l'avons-nous construite selon notre standard ». Votre agent a besoin des deux. (Atlassian propose une bonne introduction à cette distinction.)
Rendez-la vérifiable, pas aspirationnelle
Le test d'un bon critère : un script — ou l'agent lui-même — pourrait-il vérifier s'il est satisfait ? « Le formulaire de connexion devrait sembler rapide » n'est pas vérifiable. Reformulez-le en quelque chose de tranchant :
- La soumission d'identifiants valides redirige vers
/dashboarden moins de 500 ms- La soumission d'un mot de passe erroné affiche une erreur en ligne et ne provoque pas de navigation
- La soumission d'un champ vide est bloquée côté client avant toute requête réseau
- Les échecs de connexion sont limités à 5 tentatives par minute et par IP
Chaque ligne est quelque chose que l'agent peut viser et confirmer. Le conseil d'Addy Osmani sur la rédaction d'une bonne spécification pour les agents IA est de se concentrer sur le quoi et le pourquoi, et non sur le comment ligne par ligne — décrivez l'intention et les contraintes, et laissez l'agent choisir l'implémentation.
Un exemple concret
Comparez ces deux prompts pour une même tâche.
Vague :
Ajoute un moyen pour les utilisateurs de réinitialiser leur mot de passe.
Avec une définition du terminé :
Ajoute un flux de réinitialisation de mot de passe. Terminé signifie :
- Un endpoint
POST /auth/reset-requestaccepte une adresse e-mail et renvoie toujours 200 (ne jamais révéler si l'e-mail existe)- Un token signé, à usage unique, valable 1 heure, est envoyé par e-mail via le mailer existant dans
src/lib/mail.tsPOST /auth/reset-confirmvalide le token, applique la politique de mot de passe en vigueur, et invalide le token après usage- Les tests couvrent : réinitialisation valide, token expiré, token réutilisé, e-mail inconnu
- Aucune nouvelle dépendance sans l'avoir signalée au préalable
La seconde version n'est pas plus longue par bureaucratie — elle est plus longue parce que chaque ambiguïté que l'agent aurait autrement tranchée à l'aveugle est désormais décidée. Les choix sensibles en matière de sécurité (ne pas divulguer l'existence d'un compte, faire expirer les tokens, usage unique) sont précisément ceux que vous ne voulez surtout pas voir un agent improviser.
Intégrez le « terminé » dans la boucle de l'agent
La vraie force d'une définition du terminé vérifiable, c'est qu'elle referme la boucle de rétroaction de l'agent. Un cycle agentique de coder → tester → corriger → recommencer ne converge que s'il existe une cible claire à atteindre. Lorsque vos critères correspondent à de vrais tests, l'agent peut les exécuter, constater les échecs et corriger son propre travail avant de vous le rendre.
Alors ne vous contentez pas de décrire le terminé — donnez à l'agent un moyen de le vérifier :
- Indiquez-lui la commande de test (
npm test,pytest) et précisez que la fonctionnalité n'est pas terminée tant qu'ils ne passent pas. - Pour ce qui est difficile à vérifier dans le code — la lisibilité, le respect d'un pattern existant — utilisez une passe LLM-as-a-judge : un second prompt qui examine le résultat au regard de votre barre de qualité. Anthropic et d'autres ont constaté que c'est efficace pour les vérifications subjectives.
- Conservez la sécurité et l'absence de « code fictif ou placeholder » dans votre définition du terminé à l'échelle du projet, afin qu'elle s'applique à chaque modification, et pas seulement à celles que vous pensez à mentionner.
Placez-la là où l'agent la verra
Rédigez une seule fois votre définition du terminé à l'échelle du projet, dans un fichier que l'agent lit automatiquement — un AGENTS.md ou un CLAUDE.md à la racine du dépôt. Les critères d'acceptation propres à une fonctionnalité vont, eux, directement dans le prompt de la tâche. Ainsi « notre standard » est toujours dans le contexte, et vous n'avez plus qu'à préciser ce qui est spécifique au travail du jour.
Le changement est subtil, mais c'est là que tout se joue : avec un agent performant, vos critères d'acceptation cessent d'être une note adressée à un collègue et deviennent la spécification sur laquelle le code est construit. Rédigez-les en conséquence.
SOURCES
Auto-generated by Vibe Coding Academy on July 2, 2026, grounded in the real sources linked above. We review for accuracy, but please verify time-sensitive details against the primary sources.
Build Blueprint · Creator
Une idée ? Obtenez la spécification que votre agent IA peut concrétiser.
Décrivez n'importe quel produit et obtenez un plan de construction complet — stack technique, modèle de données, écrans, API et un prompt prêt à coller pour Claude Code ou Cursor. Export en PDF.
Ouvrir le Blueprint ▸