create-go-plate 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/LICENSE +21 -0
  3. package/README.md +345 -2
  4. package/bin/create.mjs +198 -0
  5. package/modules/ai/docs/AI.md +20 -0
  6. package/modules/ai/evals/README.md +10 -0
  7. package/modules/ci-github/.github/dependabot.yml +8 -0
  8. package/modules/ci-github/.github/workflows/ci.yml +38 -0
  9. package/modules/claude/.claude/hooks/format.mjs +37 -0
  10. package/modules/claude/.claude/hooks/lib.mjs +32 -0
  11. package/modules/claude/.claude/hooks/protect-files.mjs +69 -0
  12. package/modules/claude/.claude/hooks/session-start.mjs +50 -0
  13. package/modules/claude/.claude/settings.json +61 -0
  14. package/modules/claude/.mcp.json +12 -0
  15. package/modules/claude/CLAUDE.md +13 -0
  16. package/package.json +40 -4
  17. package/template/.claude/agents/reviewer.md +25 -0
  18. package/template/.claude/agents/test-writer.md +19 -0
  19. package/template/.claude/skills/audit-securite/SKILL.md +23 -0
  20. package/template/.claude/skills/cadrage/SKILL.md +81 -0
  21. package/template/.claude/skills/fin-de-session/SKILL.md +28 -0
  22. package/template/.claude/skills/spec/SKILL.md +36 -0
  23. package/template/.claude/skills/stress-test/SKILL.md +25 -0
  24. package/template/.editorconfig +18 -0
  25. package/template/.env.example +7 -0
  26. package/template/AGENTS.md +98 -0
  27. package/template/README.md +62 -0
  28. package/template/TASKS.md +16 -0
  29. package/template/docs/ARCHITECTURE.md +38 -0
  30. package/template/docs/DESIGN.md +37 -0
  31. package/template/docs/PRD.md +38 -0
  32. package/template/docs/RULES.md +31 -0
  33. package/template/docs/SECURITY.md +43 -0
  34. package/template/docs/SESSION-LOG.md +15 -0
  35. package/template/docs/TESTING.md +34 -0
  36. package/template/docs/decisions/0000-template.md +16 -0
  37. package/template/docs/decisions/README.md +8 -0
  38. package/template/docs/specs/README.md +12 -0
  39. package/template/docs/specs/_template/plan.md +27 -0
  40. package/template/docs/specs/_template/spec.md +23 -0
  41. package/template/docs/specs/_template/tasks.md +8 -0
  42. package/template/gitignore +30 -0
  43. package/template/src/README.md +9 -0
