Chapitre 14.2 — Templates CLAUDE.md
⏱️ TL;DR — Deux templates de
CLAUDE.mdà copier : un racine (projet Next.js/React) et un de dossier. Ils appliquent les principes de la Partie 3 : court, priorisé, prescriptif, tranchable. Adapte, élague ce que ton agent fait déjà bien, marque[hook]ce que tu automatiseras.
Template racine — Next.js / React / TS (→ 3.2)
# <Projet> — Guide agent
> Ce que l'agent doit savoir en PERMANENCE. Court par choix.
> Archi détaillée → docs/. Décisions → docs/adr/.
## Non négociable (violé = ça casse)
- **TypeScript strict.** `any` interdit → `unknown` + narrowing. [hook: lint]
- **Mutations** : uniquement via server actions dans `<feature>/actions.ts`.
Jamais de mutation dans un composant client.
- **Validation** : chaque entrée serveur via son schéma Zod (`schema.ts`), partagé client/serveur.
- **UI réutilisable** : uniquement `src/components/ui/`, via `@/components/ui`.
Toute nouvelle primitive suit `src/components/ui/button.tsx` (le modèle).
## Conventions
- **Dossiers** : `src/features/<feature>/` = { queries.ts, actions.ts, schema.ts, components/ }.
- **Imports** : alias `@/`. Interdit : `../../..`.
- **Couleurs/espacements** : tokens sémantiques (`bg-brand`, `text-muted`, `rounded-card`).
Interdit : hex en dur, classes arbitraires `[...]`. [hook: lint]
- **Erreurs** : typées, remontées à l'appelant, jamais avalées.
## Data
- Lecture serveur via `queries.ts` (fonctions pures autour de <ORM>).
- Pas de requête <ORM> directe dans un composant/route ; passe par la feature.
## Vérifier avant de conclure
- `npm run lint && npm run typecheck && npm test && npm run build`. [hook: Stop]
## Ce qu'on N'utilise PAS (ne pas introduire sans validation)
- Pas de <lib de state global>. Pas de <lib de composants lourde>.
- Pas de <feature exclue v1, ex. temps réel>.Template de dossier (→ 3.5)
Dans src/features/CLAUDE.md (ou tout dossier au contrat local fort) :
# Règles des features
Chaque feature = `src/features/<nom>/` avec :
- `queries.ts` — lecture seule (fonctions pures). AUCUN effet de bord.
- `actions.ts` — mutations (server actions), valident via `schema.ts` avant d'écrire.
- `schema.ts` — schémas Zod de l'entité, exportés pour le client.
- `components/` — UI de la feature ; le réutilisable monte dans `@/components/ui`.
Interdit : importer <ORM> directement depuis un composant ou une route.Template global (perso) — ~/.claude/CLAUDE.md (→ 3.1)
Tes préférences transverses, sur tous tes projets :
# Préférences globales
- Réponds en français.
- Va droit au but ; montre le code réel, nomme les fichiers.
- Avant de conclure une tâche non triviale, montre la preuve (tests / flux exercé).
- Ne modernise pas l'existant sans que je le demande.
- Messages de commit : concis, expliquent le POURQUOI (pas juste le quoi).⚠️ Rappel — Ne mets pas de secrets ni de chemins propres à ta machine dans un
CLAUDE.mdversionné →CLAUDE.local.md. Et élague régulièrement : si l’agent fait déjà bien sans une ligne, supprime-la (3.2).
Recette suivante : Snippets de hooks.