Changer le thème

Échecs avec Codex : pourquoi l'IA casse le code et comment valider ses changements

Easton editorial illustration: one raised charcoal terminal console with a small exec prompt, three compact output artifacts: changelog sheet, issue-tag stack, documentation checklist, one small lock gate leading to a separate patch or pull-request card

"Les best practices OpenAI Codex insistent sur des objectifs, un contexte, des contraintes, des critères de fin, des tests, des checks et une review clairs pour les tâches de code."

git diff --stat affiche soudain 18 fichiers, alors que la tâche donnée à Codex était simplement « corriger l’état d’un bouton ». La CI est verte. Mais en ouvrant le diff, on voit que coverageThreshold a été abaissé, qu’un flaky test est passé en skip, et qu’un helper validateEmail() a été ajouté alors que le dépôt avait déjà emailSchema.

Codex n’a pas cassé le code volontairement. Le périmètre de la tâche était trop large, et le workflow de validation trop lâche. Ici, on ne débat pas de la fiabilité abstraite de l’IA. On construit une table de motifs d’échec, des gates de validation, un flux de rollback et une checklist de review pour traiter l’échec comme un trou de processus, pas comme une surprise.

Table des motifs d’échec : comment l’IA casse du code

Une étude arXiv sur 33k agent-authored PRs GitHub observe que les PR non mergées sont souvent plus grandes, touchent plus de fichiers et échouent plus fréquemment aux validations CI/CD du projet. Cela ne veut pas dire que les agents IA manquent simplement d’intelligence. La décomposition des tâches, les critères d’acceptation et l’engagement des reviewers comptent aussi.

Voici 9 motifs fréquents, avec le signal à surveiller et la première réaction :

MotifManifestationSignalPremière réaction
Diff trop grandLe périmètre dépasse largement la demandegit diff --stat montre beaucoup plus de fichiers que la tâche, par exemple 10+ fichiers pour un « fix bouton »Lire d’abord la file list. Séparer les changements attendus des changements hors scope ; découper ou revert le surplus
Tests faussement vertsLes tests passent mais la logique reste fausseLe diff abaisse coverageThreshold, met un flaky test en skip ou assouplit les assertionsVérifier si la configuration de test a changé ; demander un test de régression qui échoue avant le changement
Mauvais répertoireLa CI ou des fichiers sans rapport sont modifiés.github/workflows/, Makefile ou package.json scripts changent alors que la tâche ne le demandait pasVérifier si AGENTS.md interdit les changements CI/config ; revert puis écrire la règle
Code dupliquéUn helper ou utilitaire existe déjàLe diff ajoute un helper alors que le dépôt a déjà une fonction ou un schema équivalentChercher l’implémentation existante ; si elle existe, revert le doublon et demander à Codex de l’utiliser
PR trop grosseUne grosse PR sans planLe PR body dit seulement « fix issue », sans implementation plan, commandes de vérification ni rollbackDemander des PR plus petites, chacune vérifiable, reviewable et annulable
CI affaiblieLa config CI est changée pour faire passer les checksLa CI échoue, mais le patch ne touche que test/CI config et pas le code métierTraiter comme blocker ; revert la CI et demander une correction du code métier
Bug métier cachéLa logique semble correcte mais viole une règle métierLe diff supprime un contrôle de permission ou une validation non couverte par les testsSuivre un critical path, vérifier les effets de bord et demander un approval explicite
Untrusted inputUne entrée externe est utilisée sans validationCodex utilise directement des données ou paths fournis par l’utilisateur, sans sanitization ni validationVérifier l’input validation ; si elle manque, demander des tests de validation
Grand changement sans planL’implémentation démarre avant le planCodex modifie du code avant d’énumérer les fichiers à modifier, les fichiers interdits et les commandes de vérificationDemander /plan ou des goal/context/constraints/done criteria explicites avant l’implémentation

Ces motifs se combinent souvent. Une PR au diff trop grand peut aussi toucher le mauvais répertoire, dupliquer du code et produire des tests faussement verts. La checklist de review GitHub pour les agent PRs cite aussi le CI gaming, l’oubli de réutilisation de code, les erreurs de correctness cachées et les grosses PR sans plan comme signaux d’alerte.