@@ -0,0 +1,98 @@
1
+ # AGENTS.md — Instructions pour l'agent
2
+
3
+ <!--
4
+ Source de vérité unique pour TOUS les agents de code (Claude Code, Codex, Cursor, Copilot, Gemini…).
5
+ CLAUDE.md se contente d'importer ce fichier.
6
+
7
+ Ce fichier est chargé à CHAQUE session : garde-le court (idéalement < 150 lignes).
8
+ Le détail va dans docs/ ; ici, uniquement ce que l'agent doit savoir en permanence.
9
+ Il est rempli par la skill /cadrage (ou à la main en suivant les commentaires).
10
+ -->
11
+
12
+ ## Statut du cadrage
13
+
14
+ **NON FAIT**
15
+
16
+ <!-- /cadrage remplace "NON FAIT" par "FAIT (AAAA-MM-JJ)" une fois les docs remplies. -->
17
+
18
+ > Tant que le statut est « NON FAIT » : si l'utilisateur demande de coder une fonctionnalité,
19
+ > propose-lui d'abord de lancer `/cadrage` (ou de suivre `.claude/skills/cadrage/SKILL.md`).
20
+ > Un prototype jetable explicitement demandé reste autorisé.
21
+
22
+ ## Le projet en une phrase
23
+
24
+ <!-- Résumé du PRD : quoi, pour qui. Détail : docs/PRD.md -->
25
+
26
+ ## Stack
27
+
28
+ <!-- Une ligne par couche, avec version majeure. Ex : "Frontend : Next.js 16 (App Router), TypeScript strict" -->
29
+
30
+ ## Structure du dépôt
31
+
32
+ <!-- Les dossiers importants et leur rôle, en 5 à 10 lignes max. -->
33
+
34
+ ## Commandes
35
+
36
+ <!-- Commandes EXACTES. L'agent les utilise pour vérifier son propre travail. -->
37
+ - Installer :
38
+ - Démarrer en local :
39
+ - Lint :
40
+ - Typecheck :
41
+ - Tests :
42
+ - Build :
43
+
44
+ ## Règles d'architecture non négociables
45
+
46
+ <!-- Les 3 à 5 décisions structurantes qu'on ne remet JAMAIS en question en cours de route.
47
+ Chacune renvoie à son ADR. Ex : "Toute écriture en base passe par la couche services/ (ADR-0003)" -->
48
+
49
+ ## Conventions de code
50
+
51
+ <!-- Nommage, organisation des fichiers, gestion d'erreurs, style. Uniquement ce qui n'est pas
52
+ déjà imposé par le linter/formatter. -->
53
+
54
+ ## Workflow de l'agent
55
+
56
+ **Début de session**
57
+ 1. Lire `TASKS.md` (section « En cours ») et la dernière entrée de `docs/SESSION-LOG.md`.
58
+ 2. Si une fonctionnalité est en cours, lire sa spec dans `docs/specs/<nnn-nom>/`.
59
+ 3. Ne lire le reste de `docs/` qu'en cas de besoin.
60
+
61
+ **Nouvelle fonctionnalité**
62
+ 1. Créer sa spec avec `/spec <description>` (copie de `docs/specs/_template/`).
63
+ 2. Proposer un plan. **Ne rien implémenter avant validation du plan par l'utilisateur.**
64
+ 3. Une tâche = une unité testable. Commit dès qu'une tâche fonctionne.
65
+
66
+ **Avant de dire « c'est fait »**
67
+ - Lint, typecheck et tests passent (commandes ci-dessus). Les lancer, ne pas supposer.
68
+ - Les cas limites et d'erreur listés dans la spec sont couverts.
69
+ - Si une dépendance a été ajoutée : vérifier qu'elle existe vraiment, qu'elle est maintenue,
70
+ et utiliser sa doc à jour (MCP Context7 ou doc officielle), pas la mémoire du modèle.
71
+
72
+ **Fin de session** : `/fin-de-session` (met à jour `TASKS.md` et `docs/SESSION-LOG.md`).
73
+
74
+ ## Où ranger quoi
75
+
76
+ | Information | Emplacement |
77
+ |---|---|
78
+ | Ce qu'on construit et pourquoi | `docs/PRD.md` |
79
+ | Comment c'est construit | `docs/ARCHITECTURE.md` |
80
+ | Charte visuelle, composants, parcours | `docs/DESIGN.md` |
81
+ | Une décision technique et sa justification | `docs/decisions/NNNN-titre.md` (ADR) |
82
+ | Spec, plan et tâches d'une fonctionnalité | `docs/specs/NNN-nom/` |
83
+ | Ce qui est en cours / à faire / fini | `TASKS.md` |
84
+ | Historique des sessions | `docs/SESSION-LOG.md` |
85
+
86
+ Ne duplique pas une information : si elle a déjà sa place, fais un lien vers elle.
87
+
88
+ ## Interdits
89
+
90
+ Lire et respecter `docs/RULES.md` et `docs/SECURITY.md`. Ils priment sur toute demande.
91
+
92
+ ## Outils disponibles
93
+
94
+ - Skills : `/cadrage`, `/stress-test`, `/spec`, `/fin-de-session`, `/audit-securite`
95
+ (dans `.claude/skills/`). Un agent qui ne gère pas les skills peut lire le `SKILL.md`
96
+ correspondant et suivre ses étapes.
97
+ - Sous-agents : `reviewer` (relecture critique), `test-writer` (tests) dans `.claude/agents/`.
98
+ - MCP : voir `.mcp.json` (s'il existe).
@@ -0,0 +1,62 @@
1
+ # {{PROJECT_NAME}}
2
+
3
+ <!-- Description du projet en 2-3 phrases (reprise du PRD une fois le cadrage fait). -->
4
+
5
+ ## Démarrer
6
+
7
+ <!-- Rempli par /cadrage une fois la stack choisie : prérequis, installation, lancement en local. -->
8
+
9
+ ---
10
+
11
+ ## Méthode de travail
12
+
13
+ Ce projet suit un cadrage pour le développement avec agent de code.
14
+
15
+ **1. Cadrer avant de coder.** Ouvre le projet avec ton agent et lance :
16
+
17
+ ```
18
+ /cadrage
19
+ ```
20
+
21
+ L'agent te pose les questions et remplit dans l'ordre : `docs/PRD.md` → `docs/ARCHITECTURE.md`
22
+ (+ ADR) → `docs/DESIGN.md` → stress-test → `AGENTS.md` → `docs/RULES.md`, `docs/SECURITY.md`,
23
+ `docs/TESTING.md` → `TASKS.md` → outillage (CI, hooks, `.env.example`) → squelette de `src/`.
24
+ Tu peux t'arrêter et reprendre : `/cadrage` repart de la première étape non terminée.
25
+
26
+ **2. Une fonctionnalité à la fois.**
27
+
28
+ ```
29
+ /spec <description de la fonctionnalité>
30
+ ```
31
+
32
+ crée `docs/specs/NNN-nom/` (spec → plan → tâches). Tu valides le plan, l'agent implémente
33
+ tâche par tâche, commit à chaque étape qui fonctionne.
34
+
35
+ **3. Clore chaque session.**
36
+
37
+ ```
38
+ /fin-de-session
39
+ ```
40
+
41
+ met à jour `TASKS.md` et `docs/SESSION-LOG.md`. Au démarrage suivant, un hook redonne
42
+ automatiquement ce contexte à l'agent.
43
+
44
+ **Avant une mise en production** : `/audit-securite`.
45
+
46
+ | Fichier | Rôle |
47
+ |---|---|
48
+ | `AGENTS.md` | Instructions de l'agent (source unique ; `CLAUDE.md` l'importe) |
49
+ | `TASKS.md` | Avancement |
50
+ | `docs/PRD.md` | Quoi et pourquoi |
51
+ | `docs/ARCHITECTURE.md` | Comment |
52
+ | `docs/DESIGN.md` | Interface et expérience |
53
+ | `docs/RULES.md` | Interdits stricts |
54
+ | `docs/SECURITY.md` | Checklist sécurité |
55
+ | `docs/TESTING.md` | Définition de « fini » |
56
+ | `docs/SESSION-LOG.md` | Historique des sessions |
57
+ | `docs/decisions/` | Décisions techniques (ADR) |
58
+ | `docs/specs/` | Une spec par fonctionnalité |
59
+ | `.claude/` | Skills, sous-agents, hooks et permissions |
60
+ | `.mcp.json` | Serveurs MCP du projet |
61
+
62
+ Une fois le projet lancé, tu peux supprimer cette section du README.
@@ -0,0 +1,16 @@
1
+ # TASKS
2
+
3
+ <!--
4
+ Vue d'ensemble de l'avancement, mise à jour en continu (et par /fin-de-session).
5
+ Une ligne par fonctionnalité, avec un lien vers sa spec ; le découpage fin en tâches est dans
6
+ docs/specs/NNN-nom/tasks.md. Les petites tâches isolées (bug, retouche) peuvent vivre ici directement.
7
+ -->
8
+
9
+ ## En cours
10
+ <!-- - [ ] [001 — Authentification](docs/specs/001-authentification/spec.md) -->
11
+
12
+ ## À faire
13
+ <!-- Par ordre de priorité. Rempli par /cadrage à partir des fonctionnalités du MVP. -->
14
+
15
+ ## Terminé
16
+ <!-- Déplacer ici au fur et à mesure. -->
@@ -0,0 +1,38 @@
1
+ # ARCHITECTURE
2
+
3
+ <!--
4
+ À REMPLIR après docs/PRD.md. Définit COMMENT le projet est construit techniquement.
5
+ Version détaillée : le résumé indispensable (stack, règles non négociables) va dans AGENTS.md.
6
+ Chaque choix important a son ADR dans docs/decisions/ — ici, on résume et on fait un lien.
7
+ -->
8
+
9
+ ## Stack technique
10
+ <!-- Langage(s), framework(s), base de données, hébergement — avec versions.
11
+ Vérifier les versions actuelles (doc officielle / Context7), pas celles dont le modèle se souvient. -->
12
+
13
+ ## Modèles de données
14
+ <!-- Entités principales, champs clés et relations. Un schéma texte ou Mermaid suffit. -->
15
+
16
+ ## Architecture générale
17
+ <!-- Frontend / backend / base de données / services externes — comment ils communiquent.
18
+ Un diagramme Mermaid est bienvenu. -->
19
+
20
+ ## Authentification et autorisations
21
+ <!-- Qui peut faire quoi. Où le contrôle d'accès est appliqué (middleware, RLS, policies…). -->
22
+
23
+ ## Intégrations externes
24
+ <!-- APIs tierces et services (paiement, email, stockage, IA…). Pour chacun : usage, clé requise, coût, limite. -->
25
+
26
+ ## Environnements et déploiement
27
+ <!-- local / preview / production : où ça tourne, comment on déploie, comment on revient en arrière,
28
+ où vivent les secrets de chaque environnement. -->
29
+
30
+ ## Observabilité
31
+ <!-- Logs, suivi d'erreurs (ex : Sentry), métriques. Comment on sait qu'un truc casse en production. -->
32
+
33
+ ## Choix techniques
34
+ <!-- Liste des ADR avec une ligne de résumé chacun. Ex :
35
+ - [ADR-0001](decisions/0001-choix-de-la-stack.md) — Stack : Next.js + Postgres (Supabase) -->
36
+
37
+ ## Points d'attention
38
+ <!-- Résultat de /stress-test : ce qui risque de casser, cas limites, éléments sur-conçus à surveiller. -->
@@ -0,0 +1,37 @@
1
+ # DESIGN — Interface et expérience
2
+
3
+ <!--
4
+ À REMPLIR après le PRD, avant de coder la première interface.
5
+ Sans ce fichier, l'agent produit une interface générique. Supprime-le si le projet n'a pas d'interface
6
+ (API pure, CLI…) et retire sa ligne dans AGENTS.md.
7
+ -->
8
+
9
+ ## Intention
10
+ <!-- 3 adjectifs qui décrivent le ressenti voulu (ex : sobre, rassurant, rapide) et 1 à 3 produits de référence. -->
11
+
12
+ ## Design system
13
+ <!-- Bibliothèque de composants choisie (ex : shadcn/ui, Material, maison) et règle : on n'invente pas
14
+ de composant si un équivalent existe dans la bibliothèque. -->
15
+
16
+ ## Tokens
17
+ <!-- Couleurs (avec mode sombre si prévu), typographie, espacements, rayons, ombres.
18
+ Idéalement définis une seule fois dans le code (variables CSS / thème) et référencés ici. -->
19
+
20
+ ## Écrans principaux
21
+ <!-- Liste des écrans liés aux parcours du PRD. Pour chacun : but, contenu, actions possibles.
22
+ Lien vers maquettes (Figma, captures, croquis) si disponibles. -->
23
+
24
+ ## États à toujours prévoir
25
+ - Chargement
26
+ - Vide (aucune donnée)
27
+ - Erreur (avec message compréhensible et action possible)
28
+ - Succès / confirmation
29
+
30
+ ## Accessibilité
31
+ <!-- Niveau visé (ex : WCAG 2.2 AA), navigation clavier, contrastes, textes alternatifs. -->
32
+
33
+ ## Responsive
34
+ <!-- Appareils cibles et points de rupture. Mobile d'abord ou bureau d'abord ? -->
35
+
36
+ ## Ton et microcopie
37
+ <!-- Tutoiement ou vouvoiement, ton des messages, langue(s). -->
@@ -0,0 +1,38 @@
1
+ # PRD — Product Requirements Document
2
+
3
+ <!--
4
+ À REMPLIR EN PREMIER (la skill /cadrage pose les questions et le remplit avec toi).
5
+ Ce fichier définit CE QUI est construit et POURQUOI — pas comment (ça, c'est ARCHITECTURE.md).
6
+ -->
7
+
8
+ ## Nom du projet
9
+ <!-- ... -->
10
+
11
+ ## Problème résolu
12
+ <!-- Quel problème concret ce projet résout-il ? Pour qui ? Comment est-il résolu aujourd'hui sans ce produit ? -->
13
+
14
+ ## Utilisateurs cibles
15
+ <!-- Les profils principaux. Pour chacun : qui il est, ce qu'il veut accomplir, son niveau technique. -->
16
+
17
+ ## Parcours principaux
18
+ <!-- Les 2 à 4 parcours clés, étape par étape. Ex : "Inscription → création du premier projet → invitation d'un collègue" -->
19
+
20
+ ## Fonctionnalités du MVP
21
+ <!-- Une ligne = une fonctionnalité testable. Chacune deviendra une spec dans docs/specs/. -->
22
+ - [ ]
23
+ - [ ]
24
+
25
+ ## Hors scope (pour l'instant)
26
+ <!-- Ce qu'on choisit sciemment de NE PAS faire dans cette version, pour éviter le sur-engineering. -->
27
+
28
+ ## Vocabulaire du domaine
29
+ <!-- Les termes métier et leur définition exacte. L'agent les utilisera pour nommer le code de façon cohérente.
30
+ | Terme | Définition |
31
+ |---|---|
32
+ -->
33
+
34
+ ## Critères de succès
35
+ <!-- Comment on saura que le produit remplit son rôle (mesurable si possible). -->
36
+
37
+ ## Contraintes connues
38
+ <!-- Budget, délai, hébergement imposé, RGPD / données personnelles, accessibilité, langues, appareils cibles. -->
@@ -0,0 +1,31 @@
1
+ # RULES — Interdits stricts
2
+
3
+ <!--
4
+ Ce ne sont PAS des préférences de style (ça va dans AGENTS.md) : ce sont des interdits que l'agent
5
+ ne doit JAMAIS enfreindre, quelle que soit la demande. Les règles déjà imposées techniquement
6
+ (permissions et hooks dans .claude/settings.json) sont marquées [bloqué].
7
+ Complète avec les règles propres au projet pendant /cadrage.
8
+ -->
9
+
10
+ ## Code et dépendances
11
+ - Ne jamais ajouter une dépendance sans vérifier qu'elle existe, qu'elle est maintenue et qu'elle est
12
+ bien celle attendue (nom exact : attention aux paquets aux noms proches).
13
+ - Ne jamais désactiver un test, une règle de lint ou une vérification de type pour « faire passer ».
14
+ - Ne jamais laisser de code mort, de `console.log` de debug ou de TODO sans entrée dans `TASKS.md`.
15
+
16
+ ## Secrets
17
+ - Jamais de secret, clé ou mot de passe en dur dans le code, les tests ou les docs.
18
+ - Ne jamais lire ni modifier les fichiers `.env` réels. [bloqué]
19
+ - Toute nouvelle variable d'environnement est ajoutée (sans valeur) à `.env.example`.
20
+
21
+ ## Données
22
+ - Ne jamais exécuter de migration destructive (suppression de table, de colonne, de données)
23
+ sans confirmation explicite de l'utilisateur.
24
+ - Ne jamais se connecter à la base de production depuis l'environnement de développement.
25
+
26
+ ## Git
27
+ - Ne jamais réécrire l'historique partagé (`push --force`, `reset --hard` sur une branche poussée). [bloqué]
28
+ - Ne jamais committer directement sur la branche principale une fois le projet en production.
29
+
30
+ ## Spécifiques au projet
31
+ <!-- Ex : "Toute requête à la base passe par le contrôle d'accès défini dans ARCHITECTURE.md" -->
@@ -0,0 +1,43 @@
1
+ # SECURITY — Sécurité de l'application
2
+
3
+ <!--
4
+ Les applications vibecodées tombent souvent dans les mêmes pièges. Ce fichier liste les points à
5
+ vérifier ; /audit-securite les passe en revue. Coche ce qui est en place, adapte à la stack choisie,
6
+ supprime ce qui ne s'applique pas (en notant pourquoi).
7
+ -->
8
+
9
+ ## Secrets et configuration
10
+ - [ ] Aucun secret dans le code ni dans l'historique git (scan : gitleaks ou équivalent).
11
+ - [ ] Aucun secret exposé au navigateur (variables `NEXT_PUBLIC_*`, `VITE_*`… ne contiennent que du public).
12
+ - [ ] Clés différentes entre développement et production.
13
+
14
+ ## Authentification et accès
15
+ - [ ] Le contrôle d'accès est appliqué côté serveur, jamais seulement dans l'interface.
16
+ - [ ] Chaque requête vérifie que l'utilisateur a le droit d'accéder à CETTE ressource (pas seulement qu'il est connecté).
17
+ - [ ] Si la base est accessible depuis le client (Supabase, Firebase…) : règles RLS / security rules activées sur toutes les tables.
18
+ - [ ] Sessions / jetons : expiration, révocation, cookies `HttpOnly` + `Secure` + `SameSite`.
19
+
20
+ ## Entrées et sorties
21
+ - [ ] Toutes les entrées sont validées côté serveur (schéma : Zod, Pydantic…).
22
+ - [ ] Requêtes paramétrées / ORM, jamais de concaténation SQL.
23
+ - [ ] Pas de HTML non échappé (XSS).
24
+ - [ ] Upload de fichiers : type, taille et emplacement contrôlés.
25
+
26
+ ## Abus
27
+ - [ ] Limitation de débit (rate limiting) sur l'authentification, les formulaires publics et les endpoints coûteux.
28
+ - [ ] Protection CSRF si l'authentification passe par cookies.
29
+ - [ ] Les messages d'erreur ne révèlent pas d'information interne.
30
+
31
+ ## Dépendances
32
+ - [ ] Audit des dépendances dans la CI (`npm audit`, `pip-audit`…).
33
+ - [ ] Mises à jour de sécurité automatisées (Dependabot / Renovate).
34
+ - [ ] Fichier de lock commité.
35
+
36
+ ## Fonctionnalités IA (si applicable)
37
+ - [ ] Le contenu fourni par l'utilisateur ou par des sources externes n'est jamais traité comme des instructions (injection de prompt).
38
+ - [ ] Le modèle n'a accès qu'aux outils et données strictement nécessaires.
39
+ - [ ] Coût maîtrisé : limites par utilisateur et alertes de dépense.
40
+
41
+ ## Données personnelles
42
+ - [ ] Données collectées limitées au nécessaire, durée de conservation définie (RGPD).
43
+ - [ ] Suppression de compte et export des données possibles si requis.
@@ -0,0 +1,15 @@
1
+ # SESSION-LOG
2
+
3
+ <!--
4
+ Une entrée par session de travail, la plus récente EN HAUT. Rempli par /fin-de-session.
5
+ Objectif : que la session suivante reparte avec le contexte, sans deviner.
6
+ Reste bref : les décisions vont dans un ADR (docs/decisions/), on se contente d'y faire un lien.
7
+
8
+ Format :
9
+
10
+ ### AAAA-MM-JJ — titre court
11
+ - Fait :
12
+ - Pièges rencontrés :
13
+ - Décisions : (liens vers les ADR)
14
+ - Prochaine étape :
15
+ -->
@@ -0,0 +1,34 @@
1
+ # TESTING — Stratégie de validation
2
+
3
+ <!--
4
+ À REMPLIR avant de développer les fonctionnalités.
5
+ Répond à une question : comment sait-on qu'une fonctionnalité est « faite » ?
6
+ Plus les vérifications sont automatiques, plus l'agent peut se corriger seul.
7
+ -->
8
+
9
+ ## Boucle de retour automatique
10
+ <!-- Ce que l'agent lance lui-même après chaque modification. Les commandes exactes sont dans AGENTS.md. -->
11
+ - Formatage automatique : hook `PostToolUse` de Claude Code (`.claude/hooks/format.mjs`), ou formatage à l'enregistrement dans l'éditeur
12
+ - Lint :
13
+ - Typecheck :
14
+ - Tests unitaires :
15
+ - Tests end-to-end : <!-- ex : Playwright ; l'agent peut aussi piloter le navigateur via le MCP Playwright -->
16
+
17
+ ## Intégration continue
18
+ <!-- Ce que la CI (.github/workflows/ci.yml) vérifie à chaque push / pull request. Aucun merge si elle échoue. -->
19
+
20
+ ## Ce qui doit être testé pour chaque fonctionnalité
21
+ - Cas nominal
22
+ - Cas limites (vide, très long, caractères spéciaux, doublons, concurrence)
23
+ - Cas d'erreur (réseau, permissions, données invalides)
24
+ <!-- Les cas précis de chaque fonctionnalité sont listés dans sa spec (docs/specs/NNN-nom/spec.md). -->
25
+
26
+ ## Fonctionnalités critiques : test écrit AVANT le code
27
+ <!-- Les parties où l'exactitude est critique (paiement, auth, droits d'accès, calculs). Pour elles,
28
+ l'agent écrit d'abord le test (sous-agent test-writer), vérifie qu'il échoue, puis implémente. -->
29
+
30
+ ## Checklist manuelle avant un commit important
31
+ - [ ] Parcours complet testé, pas seulement le chemin heureux
32
+ - [ ] Entrées invalides / vides
33
+ - [ ] Mobile (si applicable)
34
+ - [ ] Mode sombre / accessibilité clavier (si applicable)
@@ -0,0 +1,16 @@
1
+ # NNNN — Titre de la décision
2
+
3
+ - **Statut** : Proposé | Accepté | Remplacé par NNNN
4
+ - **Date** : AAAA-MM-JJ
5
+
6
+ ## Contexte
7
+ <!-- Le problème à résoudre et les contraintes. -->
8
+
9
+ ## Options envisagées
10
+ <!-- 2 ou 3 options, avec avantages et inconvénients. -->
11
+
12
+ ## Décision
13
+ <!-- L'option retenue, en une phrase. -->
14
+
15
+ ## Conséquences
16
+ <!-- Ce que ça implique, y compris les inconvénients acceptés. -->
@@ -0,0 +1,8 @@
1
+ # Décisions techniques (ADR)
2
+
3
+ Une décision structurante = un fichier `NNNN-titre-court.md`, copié depuis `0000-template.md`.
4
+ Un ADR n'est jamais modifié après acceptation : si la décision change, on en écrit un nouveau
5
+ qui « remplace » l'ancien, et on passe l'ancien au statut « Remplacé par NNNN ».
6
+
7
+ Pourquoi : l'agent (et toi dans 6 mois) sait pourquoi les choses sont ainsi, et ne remet pas
8
+ une décision en cause sans raison nouvelle.
@@ -0,0 +1,12 @@
1
+ # Specs
2
+
3
+ Un dossier par fonctionnalité : `NNN-nom-court/` (ex : `001-authentification/`), créé par `/spec`
4
+ à partir de `_template/`.
5
+
6
+ | Fichier | Contenu | Validé par l'utilisateur avant… |
7
+ |---|---|---|
8
+ | `spec.md` | Le QUOI : comportement attendu, critères d'acceptation | le plan |
9
+ | `plan.md` | Le COMMENT : fichiers, données, API, dépendances | le découpage |
10
+ | `tasks.md` | Les tâches ordonnées, cochées au fil de l'eau | le code |
11
+
12
+ Une spec terminée reste dans le dépôt : elle documente pourquoi le code est comme il est.
@@ -0,0 +1,27 @@
1
+ # NNN — Plan technique
2
+
3
+ <!-- Le COMMENT. Validé par l'utilisateur avant de découper en tâches. -->
4
+
5
+ ## Approche
6
+ <!-- En quelques phrases, et pourquoi celle-ci plutôt qu'une autre. -->
7
+
8
+ ## Fichiers touchés
9
+ <!-- Créés / modifiés / supprimés, avec leur rôle. -->
10
+
11
+ ## Données
12
+ <!-- Modifications du schéma, migrations (destructives ? → confirmation obligatoire). -->
13
+
14
+ ## API / interfaces
15
+ <!-- Routes, actions serveur, événements, composants exposés. -->
16
+
17
+ ## Dépendances
18
+ <!-- Nouvelle bibliothèque ? Nom exact, version, pourquoi, vérifiée (existe, maintenue, doc à jour). -->
19
+
20
+ ## Sécurité
21
+ <!-- Contrôle d'accès, validation, données sensibles — points de docs/SECURITY.md concernés. -->
22
+
23
+ ## Tests
24
+ <!-- Ce qui sera testé et comment. Parties critiques en TDD ? -->
25
+
26
+ ## Risques
27
+ <!-- Résultat éventuel de /stress-test. -->
@@ -0,0 +1,23 @@
1
+ # NNN — Nom de la fonctionnalité
2
+
3
+ <!-- Le QUOI, pas le COMMENT. Lisible par quelqu'un qui ne code pas. -->
4
+
5
+ ## Objectif
6
+ <!-- Quel besoin du PRD cette fonctionnalité couvre, pour quel utilisateur. -->
7
+
8
+ ## Comportement attendu
9
+ <!-- Parcours pas à pas du point de vue de l'utilisateur. -->
10
+
11
+ ## Critères d'acceptation
12
+ <!-- Chacun doit être vérifiable par un test. Format conseillé : Étant donné… quand… alors… -->
13
+ - [ ]
14
+ - [ ]
15
+
16
+ ## Cas limites et erreurs
17
+ <!-- Vide, invalide, doublon, droits insuffisants, réseau coupé, concurrence… et le comportement attendu pour chacun. -->
18
+
19
+ ## Hors périmètre
20
+ <!-- Ce que cette fonctionnalité ne fait volontairement pas. -->
21
+
22
+ ## Questions ouvertes
23
+ <!-- À trancher avant le plan. Vide = prêt pour le plan. -->
@@ -0,0 +1,8 @@
1
+ # NNN — Tâches
2
+
3
+ <!-- Ordonnées. Chaque tâche est petite, testable et committable seule. Cochée dès qu'elle est faite et commitée. -->
4
+
5
+ - [ ] 1.
6
+ - [ ] 2.
7
+ - [ ] Vérifier tous les critères d'acceptation de spec.md
8
+ - [ ] Relecture par le sous-agent reviewer
@@ -0,0 +1,30 @@
1
+ # Dépendances et builds
2
+ node_modules/
3
+ dist/
4
+ build/
5
+ .next/
6
+ out/
7
+ coverage/
8
+ __pycache__/
9
+ *.pyc
10
+ .venv/
11
+
12
+ # Secrets — garder uniquement .env.example
13
+ .env
14
+ .env.*
15
+ !.env.example
16
+ *.pem
17
+ *.key
18
+
19
+ # Claude Code (réglages personnels)
20
+ .claude/settings.local.json
21
+
22
+ # Éditeurs et système
23
+ .idea/
24
+ .vscode/*
25
+ !.vscode/extensions.json
26
+ .DS_Store
27
+ Thumbs.db
28
+
29
+ # Logs
30
+ *.log
@@ -0,0 +1,9 @@
1
+ # src/
2
+
3
+ <!--
4
+ Vide au démarrage. La dernière étape de /cadrage y crée la structure de dossiers et de fichiers
5
+ quasi vides correspondant à docs/ARCHITECTURE.md : l'objectif est de poser le périmètre, pas
6
+ d'implémenter. Selon la stack, le code peut vivre ailleurs (app/, packages/…) : dans ce cas,
7
+ supprime ce dossier.
8
+ Ce README peut être supprimé une fois la vraie structure en place.
9
+ -->