create-go-plate 0.0.0-stage → 0.1.0

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 +14 -0
  2. package/LICENSE +21 -0
  3. package/README.md +103 -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 +32 -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,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
+ -->