La première réaction : ne commencez pas par demander si la CI est verte. Commencez par le périmètre du diff et la granularité de rollback.

Workflow de découpage : les grosses tâches ne sont pas interdites à Codex

Les best practices OpenAI recommandent de planifier avant d’implémenter quand une tâche est complexe ou ambiguë. Codex travaille mieux quand il peut vérifier ce qu’il fait, et les petites tâches ciblées sont plus faciles à tester et à review.

Mais « découper plus petit » n’est pas une formule vague. La bonne granularité est atteinte lorsque chaque étape peut être vérifiée et rollback séparément.

La boucle en sept étapes : de scope à update rules

Utilisez cette boucle pour les changements Codex :

scope -> plan -> patch -> verify -> review -> merge/rollback -> update rules

Chaque étape a ses questions et sa condition de retour.

1. scope

Questions :

  • La tâche est-elle assez précise pour être écrite comme goal + context + constraints + done criteria ?
  • Traverse-t-elle plusieurs sous-systèmes, comme auth, payment et notification ?
  • Peut-elle toucher la configuration CI, le schema de base de données ou des dépendances externes ?

Retour : si plusieurs sous-systèmes ou CI/config sont concernés, découpez en tâches séparées.

2. plan

Questions :

  • Codex a-t-il d’abord listé les fichiers prévus, les fichiers ou répertoires interdits et les commandes de vérification ?
  • Le plan explicite-t-il les risques et les conditions de sortie ?
  • Le plan décrit-il le rollback ?

Retour : s’il n’y a pas de plan, ou s’il manque ces éléments, demandez un nouveau /plan.

3. patch

Questions :

  • git diff --stat correspond-il au scope du plan ?
  • Codex a-t-il changé des fichiers hors scope, comme CI/config ou des fichiers sans rapport ?
  • A-t-il généré du code dupliqué, par exemple un helper déjà présent ?

Retour : si le diff ne correspond pas au plan ou touche une alerte, revenez à l’étape 2.

4. verify

Questions :

  • Des tests ont-ils été ajoutés pour le core path ?
  • Le test échouerait-il avant le changement ?
  • Les CI status checks sont-ils required et non skipped ?
  • Lint ou pre-commit sont-ils passés ?

Retour : si aucun test pertinent n’a été ajouté ou si le changement fait seulement passer les tests en affaiblissant la configuration, revenez à l’étape 3.

5. review

Questions :

  • Le périmètre du diff correspond-il à la tâche ?
  • Quelqu’un a-t-il suivi un critical path ?
  • Un reviewer humain a-t-il explicitement approved, au lieu de se fier au rapport de l’IA ?
  • La branch protection impose-t-elle required reviews, required status checks et conversation resolution ?

Retour : si le reviewer demande des changements ou trouve une alerte, revenez à l’étape 3.

6. merge/rollback

Questions :

  • Le changement satisfait-il la checklist de preuves de la section suivante ?
  • Peut-il être rollback indépendamment au niveau hunk ou fichier ?
  • Le travail était-il isolé dans un worktree, pour jeter un essai raté et pousser un succès en PR ?

Retour : si les preuves manquent ou si le changement n’est pas revertible indépendamment, rollback puis retour à l’étape 1.

7. update rules

Questions :

  • L’échec vient-il d’une règle AGENTS.md manquante, par exemple « ne pas modifier la CI » ou « découper au-delà de cinq fichiers » ?
  • Faut-il écrire le périmètre interdit, les critères d’acceptation ou le rollback dans AGENTS.md ?

Action : si l’échec vient d’une règle manquante, écrivez-la dans AGENTS.md.

Les grosses tâches restent possibles avec Codex

Les gros refactorings ne sont pas interdits. Ils doivent seulement être découpés jusqu’à ce que chaque étape soit rollbackable seule. L’expérience de refactoring IA de 10 000 lignes le montre aussi : petits pas et filet de sécurité par les tests sont essentiels.

