Claude Code

Où vit chaque consigne, le moteur de skills, les permissions, les hooks et le contexte.

Version texte pour agents : /md/claude-code.md

Claude Code n'est pas une collection de commandes à mémoriser, c'est un jeu de contrôles. La seule question utile : quel problème est-ce que je cherche à résoudre ?

Où vit chaque consigne

Ce que tu veuxOù ça vit
Que l'agent le sache toujoursAGENTS.md (et CLAUDE.md qui pointe vers lui)
Une façon répétée de travaillerun skill
Que ça arrive à coup sûrun hook
Que ça n'arrive jamaisune permission deny, ou un hook qui refuse
Une demande ponctuellele prompt
Un système extérieur (GitHub, base, suivi d'erreurs)un serveur MCP
Une enquête qui ne doit pas encombrer la sessionun sous-agent
Deux chantiers en parallèle sans se marcher dessusun worktree

Mettre une règle au mauvais endroit est l'erreur la plus fréquente : une interdiction écrite dans AGENTS.md sera oubliée un jour, la même en deny ne le sera jamais (MF-015, principe 4 du manifeste).

Le moteur : les skills

Installés depuis JavaScript-Mastery-Pro/skills, plus /flow fourni par Maedow Flow.

SkillCe qu'il faitCe qu'il écritMoment du cycle
/scopequoi construire, dans quel ordre, à quel palierdocs/scope/phase 0, puis après chaque lot
/architectles décisions structurantes, options peséesdocs/specs/phase 1, étape 2 de la boucle
/developconstruit depuis la spec et AGENTS.mdle codeétape 3
/check verifyfait tourner l'application et constaterienétape 4
/testles tests des fichiers modifiés*.test.*étape 5
/check reviewrelecture par un autre modèledocs/reviews/étape 6
/documentdescription de PR, changelog, notes de version, postmortemselon le typeétape 7, phases 3 et 4
/syncremet le contexte à jour après un lotAGENTS.md, scopeétape 9
/auditécrit le contexte initial d'un projetAGENTS.mdphase 1, projet existant
/debugtrouve la cause racine, corrige au minimumla correctionquand ça casse
/flowinstalle, contrôle et protège le kit Maedow Flowles fichiers du kitphase 1, contrôles

Trois frottements connus, et ce qui l'emporte :

  • /develop propose des messages de commit en anglais au format Conventional Commits, avec un trailer Co-Authored-By. MF-017 l'emporte : phrase française au présent, aucun trailer. Le hook commit-msg refuse le trailer si la consigne est oubliée.
  • /develop crée ses branches depuis la branche courante. Pars toujours de develop à jour.
  • Les skills lisent des titres de section précis dans AGENTS.md (## Stack, ## Build approach, ## Commands, ## Git, ## Context files). Ces titres restent en anglais dans le template, exprès : les traduire casserait la lecture.

AGENTS.md

Ce qui y entre : la stack décidée, les commandes, les conventions qui ne se lisent pas dans le code, les pièges, les règles du produit qui ne se négocient pas. Ce qui n'y entre pas : ce que l'agent découvre en lisant le dépôt, les généralités, l'historique des décisions (il est dans docs/specs/).

/audit l'écrit, /sync le tient à jour. Après un plan approuvé qui fixe une convention durable : « Mets à jour AGENTS.md avec les conventions du plan approuvé. Reste court. N'ajoute rien que le code dise déjà. »

Un AGENTS.md imbriqué (src/payments/AGENTS.md) se justifie pour une zone qui a ses propres conventions ou ses pièges, jamais par dossier.

Permissions

Le kit pose .claude/settings.json :

  • allow : lecture git (status, diff, log, branch), add, commit, switch, et les scripts du projet (verify, lint, typecheck, test, build, dev).
  • ask : git push, gh pr create, gh pr merge, l'installation de dépendances.
  • deny : lecture et écriture des fichiers d'environnement réels (MF-006).

Shift+Tab fait tourner les modes. Mode Plan pour tout ce qui est structurel ; « accepter les modifications » pendant /develop, puisque la branche et les hooks bornent les dégâts ; mode manuel quand on touche à quelque chose de sensible.

Hooks

Le kit en installe un, .claude/hooks/garde.mjs, qui s'exécute avant chaque commande shell de l'agent :

CommandeDécisionRègle
git commit sur main ou developrefusMF-003
git push vers main ou developrefusMF-003
git push --forcerefusMF-016
--no-verify, core.hooksPath modifiérefusMF-016
git push --force-with-lease, git reset --hard, git clean -fdemandeMF-016
rm -rf, Remove-Item -RecursedemandeMF-016
DROP, TRUNCATE, suppression de branche distantedemandeMF-016

Un formatage automatique après chaque modification est un bon ajout par projet, à condition de ne formater que le fichier modifié : formater tout le dépôt à chaque édition noie le diff et ralentit tout.

Mode Plan

À utiliser pour : schéma de données et migrations, authentification, paiement, permissions, refonte large, code inconnu, tout ce qui touche plusieurs systèmes. À éviter pour : changer un texte, renommer une variable, corriger une marge.

Un plan se conteste avant de s'approuver. Trois questions suffisent souvent : « Qu'est-ce qui casse dans le code existant si on fait ça ? », « Quelle est la version la plus simple qui tient les critères ? », « Pourquoi cette brique, et quelle mesure la justifie ? ». Un plan trop ambitieux se ramène au besoin : voir Prompts.

Modèle et effort

Deux réglages indépendants : /model choisit le cerveau, /effort dit combien il réfléchit.

TravailModèleEffort
Renommer, formater, CRUD de routine, tests simplesrapidebas
Construire une feature décidéefortmoyen
Architecture, schéma, sécurité, revue approfondiele plus forthaut
Bug de concurrence, bug intermittent, fuite de donnéesle plus fortmaximal

Contexte

SituationGeste
Sujet sans rapport avec le précédent/clear
Même sujet, conversation trop longue/compact garde les décisions de schéma et les problèmes ouverts
L'agent oublie, se répète, cite des décisions périmées/context pour voir ce qui occupe l'attention
Essayer une autre voie sans perdre celle-ci/branch <nom>
L'agent est parti dans la mauvaise directionEsc Esc, ou /rewind
Une question à côté, sans polluer la session/btw <question>
Reprendre le travail de la veilleclaude -c, ou /resume

Entre deux features : /sync, puis /clear. La mémoire est dans le dépôt (principe 6), la conversation peut repartir de zéro.

Sous-agents

Un sous-agent, c'est un contexte séparé, une tâche ciblée, et un résultat rendu à la session principale. Trois usages rentables :

  1. Enquêtes parallèles avant une décision : un sous-agent par question indépendante (le modèle de données, le parcours existant, la couverture de tests), chacun rendant comportement actuel, fichiers concernés, risques et recommandation.
  2. Relecture fraîche d'une feature finie (MF-011).
  3. Vérification d'un constat : un relecteur peut se tromper. Un sous-agent neuf reproduit le problème avant que quiconque le corrige.

Les formulations sont dans Prompts.

Worktrees, /batch et arrière-plan

  • claude -w <nom> ouvre une session dans un worktree isolé : deux lots avancent sans éditer les mêmes fichiers.
  • /batch <changement> découpe un changement mécanique et divisible (migrer des tests, remplacer une API dépréciée partout) en unités confiées à des agents en worktree, chacune avec sa pull request. Pas pour une feature dont les décisions sont liées, comme un tunnel de paiement.
  • /bg <consigne> détache la session pour qu'elle continue sans le terminal ; claude agents montre toutes les sessions en cours.

Skills de projet

Le signal : la troisième fois que tu tapes la même suite de consignes. Le skill vit dans .claude/skills/<nom>/SKILL.md, versionné avec le projet.

---
description: Construit ou modifie une page client en réutilisant le design system,
  les composants existants et les conventions responsives du projet. À utiliser pour
  toute page ou section visible par les clients.
---

Construis : $ARGUMENTS

1. Inspecte la page actuelle et les composants voisins.
2. Cherche un composant réutilisable avant d'en créer un.
3. Suis les jetons de typographie, d'espacement et de couleur.
4. Garde le changement centré sur la demande.
5. Lance l'application et vérifie le rendu, bureau et mobile.
6. Lance `verify`. Résume ce qui a changé.

La description est ce qui décide quand l'agent déclenche le skill : elle dit quoi et quand, concrètement. Un skill s'emploie là où ses consignes s'appliquent, et pas ailleurs : un skill d'interface client n'a rien à faire sur un écran d'administration.

MCP

Aucun serveur MCP n'est imposé. La liste dépend de la stack que /architect a décidée pour le projet, pas de ce workflow. Un serveur se branche quand le projet s'en sert, et le signal est simple : tu te surprends à recopier régulièrement des informations d'un service dans la conversation.

BesoinExemples, selon la stack du projet
La documentation à jour des bibliothèques (MF-013)Context7, ou la documentation officielle consultée directement
Le dépôt, les pull requests, les revuesle serveur de ton hébergeur de code (GitHub, GitLab…)
La base de donnéescelui de ta base ou de ton BaaS (Supabase, Neon…)
Les déploiements et leurs journauxcelui de ton hébergeur (Vercel, Netlify…)
Les erreurs et l'analytiquecelui de ton outil d'observabilité (PostHog, Sentry…)
Les maquettescelui de ton outil de design (Figma…)
Les builds mobilescelui de ta chaîne mobile (Expo…)

Un serveur branché élargit ce que l'agent peut faire. N'en branche pas un « au cas où », et donne-lui les droits les plus étroits qui suffisent au besoin.

Au quotidien

/diff avant d'accepter, /review et /security-review avant de fusionner, @chemin/fichier pour désigner exactement ce qui compte, !commande pour lancer une commande toi-même dans la conversation, /doctor quand Claude Code lui-même se comporte mal.

Sur cette page