Build
Guide · trois minutes

Le petit programme qui ressort une leçon à la fois

Claude avait 173 leçons dans un fichier et n'en lisait plus aucune : trop gros pour sa mémoire de travail. Le remède n'est pas de tout lui faire lire, c'est de lui glisser la bonne leçon au moment où il touche le fichier concerné. Voici la demande qui lui fait écrire ce programme.

La demande à coller, le format d'une leçon ancrée, puis le réglage qui la branche. Sur mon projet depuis le 09/08/2026 : 173 leçons ce jour-là, 284 aujourd'hui.
Tu arrives d'un reel ?

Trois minutes si Claude Code tourne déjà, compte trois quarts d'heure la première fois.

En plus de Claude Code, il te faut :

  • Python : le programme est écrit dans ce langage et se lance avant chaque action de Claude

Ce guide se fait dans Claude Code, compris dans la formule Claude Pro (la version gratuite ne l'inclut pas). Jamais installé ? Ces quatre leçons gratuites le mettent en place :

01

Colle cette demande

Ouvre Claude Code dans ton projet et colle ça. Il écrit le programme, il le branche et il le déclenche une fois devant toi.

Je veux un petit programme qui te rappelle la bonne leçon au bon moment.

Mes leçons sont dans tasks/lessons.md, une par ligne, au format :
[date] | ce qui a mal tourné | **Règles** : ce qu'il faut faire.
Chaque leçon cite au moins un chemin de fichier, une commande ou un
nom de fonction entre backticks : c'est son ancre.

Écris un hook PreToolUse pour Claude Code dans scripts/lecons_rappel.py :
- il lit sur l'entrée standard le JSON de l'outil qui va partir
  (Edit, Write, Bash) et en tire le fichier visé ou la commande ;
- il cherche dans tasks/lessons.md les leçons dont l'ancre correspond
  à ce fichier, à un symbole du texte écrit ou à la commande ;
- il renvoie au plus deux leçons, les plus précises, sous la forme
  hookSpecificOutput.additionalContext, avec la date et la règle
  seulement, pas le récit ;
- une leçon déjà rappelée dans la session ne l'est plus ;
- il ne bloque jamais rien. Il se tait sur une commande qui ne fait
  que lire (ls, cat, git status), hors du dossier du projet et quand
  j'écris dans tasks/lessons.md lui-même ;
- s'il plante, il se tait et laisse passer l'outil.

Ajoute une commande qui liste les leçons sans ancre, pour que je les
corrige.

Branche-le dans .claude/settings.local.json sur Edit, Write et Bash,
puis déclenche-le devant moi en modifiant un fichier cité par une leçon.
Ce que ça coûte

Il ne lit jamais tout le fichier : il cherche les leçons qui citent ce que Claude va toucher et il en glisse deux au plus. Chez moi : 60 millisecondes par geste, environ 5 500 tokens (la matière que Claude lit et écrit, facturée au volume) sur une grosse session contre 94 000 pour le fichier entier.

Ne lui demande pas de lire tout le fichier au démarrage. Mon ancienne consigne le disait : mesuré sur six sessions, il en lisait 59 à 72 lignes sur 558, toujours les plus récentes.

Tu viens de faire la première étape. La formation fait pareil pour tes devis, tes relances et ton site, leçon par leçon : 29 € une seule fois, accès à vie. Prix de lancement.

Je prends l'accès
02

Écris tes leçons avec une ancre

Tes leçons vivent dans tasks/lessons.md, une par ligne, hors de ton fichier de consignes. Chaque leçon cite au moins un chemin de fichier, une commande ou un nom de fonction entre backticks. C'est l'ancre : ce que le programme compare à ce que Claude s'apprête à toucher. Voici une des miennes.

[2026-08-08] | Deux `scp data/members.json` de ma machine vers le serveur
ont écrasé la base des membres par une copie locale périmée : sept fiches
détruites. **Règles** : jamais de données vivantes de ma machine vers le
serveur, le serveur fait foi. Pour modifier `data/members.json` là-bas,
un script exécuté sur le serveur, sauvegarde d'abord.
Claude va toucherun fichierLe programme chercheles leçons qui le citentUne leçon arrive,la règle seuleL'erreur n'estpas refaite
Le fichier de leçons reste entier. Seule la leçon concernée arrive, juste avant le geste.
Le piège

Une leçon sans ancre. Elle est dans le fichier, le programme ne la retrouvera jamais : au relevé du 21/09, 13 de mes 284 leçons sont dans ce cas. La commande demandée à la fin te les liste, chez moi c'est python scripts/lecons_index.py --bilan.

03

Où ça se branche

Le programme est un hook : un réglage de Claude Code qui lance un programme avant chaque action. Claude l'écrit lui-même, dans .claude/settings.local.json, dans le dossier de ton projet. Chez moi le bloc est celui-ci.

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write|NotebookEdit|Bash|PowerShell",
        "hooks": [
          {
            "type": "command",
            "command": "python \"$CLAUDE_PROJECT_DIR/scripts/lecons_rappel.py\"",
            "shell": "bash",
            "timeout": 15
          }
        ]
      }
    ]
  }
}

Ensuite, chaque fois que Claude va modifier un fichier ou lancer une commande, la leçon qui le cite arrive juste avant, avec sa date et sa règle. Pas de session à relancer : le hook est chargé dès que le réglage est écrit, constaté le 09/08/2026.

Ne rappelle pas la même leçon à chaque geste : elle devient un bandeau qu'on apprend à sauter. Une fois par session suffit et rien sur une commande qui ne fait que lire.

Si tu ne retiens qu'une chose

Une leçon sans nom de fichier ne sera jamais retrouvée. Écris l'ancre avant la règle, le reste c'est le programme qui le fait.

Le guide d'avant, celui du fichier de consignesLe prompt qui nettoie ton CLAUDE.md→
Offre de lancement

La suite, c'est la formation complète.

29 €une seule fois, accès à vie

Prix de lancement : ensuite ce sera 49 €.

Je prends l'accès à vie

Paiement sécurisé par Stripe. Nécessite Claude Pro chez Anthropic (environ 20 € par mois).