Aller au contenu principal

Premiers pas avec /init

Partie théorique

Démarrer Claude Code dans un projet

Pour utiliser Claude Code sur un projet existant, placez-vous dans le répertoire du projet puis lancez la commande claude :

cd mon-projet
claude

Cela ouvre une session interactive. Vous pouvez aussi lui donner une instruction directe sans entrer dans le mode interactif :

claude "Explique la structure de ce projet"
astuce

Lancer claude depuis la racine du projet lui permet de voir tous les fichiers. Évitez de le lancer depuis un sous-dossier, sauf si vous travaillez spécifiquement sur cette partie.

La commande /init

La commande /init analyse automatiquement votre codebase et génère un fichier CLAUDE.md à la racine du projet.

Ce que /init analyse :

  • La structure des fichiers et dossiers
  • Les langages et frameworks utilisés
  • Les dépendances (package.json, composer.json, requirements.txt…)
  • Les patterns de code existants

Ce que /init génère dans CLAUDE.md :

  • Un résumé du stack technique
  • Les commandes pour démarrer, tester et builder le projet
  • Les conventions de code détectées
astuce

Lancez toujours /init au démarrage d'un nouveau projet. Cela évite à Claude Code de redécouvrir le même contexte à chaque session.

Après la génération, éditez le fichier pour ajouter vos propres contraintes et précisions.

Le fichier CLAUDE.md

CLAUDE.md est un fichier Markdown placé à la racine du projet. Il est chargé automatiquement au démarrage de chaque session Claude Code. Il joue le rôle de mémoire permanente du projet.

info

CLAUDE.md n'est PAS un prompt. C'est un fichier de contraintes. Claude Code l'applique automatiquement à chaque code généré.

Vous pouvez avoir plusieurs CLAUDE.md imbriqués : un à la racine du projet, et d'autres dans les sous-répertoires pour des règles spécifiques à certaines parties du code.

Ce qu'on met dans CLAUDE.md :

  • Le stack technique et les versions
  • Les commandes : démarrer, tester, builder
  • Les conventions de nommage et de style
  • Les décisions d'architecture
  • Les fichiers à ne jamais modifier
  • Les problèmes connus et leurs contournements

Exemple de structure de CLAUDE.md :

# Mon Projet

## Stack technique
- PHP 8.2, Symfony 6.4
- MySQL 8.0
- PHPUnit pour les tests

## Commandes
- Démarrer: `symfony serve`
- Tests: `./vendor/bin/phpunit`
- Lint: `./vendor/bin/php-cs-fixer fix`

## Conventions
- snake_case pour les variables
- PSR-12 pour le style de code
- Toujours ajouter des tests pour les nouvelles fonctions
attention

Ne mettez pas de secrets ou de clés API dans CLAUDE.md — ce fichier est commité dans git.

Premier échange avec Claude Code

Une fois dans la session interactive, vous pouvez demander toutes sortes de choses :

  • "Explique le fichier src/Controller/UserController.php" — analyse d'un fichier
  • "Ajoute un test unitaire pour la méthode calculateTotal" — génération de code
  • "Refactorise cette fonction pour la rendre plus lisible" — amélioration du code
  • "Crée une classe PHP User avec les propriétés nom, email, age" — création de code
astuce

Soyez précis dans vos demandes. Précisez le fichier concerné, le comportement attendu, les contraintes. Claude Code est d'autant plus efficace que le contexte est clair.


Exemple pratique

Voici un exemple complet de CLAUDE.md pour un projet PHP Symfony :

# Application de gestion RH

## Stack technique
- PHP 8.2
- Symfony 6.4
- Doctrine ORM
- MySQL 8.0
- PHPUnit 11 pour les tests
- Twig pour les templates

## Commandes
- Démarrer le serveur: `symfony serve -d`
- Arrêter le serveur: `symfony server:stop`
- Tests unitaires: `./vendor/bin/phpunit`
- Tests avec coverage: `./vendor/bin/phpunit --coverage-html coverage/`
- Migrations: `php bin/console doctrine:migrations:migrate`
- Lint PHP: `./vendor/bin/php-cs-fixer fix --dry-run`
- Lint Twig: `php bin/console lint:twig templates/`

## Conventions
- snake_case pour les variables et propriétés
- PascalCase pour les noms de classes
- PSR-12 pour le style de code
- Toujours écrire un test pour chaque nouvelle méthode publique
- Les controllers ne doivent contenir que la logique de routing
- La logique métier va dans les Services (dossier src/Service/)

## Architecture
- src/Controller/ — controllers Symfony
- src/Entity/ — entités Doctrine
- src/Repository/ — repositories Doctrine
- src/Service/ — logique métier
- templates/ — templates Twig

## Fichiers à ne pas modifier
- config/packages/security.yaml — configuration de sécurité validée
- migrations/ — ne jamais modifier les migrations existantes

## Problèmes connus
- Le serveur de dev doit être lancé avec `symfony serve` et non `php -S`
- Les fixtures de test nécessitent `php bin/console doctrine:fixtures:load --env=test`

Test de mémorisation/compréhension


Quelle commande Claude Code scanne le projet et génère CLAUDE.md ?


À quel moment CLAUDE.md est-il chargé par Claude Code ?


Que doit-on éviter de mettre dans CLAUDE.md ?


Peut-on avoir plusieurs fichiers CLAUDE.md dans un même projet ?


Quelle commande permet de lancer Claude Code avec une instruction directe sans entrer en mode interactif ?



TP pour réfléchir et résoudre des problèmes

Créer un CLAUDE.md pour un projet PHP

Dans ce TP, vous allez initialiser Claude Code sur un projet PHP et personnaliser son fichier de contexte.

Étape 1 — Créer la structure du projet

Créez un répertoire mon-projet-php avec quelques fichiers PHP pour simuler un projet réel.

mkdir mon-projet-php
cd mon-projet-php
mkdir src tests

Créez ensuite un fichier src/User.php minimal :

<?php

class User {
public function __construct(
private string $nom,
private string $email,
private int $age
) {}

public function getNom(): string {
return $this->nom;
}
}

Étape 2 — Lancer Claude Code et générer CLAUDE.md

Depuis la racine de mon-projet-php, lancez Claude Code puis utilisez /init :

Étape 3 — Lire le fichier généré

Claude Code a créé un CLAUDE.md automatique. Lisez-le pour voir ce qu'il a détecté :

cat CLAUDE.md

Observez ce que Claude Code a pu détecter : structure des dossiers, langage PHP, absence de dépendances (pas de composer.json).

Étape 4 — Personnaliser CLAUDE.md

Éditez le fichier CLAUDE.md pour ajouter votre stack, vos commandes et vos conventions. Voici les sections à compléter :

Étape 5 — Redémarrer et vérifier

Quittez la session Claude Code (tapez exit ou Ctrl+C), puis relancez-le. Vérifiez que Claude Code mentionne votre contexte dans ses réponses en lui demandant :

"Quelles sont les conventions de nommage de ce projet ?"

Claude Code doit répondre en utilisant les informations de votre CLAUDE.md.

Une solution — CLAUDE.md complet pour un projet PHP