Vérifiez la granularité avec ces questions :

  • Chaque patch peut-il être revert au niveau hunk ou fichier ?
  • Chaque vérification peut-elle prouver que le comportement avant changement échoue ?
  • Chaque merge a-t-il un reviewer approve explicite et des status checks ?

Si la réponse est non, la tâche est encore trop grosse.

Codex review pane en pratique : la validation ne se limite pas aux tests

Lorsqu’on relit un changement Codex, le premier signal n’est pas le résultat des tests. C’est le périmètre du diff et la granularité de rollback. Le review pane de l’app Codex propose trois vues et des opérations au niveau hunk/fichier.

Trois vues de diff

Le review pane reflète l’état Git du dépôt, pas seulement les modifications Codex. Il peut afficher les changements Codex, les changements utilisateur et d’autres modifications non commitées.

VueContenuUsage
uncommitted changesToutes les modifications non commitées, par défautVérifier le scope de la tâche Codex courante
all branch changesTous les changements de la branche courante par rapport à la baseVérifier toute la chaîne de tâches, sur plusieurs turns ou tasks
last turn changesLes changements du dernier turn CodexIsoler ce que Codex vient de faire et repérer vite les modifications hors scope

Commencez par uncommitted changes pour confirmer le scope. Passez ensuite à all branch changes pour repérer les restes de travaux précédents. Utilisez enfin last turn changes pour vérifier que Codex a suivi le plan.

Inline comments et opérations hunk/fichier

Le review pane permet d’ajouter des inline comments sur des lignes précises du diff. Ces commentaires peuvent servir de contexte pour une correction Codex ultérieure.

Niveaux d’opération :

  • entire diff : stage/unstage/revert tout le diff
  • file : stage/unstage/revert un fichier
  • hunk : stage/unstage/revert un bloc de code, la plus petite unité utile

Si vous trouvez un changement hors scope, comme une suppression de config CI, revertez d’abord ce hunk ou ce fichier au lieu de jeter tout le diff.

Chargement du contexte PR

Sur une PR branch, si l’accès GitHub ou gh auth login est disponible, le review pane peut charger le PR context, les review comments et les changed files. On passe alors de « lire le diff local » à « lire le diff PR plus les commentaires reviewer ».

Rappel sur les faits volatils : les détails d’UI et de slash command peuvent changer. Rouvrez la page officielle avant publication si ce comportement exact compte.

Le principe de base de la review

La validation ne se limite pas aux tests :

  1. Vérifiez d’abord si le scope du diff correspond au plan
  2. Vérifiez ensuite si la granularité de rollback est assez petite, par exemple hunk ou fichier
  3. Vérifiez enfin si des tests ont été ajoutés et couvrent le critical path

Si les deux premiers points échouent, les tests qui passent ne prouvent pas que le code est correct.

Checklist de preuves : les tests qui passent ne suffisent pas

GitHub Docs explique que les required status checks doivent être successful, skipped ou neutral avant merge dans une protected branch. Dans GitHub Actions, un check skipped peut être traité comme success et ne pas bloquer le merge.

Donc « CI verte » ne veut pas dire « code de qualité ». Il faut un ensemble de preuves, pas un seul signal.

Utilisez cette checklist.

Preuves côté code

  • Le scope du diff correspond à la tâche, sans changement hors scope
  • Aucun code dupliqué n’a été ajouté ; le projet a été recherché pour trouver l’équivalent existant
  • La CI/config n’a pas été modifiée, sauf si la tâche l’autorisait explicitement

Preuves côté tests

  • Des tests ont été ajoutés pour le core path
  • Les tests échoueraient avant le changement, pas seulement après
  • La configuration de test n’a pas été affaiblie : pas de coverage threshold abaissé, pas de skip, pas d’assertion adoucie

Preuves côté CI

  • lint et pre-commit sont passés
  • Les CI status checks sont required et non skipped
  • La configuration CI n’a pas été modifiée seulement pour faire passer le check

