THE FUTURE MARKETACADEMY
Your classroomRoom 01 · AI Lab
School of AI

Pratique de l'ingénierie avec l'IA : livrer et maintenir des logiciels créés avec l'IA

Step 7 of 7 in AI Lab

This is the last course in this building's path. All learning paths

What you'll be able to do
  • Rédiger de courtes normes d'ingénierie pour le code assisté par l'IA, et placer chaque règle là où elle est réellement appliquée.
  • Mettre en place un processus de révision pour les changements écrits par l'IA : auto-révision, réviseur neuf, responsables du code et protection des branches.
  • Utiliser les tests comme barrières, vérifier que les tests eux-mêmes sont assez solides et les exécuter en CI.
  • Ajouter des contrôles de sécurité : secrets, dépendances, permissions, une passe de sécurité et une personne qualifiée pour donner le feu vert.
  • Exécuter Claude Code dans des scripts et en CI avec des limites sur les outils, les tours, le coût et les personnes qui peuvent le déclencher.
  • Livrer par petites étapes, annuler rapidement les erreurs et garder maintenables les logiciels créés avec l'IA.
  • Diriger une petite équipe avec un processus écrit, et l'enseigner à d'autres.

Avant ce cours : Claude Code Projects: larger codebases, tests and git (course 1.5.3). Vous devriez déjà avoir utilisé le mode Plan, un SPEC.md écrit, les tests comme boucle de réussite ou d'échec, un hook Stop, les branches et les petits commits, les worktrees, un sous-agent réviseur en lecture seule, les règles deny, ainsi que /clear et /usage. Les cours 1.5.1 (Coding with AI) et 1.5 (Claude Code Basics) viennent avant. C'est le niveau expert. Une personne aux bonnes habitudes devient une équipe aux normes partagées, et "ça marche sur mon portable" devient « c'est vérifié, révisé, sûr à livrer et facile à maintenir ». Il vous faut Python 3.9 ou plus récent, Git et un terminal. Le code marqué "tested" a été exécuté pour ce cours avec Python et Git de base. Les fichiers de workflow marqués "from the docs" sont présentés tels qu'Anthropic les documente et n'ont pas été exécutés ici, parce qu'ils exigent un dépôt GitHub et une clé d'API.

Words in this course 68Open the Vocabulary Hall
01

Les normes d'ingénierie : le dire une fois, l'appliquer là où ça compte

In simple words

Une cuisine de restaurant a quelques règles au mur ("se laver les mains") et quelques règles intégrées à l'équipement (le four s'éteint si la porte s'ouvre). Une affiche au mur peut être oubliée. Un verrou intégré, non. De bonnes normes d'ingénierie utilisent les deux, et savent quelle règle va où.

Key facts
  • La page de bonnes pratiques de Claude Code d'Anthropic sépare les instructions en deux sortes. Le guide (votre demande, CLAUDE.md, les skills) est lu par le modèle, qui le suit "usually follows" (habituellement), mais n'y est pas forcé. Les règles imposées (hooks, règles de permission, paramètres gérés, tests, CI) sont appliquées par Claude Code ou par votre processus et ne dépendent pas du choix du modèle.
  • Le conseil de la documentation : si vous continuez d'ajouter de l'emphase à une ligne de CLAUDE.md et que Claude la rate encore, cette ligne doit aller dans un hook. L'inverse est vrai aussi : si vous avez des hooks pour des choses qui ne sont que des préférences, supprimez-les et laissez Claude décider.
  • CLAUDE.md se charge dans chaque session, donc chaque ligne coûte un peu d'attention à chaque tâche. Réservez-le à ce que Claude ne peut pas déduire du code : les commandes exactes de test, de vérification des types et de lint, les décisions qui ne sont pas dans le dépôt et les pièges. Les préférences personnelles vont dans CLAUDE.local.md, que vous ajoutez à .gitignore.
  • Claude Code lit ses paramètres à plusieurs endroits. La portée décide de qui un paramètre touche : utilisateur (~/.claude/settings.json, vous dans tous les projets), projet partagé (.claude/settings.json, tout le monde dans le dépôt s'il est versionné), projet local (.claude/settings.local.json, vous dans un projet) et géré (défini par une organisation; rien dans vos propres fichiers ne le remplace).
  • Priorité, de la plus haute à la plus basse : paramètres gérés, --settings en ligne de commande, projet local, projet partagé, utilisateur. Les paramètres de type liste, comme permissions.allow, fusionnent d'un fichier à l'autre au lieu de se remplacer.
  • Certaines clés ne prennent jamais effet depuis un fichier versionné dans le dépôt, et d'autres, comme les règles allow, attendent que chaque collègue fasse confiance au dossier. Les règles deny et ask s'appliquent tout de suite. Lancez /status pour voir quelles sources de paramètres sont chargées.
  • Les normes ne servent que si les gens peuvent les trouver et les utiliser. Rédigez un court fichier de normes d'ingénierie (nous l'appelons ENGINEERING.md dans ce cours) et ajoutez-y un lien depuis CLAUDE.md.
