Aller au contenu
← Tous les TIL
TIL

TIL : faire relire un modèle cher par un modèle budget

model-routinginference-costworkflow

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