Preuves côté PR

  • Le PR body contient un implementation plan, des commandes de vérification et des notes de rollback
  • Un reviewer humain a explicitement approved, au lieu de se fier au rapport de l’IA
  • La branch protection couvre required reviews, required status checks et conversation resolution

Preuves côté rollback

  • Chaque patch peut être revert indépendamment au niveau hunk ou fichier
  • La tâche a été isolée dans un worktree, pour jeter un essai raté et transférer un succès vers une PR

Branch protection et status checks

Les protected branches GitHub peuvent exiger :

  • required reviews : un nombre défini de approvals avant merge
  • required status checks : les checks doivent passer, être skipped ou neutral avant d’entrer dans la protected branch
  • conversation resolution : toutes les conversations doivent être resolved avant merge

Ce sont des gates de merge hors de l’IA. Ils ne sont pas remplacés par un simple « c’est terminé » de l’IA.

Ordre de review

Utilisez cet ordre :

  1. Vérifier d’abord le scope du diff, dont la file list et la taille du diff
  2. Vérifier ensuite si la config CI ou test a changé
  3. Vérifier ensuite si des tests ont été ajoutés et couvrent le core path
  4. Vérifier enfin si un reviewer a explicitement approved

N’inversez pas l’ordre. Commencer par les tests fait facilement rater les changements hors scope et la CI affaiblie.

Rollback et rétrospective : que faire après un mauvais changement

Quand la review trouve un changement hors scope ou un test faussement vert, le premier réflexe est rollback, pas demander à Codex de continuer à corriger le même diff confus.

Granularité de rollback : du hunk à la branche

Choisissez le niveau de rollback selon l’ampleur et la cause de l’échec :

GranularitéQuand l’utiliserOpération
Revert au niveau hunkUn bloc de code contient un changement hors scope, comme une suppression CISélectionner ce hunk dans le review pane -> revert
Revert au niveau fichierUn fichier entier contient du code dupliqué ou des changements hors scopeSélectionner ce file dans le review pane -> revert
Abandon de brancheLa direction de la tâche est mauvaise et plusieurs fichiers doivent être jetésgit checkout main -> supprimer la branche

Préférez la plus petite granularité utile. N’abandonnez une branche que lorsque plusieurs hunks ou fichiers sont mauvais.

Isolation par worktree : les essais ratés peuvent être jetés

L’article Codex Worktree de cette série utilise les worktrees pour isoler les tâches parallèles. Un essai raté peut être jeté ; un essai réussi peut partir en PR.

Si une tâche casse le code dans son worktree, supprimez ce worktree et gardez l’espace principal propre. C’est plus sûr que d’enchaîner les revert sur la même branche.

Après le rollback : écrire dans AGENTS.md

Après le rollback, décidez si l’échec vient d’une règle manquante. Si oui, écrivez-la dans AGENTS.md.

Posez ces questions :

  • L’échec vient-il d’une convention projet manquante, comme « ne pas modifier la config CI » ou « découper au-delà de cinq fichiers » ?
  • Vient-il de critères d’acceptation manquants, comme « les tests doivent prouver l’échec avant changement » ?
  • Vient-il d’une règle de rollback manquante, comme « chaque patch doit être revertible indépendamment » ?

Si oui, écrivez la règle au bon endroit dans AGENTS.md, comme décrit dans la section suivante.

Après la rétrospective : transformer les workflows répétés en skills

Décidez si un échec mérite un skill avec ces questions :

  • L’échec vient-il d’une limite de Codex, par exemple une contrainte métier mal comprise ?
  • Vient-il d’un workflow complexe en plusieurs étapes, comme une coordination multi-agent ?
  • Vient-il d’un flux de review que vous répétez souvent, comme vérifier le scope du diff, la config CI et les tests ajoutés à chaque fois ?

Si oui, transformez-le en skill, comme dans l’article Codex Skills/plugins de cette série.

Où placer les règles dans AGENTS.md

Avant chaque run ou session, Codex construit une instruction chain et lit les fichiers AGENTS.md globaux et projet. Au niveau projet, il lit depuis le Git root jusqu’au répertoire courant. Le fichier le plus proche est le plus spécifique.

