Skip to Content

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.md versionné → 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.