
Après l’installation de Claude Code CLI, l’étape la plus utile est de créer un dépôt d’entraînement unique. Ce guide vous fait construire lab-claude, un projet volontairement petit avec FastAPI, uv, Ruff et pytest. L’objectif est d’avoir une base stable pour toute la série: mêmes fichiers, mêmes commandes de validation, mêmes réflexes de cadrage. Vous n’apprenez pas FastAPI en profondeur ici. Vous mettez en place un terrain de pratique reproductible.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Créer l’arborescence minimale du dépôt
lab-claude - Initialiser un projet Python avec
uv - Ajouter un endpoint
/healthtestable - Vérifier rapidement
uv run ruff check .etuv run pytest -q - Utiliser ce dépôt comme fil rouge dans les guides suivants
Pourquoi un dépôt d’entraînement unique accélère l’apprentissage
Section intitulée « Pourquoi un dépôt d’entraînement unique accélère l’apprentissage »Ce guide intervient juste après l’installation de la CLI. Il répond à un problème pédagogique simple: si vous changez de dépôt en cours de parcours, vous perdez du temps et de la clarté.
Situations concrètes où ce fil rouge vous aide:
- Vous débutez et vous voulez un support stable à chaque exercice
- Vous voulez comparer vos progrès d’un guide à l’autre sans changer de contexte
- Vous voulez valider rapidement chaque modification avec les mêmes commandes
Prérequis
Section intitulée « Prérequis »- Claude Code CLI installé et opérationnel
- Python 3.12+ disponible
uvinstallé- Un terminal local
Structure cible du projet
Section intitulée « Structure cible du projet »lab-claude/├── README.md├── pyproject.toml├── app/│ └── main.py├── tests/│ └── test_health.py└── .gitignoreÉtape 1 : créer le dossier et initialiser Git
Section intitulée « Étape 1 : créer le dossier et initialiser Git »-
Créez le dossier de travail
Fenêtre de terminal mkdir -p ~/Projets/lab-claudecd ~/Projets/lab-claudegit init -
Vérifiez que vous êtes au bon endroit
Fenêtre de terminal pwd
Étape 2 : initialiser le projet Python avec uv
Section intitulée « Étape 2 : initialiser le projet Python avec uv »Créez le projet en mode simple et préparez la structure applicative.
uv init --python 3.12mkdir -p app testsCréez un .gitignore minimal:
cat > .gitignore << 'EOF'.venv/__pycache__/.pytest_cache/.ruff_cache/EOFÉtape 3 : ajouter les dépendances
Section intitulée « Étape 3 : ajouter les dépendances »Installez les dépendances d’exécution et de validation.
uv add fastapiuv add --dev pytest ruffÉtape 4 : créer une API minimale
Section intitulée « Étape 4 : créer une API minimale »Créez app/main.py.
from fastapi import FastAPI
app = FastAPI()
@app.get("/health")def health() -> dict[str, str]: return {"status": "ok"}Créez tests/test_health.py.
from fastapi.testclient import TestClient
from app.main import app
client = TestClient(app)
def test_health() -> None: response = client.get("/health") assert response.status_code == 200 assert response.json() == {"status": "ok"}Étape 5 : valider le projet immédiatement
Section intitulée « Étape 5 : valider le projet immédiatement »Lancez les deux commandes qui serviront de référence dans toute la série.
uv run ruff check .uv run pytest -qRésultat attendu:
- Ruff ne remonte pas d’erreur
- pytest passe au vert
Étape 6 : lancer une première session Claude sur ce dépôt
Section intitulée « Étape 6 : lancer une première session Claude sur ce dépôt »Vous pouvez maintenant démarrer une session Claude en restant sur ce fil rouge.
cd ~/Projets/lab-claudeclaudePremier prompt conseillé:
Lis app/main.py et tests/test_health.py.Résume en 6 points maximum la structure du projet.Ne modifie aucun fichier.Erreurs fréquentes
Section intitulée « Erreurs fréquentes »| Symptôme | Cause probable | Correction |
|---|---|---|
uv: command not found | uv non installé | Installer uv, puis relancer les commandes |
ModuleNotFoundError au test | Dépendances incomplètes | Rejouer uv add fastapi et uv add --dev pytest ruff |
| Ruff remonte une erreur | Fichier mal indenté ou import inutile | Corriger le fichier puis relancer uv run ruff check . |
pytest échoue sur /health | Route ou assertion incorrecte | Vérifier app/main.py et tests/test_health.py |
À retenir
Section intitulée « À retenir »- Un fil rouge unique simplifie fortement l’apprentissage de Claude Code
lab-claudedoit rester petit, lisible et rapidement testable- Le duo
ruff+pytestest votre garde-fou de base - Vous poserez rapidement un
CLAUDE.mdà la racine pour ne plus redire les conventions à chaque session - Vous pouvez maintenant garder le même dépôt dans toute la phase débutant