AGENTS.md peut donc vivre à la racine du dépôt, dans un sous-module ou dans un répertoire de fonctionnalité. Codex doit préférer la règle la plus spécifique quand les périmètres se chevauchent.

Emplacements et contenus courants d’AGENTS.md

Le guide de démarrage Codex de cette série couvre un modèle AGENTS.md typique :

EmplacementContenu typiqueExemple
repo rootrepo layout, build/test/lint commands, engineering conventionsProject structure: src/frontend, src/backend, src/shared; build: npm run build; test: npm test; lint: npm run lint
src/frontendfrontend-specific conventions et PR expectationsfrontend utilise seulement React hooks, pas class components ; les PR doivent inclure des Storybook stories
src/backendbackend-specific conventions et do-not rulesbackend ne doit pas accéder directement à la base ; passer par l’ORM ; pas de SQL dans les controllers
src/sharedshared utility conventionsshared contient uniquement des pure functions, pas d’effets de bord

Où écrire les leçons d’échec

Après un échec, placez la règle selon la cause :

Cause d’échecOù l’écrireExemple
Config CI supprimée par erreurrepo root -> PR expectations -> do-not rulesNe pas modifier .github/workflows/, Makefile ou package.json scripts sans autorisation explicite
Plus de cinq fichiers modifiésrepo root -> PR expectations -> do-not rulesLes changements touchant plus de cinq fichiers doivent être découpés ; chaque tâche devrait toucher au plus trois fichiers
Tests faussement vertsrepo root -> what done meansLes tests doivent couvrir le core path et prouver que le comportement avant changement échoue, pas seulement que le nouveau comportement passe
Code dupliquérepo root -> engineering conventionsChercher un équivalent existant avant d’ajouter un helper sous src/lib ; s’il existe, l’utiliser
Grand changement sans planrepo root -> PR expectationsLes changements touchant plus de trois fichiers nécessitent d’abord /plan, avec fichiers à modifier, fichiers interdits et commandes de vérification
Untrusted inputsrc/backend -> engineering conventionsToutes les entrées utilisateur doivent être validées ; ne pas utiliser directement les données ou paths fournis par l’utilisateur
Bug métier cachésrc/backend -> engineering conventionsAprès un changement de permission checks ou de validation, suivre un critical path et inspecter les effets de bord

Découverte des règles : le fichier le plus proche gagne

La documentation OpenAI AGENTS.md décrit les instructions projet comme une chaîne du Git root au répertoire courant, où les fichiers plus proches sont plus spécifiques.

En pratique :

  • AGENTS.md à la racine contient les règles générales, comme build/test/lint commands et « ne pas modifier la CI »
  • AGENTS.md dans un sous-module contient les règles spécifiques, comme hooks seulement côté frontend ou SQL interdit côté backend
  • AGENTS.md dans un répertoire de fonctionnalité contient les règles les plus spécifiques, comme les contraintes métier d’une API

Quand vous écrivez une leçon :

  • Les conventions globales comme « ne pas modifier la CI » vont à la racine
  • Les conventions de sous-module comme les règles frontend vont sous src/frontend
  • Les contraintes propres à une fonctionnalité vont sous src/backend/api/xxx

Les limites d’AGENTS.md

AGENTS.md réduit les changements hors scope et les erreurs de manipulation. Il ne prouve pas la correction du code. Codex peut suivre AGENTS.md et produire une logique fausse.

Le dernier gate reste l’approbation explicite d’un reviewer humain, pas la simple existence d’un fichier de règles.

Checklist de review humaine pour les PR IA

Les recommandations GitHub pour relire les agent-generated PRs commencent par la file list et la taille du diff, puis vérifient si la config CI/test a changé, cherchent les helpers dupliqués, suivent un critical path et demandent un test qui prouve l’échec avant changement.

Utilisez cette checklist de signaux rouges.