RuleGuidance or enforced?Where it lives
"Use clear names for functions"GuideCLAUDE.md
"Run python3 -m unittest before you say you are done"Guide, plus imposé par un hook Stop et la CICLAUDE.md, .claude/settings.json, CI
"Never read .env"ImposéRègle permissions.deny
"Nothing merges without a passing test run and one human approval"ImposéProtection des branches (leçon 2)
"Do not touch the migrations/ folder"ImposéHook PreToolUse qui se termine avec le code 2
Step by step
  1. Notez chaque règle que votre équipe suit ou voudrait suivre, une par ligne, en mots simples.
  2. Pour chaque règle, demandez-vous : "presque toujours" suffit-il? Si oui, c'est un guide. Si non, c'est une règle qui doit être imposée.
  3. Mettez les guides dans CLAUDE.md, en gardant le fichier court. Incluez les commandes exactes pour les tests, la vérification des types et le lint.
  4. Pour chaque règle imposée, choisissez le mécanisme dans le tableau et notez-le : une règle deny, un hook, la protection des branches ou la CI.
  5. Créez les vrais fichiers : .claude/settings.json avec vos règles partagées, versionné dans le dépôt, et .claude/settings.local.json pour les réglages personnels, gardé hors de Git.
  6. Rédigez ENGINEERING.md en une page avec trois sections : comment nous travaillons, comment nous révisons, comment nous livrons.
  7. Lancez /status et vérifiez que les sources de paramètres sont celles que vous attendez.
  8. Vérification : un nouveau collègue peut trouver la commande de test en moins d'une minute, et vous pouvez indiquer l'endroit exact où chaque règle "jamais" est imposée.
Watch on YouTube
Claude Code best practices from AnthropicAnthropic · YouTube · youtube.com
Hooks in Claude CodeClaude · YouTube · youtube.com

Videos by other creators on YouTube, for reference. They are not made by or affiliated with The Future Market.

LESSON 01Les normes d'ingénierie : le dire une fois, l'appliquer là où ça compte
LESSON 01 / ANIMATED LESSON / ENGLISH VOICE00:00 / 01:10
Read the video script
[Host] "Une affiche au mur peut être ignorée. Un verrou sur la porte, non."
[Text on screen: Guide ou règle imposée] "Certaines règles sont des guides, comme une note dans CLAUDE.md. D'autres sont imposées, comme une règle deny ou une vérification obligatoire."
[Screen: le tableau des règles] "Posez une seule question pour chaque règle : « presque toujours » suffit-il?"
[Text on screen: Gardez CLAUDE.md court] "Sinon, sortez-la des notes et mettez-la dans un hook, une règle de permission ou votre processus."
[Host] "Des notes courtes, des verrous solides et une page que tout le monde trouve."
Try it now

Rédigez la liste des règles de votre équipe (au moins dix règles), classez-la en guides et en règles imposées, et créez les fichiers qui contiennent chacune. Ensuite, rédigez ENGINEERING.md sur une page.

ClaudeStuck? Copy a ready-made prompt for Claude

Copy this, open Claude, paste it, and Claude will walk you through the lesson step by step.

For a grown-up: Claude is for adults (18+). Copy this, paste it into Claude, and use the answer to explain the lesson to your child.

I'm learning "Pratique de l'ingénierie avec l'IA : livrer et maintenir des logiciels créés avec l'IA" on The Future Market. Lesson 1: "Les normes d'ingénierie : le dire une fois, l'appliquer là où ça compte".

