Instructions permanentes de ce projet. Complète le CLAUDE.md global utilisateur. Court par conception : la connaissance vit dans
docs/, les procédures dans.claude/skills/.
docs/*.md= vérité produit. Ne pas coder sans avoir lu les docs concernées.- Lire
docs/00-index.mdavant toute tâche complexe. - Conflit code ↔ doc : signaler, ne pas trancher seul.
- Anti-bloat / YAGNI : le strict nécessaire, propre, lisible. Pas d'abstraction prématurée.
- Doc avant code. Pas de features spéculatives, pas de refacto non demandé.
- Aucune dépendance npm sans justification explicite dans le chat.
- Doute sur l'intention → UNE question ciblée, ne pas deviner.
Jamais doc et code dans le même commit.
docs:— docs / specs d'abord.feat:/fix:/refactor:— code ensuite.
Tout item porte un ID stable B-NNN (jamais réutilisé). Une seule table 🎯 À FAIRE dans docs/06-backlog.md, triée par ID décroissant (récent en haut). Colonnes :
| id | titre | prio | temps | effort | deps | note |
- prio : 🔴 critique · 🟠 haute · 🟡 moyenne · 🟢 basse — colonne à scanner, pas un axe de tri.
- temps : ordre de grandeur (min/h/j) — repère, pas un engagement. effort : faible/moyen/élevé.
- status :
[ ]à faire ·[x]fait ·[-]abandonné ·[?]idée non qualifiée.
Entretien : nouvel item → en haut de la table · item livré → migré en archive compacte · re-tri ID à la demande (pull). [?] = pas d'ID, va en section Idées ; ID figé dès la qualification.
Specs dans todo/specs/spec-B-NNN.md. Chaîne : /spec-feature B-NNN → /implement B-NNN.
À chaque B-NNN livré, toujours dire comment vérifier — mais le format dépend du risque, pas d'une règle uniforme.
Routage selon le risque :
- Cosmétique / dette / renommage → une ligne dans le chat : « va sur X, vérifie Y ». Pas de bloc, pas de fichier.
- Logique métier (calcul, statut dérivé, mutation) → test auto (Vitest ou équivalent), pas un bloc manuel.
- Flux UI à risque (multi-étapes, argent, transversal) → bloc ⚡ TEST complet (ci-dessous), écrit dans
todo/tests/test-B-NNN.mduniquement si un audit/playwright-auditest prévu ; sinon le bloc reste dans le chat (éphémère).
Légende : ▶ action · ◀ résultat attendu · ◴ temps/attente · ↻ recharger · ⨉ test négatif (ne doit PAS arriver) · ✓ scénario validé · ⚑ pré-requis · ● point d'attention.
Format du bloc (condensé — 1 ligne par clic) :
⚡ TEST — B-NNN Titre
⚑ [pré-requis : migration / seed · commande de lancement → URL locale]
▶ [action] ◀ [attendu] ↻ [recharge] ◀ [état conservé] ⨉ [cas interdit] ◀ [n'apparaît pas] ● [piège éventuel]
- Glossaire :
CONTEXT.md(racine) — à charger à chaque session - Decisions log :
docs/07-decisions-log.md— formatD_XXX, append-only - Backlog / tracker :
docs/06-backlog.md— formatB-NNN - Specs :
todo/specs/spec-B-NNN.md - Handoffs :
todo/handoffs/YYYYMMDD-sujet.md - Archives :
zarchives/YYYYMMDD-slug.md— figées, ne jamais modifier
- Difficile à reverser
- Surprenante sans contexte
- Issue d'un vrai trade-off
Si un critère manque → pas d'entrée.
Pour appliquer une méthode, on invoque le skill — sa description suffit à le déclencher.
| Besoin | Skill |
|---|---|
| Cadrer 1 item backlog avant de coder | /spec-feature B-NNN |
| Coder 1 item spécifié | /implement B-NNN |
| Créer/mettre à jour la spec d'une vue (source vérité) | /spec-module <nom> |
| Relire UI ou code avant commit | /review |
| Intégrer une décision dans les docs (sans coder) | /integrate-decision |
| Réflexion amont / vision / glossaire | /grill-with-docs |
| Diagnostiquer un bug difficile | /diagnose |
| Sauvegarder / relayer la session en cours | /handoff |
| Hygiène repo (liens morts, refs croisées…) | /repo-audit |
| Auditer un B-NNN livré (bloc ⚡ TEST → rapport HTML) | /playwright-audit B-NNN |
| Piloter un navigateur / tester des pages | /playwright-cli |
- Lire
CONTEXT.mdsystématiquement. - Vérifier si des fichiers existent dans
todo/handoffs/.- Si oui : lister les fichiers disponibles et demander lequel charger.
- Charger le fichier choisi, confirmer à l'utilisateur.
- Ne pas supprimer — attendre le premier commit réussi de la session.
- Si le contexte approche la saturation en cours de session :
proposer
/handoffavant tout compactage automatique.
- En cours →
todo/· Terminés →zarchives/YYYYMMDD-nom.md· Support stable →resources/. - Jamais de fichier de travail à la racine ou dans
docs/.
todo/ est une salle d'attente entre sessions — elle doit tendre vers le vide.
| Fichier | Naît quand | Meurt quand |
|---|---|---|
todo/specs/spec-B-NNN.md |
/spec-feature crée la spec |
/implement termine + commit réussi → suppression |
todo/tests/test-B-NNN.md |
/implement génère le bloc TEST |
/playwright-audit validé → suppression manuelle |
todo/handoffs/YYYYMMDD-sujet.md |
/handoff sauvegarde la session |
Commit réussi dans la session de reprise → suppression |
Si des fichiers s'accumulent dans todo/ → signal de features en suspens, pas une archive.
- Avant
git push: mettre à jourREADME.mdsi un fichier doc/config a été ajouté, renommé, supprimé, ou si la stack a changé.
| Besoin | Fichier |
|---|---|
| Vision / business | docs/01-product-brief.md |
| Ce que l'app fait | docs/02-functional-spec.md |
| Données | docs/03-data-model.md |
| UI / couleurs / layout | docs/04-ui-ux-guidelines.md |
| Stack / archi | docs/05-technical-architecture.md |
| Quoi faire ensuite | docs/06-backlog.md |
| Pourquoi c'est fait ainsi | docs/07-decisions-log.md |
| Décisions design globales (UI/UX) | docs/08-design-decisions.md |
| Guide des skills du projet | docs/reference/skills.md |