CLAUDE.md — Template pour projets AI/Data
Le fichier CLAUDE.md à la racine de ton repo est lu automatiquement par Claude Code au démarrage de chaque session. Cursor utilise .cursor/rules. C'est ta mémoire persistante de projet.
Template complet (à adapter)
# Project Rules
## Stack & Environnement
- Python 3.11+, uv pour le package management
- Pydantic v2 pour la validation de données
- Ruff pour le linting, Pyright pour le typage
- PostgreSQL 16 + pgvector pour les embeddings
- Docker Compose pour les services locaux
## Conventions de code
- Typing strict sur toutes les fonctions (paramètres + return type)
- Docstrings uniquement si la logique est non-évidente
- Noms de variables en snake_case, classes en PascalCase
- Pas de commentaires qui répètent ce que le code dit déjà
## Modèles dbt (si applicable)
- Modèles intermédiaires : préfixe int_
- Modèles marts : préfixe mart_
- Toujours ajouter unique + not_null tests sur les PKs
- Sources documentées dans sources.yml
## Tests
- pytest + fichiers test_*.py
- Couvrir au moins 3 cas : cas nominal, cas vide, cas erreur
- Tests d'intégration dans tests/integration/ séparés des units
- Fixtures dans conftest.py
## Sécurité
- Jamais de credentials hardcodés — utiliser .env + python-dotenv
- Variables sensibles dans .env.example avec des valeurs fictives
- .env dans le .gitignore (toujours)
## Comportement de l'agent
- Avant de coder, proposer 2-3 approches architecturales
- Toujours inclure un rollback plan pour les changements DB
- Si une décision est ambiguë, demander plutôt qu'inventer
- Préférer la lisibilité à la performance (sauf si mesuré)
- Ne pas modifier de fichiers hors du périmètre demandé
Version minimaliste
# Project Rules
## Stack
[Ta stack en 5 lignes]
## Ce que l'agent ne doit PAS faire
- Modifier les migrations sans confirmation
- Supprimer du code sans vérifier qu'il est inutilisé
- Inventer des valeurs par défaut pour les configs
Tips
Cursor → .cursor/rules à la racine (ou cursorrules selon la version).
Claude Code → CLAUDE.md à la racine ou .claude/CLAUDE.md. Les deux sont lus.
Auto-génération → Lance /init dans Claude Code pour qu'il génère une première version basée sur ton repo.
Par dossier → Tu peux avoir un CLAUDE.md dans chaque sous-dossier pour des règles spécifiques (ex: /frontend/CLAUDE.md pour les règles React).