Introduction

L'erreur la plus courante chez les débutants est de penser que Codex possède une sorte de conscience globale et "connaît" tout de votre projet de manière magique et instantanée.

Dans les faits, ce n'est pas le cas. Codex est un programme informatique extrêmement avancé, mais il reste soumis à des règles physiques : il ne peut analyser que ce qu'on lui donne, et sa "mémoire" (la fenêtre de contexte) est limitée.

Savoir comment Codex "regarde" votre projet, comment il navigue entre vos fichiers et comment il tire ses conclusions va transformer votre manière de lui poser des questions. Vous allez cesser de lutter contre l'outil pour commencer à collaborer intelligemment avec lui.

Comment Codex analyse un projet

Lorsque vous appuyez sur "Entrée" après avoir tapé un prompt, il se passe énormément de choses en coulisses en l'espace d'une seconde.

Voici le cheminement exact de sa réflexion :

  1. Ouverture et scan : Codex regarde l'arborescence du dossier ouvert dans VS Code. Il dresse une liste des noms de fichiers (ex: index.html, style.css, app.js).
  2. Lecture de votre prompt : Il analyse sémantiquement votre demande. (ex: "Change la couleur d'arrière-plan").
  3. Sélection des fichiers : En croisant son scan et votre prompt, il déduit les fichiers utiles. (ex: Il va ouvrir et lire style.css, mais ignorera app.js).
  4. Création du contexte : Il assemble votre prompt et le contenu des fichiers sélectionnés dans un énorme bloc de texte caché.
  5. Envoi à l'IA : Ce bloc est envoyé aux serveurs d'OpenAI.
  6. Génération : L'intelligence artificielle produit la solution.
  7. Intégration locale : Codex reçoit la réponse et modifie visuellement vos fichiers dans VS Code.
graph TD;
    A[Prompt utilisateur] --> B[Scan du dossier];
    B --> C[Lecture des fichiers pertinents];
    C --> D[Création du grand contexte];
    D --> E[Envoi à OpenAI];
    E --> F[Génération du code];
    F --> G[Modification locale];

Comment Codex choisit les fichiers

