TIL : faire relire un modèle cher par un modèle budget
Opus 5 a réécrit une suite E2E Behat pour remplacer les sleep() fixes par du
polling borné : 23 fichiers, +1235/−100. J’ai fait relire le diff par DeepSeek v4
Flash via oh-my-pi, deux agents en parallèle — un sur le PHP, un sur les scripts
shell.
26 minutes, 193 appels facturés, 0,064 $. Huit findings, aucun bloquant.
Le plus net tient en trois lignes :
# run-by-family.sh, lancé sous `set -uo pipefail`
BEHAT_ORDER=()
behat "${BEHAT_ORDER[@]}" # bash ancien : "BEHAT_ORDER[@]: unbound variable"
L’invocation par défaut, sans argument, meurt avant le premier test sur tout bash antérieur à 4.4. Mon poste tourne en 5.2 : ça ne pouvait pas se voir ici.
Le deuxième finding est du même genre. Une variable currentPartner posée dans
une seule des quatre variantes d’un step Behat. Résultat : un garde-fou anti-course
fait un early-return silencieux — il ne protège rien, et ne le signale jamais.
Aucun des deux n’est un bug de logique. Ce sont des trous que seul un lecteur sans mémoire de l’écriture va chercher : le modèle qui a écrit le code sait ce qu’il a voulu faire, et relit son intention plutôt que son texte.
D’où le geste que je garde : modèle cher pour écrire, modèle budget pour relire, et jamais le même deux fois. Un run mesuré sur un diff que je connaissais — pas un benchmark.
Pour aller plus loin