Structurer le contexte d’un projet

Un agent IA ne lit pas votre projet, il lit ce que vous lui mettez sous les yeux. Sans contexte structuré, il invente des conventions plausibles, voire des hallucinations qui contredisent ce qui tourne réellement.

Structurer le contexte, c’est :

Mal le faire coûte cher dans les deux sens :

Structurer le contexte d'un projet

Progressive disclosure

Charger tout le contexte à chaque session distrait l’agent : trop de contenu à la sémantique différente sont présents, certaines instructions sont ignorées. La solution est de révéler progressivement le contexte suivant l’endroit où l’agent se trouve dans la codebase (progressive disclosure).

Pour chaque nouvelle session, un agent ira lire systématiquement :

Progressive disclosure

Il y a deux comportements différents suivant le type de fichiers présent dans la “hiérarchie de contexte” :

Deux techniques pour bénéficier de la capacité de révélation progressive du contexte :

Isolation des contextes

Plusieurs stratégies possibles pour séparer le contexte au sein d’un projet.

File Structure-driven disclosure

Avantages

Inconvénients

projet
  module1/
    src/
      infrastructure/
        kafka/
          CLAUDE.md   <--- Conventions producteurs/consommateurs, topics, sérialisation
        postgres/
          CLAUDE.md   <--- Schéma, migrations, accès aux repositories
        CLAUDE.md     <--- Règles d'adaptation domaine ↔ infra
      domain/
        entity/
        value/
        repository/
        CLAUDE.md     <--- Langage métier, invariants, règles de modélisation
      feature/
        feature1/
          f1.controller.ts
          f1.use-case.ts
          CLAUDE.md   <--- Contrat d'API, cas d'usage, dépendances
    package.json
    CLAUDE.md <--- Périmètre du module, dépendances, commandes locales
  README.md   <--- Description du projet pour les humains
  CLAUDE.md   <--- Contexte toujours valide pour chaque session
  .claude/rules <--- Garde-fous appliqués globalement

Index driven disclosure

Avantages

Inconvénients

projet
  docs/                        <- tous référencés par le CLAUDE.md racine
    ubiquitous-domain-language.md
    create-controller.md
    create-entity.md
    create-value-type.md
    create-code-using-fonctional-style.md
    testing-code.md
    validate-project.md
    build-project.md
    do-commit.md
    migrate-database.md
    add-new-topic.md
  module1/
    src/
      infrastructure/
      domain/
      feature/
    package.json
  README.md   <--- Description du projet pour les humains
  CLAUDE.md   <--- Contexte toujours valide + index vers les sous-contextes

Comment choisir ?

File-structure si votre architecture porte déjà le raisonnement local et que chaque module mérite ses propres règles. Index si vous voulez un point d’entrée unique, partagé avec les humains, et découplé de l’arborescence. Dans les deux cas, la règle tient : le contexte qu’on ne range pas, on le re-prompte.