Puisqu'il ne peut pas lire des milliers de fichiers à chaque question, il fait des choix. Voyons plusieurs scénarios :

  • Scénario 1 : Modifier une couleur
    Fichiers consultés : Principalement les fichiers `.css` ou les composants de style.
    Pourquoi : Il sait que les couleurs ne se gèrent généralement pas dans la logique JavaScript.
  • Scénario 2 : Corriger un bug sur un clic de bouton
    Fichiers consultés : Le fichier HTML (pour voir l'ID du bouton) et le fichier JavaScript (pour voir la fonction attachée).
    Pourquoi : Une interaction nécessite toujours ces deux couches.
  • Scénario 3 : Ajouter une nouvelle page complexe
    Fichiers consultés : Le routeur du projet, le menu de navigation existant, et l'architecture générale.
    Pourquoi : Une nouvelle page doit être reliée au reste de l'application pour exister.

Le contexte est essentiel

Le contexte est l'ensemble des informations dont dispose Codex au moment de répondre. C'est l'essence même de son intelligence.

Comparons deux situations :

Situation A : Peu d'informations (Contexte pauvre)
Vous êtes dans un dossier vide. Vous dites : "Crée un composant de carte produit."
Codex va générer une carte générique, avec des couleurs par défaut (souvent du bleu et du gris), une police standard, et une architecture HTML classique. C'est du "prêt-à-porter".

Situation B : Beaucoup d'informations (Contexte riche)
Vous êtes dans un dossier contenant déjà votre fichier charte-graphique.css et votre fichier produits.js. Vous dites la même chose : "Crée un composant de carte produit."
Codex va analyser vos fichiers. Il verra que votre site est rouge et noir. Il verra que vos produits ont une "taille" et un "poids". La carte générée utilisera VOS couleurs et VOS données. C'est du "sur-mesure".

Astuce

Plus votre projet avance, plus Codex devient intelligent et pertinent, car il s'imprègne de vos habitudes de code et de vos choix de design.

Pourquoi ouvrir le bon dossier est indispensable

Nous l'avons vu au chapitre 5, mais il faut comprendre pourquoi c'est techniquement si dangereux de se tromper.

  • Si vous ouvrez votre dossier "Documents" complet : Codex va scanner des milliers de fichiers PDF, Word et photos. L'analyse prendra un temps infini, sa mémoire explosera (Token Limit Reached) et il ne pourra rien faire.
  • Si vous ouvrez le mauvais projet : Vous demandez de modifier la page d'accueil de votre Blog, mais vous êtes dans le dossier de votre application Météo. Codex va chercher `index.html`, trouver celui de la météo, et le détruire pour y mettre un blog.
  • Si vous ouvrez le dossier parent (qui contient 3 projets) : Codex va mélanger les styles du projet A avec la logique du projet B. C'est la recette garantie d'un désastre technique.

Comment Codex comprend les relations entre les fichiers

En programmation web, les fichiers ne sont jamais isolés. Ils forment une toile d'araignée.

  • HTML ↔ CSS : Le HTML porte des noms de classes (ex: class="btn"). Le CSS cible ces classes. Codex lit les deux pour s'assurer qu'il utilise les bonnes classes.
  • HTML ↔ JS : Le HTML possède des identifiants (ex: id="submit"). Le JS écoute ces identifiants. Si Codex modifie l'ID dans le HTML, il ira le modifier dans le JS.
  • Système d'imports : Si le fichier A dit import { data } from './fichierB.js', Codex comprend immédiatement que le fichier B est crucial pour le fonctionnement du fichier A.
graph LR;
    HTML[Page HTML] -->|Utilise les classes| CSS[Feuille de Style];
    JS[Script JS] -->|Cible les ID| HTML;
    JS -->|Importe des données| JSON[Fichier Données];

Les limites de Codex

L'IA n'est pas infaillible. Il est primordial d'accepter ses limites :

  • Il peut manquer de contexte : Si vous lui demandez de corriger un bug visuel sans lui dire que le bouton est à l'intérieur d'un formulaire, sa solution CSS pourrait être erronée.
  • Il peut interpréter de travers : Le mot "header" désigne à la fois l'en-tête visuel d'un site et des données techniques de serveur. Si votre prompt est ambigu, il peut agir au mauvais endroit.
  • Il ne devine pas vos préférences : Face à un problème, il y a souvent 5 manières valables d'écrire le code. Il choisira la plus courante. Si vous en préférez une autre, vous devez l'exiger.

Pourquoi deux personnes obtiennent parfois des réponses différentes

C'est une grande frustration chez les débutants : "Mon collègue a tapé ce prompt, il a eu un super résultat. Moi, le site a crashé. Pourquoi ?"

Parce que le prompt n'est que la partie visible de l'iceberg. L'IA réagit à la somme du Prompt + le Contexte.

Si le collègue avait un code très bien nommé (calculerTotalPanier()) et que vous aviez un code opaque (fonctionX()), Codex a parfaitement compris le projet du collègue, mais a dû deviner le vôtre (et s'est trompé).

Atelier pratique : Comprendre par l'exemple

Ces exercices mentaux vous aideront à anticiper le comportement de Codex.

Exercice 1 : Deviner la cible
Contexte : Votre projet a 3 fichiers (index.html, style.css, script.js).
Prompt : "Le texte est trop petit."
Que fait Codex ? Il scanne le CSS à la recherche des règles `font-size` et proposera de les augmenter.

Exercice 2 : Conflit de compréhension
Contexte : Votre projet a une page `contact.html` et une `about.html`.
Prompt : "Ajoute un logo sur la page."
Que fait Codex ? Il est perdu. Quelle page ? Il vous posera la question ou modifiera `index.html` par défaut.

Exercice 3 : Le pouvoir de l'import
Contexte : Vous êtes dans le fichier `cart.js`.
Prompt : "Calcule la TVA à 20% sur le montant total."
Que fait Codex ? S'il manque de données, il ira chercher si un fichier `products.json` est lié au projet pour trouver les montants.

Exercice 4 : L'erreur invisible
Contexte : Le site plante.
Prompt : "Ça ne marche pas."
Que fait Codex ? Il ne peut rien faire. Sans le message d'erreur de la console, il ne sait pas quel fichier regarder parmi les 50 de votre projet.

Exercice 5 : La protection
Contexte : Vous avez un projet sensible.
Prompt : "Optimise l'apparence mais ne modifie aucune logique métier dans le JS."
Que fait Codex ? Il bloque l'écriture sur tous les fichiers `.js` et se concentre exclusivement sur les fichiers visuels.

Exercice 6 : Comprendre le passé
Contexte : Vous reprenez un vieux projet.
Prompt : "Fais-moi un résumé de l'architecture de ce dossier."
Que fait Codex ? Il scanne l'arborescence complète et vous liste le rôle de chaque grand dossier (src, public, assets).

Exercice 7 : L'hallucination
Contexte : Vous utilisez le framework Vue.js.
Prompt : "Crée un composant React."
Que fait Codex ? Il s'exécute bêtement, créant du code incompatible qui fera planter tout votre projet Vue.js.

Exercice 8 : L'oubli de sauvegarde
Contexte : Vous tapez du code à la main, mais vous ne sauvegardez pas (le point blanc est visible sur l'onglet VS Code).
Prompt : "Que penses-tu de ma nouvelle fonction ?"
Que fait Codex ? Il lit le fichier sur le disque. Il ne voit pas votre nouvelle fonction. Il répond "Quelle fonction ?".

Exercice 9 : La surcharge
Contexte : Vous copiez/collez un document texte de 100 pages dans le prompt.
Prompt : "Code une application basée sur tout ça."
Que fait Codex ? Il plante à cause de la limite de mémoire (tokens).

Exercice 10 : L'explication chirurgicale
Contexte : Vous bloquez sur une ligne de code complexe.
Prompt : "Dans app.js, explique uniquement la ligne 42."
Que fait Codex ? Il se rend ligne 42, lit les lignes 40 à 44 pour le contexte, et vous fournit une explication ciblée.

Les erreurs les plus fréquentes

Maintenant que vous connaissez la mécanique, voici les erreurs logiques que font tous les débutants.

  • Symptôme : "Codex modifie mes anciens projets sans que je le demande."
    Cause : Vous avez ouvert le dossier "Documents" entier au lieu de cibler un sous-dossier.
    Bonne pratique : Vérifiez toujours le nom en haut de la barre latérale gauche de VS Code.
  • Symptôme : "Il a cassé mon design en changeant le JS."
    Cause : Il a renommé un ID en JavaScript sans mettre à jour le CSS associé.
    Bonne pratique : Demandez : "Assure-toi de mettre à jour le CSS si tu modifies des ID ou des classes."
  • Symptôme : "La réponse est géniale, mais elle utilise une bibliothèque que je n'ai pas."
    Cause : Vous n'avez pas lu la proposition avant de l'accepter.
    Bonne pratique : Lisez toujours. S'il propose `npm install ...`, demandez-lui d'utiliser du code natif (vanilla) à la place.
  • Symptôme : "Codex ne comprend pas mon code."
    Cause : Vos variables s'appellent `a`, `b`, `c` et `truc123`.
    Bonne pratique : Renommez vos variables (`prixTotal`, `listeUtilisateurs`). L'IA a besoin de mots pour comprendre le sens.
  • Symptôme : "Il recrée les mêmes erreurs en boucle."
    Cause : Il a conservé votre mauvais code en mémoire dans le contexte de la conversation.
    Bonne pratique : Si l'échange devient chaotique, dites-lui d'oublier la précédente conversation ou ouvrez un nouveau terminal.
  • Symptôme : "La fonctionnalité marche, mais mon code est devenu illisible."
    Cause : Codex empile des rustines (patchs) à force de corriger sans cesse le même fichier.
    Bonne pratique : Une fois par semaine, demandez-lui : "Prends le temps de refactoriser et nettoyer ce fichier pour qu'il soit plus lisible."
  • Symptôme : "Il me supprime la moitié de la page."
    Cause : Face à un bug complexe, il a décidé que la meilleure solution était de repartir de zéro, sans vous prévenir.
    Bonne pratique : L'approche experte vue au chapitre 7 : "Analyse le problème, mais n'écris encore aucun code."
  • Symptôme : "Je lui donne un prompt parfait, il me répond 'Comment puis-je vous aider ?'"
    Cause : Déconnexion réseau ou erreur interne de l'API OpenAI.
    Bonne pratique : Re-tapez votre prompt.

Bonnes pratiques : Soyez le chef d'orchestre

Bonnes pratiques

L'arborescence est votre amie
Rangez votre projet. Un dossier css/, un dossier images/, un dossier js/. Si votre maison est bien rangée, le majordome (Codex) travaillera dix fois plus vite et se trompera beaucoup moins souvent qu'au milieu d'un capharnaüm de 150 fichiers en vrac.

Astuce

Utiliser l'IA pour documenter l'IA
Puisque le contexte dicte la qualité, aidez Codex à créer son propre contexte. Si votre projet devient gros, demandez : "Rédige un fichier README.md qui résume toute l'architecture de ce projet". Lors des futures sessions, Codex lira ce fichier et comprendra immédiatement le projet.

Tableau récapitulatif

SituationCe que Codex faitBonne pratique
Lancement initialLit le nom du dossier et liste les fichiers.Ouvrir uniquement le dossier du projet.
Demande floue ("Corrige ça")Tente de deviner le contexte ou demande des précisions.Préciser le fichier et le symptôme.
Demande très préciseCible immédiatement le fichier concerné.Donner les noms de fichiers exacts.
Projet avec beaucoup de fichiersFiltre et ne lit que les fichiers les plus pertinents.Garder une arborescence propre.
Erreur console fournieAnalyse l'erreur et trace le problème.Toujours copier les erreurs rouges.
Fichier non sauvegardéLit la dernière version sauvegardée sur le disque.Sauvegarder avant de prompter (Ctrl+S).
Présence d'un frameworkAdapte sa syntaxe (ex: React hooks).Laisser les fichiers de config visibles.
Code très mal nomméPeine à comprendre la logique métier.Utiliser des noms de variables explicites.
Dossier "Documents" ouvertAnalyse vos CV et factures.Ne jamais coder dans un dossier générique.
Refactoring massif demandéAtteint ses limites de mémoire et tronque le code.Demander le refactoring fichier par fichier.
Changement de CSSCherche les classes HTML correspondantes.Nommer le composant visuel (ex: header).
Plusieurs projets dans le dossierMélange les technologies et s'embrouille.Un dossier racine par projet technique.
Connexion Internet coupéePlante et affiche une erreur réseau.Codex nécessite le cloud OpenAI.
Instructions contradictoiresGénère un code hybride et buggé.Relire son prompt avant envoi.
Demande de sécuritéApplique les standards de l'industrie (OWASP).Demander explicitement des audits.

Foire aux questions

Non, jamais. Il ne lit que les fichiers présents dans le dossier de projet que vous avez ouvert dans Visual Studio Code, et uniquement s'il juge qu'ils sont pertinents pour répondre à votre question.
Oui. Codex ignore automatiquement les dossiers lourds et générés automatiquement comme `node_modules` (les bibliothèques) ou `.git` (historique). Vous pouvez aussi configurer un fichier `.codexignore` pour exclure certains dossiers sensibles.
L'IA est un modèle probabiliste. À chaque génération, elle sélectionne les mots les plus probables en fonction du contexte à cet instant T. De plus, si vos fichiers ont légèrement changé entre deux questions, le contexte (et donc la réponse) change.
Oui, c'est fondamental. Ouvrir un dossier parent contenant 5 projets différents va embrouiller Codex. Un projet = une fenêtre VS Code = une session Codex.
Si vous supprimez `style.css` et demandez de changer une couleur, Codex sera perdu. Il vous signalera probablement que le fichier est introuvable ou tentera de créer le CSS directement dans la page HTML.
Oui. Dès qu'il analyse l'arborescence et lit vos fichiers (comme `package.json` ou l'extension `.jsx`), il comprend immédiatement sur quel framework vous travaillez et adaptera ses réponses.
Il utilise votre prompt et les messages d'erreur. Si l'erreur mentionne `App.js`, il ira lire ce fichier en priorité. Sinon, il fera une recherche globale sur les mots-clés de votre question.
Lorsqu'une demande implique de modifier de nombreux fichiers ou si le prompt est très vague (ex: 'Fais un espace client'), Codex préfère s'assurer qu'il a bien compris votre besoin avant de générer des centaines de lignes potentiellement fausses.
Oui, mais il a une limite de 'mémoire à court terme' (la fenêtre de contexte). S'il y a 500 fichiers, il ne peut pas tous les retenir en même temps. Il lira uniquement ceux qui semblent liés à votre requête.
Gardez des fichiers propres, nommez vos variables de manière logique (ex: `calculerTVA` au lieu de `calcX`), et référencez explicitement les noms de fichiers dans vos prompts.
Non. Votre code reste privé et confiné à votre session. Il ne va pas utiliser vos données pour améliorer les modèles globaux d'OpenAI par défaut (selon les conditions du service API).
Oui, chaque fois que vous sauvegardez un fichier, Codex a accès à la version la plus récente lorsque vous lui envoyez votre prochain prompt.
S'ils sont écrits en clair dans vos fichiers, oui. C'est pourquoi il est vital de ne jamais écrire de mots de passe ou de clés API directement dans le code, mais d'utiliser des variables d'environnement (.env).
Stoppez-le, expliquez-lui pourquoi sa solution est mauvaise ('Ton code génère l'erreur X, essaie une approche totalement différente'), ou redémarrez-le pour vider son cache.
Absolument. Il suffit de le préciser dans votre prompt : 'Ne modifie que `index.html`. Ne touche sous aucun prétexte au fichier `app.js`'.

À retenir

À retenir

Vous n'utilisez plus une boîte noire. Vous comprenez la machine.

  • Codex "lit" votre projet uniquement à partir du dossier ouvert. S'il est mal ouvert, le désastre est garanti.
  • La qualité d'une réponse de l'IA dépend à 50% de votre prompt et à 50% de l'état de votre code (clarté des noms, organisation).
  • Codex ne voit que les fichiers sauvegardés. Toujours faire un Ctrl+S avant de lui parler.
  • Plus vous l'obligez à réfléchir à voix haute ("Explique-moi avant de coder"), moins il fera d'erreurs d'interprétation.

Transition vers le chapitre suivant

Maintenant que vous savez comment Codex navigue dans vos dossiers et sélectionne ses informations, vous êtes prêt pour la vraie vie du développement.

Jusqu'ici, nous avons opéré des modifications simples, souvent confinées à un seul fichier. Dans le prochain chapitre, nous allons apprendre à piloter des modifications à grande échelle : comment demander à Codex de créer ou de modifier des dizaines de fichiers simultanément, sans perdre le contrôle de votre projet.