What the lesson teaches:
- La page de bonnes pratiques de Claude Code d'Anthropic sépare les instructions en deux sortes. Le guide (votre demande, CLAUDE.md, les skills) est lu par le modèle, qui le suit "usually follows" (habituellement), mais n'y est pas forcé. Les règles imposées (hooks, règles de permission, paramètres gérés, tests, CI) sont appliquées par Claude Code ou par votre processus et ne dépendent pas du choix du modèle.
- Le conseil de la documentation : si vous continuez d'ajouter de l'emphase à une ligne de CLAUDE.md et que Claude la rate encore, cette ligne doit aller dans un hook. L'inverse est vrai aussi : si vous avez des hooks pour des choses qui ne sont que des préférences, supprimez-les et laissez Claude décider.
- CLAUDE.md se charge dans chaque session, donc chaque ligne coûte un peu d'attention à chaque tâche. Réservez-le à ce que Claude ne peut pas déduire du code : les commandes exactes de test, de vérification des types et de lint, les décisions qui ne sont pas dans le dépôt et les pièges. Les préférences personnelles vont dans CLAUDE.local.md, que vous ajoutez à .gitignore.
- Claude Code lit ses paramètres à plusieurs endroits. La portée décide de qui un paramètre touche : utilisateur (~/.claude/settings.json, vous dans tous les projets), projet partagé (.claude/settings.json, tout le monde dans le dépôt s'il est versionné), projet local (.claude/settings.local.json, vous dans un projet) et géré (défini par une organisation; rien dans vos propres fichiers ne le remplace).
- Priorité, de la plus haute à la plus basse : paramètres gérés, --settings en ligne de commande, projet local, projet partagé, utilisateur. Les paramètres de type liste, comme permissions.allow, fusionnent d'un fichier à l'autre au lieu de se remplacer.
- Certaines clés ne prennent jamais effet depuis un fichier versionné dans le dépôt, et d'autres, comme les règles allow, attendent que chaque collègue fasse confiance au dossier. Les règles deny et ask s'appliquent tout de suite. Lancez /status pour voir quelles sources de paramètres sont chargées.
- Les normes ne servent que si les gens peuvent les trouver et les utiliser. Rédigez un court fichier de normes d'ingénierie (nous l'appelons ENGINEERING.md dans ce cours) et ajoutez-y un lien depuis CLAUDE.md.

The exercise I'm working on:
Rédigez la liste des règles de votre équipe (au moins dix règles), classez-la en guides et en règles imposées, et créez les fichiers qui contiennent chacune. Ensuite, rédigez ENGINEERING.md sur une page.

I'm stuck. Please:
1. Explain the main idea in plain, simple words with one everyday example.
2. Walk me through the exercise one small step at a time. Ask me what I've done so far before giving the next step.
3. Don't just give me the final answer. Help me do it myself, and check my work when I share it.
I'm a parent helping my child (about 8 years old) with a lesson called "Les normes d'ingénierie : le dire une fois, l'appliquer là où ça compte" from the course "Pratique de l'ingénierie avec l'IA : livrer et maintenir des logiciels créés avec l'IA".

Here's what the lesson says:
Une cuisine de restaurant a quelques règles au mur ("se laver les mains") et quelques règles intégrées à l'équipement (le four s'éteint si la porte s'ouvre). Une affiche au mur peut être oubliée. Un verrou intégré, non. De bonnes normes d'ingénierie utilisent les deux, et savent quelle règle va où.

The activity:
Rédigez la liste des règles de votre équipe (au moins dix règles), classez-la en guides et en règles imposées, et créez les fichiers qui contiennent chacune. Ensuite, rédigez ENGINEERING.md sur une page.

Please explain this so an 8-year-old understands: short sentences, a fun everyday example, and no hard words.
Then give me 3 simple questions I can ask my child to check they understood, and a way to do the activity together, one tiny step at a time.
Open Claude
Sources
My notes
02

Un processus de révision pour du code que vous n'avez pas écrit

This lesson is part of full access: every course and every level for one payment.

03

Les tests comme barrières, et la vérification des tests eux-mêmes

This lesson is part of full access: every course and every level for one payment.

04

Des contrôles de sécurité pour le code assisté par l'IA

This lesson is part of full access: every course and every level for one payment.

05

Claude Code dans les scripts et la CI, avec des limites

This lesson is part of full access: every course and every level for one payment.

06

Livrer par petites étapes et rester maintenable

This lesson is part of full access: every course and every level for one payment.

07

Diriger une petite équipe et documenter le processus

This lesson is part of full access: every course and every level for one payment.

++

Final project

This lesson is part of full access: every course and every level for one payment.

??

Quiz

  1. Quelle est la différence entre un guide et une règle imposée?

  2. Où doit se trouver une règle "ne jamais lire .env"?

  3. Une révision de code par IA approuve-t-elle ou bloque-t-elle une pull request?

  4. Pourquoi Code Review lit-il REVIEW.md sur la branche de base et non dans la pull request?

  5. Que fait un fichier CODEOWNERS?

  6. Qu'est-ce qu'une vérification par mutation?

  7. Comment faire qu'un test en échec bloque une fusion?

  8. Quels signes d'alerte un réviseur humain doit-il chercher dans un diff écrit par l'IA?

  9. Que fait la push protection?

  10. Nommez trois limites que vous fixez à une exécution de Claude Code sans surveillance.

  11. Pourquoi utiliser --bare dans les scripts et la CI?

  12. Comment annuler un commit livré en gardant l'historique?

EX

Final exam

This lesson is part of full access: every course and every level for one payment.

CE

Certificate

This lesson is part of full access: every course and every level for one payment.