Valumigo

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âcheOutilRéussite (les 3 exécutions)DuréeTokens d’entréeTokens de sortieLignes modifiées (+/−)
T4 Correction de bugs sur plusieurs fichiers · Claude CodeT4 Correction de bugs sur plusieurs fichiersClaude Code3/360,6s (59,7–75,2)564 6184 495+6 / −5
T4 Correction de bugs sur plusieurs fichiers · Codex CLICodex CLI3/336,3s (31,9–44,2)94 1601 363+4 / −4
T5 Ajout d’une fonctionnalité selon une spécification · Claude CodeT5 Ajout d’une fonctionnalité selon une spécificationClaude Code3/390,1s (89,8–110,6)592 4857 366+42 / −2
T5 Ajout d’une fonctionnalité selon une spécification · Codex CLICodex CLI3/347,8s (47–49,3)95 7452 002+41 / −2
T6 Bug de concurrence + adaptation de l’API · Claude CodeT6 Bug de concurrence + adaptation de l’APIClaude Code3/3111,9s (104,4–147,4)660 1079 554+87 / −16
T6 Bug de concurrence + adaptation de l’API · Codex CLICodex CLI3/385s (79–93,1)162 1933 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.

ClaudeChatGPT (Codex)Agents

Journal complet des 18 exécutions

TâcheOutilExécutionSecondesTests réussisTokens d’entréeTokens de sortieLignes modifiées (+/−)
T4 · Claude Code · Exécution 1T4Claude Code159,715/15567 6944 495+9 / −5
T4 · Claude Code · Exécution 2T4Claude Code275,215/15496 1744 638+5 / −5
T4 · Claude Code · Exécution 3T4Claude Code360,615/15564 6184 458+6 / −5
T4 · Codex CLI · Exécution 1T4Codex CLI144,215/1595 6061 850+5 / −5
T4 · Codex CLI · Exécution 2T4Codex CLI236,315/1594 1601 363+4 / −4
T4 · Codex CLI · Exécution 3T4Codex CLI331,915/1589 4211 168+4 / −4
T5 · Claude Code · Exécution 1T5Claude Code189,812/12654 7177 366+42 / −2
T5 · Claude Code · Exécution 2T5Claude Code290,112/12585 0627 327+47 / −2
T5 · Claude Code · Exécution 3T5Claude Code3110,612/12592 4859 232+40 / −2
T5 · Codex CLI · Exécution 1T5Codex CLI149,312/1295 7452 054+40 / −2
T5 · Codex CLI · Exécution 2T5Codex CLI24712/1295 6831 989+41 / −2
T5 · Codex CLI · Exécution 3T5Codex CLI347,812/12116 2032 002+43 / −2
T6 · Claude Code · Exécution 1T6Claude Code1147,412/121 100 25910 403+105 / −16
T6 · Claude Code · Exécution 2T6Claude Code2111,912/12660 1079 554+87 / −16
T6 · Claude Code · Exécution 3T6Claude Code3104,412/12646 6518 335+63 / −16
T6 · Codex CLI · Exécution 1T6Codex CLI18512/12173 3813 818+64 / −25
T6 · Codex CLI · Exécution 2T6Codex CLI293,112/12162 1934 385+49 / −18
T6 · Codex CLI · Exécution 3T6Codex CLI37912/12157 8013 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