Signaux rouges côté code

  • La file list et la taille du diff dépassent largement la description de la tâche
  • La config CI/test a changé, comme .github/workflows/, Makefile ou package.json scripts
  • Un nouveau helper duplique un helper existant
  • Le PR body dit seulement « fix issue », sans implementation plan, commandes de vérification ni rollback
  • La PR est trop grosse, par exemple plus de 10 fichiers

Signaux rouges côté tests

  • Aucun nouveau test n’a été ajouté
  • Le test vérifie seulement le comportement post-change et ne prouve pas que l’ancien comportement échouait
  • La configuration de test a été affaiblie : coverage threshold abaissé, flaky test skipped ou assertion adoucie

Signaux rouges côté CI

  • La CI échouait, mais le patch ne change que tests ou CI config au lieu du code métier
  • Les CI status checks sont skipped ou neutral, pas passing
  • La config CI a été changée pour faire passer le check

Signaux rouges côté PR

  • PR body vide
  • Aucun implementation plan
  • Aucun reviewer approval, seulement le rapport de l’IA
  • Conversations unresolved

Blockers et signaux de découpage

TypeSignal rougeRéponse
BlockerLa CI échoue, mais seule la config test/CI changeRequest changes, revert la CI et demander une correction du code métier
BlockerTests faussement verts, comme coverageThreshold abaissé ou skipRequest changes, revert la config de test et demander un nouveau test
BlockerUntrusted input sans validationRequest changes et demander des validation tests
Signal de découpageGrosse PR, par exemple plus de 10 fichiersRequest changes et découper en PR plus petites
Signal de découpagePR body vide sans implementation planRequest changes et ajouter plan, commandes de vérification et rollback

Le principe du reviewer

Le reviewer ne juge pas abstraitement si l’IA est fiable. Il vérifie :

  1. si le scope du diff correspond à la description de la tâche
  2. si la config CI/test a changé
  3. si des tests ont été ajoutés et couvrent le core path
  4. si les effets de bord cachés ont été vérifiés en suivant un critical path

N’inversez pas l’ordre. Commencer par les tests fait facilement rater la CI affaiblie et les changements hors scope.

Conclusion

Quand Codex casse du code, ce n’est généralement pas parce qu’il serait abstraitement « non fiable ». Le périmètre de la tâche était trop large, et le processus d’acceptation trop souple. La checklist pratique est la suivante :

  • Table des motifs d’échec : reconnaître les formes fréquentes de problèmes Codex
  • Boucle en sept étapes : de scope à update rules comme flux complet d’acceptation
  • Review pane en pratique : ne pas s’arrêter aux tests ; vérifier d’abord le scope du diff et la granularité de rollback
  • Checklist de preuves : les tests qui passent ne suffisent pas ; vérifier aussi diff scope, tests ajoutés, statut CI, review humaine et branch protection
  • Rollback et rétrospective : revert hunk/fichier, isolation worktree et écriture dans AGENTS.md ou dans un skill
  • Emplacements AGENTS.md : placer les règles à la racine, dans un sous-module ou dans un répertoire de fonctionnalité selon le scope
  • Signaux rouges de review humaine : commencer par file list et diff size, puis CI/test config, tests ajoutés, reviewer approval

Transformez cette liste en outil de review réel. À chaque changement Codex, parcourez-la. Si le même flux de review revient souvent, envisagez d’en faire un skill, comme dans l’article Codex Skills/plugins.

L’échec n’est pas une surprise. C’est une faille de processus.

Étapes suivantes et lectures complémentaires

Articles publiés

Même série : guide pratique Codex

  • Guide complet pour débuter avec Codex — CLI, IDE, Cloud et desktop
  • Sécurité et permissions Codex — sandbox et approval réduisent le risque
  • Revue de code Codex — review comme gate d’acceptation
  • Tâches d’automatisation Codex — les patches générés par exec exigent encore une review humaine
  • Codex Worktree en pratique — isoler les tâches parallèles
  • Codex Skills/plugins — transformer les workflows de review en skills
  • Développement piloté par les tests avec Codex — TDD + Codex
  • Optimisation des coûts Codex
  • Codex en entreprise

Concevoir un workflow de validation pour les changements Codex

