Guide Professeur â Session 6 : Claude Code & CI/CD
Programme : Applied AI â Niveau AvancĂ© (prĂ©paration certification Claude Certified Architect) Instructeur : Yann Isola DurĂ©e : 2 heures 30 (150 minutes) Modules couverts : Chapitres 5 et 13 du guide de rĂ©fĂ©rence â Claude Code, outils intĂ©grĂ©s, intĂ©gration continue
1. Vue dâensemble de la session
Objectifs pédagogiques
Ă la fin de cette session, chaque participant doit ĂȘtre capable de :
- DĂ©finir Claude Code : un assistant de codage agentique (agentic coding assistant) qui sâexĂ©cute dans le terminal, capable de lire, modifier et exĂ©cuter du code de maniĂšre autonome dans un pĂ©rimĂštre de permissions contrĂŽlĂ©.
- Structurer un fichier
CLAUDE.mdefficace : vue dâensemble du projet, conventions, commandes courantes, piĂšges connus (gotchas) â et expliquer pourquoi ce fichier est le levier n°1 de la qualitĂ© des sorties. - Configurer le rĂ©pertoire
.claude/:settings.json(outils autorisĂ©s viaallowedTools), commandes personnalisĂ©es (.claude/commands/), hooks. - MaĂźtriser le modĂšle de permissions : allow/deny par outil, motifs dâauto-acceptation (auto-accept patterns), principe du moindre privilĂšge appliquĂ© Ă un agent de codage.
- Concevoir un systÚme de hooks : événements de cycle de vie (
PreToolCall,PostToolCall,Notification,Stop) pour lâautomatisation personnalisĂ©e â audit, garde-fous, notifications. - ExĂ©cuter Claude Code en mode headless (sans interface, non interactif) avec
--print/-ppour lâintĂ©grer dans un pipeline CI/CD (Continuous Integration / Continuous Deployment, intĂ©gration et dĂ©ploiement continus). - Concevoir trois patterns dâintĂ©gration CI/CD : revue automatique de PR (Pull Request, demande de fusion), gĂ©nĂ©ration de tests, mise Ă jour de documentation.
- Cartographier les outils intégrés (Chapitre 13) :
Read,Write,Edit,MultiEdit,Bash,Glob,Grep,LS,TodoRead,TodoWrite,WebFetch,mcp__*â et associer chaque outil Ă son niveau de risque et son besoin de permission. - GĂ©rer les coĂ»ts : commande
/cost, mise en cache des prompts (prompt caching) dans les sessions longues,/compactpour compresser le contexte.
Prérequis
- Sessions 1 Ă 5 du niveau AvancĂ© (notamment : architecture dâagents, tool calling, MCP â Model Context Protocol, protocole de contexte de modĂšle).
- Aisance en ligne de commande (terminal, shell bash ou équivalent).
- Notions de Git et de CI/CD : savoir ce quâest une PR, un pipeline, un runner.
- Idéalement : avoir déjà installé Claude Code (
npm install -g @anthropic-ai/claude-codeâ vĂ©rifier la commande dâinstallation actuelle avant la session, elle peut Ă©voluer).
Positionnement certification
Cette session couvre un domaine fortement pondĂ©rĂ© dans lâexamen Claude Certified Architect : la configuration dâenvironnements agentiques et leur industrialisation. Les questions dâexamen types portent sur :
- le choix des outils à autoriser dans un contexte donné (scénarios de moindre privilÚge) ;
- lâordre et la sĂ©mantique des hooks ;
- la différence entre mode interactif et mode headless ;
- la structure canonique dâun
CLAUDE.md.
Insistez auprĂšs des participants : lâexamen teste le jugement dâarchitecte, pas la mĂ©morisation de flags. Chaque partie du cours se termine par une « question type certification » â utilisez-les.
Matériel nécessaire
- Vidéoprojecteur + slides (
slides/slides.md). - Page web interactive (
webpage/index.html) â hors ligne : constructeur deCLAUDE.md, concepteur de pipeline CI/CD, configurateur de permissions. - Feuilles dâexercices (
exercises/exercises.md). - Quiz (
quiz/quiz.md). - Fortement recommandĂ© : chaque participant avec un terminal et Claude Code installĂ©. PrĂ©voyez un dĂ©pĂŽt Git dâexercice clonĂ© Ă lâavance (nâimporte quel petit projet avec tests fera lâaffaire).
Message central de la session
« Claude Code nâest pas un chatbot qui parle de code : câest un agent qui agit sur votre dĂ©pĂŽt, dans un pĂ©rimĂštre que vous dĂ©finissez. Le fichier
CLAUDE.mdest son cerveau contextuel,settings.jsonest sa cage, les hooks sont vos caméras de surveillance, et le mode headless en fait un employé de votre pipeline. »
RĂ©pĂ©tez cette mĂ©taphore en quatre temps (cerveau / cage / camĂ©ras / employĂ©) â elle structure toute la session.
Fil conducteur narratif
Toute la session sâappuie sur un projet fil rouge unique : facturation-api, une API de facturation fictive en Python avec des tests pytest. Chaque concept est illustrĂ© sur ce mĂȘme projet :
- Le
CLAUDE.mddécritfacturation-api. - Les permissions sont calibrées pour
facturation-api. - Le pipeline CI/CD révise les PR de
facturation-api.
La rĂ©pĂ©tition du mĂȘme contexte ancre les concepts et prĂ©pare aux questions de scĂ©nario de la certification.
2. Déroulé minute par minute
| Horaire | Durée | Séquence | Support |
|---|---|---|---|
| 0:00 â 0:05 | 5 min | Accueil, rappel Session 5, objectifs, enjeu certification | Slides 1â3 |
| 0:05 â 0:25 | 20 min | Partie A â Claude Code : anatomie dâun agent de terminal | Slides 4â8 + dĂ©mo live |
| 0:25 â 0:45 | 20 min | Partie B â CLAUDE.md : le cerveau contextuel | Slides 9â12 + constructeur web |
| 0:45 â 1:05 | 20 min | Exercice 1 : RĂ©diger un CLAUDE.md | Feuille dâexercices + constructeur web |
| 1:05 â 1:10 | 5 min | â Pause courte | â |
| 1:10 â 1:30 | 20 min | Partie C â Permissions & outils intĂ©grĂ©s : la cage | Slides 13â18 + configurateur web |
| 1:30 â 1:45 | 15 min | Partie D â Hooks : les camĂ©ras de surveillance | Slides 19â22 |
| 1:45 â 2:00 | 15 min | Exercice 3 (dĂ©marrage) : Concevoir un systĂšme de hooks | Feuille dâexercices |
| 2:00 â 2:15 | 15 min | Partie E â Mode headless & CI/CD : lâemployĂ© du pipeline | Slides 23â27 + concepteur de pipeline web |
| 2:15 â 2:25 | 10 min | Exercice 2 (cadrage) : Pipeline CI/CD avec Claude Code â lancement, finition Ă la maison | Feuille dâexercices |
| 2:25 â 2:30 | 5 min | Quiz Ă©clair + Exit Tickets + annonce Session 7 | Slides 28â30 |
Note de flexibilitĂ© : lâExercice 2 (CI/CD complet) est le plus long â il est conçu pour ĂȘtre cadrĂ© en sĂ©ance et terminĂ© Ă la maison. Si vous prenez du retard, compressez la Partie D Ă 10 minutes (montrez uniquement PreToolCall et Stop), mais ne sacrifiez jamais la Partie C (permissions) : câest le cĆur du modĂšle de sĂ©curitĂ© et le sujet le plus piĂ©geux Ă lâexamen.
3. Notes pédagogiques détaillées par séquence
0:00 â 0:05 | Accueil et cadrage
Quoi dire :
« Jusquâici, vous avez conçu des agents dans des applications. Aujourdâhui, on retourne la table : lâagent, câest votre collĂšgue de terminal. Il lit votre code, le modifie, lance vos tests. Et Ă la fin de la session, il travaillera tout seul dans votre pipeline CI/CD, la nuit, pendant que vous dormez. La question de la session nâest pas âest-ce que câest possible ?â â câest âcomment garder le contrĂŽle ?â. »
Annoncez lâenjeu certification : ce chapitre pĂšse lourd Ă lâexamen. Distribuez le plan.
0:05 â 0:25 | Partie A â Claude Code : anatomie dâun agent de terminal
Concepts clés :
-
DĂ©finition. Claude Code est un assistant de codage agentique en ligne de commande. « Agentique » signifie : il ne se contente pas de rĂ©pondre, il boucle â lit des fichiers, propose des modifications, exĂ©cute des commandes, observe les rĂ©sultats, corrige. Câest la boucle agentique de la Session 3, incarnĂ©e dans le terminal.
-
DĂ©marrage dâun projet. La commande
/initinspecte le dĂ©pĂŽt et gĂ©nĂšre un premierCLAUDE.mdautomatiquement. Insistez : câest un brouillon â un bon architecte le retravaille toujours (transition vers la Partie B). -
Interaction en langage naturel. On ne tape pas des commandes rigides : « corrige le bug de calcul de TVA dans
invoice.pyet ajoute un test » est une instruction valide. Claude Code planifie, ouvre les bons fichiers (viaGlob/Grep), édite (viaEdit/MultiEdit), teste (viaBash). -
Ăditions multi-fichiers. Contrairement Ă lâautocomplĂ©tion classique, Claude Code raisonne Ă lâĂ©chelle du dĂ©pĂŽt : un renommage de fonction peut toucher 12 fichiers en une seule tĂąche.
-
Slash commands intégrées :
/initâ gĂ©nĂšre leCLAUDE.mdinitial ;/compactâ compresse lâhistorique de conversation pour libĂ©rer du contexte (rĂ©sumĂ© automatique) ;/costâ affiche la consommation de tokens et le coĂ»t de la session ;/reviewâ lance une revue de code ;- commandes personnalisĂ©es dans
.claude/commands/*.mdâ un fichier Markdown = une commande (ex..claude/commands/deploy-check.mddevient/deploy-check).
DĂ©mo live (8 min) : sur le projet facturation-api, lancez claude, puis /init, montrez le CLAUDE.md gĂ©nĂ©rĂ©. Demandez ensuite en langage naturel : « liste les fichiers de test et dis-moi ce qui nâest pas couvert ». Montrez les demandes de permission qui apparaissent â câest le teaser parfait de la Partie C.
PiĂšge pĂ©dagogique : certains participants penseront que Claude Code « voit » tout le dĂ©pĂŽt en permanence. Faux : il explore Ă la demande (via Glob, Grep, Read). Le contexte est construit incrĂ©mentalement â dâoĂč lâimportance du CLAUDE.md qui, lui, est chargĂ© systĂ©matiquement.
Question type certification : « Un dĂ©veloppeur constate que Claude Code ignore les conventions de nommage de lâĂ©quipe. Quelle est la premiĂšre action corrective ? » â Documenter les conventions dans CLAUDE.md (pas : rĂ©pĂ©ter lâinstruction Ă chaque prompt, ni : changer de modĂšle).
0:25 â 0:45 | Partie B â CLAUDE.md : le cerveau contextuel
Concepts clés :
-
Ce que câest. Un fichier Markdown Ă la racine du projet, chargĂ© automatiquement au dĂ©but de chaque session. Câest lâĂ©quivalent projet du message systĂšme : des instructions permanentes, versionnĂ©es avec le code, partagĂ©es par toute lâĂ©quipe.
-
Structure canonique (Ă faire noter) :
- Vue dâensemble du projet â quoi, pour qui, stack technique. 3 Ă 5 lignes.
- Conventions â style de code, nommage, structure des dossiers, langue des commentaires.
- Commandes courantes â comment lancer les tests, le linter, le build, le serveur local. Exactes et copiables.
- PiĂšges connus (gotchas) â « le module X a une API trompeuse », « ne jamais toucher au dossier
migrations/Ă la main », « les tests dâintĂ©gration exigent Docker ».
-
Pourquoi ça marche. Chaque instruction dans
CLAUDE.mdĂ©conomise des dizaines de corrections en aval. Analogie : câest le document dâonboarding dâun nouveau dĂ©veloppeur â sauf que ce dĂ©veloppeur le relit Ă chaque session, intĂ©gralement, sans jamais lâoublier. -
Anti-patterns à dénoncer :
- Le
CLAUDE.mdde 800 lignes : il consomme du contexte Ă chaque session et dilue les instructions critiques. Cible : moins de 150 lignes, dense. - Les gĂ©nĂ©ralitĂ©s (« Ă©cris du code propre ») : zĂ©ro valeur. Chaque ligne doit ĂȘtre spĂ©cifique au projet.
- Le fichier pĂ©rimĂ© : commandes qui ne marchent plus = lâagent perd confiance⊠non, correction : vous perdez du temps, car lâagent exĂ©cute des commandes cassĂ©es. Traitez
CLAUDE.mdcomme du code : revue, mise à jour, responsabilité.
- Le
-
Hiérarchie. Il peut exister un
CLAUDE.mdglobal (niveau utilisateur,~/.claude/CLAUDE.md) et desCLAUDE.mdpar sous-dossier pour les monorepos. Le plus spécifique complÚte le plus général.
ActivitĂ© (5 min) : projetez le constructeur de CLAUDE.md de la page web. Remplissez-le en direct avec la salle pour facturation-api. GĂ©nĂ©rez le fichier, critiquez-le ensemble : quâest-ce qui manque ? Quâest-ce qui est trop vague ?
Question type certification : « Quelle section de CLAUDE.md a le plus dâimpact sur la rĂ©duction des erreurs dâexĂ©cution de commandes ? » â Les commandes courantes exactes (lâagent nâa pas Ă deviner npm test vs pnpm test vs make test).
0:45 â 1:05 | Exercice 1 â RĂ©diger un CLAUDE.md
Voir feuille dâexercices. Les participants rĂ©digent un CLAUDE.md complet pour un projet dĂ©crit dans lâĂ©noncĂ© (ou leur propre projet sâils en ont un). Le constructeur web peut servir dâĂ©chafaudage, mais exigez une passe manuelle de densification.
CritĂšres de correction (annoncez-les) :
- Les 4 sections canoniques présentes.
- Commandes copiables-collables, pas de pseudo-commandes.
- Au moins 2 gotchas réels et spécifiques.
- Moins de 100 lignes.
Circulation : repĂ©rez les fichiers « gĂ©nĂ©riques » (qui pourraient dĂ©crire nâimporte quel projet) et challengez : « si je donne ce fichier Ă un autre binĂŽme, saura-t-il que ce nâest pas son projet ? Si non, tout est Ă réécrire. »
1:10 â 1:30 | Partie C â Permissions & outils intĂ©grĂ©s : la cage
Câest la partie la plus importante de la session. Ralentissez.
Concepts clés :
-
Le catalogue dâoutils intĂ©grĂ©s (Chapitre 13). Faites construire le tableau avec la salle, par niveau de risque croissant :
Outil Fonction Risque Permission typique ReadLire un fichier Faible (fuite dâinfo possible) Souvent auto-acceptĂ© LSLister un rĂ©pertoire Faible Auto-acceptĂ© GlobTrouver des fichiers par motif Faible Auto-acceptĂ© GrepChercher dans les contenus Faible Auto-acceptĂ© TodoRead/TodoWriteGĂ©rer la liste de tĂąches interne NĂ©gligeable Auto-acceptĂ© WebFetchRĂ©cupĂ©rer une page web Moyen (exfiltration, contenu non fiable) Validation recommandĂ©e WriteCrĂ©er/Ă©craser un fichier ĂlevĂ© Validation Edit/MultiEditModifier un/plusieurs fichiers ĂlevĂ© Validation ou motifs ciblĂ©s BashExĂ©cuter une commande shell Critique Validation systĂ©matique ou liste blanche fine mcp__*Outils MCP externes (serveurs Model Context Protocol) Variable â dĂ©pend du serveur Au cas par cas -
Le modĂšle allow/deny. Dans
.claude/settings.json, la clĂ©allowedToolsdĂ©finit ce qui est autorisĂ© sans confirmation. La granularitĂ© descend jusquâau motif de commande :Bash(npm test)autorise exactementnpm test,Bash(git diff:*)autorise les variantes degit diff. Tout ce qui nâest pas explicitement permis dĂ©clenche une demande de confirmation interactive â ou un refus en mode headless (point crucial pour la Partie E). -
Exemple canonique Ă projeter :
{
"permissions": {
"allow": [
"Read", "Glob", "Grep", "LS",
"Bash(npm test:*)",
"Bash(git diff:*)",
"Bash(git log:*)",
"Edit"
],
"deny": [
"Bash(rm:*)",
"Bash(git push:*)",
"WebFetch"
]
}
}
â La syntaxe exacte du fichier de settings Ă©volue avec les versions de Claude Code â vĂ©rifiez la documentation officielle avant la session et adaptez la slide si nĂ©cessaire. La logique (allow explicite, deny prioritaire, motifs par prĂ©fixe) est stable et câest elle qui est testĂ©e en certification.
-
Principe dâarchitecte : le
denylâemporte toujours sur leallow. On raisonne en trois cercles : lecture libre (explorer ne coĂ»te rien), Ă©criture surveillĂ©e (modifications validĂ©es ou ciblĂ©es), exĂ©cution verrouillĂ©e (le shell est une surface dâattaque totale âBashnon contraint Ă©quivaut Ă donner un accĂšs SSH). -
Ce que Claude Code ne peut PAS faire : sortir du rĂ©pertoire de travail sans permission, exĂ©cuter quoi que ce soit sans passer par ses outils dĂ©clarĂ©s, masquer une action (tout appel dâoutil est visible et journalisable via hooks). Mais rappelez le vecteur dâattaque n°1 : lâinjection de prompt via le contenu lu (un commentaire de code malveillant, une page
WebFetchpiĂ©gĂ©e peuvent contenir des instructions). Les permissions sont la dĂ©fense : mĂȘme manipulĂ©, lâagent ne peut pas exĂ©cuter ce qui est refusĂ©.
Activité (5 min) : configurateur de permissions de la page web. Scénario : « Claude Code doit faire de la revue de code en CI, lecture seule + commentaires ». La salle choisit les outils, la page génÚre le settings.json. Réponse attendue : Read/Glob/Grep/LS seulement, tout le reste en deny.
Question type certification : « Un pipeline CI utilise Claude Code en headless pour gĂ©nĂ©rer des tests. Quel ensemble minimal dâoutils faut-il autoriser ? » â Read, Glob, Grep, LS (exploration), Write ou Edit (crĂ©er les fichiers de test), Bash(pytest:*) ou Ă©quivalent (vĂ©rifier que les tests passent). Rien dâautre. Chaque outil superflu est un point perdu.
1:30 â 1:45 | Partie D â Hooks : les camĂ©ras de surveillance
Concepts clés :
-
DĂ©finition. Un hook est un script Ă vous que Claude Code exĂ©cute automatiquement Ă des moments prĂ©cis du cycle de vie. Contrairement au prompt (que le modĂšle peut mal interprĂ©ter), un hook est dĂ©terministe : il sâexĂ©cute toujours, exactement comme Ă©crit.
-
Les quatre événements :
PreToolCallâ avant chaque appel dâoutil. Peut bloquer lâappel (garde-fou). Ex. : refuser toutBashcontenantDROP TABLE.PostToolCallâ aprĂšs chaque appel dâoutil. Ne bloque pas, mais observe et rĂ©agit. Ex. : lancer le formateur de code aprĂšs chaqueEdit.Notificationâ quand Claude Code a besoin dâune attention humaine (demande de permission, question). Ex. : envoyer un message Slack.Stopâ quand lâagent termine sa rĂ©ponse/sa tĂąche. Ex. : jouer un son, dĂ©clencher la suite du pipeline, archiver le journal de session.
-
Cas dâusage dâarchitecte (les trois familles) :
- Garde-fous (PreToolCall) : politiques de sĂ©curitĂ© inviolables, complĂ©mentaires aux permissions â les permissions disent quels outils, les hooks disent quelles utilisations de ces outils.
- Automatisation qualité (PostToolCall) : lint/format automatique, vérification que les fichiers modifiés compilent.
- ObservabilitĂ© (tous) : journal dâaudit complet de chaque action de lâagent â exigence frĂ©quente en environnement rĂ©gulĂ©. Reliez au contexte des participants : dans une banque, ce journal est ce que lâauditeur demandera.
-
Sémantique de blocage : un hook
PreToolCallqui sort avec un code dâĂ©chec (et/ou un message) empĂȘche lâappel et renvoie lâexplication au modĂšle, qui peut ajuster sa stratĂ©gie. Câest un dialogue, pas juste un mur.
Ă dire :
« Retenez la division du travail :
CLAUDE.md= ce que lâagent devrait faire (persuasion). Permissions = ce quâil peut faire (capacitĂ©). Hooks = ce qui se passe quand il agit (contrĂŽle et rĂ©action). Un architecte certifiĂ© sait choisir le bon niveau : on ne met pas dans le prompt ce qui doit ĂȘtre un hook, et on ne met pas dans un hook ce qui doit ĂȘtre une permission. »
Question type certification : « LâĂ©quipe sĂ©curitĂ© exige quâaucune commande contenant curl vers un domaine externe ne soit jamais exĂ©cutĂ©e, mĂȘme si lâutilisateur lâapprouve. Prompt, permission ou hook ? » â Hook PreToolCall (inspection du contenu de la commande + blocage inconditionnel). Une permission deny Bash(curl:*) est aussi dĂ©fendable â excellente occasion de dĂ©battre : la permission bloque tout curl, le hook permet une logique fine (curl interne OK, externe non).
1:45 â 2:00 | Exercice 3 (dĂ©marrage) â Concevoir un systĂšme de hooks
Voir feuille dâexercices. Travail sur papier/Ă©diteur : concevoir les hooks dâun environnement rĂ©gulĂ©. Pas besoin dâexĂ©cuter â lâexercice Ă©value le design : choix de lâĂ©vĂ©nement, logique de filtrage, action.
Circulation : lâerreur classique est de tout mettre en PreToolCall. Poussez Ă justifier : « pourquoi ce contrĂŽle avant plutĂŽt quâaprĂšs ? Quâest-ce que ça coĂ»te en latence ? »
2:00 â 2:15 | Partie E â Mode headless & CI/CD : lâemployĂ© du pipeline
Concepts clés :
-
Le mode headless.
claude -p "instruction"(ou--print) exĂ©cute la tĂąche sans interface interactive : Claude Code reçoit lâinstruction, agit, imprime le rĂ©sultat, se termine. Code de sortie exploitable par le pipeline. -
ConsĂ©quence critique : en headless, personne ne clique sur âautoriserâ. Toutes les permissions doivent ĂȘtre prĂ©-accordĂ©es dans
settings.json(ou via les flags de permission en ligne de commande). Un outil non autorisĂ© = action refusĂ©e = tĂąche potentiellement incomplĂšte. DâoĂč la rĂšgle dâor : calibrer les permissions headless au strict nĂ©cessaire de la tĂąche, et rien de plus â câest un agent sans surveillance humaine. -
Les trois patterns dâintĂ©gration Ă connaĂźtre pour la certification :
a) Revue automatique de PR. DĂ©clencheur : ouverture/mise Ă jour dâune PR. Le job checkout le code, lance
claude -p "RĂ©vise ce diff : bugs, sĂ©curitĂ©, conventions du CLAUDE.md. Formate en Markdown."avec des permissions lecture seule +Bash(git diff:*). La sortie est postĂ©e en commentaire de PR via lâAPI de la forge (GitHub/GitLab). Point dâarchitecte : la revue IA complĂšte la revue humaine, elle ne la remplace pas â configurez-la comme non bloquante au dĂ©but.b) GĂ©nĂ©ration de tests. DĂ©clencheur : baisse de couverture ou demande manuelle. Permissions : lecture +
Write(limitĂ© au dossiertests/si possible via hook !) +Bash(pytest:*). Le job commit les tests sur une branche et ouvre une PR â jamais de push direct sur main. VoilĂ un mariage parfait permission + hook :WriteautorisĂ©, hookPreToolCallqui vĂ©rifie que le chemin commence partests/.c) Mise Ă jour de documentation. DĂ©clencheur : merge sur main. Claude Code compare le code et la doc, met Ă jour les sections pĂ©rimĂ©es, ouvre une PR de doc. Permissions : lecture +
Editsurdocs/. -
Gestion des coûts en CI :
- Chaque run consomme des tokens : suivez
/costen interactif, et en CI, plafonnez (limite de tours, timeout du job). - Le prompt caching (mise en cache des préfixes de prompt) réduit fortement le coût des sessions longues : le
CLAUDE.mdet le contexte stable sont mis en cache, seul le nouveau contenu est facturĂ© au tarif plein. â Les tarifs et taux de rĂ©duction du cache Ă©voluent â donnez lâordre de grandeur (« le token en cache coĂ»te une fraction du token normal ») et renvoyez Ă la grille tarifaire du jour. /compacten session interactive longue : rĂ©sume lâhistorique pour Ă©viter lâengorgement du contexte (et la dĂ©gradation de qualitĂ© qui va avec).
- Chaque run consomme des tokens : suivez
-
Anti-pattern Ă clouer au mur :
--dangerously-skip-permissions(ou tout Ă©quivalent « autorise tout ») dans un pipeline connectĂ© Ă des secrets de production. Si vous devez lâutiliser, câest dans un conteneur jetable, sans rĂ©seau sortant, sans secrets. Un architecte qui met « autorise tout » dans un runner CI avec des credentials AWS a ratĂ© sa certification et son audit de sĂ©curitĂ©.
ActivitĂ© (5 min) : concepteur de pipeline de la page web. Construisez en direct le flux PR â revue Claude â tests â dĂ©ploiement, en configurant chaque Ă©tape (permissions, blocant/non-blocant).
Question type certification : « En mode headless, Claude Code sâarrĂȘte sans terminer car un outil est refusĂ©. Cause la plus probable ? » â Permission manquante dans settings.json : en headless il nây a pas de confirmation interactive possible.
2:15 â 2:25 | Exercice 2 (cadrage) â Pipeline CI/CD
Lancez lâexercice 2 : lecture de lâĂ©noncĂ© ensemble, choix du pattern par binĂŽme, Ă©criture du squelette de workflow. La finition (workflow YAML complet + settings.json + hook) se fait Ă la maison. Annoncez que les productions seront relues en dĂ©but de Session 7.
2:25 â 2:30 | ClĂŽture
- Quiz éclair : 3 questions orales tirées du quiz (Q2, Q5, Q9 recommandées).
- Exit ticket : chaque participant Ă©crit une dĂ©cision dâarchitecture de la session quâil appliquerait dĂšs demain dans son organisation.
- Annonce Session 7 et rappel : Exercice 2 Ă terminer, il sera relu.
4. Questions fréquentes des participants (et réponses)
« Claude Code peut-il dĂ©truire mon dĂ©pĂŽt ? » Avec des permissions par dĂ©faut : non â les actions dâĂ©criture et dâexĂ©cution demandent confirmation, et Git vous protĂšge (tout est rĂ©versible avant push). Avec « autorise tout » et sans Git : oui, comme nâimporte quel script auquel vous donnez les clĂ©s. La rĂ©ponse dâarchitecte : ce nâest pas une question de confiance dans le modĂšle, câest une question de pĂ©rimĂštre de permissions.
« Pourquoi ne pas tout mettre dans CLAUDE.md plutÎt que dans des hooks ? »
Parce que CLAUDE.md est de la persuasion : le modĂšle suit les instructions avec une trĂšs haute probabilitĂ©, mais pas une garantie. Un hook est du code : il sâexĂ©cute Ă 100 %. Les politiques de sĂ©curitĂ© vont dans les hooks/permissions ; les prĂ©fĂ©rences et conventions vont dans CLAUDE.md.
« Le mode headless est-il le mĂȘme binaire ? »
Oui â mĂȘme outil, flag -p/--print. Ce qui change : pas dâinteractivitĂ©, donc pas de confirmations, donc prĂ©-configuration obligatoire.
« Que valent les revues de PR par IA ? » Excellentes pour : bugs Ă©vidents, incohĂ©rences de convention, oublis (gestion dâerreur, cas limites), fautes de documentation. LimitĂ©es pour : pertinence mĂ©tier, choix dâarchitecture de fond. DâoĂč la recommandation : non bloquantes, en complĂ©ment de lâhumain.
« Et les outils MCP (mcp__*) ? »
Chaque serveur MCP connectĂ© expose ses outils sous le prĂ©fixe mcp__nomserveur__nomoutil. Ils entrent dans le mĂȘme modĂšle allow/deny. RĂšgle dâarchitecte : auditer chaque serveur MCP comme une dĂ©pendance de sĂ©curitĂ© (qui lâa Ă©crit ? que fait-il vraiment ?) avant de lâautoriser â câĂ©tait lâobjet de la Session 5.
5. BarÚme et corrigés synthétiques
- Exercice 1 (CLAUDE.md) : /10 â 4 sections (4 pts), commandes exactes (2 pts), 2+ gotchas spĂ©cifiques (2 pts), concision < 100 lignes (2 pts).
- Exercice 2 (CI/CD) : /15 â pattern correctement choisi et justifiĂ© (3 pts), workflow fonctionnellement plausible (4 pts),
settings.jsonau moindre privilĂšge (4 pts), gestion dâĂ©chec/coĂ»ts (2 pts), aucune faute de sĂ©curitĂ© rĂ©dhibitoire (2 pts). Faute rĂ©dhibitoire = « autorise tout » avec secrets : plafonne la note Ă 7. - Exercice 3 (hooks) : /10 â bon Ă©vĂ©nement pour chaque besoin (4 pts), logique de filtrage rĂ©aliste (3 pts), justification prompt vs permission vs hook (3 pts).
- Quiz : /10, corrigé en annexe du quiz. Seuil indicatif de préparation certification : 8/10.
6. Pour aller plus loin (Ă mentionner en clĂŽture)
- Documentation officielle Claude Code (rĂ©fĂ©rence des settings, hooks et flags â Ă consulter Ă jour, lâoutil Ă©volue vite â ).
- Guide de référence du cours, chapitres 5 et 13.
- Exercice bonus : brancher un hook
Notificationsur le canal de messagerie de lâĂ©quipe et mesurer le temps de rĂ©action moyen aux demandes de permission.