Claude Code vs Codex, 2e série : 3 tâches pratiques sur plusieurs fichiers, exécutées 3 fois chacune
Lors de la 1re série, les petites tâches sur un seul fichier avaient valu la note maximale aux deux outils. Cette fois, nous avons créé un petit projet de boutique en ligne plus proche d’un service réel (calcul des prix, stocks, commandes et stockage, 6 fichiers), avec un bug décrit uniquement par ses symptômes comme dans un signalement client, une fonctionnalité définie par une spécification et un bug qui ne survient que lors de commandes simultanées.
Exécuté le 2026-10-04
En un coup d’œil
- Réussite : les deux outils ont encore passé tous les tests cachés lors de leurs 9 exécutions respectives. La tâche de concurrence comportant des délais aléatoires, chaque exécution a été évaluée 3 fois, sans aucun échec.
- Vitesse : selon les médianes par tâche, Codex (GPT-6.1 Sol) a été environ 1.3~1.9 fois plus rapide que Claude Code (Claude Opus 5). L’écart allait de 24~42 secondes selon la tâche.
- Tokens : selon les médianes par tâche, Claude Code a utilisé environ 4~6 fois plus de tokens d’entrée (réutilisation du cache incluse) et 2.5~3.7 fois plus de tokens de sortie que Codex.
- Habitudes de travail : Codex a ajouté un nouveau fichier de tests de non-régression dans les 6 exécutions des tâches de bugs (T4) et de concurrence (T6). Une fois, il a aussi modifié le README et le code de stockage (store.js). Claude Code a modifié uniquement les fichiers source, sans ajouter de tests, lors de ses 9 exécutions.
- Choix de conception : pour la tâche de concurrence, les deux outils ont utilisé dans les 6 exécutions un verrou global qui 'met les commandes en file indienne'. Le résultat est correct, mais les commandes portant sur des produits différents doivent aussi attendre leur tour.
Résultats
Les durées sont les médianes de 3 exécutions ; les parenthèses indiquent la plage du plus rapide au plus lent.
| Tâche | Outil | Réussite (les 3 exécutions) | Durée | Tokens d’entrée | Tokens de sortie | Lignes modifiées (+/−) | |
|---|---|---|---|---|---|---|---|
| T4 Correction de bugs sur plusieurs fichiers · Claude Code | T4 Correction de bugs sur plusieurs fichiers | Claude Code | 3/3 | 60,6s (59,7–75,2) | 564 618 | 4 495 | +6 / −5 |
| T4 Correction de bugs sur plusieurs fichiers · Codex CLI | Codex CLI | 3/3 | 36,3s (31,9–44,2) | 94 160 | 1 363 | +4 / −4 | |
| T5 Ajout d’une fonctionnalité selon une spécification · Claude Code | T5 Ajout d’une fonctionnalité selon une spécification | Claude Code | 3/3 | 90,1s (89,8–110,6) | 592 485 | 7 366 | +42 / −2 |
| T5 Ajout d’une fonctionnalité selon une spécification · Codex CLI | Codex CLI | 3/3 | 47,8s (47–49,3) | 95 745 | 2 002 | +41 / −2 | |
| T6 Bug de concurrence + adaptation de l’API · Claude Code | T6 Bug de concurrence + adaptation de l’API | Claude Code | 3/3 | 111,9s (104,4–147,4) | 660 107 | 9 554 | +87 / −16 |
| T6 Bug de concurrence + adaptation de l’API · Codex CLI | Codex CLI | 3/3 | 85s (79–93,1) | 162 193 | 3 818 | +49 / −18 |
Les tokens d’entrée comprennent surtout des tokens réutilisés depuis le cache pour relire les échanges précédents. Les deux CLI ne comptent pas les tokens de la même manière : utilisez ces chiffres uniquement pour comparer les ordres de grandeur.
Le 'coût équivalent au tarif public de l’API' indiqué par Claude Code était d’environ 0.78~1.25 dollars par tâche. Avec un compte abonné, ce montant n’est pas payé séparément : l’utilisation est déduite du quota de l’offre. Codex n’indiquant pas la même valeur, nous ne l’avons pas comparée.
3 tâches
T4 Correction de bugs sur plusieurs fichiers
Seuls 4 signalements clients étaient fournis dans ISSUES.md (décimales sur les montants en yens, remise de volume absente pour exactement 10 articles, écart de 1 cent avec un coupon de 15%, total négatif à cause d’un coupon). Les règles correctes devaient être trouvées dans le README. Les causes étaient réparties entre money.js et cart.js.
T5 Ajout d’une fonctionnalité selon une spécification
La tâche consiste à implémenter le remboursement partiel (refundOrder) selon la spécification du README. Les tests cachés vérifient la réduction du remboursement lorsqu’un retour annule les conditions de remise de volume, le recalcul du coupon, le rétablissement du stock, les remboursements en plusieurs fois, le refus d’un remboursement excessif et l’absence de toute modification en cas d’échec.
T6 Bug de concurrence + adaptation de l’API
La tâche consiste à corriger un bug où plusieurs achats simultanés du dernier article réussissent tous et rendent le stock négatif, puis à permettre l’utilisation avec await tout en conservant les appels existants par callback. Les tests cachés vérifient 20 commandes simultanées, les interblocages sur des commandes de plusieurs produits, le fonctionnement tout ou rien et la transmission des erreurs.
Consigne utilisée pour toutes les exécutions
Dans la consigne ci-dessous, seule la phrase après 'Task:' change selon la tâche. Contrairement à la 1re série, nous avons demandé de lire 'README.md et les autres documents'.
This folder is a small Node.js project (ES modules, no dependencies). Read the code, README.md and any other docs, and the tests. Task: {task} Do not modify existing test files. When you are done, make sure `node --test` passes.- T4 Correction de bugs sur plusieurs fichiers —
Fix the bugs reported in ISSUES.md. README.md describes the correct pricing rules. - T5 Ajout d’une fonctionnalité selon une spécification —
Implement refundOrder in src/orders.js according to the Refunds section of README.md. - T6 Bug de concurrence + adaptation de l’API —
Fix the problems described in the Orders section of README.md (overselling, and supporting both the Promise and the callback style).
Méthode de mesure
- Date d’exécution : 2026-10-04 (le soir, heure de Corée du Sud), Apple M1 Pro · macOS 26.6 · Node.js 22. Même ordinateur, mêmes versions et mêmes réglages que lors de la 1re série.
- Claude Code 2.1.250 — modèle par défaut Claude Opus 5 (Claude Haiku 4.5 a aussi été appelé pour de courtes tâches auxiliaires). Codex CLI 0.159.2 — modèle GPT-6.1 Sol, effort de raisonnement medium.
- Les deux outils ont été exécutés avec les comptes d’abonnement personnels de l’éditeur en mode non interactif (claude -p, codex exec), avec autorisation automatique de modifier les fichiers et d’exécuter node. Les exécutions ont été couvertes par les abonnements existants, sans frais supplémentaires.
- L’ordre d’exécution a été alterné pour chaque tâche (1re exécution : Claude Code d’abord ; 2e : Codex d’abord ; 3e : Claude Code d’abord). Aucune opération lourde, comme une compilation, n’a été lancée sur le même ordinateur pendant les exécutions.
Méthode d’évaluation
- Chaque tâche comportait 3 tests visibles par l’agent et des tests cachés (9~12), ajoutés uniquement lors de l’évaluation. Les tests cachés ont d’abord été validés avec la solution de référence écrite par l’éditeur. La solution de référence de la tâche de concurrence a été exécutée 10 fois pour vérifier la stabilité des résultats.
- Avant l’évaluation, le dossier test a été rétabli dans son état initial. Les fichiers de tests ajoutés par les agents n’ont pas servi à l’évaluation.
- Les bugs de concurrence pouvant se manifester seulement de temps en temps, chaque résultat a été évalué 3 fois à des moments différents, et la note la plus basse a été retenue.
En quoi le code produit par les deux outils différait-il ?
- T4 : les deux outils ont trouvé les 4 bugs dans money.js (décimales des yens, arrondi) et cart.js (seuil de 10 articles, plafond du coupon). Le nombre de lignes source modifiées était proche : 5~9 pour Claude Code, 4~5 pour Codex. Codex a créé lors des 3 exécutions un fichier distinct de tests de non-régression reproduisant les signalements.
- T5 : les deux outils ont respecté la spécification consistant à 'recalculer le prix des articles restants selon les règles initiales et à le soustraire'. Le nombre de lignes source ajoutées était aussi proche, à 40~47.
- T6 : dans les 6 exécutions, les deux outils ont sérialisé tout le traitement des commandes dans une seule file d’attente (verrou global). Lors des exécutions 2 et 3, Codex a associé le verrou au stockage pour que plusieurs services de commandes utilisant le même stockage partagent la file d’attente. Lors de la 1re exécution, il a ajouté une fonction transaction au stockage et une explication dans le README. Claude Code a limité ses modifications au fichier orders.js. Aucun des deux outils n’a utilisé de verrous distincts par produit.
Limites de ces mesures
- Le projet est un petit code d’environ 200 lignes réparties dans 6 fichiers. Il est plus proche d’un usage professionnel que la 1re série, mais reste bien plus petit que le dépôt d’un service réel.
- Les deux outils ayant obtenu la note maximale, aucune différence de précision n’a pu être mise en évidence. Les résultats pourraient différer sur un dépôt plus grand ou des tâches aux exigences ambiguës.
- Les durées varient selon l’état des serveurs et le réseau. Alterner les exécutions au cours de la même soirée a réduit cette influence sans l’éliminer.
- Codex utilisait un effort de raisonnement medium et Claude Code les réglages par défaut. Nous n’avons pas mesuré la consommation des quotas d’abonnement.
Quel outil choisir ?
Les avis ci-dessous sont ceux du responsable du site, fondés sur les résultats de ces mesures.
- Même sur ces tâches pratiques de cette taille, aucune différence de précision des résultats n’est apparue. Il est raisonnable de commencer par l’outil inclus dans l’abonnement que vous payez déjà.
- Si vous souhaitez obtenir rapidement un résultat, Codex a encore été 1.3~1.9 fois plus rapide.
- Pour limiter l’étendue des modifications, Claude Code a eu l’avantage (seuls les fichiers source ont été modifiés). Codex ajoute spontanément des tests de non-régression, mais il a parfois aussi modifié le README et le code de stockage sans que cela soit demandé, ce qui nécessite une relecture.
- Pour les problèmes nécessitant des choix de conception, comme la concurrence ou les performances, les deux outils ont choisi la solution correcte la plus simple. Si des contraintes comme le débit sont importantes, précisez-les dans la consigne.
Journal complet des 18 exécutions
| Tâche | Outil | Exécution | Secondes | Tests réussis | Tokens d’entrée | Tokens de sortie | Lignes modifiées (+/−) | |
|---|---|---|---|---|---|---|---|---|
| T4 · Claude Code · Exécution 1 | T4 | Claude Code | 1 | 59,7 | 15/15 | 567 694 | 4 495 | +9 / −5 |
| T4 · Claude Code · Exécution 2 | T4 | Claude Code | 2 | 75,2 | 15/15 | 496 174 | 4 638 | +5 / −5 |
| T4 · Claude Code · Exécution 3 | T4 | Claude Code | 3 | 60,6 | 15/15 | 564 618 | 4 458 | +6 / −5 |
| T4 · Codex CLI · Exécution 1 | T4 | Codex CLI | 1 | 44,2 | 15/15 | 95 606 | 1 850 | +5 / −5 |
| T4 · Codex CLI · Exécution 2 | T4 | Codex CLI | 2 | 36,3 | 15/15 | 94 160 | 1 363 | +4 / −4 |
| T4 · Codex CLI · Exécution 3 | T4 | Codex CLI | 3 | 31,9 | 15/15 | 89 421 | 1 168 | +4 / −4 |
| T5 · Claude Code · Exécution 1 | T5 | Claude Code | 1 | 89,8 | 12/12 | 654 717 | 7 366 | +42 / −2 |
| T5 · Claude Code · Exécution 2 | T5 | Claude Code | 2 | 90,1 | 12/12 | 585 062 | 7 327 | +47 / −2 |
| T5 · Claude Code · Exécution 3 | T5 | Claude Code | 3 | 110,6 | 12/12 | 592 485 | 9 232 | +40 / −2 |
| T5 · Codex CLI · Exécution 1 | T5 | Codex CLI | 1 | 49,3 | 12/12 | 95 745 | 2 054 | +40 / −2 |
| T5 · Codex CLI · Exécution 2 | T5 | Codex CLI | 2 | 47 | 12/12 | 95 683 | 1 989 | +41 / −2 |
| T5 · Codex CLI · Exécution 3 | T5 | Codex CLI | 3 | 47,8 | 12/12 | 116 203 | 2 002 | +43 / −2 |
| T6 · Claude Code · Exécution 1 | T6 | Claude Code | 1 | 147,4 | 12/12 | 1 100 259 | 10 403 | +105 / −16 |
| T6 · Claude Code · Exécution 2 | T6 | Claude Code | 2 | 111,9 | 12/12 | 660 107 | 9 554 | +87 / −16 |
| T6 · Claude Code · Exécution 3 | T6 | Claude Code | 3 | 104,4 | 12/12 | 646 651 | 8 335 | +63 / −16 |
| T6 · Codex CLI · Exécution 1 | T6 | Codex CLI | 1 | 85 | 12/12 | 173 381 | 3 818 | +64 / −25 |
| T6 · Codex CLI · Exécution 2 | T6 | Codex CLI | 2 | 93,1 | 12/12 | 162 193 | 4 385 | +49 / −18 |
| T6 · Codex CLI · Exécution 3 | T6 | Codex CLI | 3 | 79 | 12/12 | 157 801 | 3 694 | +44 / −17 |
Télécharger les fichiers des tâches et de l’évaluation
L’archive regroupe les tâches originales (code de la boutique), les tests cachés, les solutions de référence, les scripts d’exécution, le résumé des 18 résultats (JSON) et les diff de chaque exécution.
Télécharger coding-agents-round2-2026-10.zip