Découper les tâches Codex en changements vérifiables et annulables, puis fermer la boucle avec diff review, tests, CI, review humaine et mise à jour des règles.

⏱️ Estimated time: 45 min

  1. 1

    Step 1: Définir la frontière de la tâche

    Écrivez le goal, le context, les constraints et les done criteria dans le prompt ou AGENTS.md, surtout les fichiers autorisés, les répertoires interdits et les commandes de vérification.
  2. 2

    Step 2: Faire planifier Codex d'abord

    Demandez à Codex de lister le périmètre de fichiers attendu, les zones qu'il ne touchera pas, les commandes de vérification, les risques et le rollback. Si le plan est incomplet, n'entrez pas en implémentation.
  3. 3

    Step 3: Découper jusqu'à pouvoir revenir en arrière

    Séparez les gros travaux par comportement, module, test et étape de migration. Chaque étape doit pouvoir être revert seule.
  4. 4

    Step 4: Relire le périmètre du diff

    Commencez par git diff --stat, la file list, last turn changes et all branch changes. Vérifiez qu'aucun changement hors scope n'a été introduit.
  5. 5

    Step 5: Exécuter les vérifications pertinentes

    Lancez les tests unitaires, build, lint ou parcours manuel critique liés au changement, et notez pourquoi une commande attendue n'a pas été exécutée.
  6. 6

    Step 6: Vérifier que la CI n'a pas été affaiblie

    Cherchez les skip, coverage thresholds abaissés, workflow triggers moins stricts, || true ou tout autre signal qui rend une CI verte moins probante.
  7. 7

    Step 7: Passer par une review humaine

    Traitez l'AI review comme un signal supplémentaire. La décision de merge dépend encore d'un reviewer humain, des required status checks, de la branch protection et de la conversation resolution.
  8. 8

    Step 8: Rollback puis capitaliser

    Choisissez un rollback au niveau hunk, fichier ou branche selon l'ampleur du problème, puis capturez la règle dans AGENTS.md, une checklist ou un skill.

FAQ

Pourquoi Codex casse-t-il le code le plus souvent ?
Les causes fréquentes sont un scope trop large, un contexte imprécis, l'absence de commandes de vérification, une couverture de tests insuffisante ou une review manquante. Dire seulement que « l'IA n'est pas fiable » ne suffit pas.
Comment concevoir un workflow de validation pour Codex ?
Utilisez sept étapes : scope, plan, patch, verify, review, merge ou rollback, puis update rules. Chaque étape doit avoir des preuves vérifiables et une condition de retour arrière.
Codex convient-il aux gros refactorings ?
Codex peut aider sur de gros refactorings, mais il ne faut pas lui confier un bloc irréversible. Découpez le travail en petites étapes que l'on peut vérifier et annuler séparément.
Puis-je merger si Codex dit que les tests passent ?
Non. Les tests qui passent ne sont qu'une preuve parmi d'autres. Il faut aussi examiner le scope du diff, la configuration CI, le parcours métier critique, la PR review et la branch protection.
Comment rollback quand l'IA casse le code ?
Choisissez d'abord la bonne granularité. Revertez un hunk ou un fichier pour un petit problème ; jetez le diff courant ou repartez d'une nouvelle branche si la direction de la tâche est mauvaise. N'ajoutez pas des corrections sur un diff déjà confus.
Comment écrire les leçons d'échec dans AGENTS.md ?
Transformez la cause de l'échec en règle exécutable : ne pas modifier la CI, découper au-delà d'un seuil de fichiers, ou exiger que les tests prouvent l'échec avant changement. Placez la règle dans l'AGENTS.md le plus proche du périmètre concerné.
Quels échecs vont dans AGENTS.md et lesquels deviennent un skill ?
Les conventions projet, zones interdites et critères d'acceptation vont dans AGENTS.md. Les workflows de review récurrents en plusieurs étapes, commandes fixes et formats de rapport sont de bons candidats pour un skill.

19 min de lecture · Publié le: 27 juil. 2026 · Mis à jour le: 27 juil. 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog