AgentSkillsCN

New Project

新项目

SKILL.md

Skill: New Project Configuration Generator


user-invocable: true allowed-tools: Read, Write, Glob, Bash, AskUserQuestion description: Génère une configuration Claude Code complète pour un nouveau projet arguments: [--preset <preset>] [--import <config>] [--export] [--dry-run] [--help] [nom-du-projet]

Aide (--help)

Si l'utilisateur lance /new-project --help ou /new-project help, affiche cette aide :

code
┌─────────────────────────────────────────────────────────────┐
│  📖 /new-project — Générateur de configuration Claude Code  │
└─────────────────────────────────────────────────────────────┘

DESCRIPTION
  Génère une configuration Claude Code personnalisée pour un nouveau
  projet. Les fichiers sont créés dans le dossier output/.

USAGE
  /new-project [options] [nom-du-projet]

OPTIONS
  --preset <preset>   Utiliser un preset pré-configuré
                      Valeurs : saas, landing, api, mobile, dashboard, cli

  --import <config>   Importer une configuration existante
                      Accepte : nom, numéro (#1), ou chemin complet

  --export            Sauvegarder la config dans configs/ après génération

  --dry-run           Afficher les fichiers sans les créer

  --help              Afficher cette aide

EXEMPLES
  /new-project                        Mode interactif (questionnaire)
  /new-project mon-app                Mode interactif avec nom
  /new-project --preset saas          Preset SaaS rapide
  /new-project --preset api backend   Preset API avec nom
  /new-project --export               Interactif + sauvegarde config
  /new-project --import mon-saas      Réutiliser une config
  /new-project --import 1             Réutiliser le dernier projet
  /new-project --dry-run              Preview sans génération

PRESETS DISPONIBLES
  saas        Next.js + Supabase + shadcn/ui + Ralph
  landing     Astro + Tailwind (léger, sans Ralph)
  api         Hono + Drizzle + PostgreSQL + Ralph
  mobile      Expo + Supabase + Ralph
  dashboard   Next.js + shadcn/ui + Recharts + Ralph
  cli         Node.js + tsup (package npm)

WORKFLOW
  1. Description du projet (ou preset/import)
  2. Questions sur le stack technique
  3. Récapitulatif visuel
  4. Confirmation (Générer / Modifier / Dry-run / Annuler)
  5. Génération dans output/

FICHIERS GÉNÉRÉS
  output/
  ├── CLAUDE.md              Documentation du projet
  ├── .gitignore             Exclut .mcp.json
  ├── .mcp.json              MCP Servers (Context7, Bright Data, Chrome DevTools + stack)
  └── .claude/
      ├── settings.json      Permissions + Hooks
      ├── agents/            Agents spécialisés
      ├── skills/            Skills (/start, /init, etc.)
      └── docs/              Guide de démarrage

APRÈS GÉNÉRATION
  cp -r output/.claude /chemin/vers/ton-projet/
  cp output/CLAUDE.md /chemin/vers/ton-projet/

VOIR AUSSI
  /history    Voir l'historique des projets générés

Après avoir affiché l'aide, ne rien faire d'autre (pas de questions, pas de génération).


Instructions

Tu es un assistant de configuration de projet. Génère une configuration Claude Code dans output/.

Avant de commencer : Lis les rules dans .claude/rules/ :

  • presets.md : Presets disponibles (mode rapide)
  • configs.md : Import/Export de configurations
  • questions.md : Ordre, logique et recommandations (mode interactif)
  • options.md : Options disponibles
  • agents.md : Agents à générer
  • hooks.md : Templates des hooks
  • mcp.md : MCP Servers disponibles
  • themes.md : Thèmes UI pour shadcn/ui
  • generation.md : Format des fichiers

Options disponibles

OptionDescription
--preset <preset>Utiliser un preset (saas, landing, api, mobile, dashboard, cli)
--import <config>Importer une configuration existante
--exportSauvegarder la config dans configs/ après génération
--dry-runAfficher sans générer

Exemples :

bash
/new-project                                    # Mode interactif
/new-project --preset saas mon-app              # Preset rapide
/new-project --export                           # Interactif + sauvegarde config
/new-project --preset api --export              # Preset + sauvegarde config
/new-project --import mon-saas                  # Réutiliser une config
/new-project --import mon-saas --export         # Importer, modifier, sauvegarder
/new-project --dry-run                          # Preview sans génération

Mode 1 : Import (--import)

Si l'utilisateur fournit un --import, charger une configuration existante.

Résolution du chemin

Le paramètre peut être :

  • Un nom court : mon-saas → cherche configs/mon-saas.config.json
  • Un numéro : 1 → cherche le 1er projet dans configs/history.json
  • Un chemin complet : configs/mon-saas.config.json

Workflow import

  1. Lis le fichier de config (voir format dans configs.md)
  2. Valide le JSON et les champs requis
  3. Affiche le récapitulatif avec les données importées
  4. Demande confirmation :
    • ✅ Générer → Créer les fichiers
    • ✏️ Modifier → Changer des options (puis régénérer le récap)
    • ❌ Annuler

Erreurs possibles

code
❌ Fichier non trouvé : configs/inexistant.config.json

   Configs disponibles :
   - mon-saas.config.json
   - api-backend.config.json

   Ou lance /history pour voir l'historique.
code
❌ JSON invalide dans configs/broken.config.json

   Erreur à la ligne 15 : Unexpected token '}'

   Vérifie le fichier et réessaie.

Mode 2 : Preset (--preset)

Si l'utilisateur fournit un --preset, utilise le mode rapide.

Presets disponibles

PresetDescription
saasNext.js + Supabase + shadcn/ui + Ralph
landingAstro + Tailwind (léger, sans Ralph)
apiHono + Drizzle + PostgreSQL + Ralph
mobileExpo + Supabase + Ralph
dashboardNext.js + shadcn/ui + Recharts + Supabase + Ralph
cliNode.js + tsup (package npm)

Workflow preset

  1. Lis .claude/rules/presets.md pour récupérer la configuration du preset
  2. Demande uniquement :
    • Le nom du projet (si pas fourni)
    • Une description courte (1-2 phrases)
  3. Affiche le récapitulatif (voir Phase 3)
  4. Génère les fichiers selon le preset (sauf si --dry-run)

Mode 3 : Interactif (par défaut)

Si aucun preset ni import n'est fourni, utilise le mode interactif.

Phase 1 : Comprendre le projet

  1. Demande une description du projet (question ouverte)

    • Objectif du projet
    • Utilisateurs cibles
    • Fonctionnalités principales
  2. Analyse la description pour identifier :

    • Le type de projet (Frontend, Backend, Fullstack, Mobile)
    • Le cas d'usage (SaaS, e-commerce, dashboard, API...)
    • Les besoins techniques implicites
  3. Propose un preset si le projet correspond à un cas classique :

    "Ton projet ressemble à un SaaS classique. Tu veux utiliser le preset saas pour aller plus vite, ou personnaliser chaque choix ?"

Phase 2 : Questionnaire avec recommandations

  1. Propose un type basé sur la description avec explication
  2. Pour chaque question technique :
    • Mets l'option recommandée en premier avec "(Recommandé)"
    • Explique POURQUOI tu recommandes en lien avec le projet
    • Propose des alternatives
  3. Si l'utilisateur demande "C'est quoi ?" → explique simplement

Voir .claude/rules/questions.md pour :

  • Les recommandations par cas d'usage
  • Les explications des concepts techniques
  • L'ordre des questions

Phase 3 : Récapitulatif et confirmation

IMPORTANT : Toujours afficher ce récapitulatif AVANT de générer.

Affiche un récap visuel complet :

code
┌─────────────────────────────────────────────────────────────┐
│  📋 RÉCAPITULATIF DE TA CONFIGURATION                       │
└─────────────────────────────────────────────────────────────┘

📁 Projet : [nom-du-projet]
📝 Description : [description courte]
🏷️  Type : [Fullstack / Frontend / Backend / Mobile / CLI]

┌─────────────────────────────────────────────────────────────┐
│  🛠️  STACK TECHNIQUE                                         │
└─────────────────────────────────────────────────────────────┘

  Framework    │ [Next.js / Astro / Hono / Expo / ...]
  Styling      │ [Tailwind CSS / CSS Modules / ...]
  UI Library   │ [shadcn/ui / Aucune / ...]
  State        │ [Zustand + TanStack Query / Aucun / ...]
  Backend      │ [Supabase / API custom / ...]
  Database     │ [PostgreSQL / Supabase / ...]
  ORM          │ [Drizzle / Prisma / ...]
  Tests        │ [Vitest / Jest / Aucun / ...]
  Linting      │ [Biome / ESLint / ...]

┌─────────────────────────────────────────────────────────────┐
│  🎨 SHADCN/UI (si sélectionné)                               │
└─────────────────────────────────────────────────────────────┘

  Base         │ [Base UI / Radix UI]
  Thème        │ [Default / Modern / Corporate / ...]
  Primaire     │ [Blue / Violet / Green / ...]
  Neutre       │ [Slate / Zinc / Stone / ...]
  Radius       │ [Arrondi moyen / Angles droits / ...]

┌─────────────────────────────────────────────────────────────┐
│  ⚡ HOOKS AUTOMATIQUES                                       │
└─────────────────────────────────────────────────────────────┘

  ✅ Auto-format     │ [Biome / Prettier] après chaque édition
  ✅ Pre-commit      │ [lint + typecheck + test] avant commit
  ❌ Notification    │ Non activé

┌─────────────────────────────────────────────────────────────┐
│  🤖 AGENTS (4)                                               │
└─────────────────────────────────────────────────────────────┘

  fullstack-architect        │ sonnet │ Architecture Next.js
  supabase-backend-architect │ sonnet │ Backend Supabase
  ui-architect               │ sonnet │ Composants shadcn/ui
  test-engineer              │ haiku  │ Tests et qualité

┌─────────────────────────────────────────────────────────────┐
│  🔄 RALPH                                                    │
└─────────────────────────────────────────────────────────────┘

  ✅ Activé │ Boucle autonome avec /prd et /ralph

┌─────────────────────────────────────────────────────────────┐
│  🔌 MCP SERVERS                                              │
└─────────────────────────────────────────────────────────────┘

  PAR DÉFAUT (tous les projets) :
  ✅ Context7          │ Documentation des librairies
  ✅ Bright Data       │ Accès web, scraping
  ✅ Chrome DevTools   │ Debug navigateur

  SELON LE STACK :
  ✅/❌ Supabase       │ Si Supabase choisi
  ✅/❌ PostgreSQL     │ Si PostgreSQL sans Supabase

┌─────────────────────────────────────────────────────────────┐
│  📁 FICHIERS QUI SERONT GÉNÉRÉS                              │
└─────────────────────────────────────────────────────────────┘

  output/
  └── [nom-du-projet]/
      ├── CLAUDE.md
      ├── .gitignore              ← Exclut .mcp.json et settings.local.json
      ├── .mcp.json               ← MCP Servers (à la racine)
      └── .claude/
          ├── settings.json       ← Permissions + Hooks
          ├── docs/
          │   └── GETTING_STARTED.md
          ├── rules/
          │   └── workflow.md     ← Règles d'utilisation des agents
          ├── agents/
          │   ├── fullstack-architect.md
          │   ├── supabase-backend-architect.md
          │   ├── ui-architect.md
          │   └── test-engineer.md
          └── scripts/ralph/      ← Si Ralph activé
              ├── ralph.sh
              ├── CLAUDE.md
              ├── prd.json.example
              └── progress.txt

═══════════════════════════════════════════════════════════════

Puis demande confirmation avec AskUserQuestion :

Question : "Cette configuration te convient ?"

Options :

OptionDescription
✅ GénérerCréer les fichiers dans output/
✏️ ModifierChanger un ou plusieurs choix
👁️ Dry-runVoir les fichiers sans les créer
❌ AnnulerAbandonner la génération

Si "Modifier" choisi

Demande quelle section modifier :

Question : "Que veux-tu modifier ?"

Options :

OptionDescription
Stack techniqueFramework, styling, UI, state, backend...
shadcn/uiBase (Base UI/Radix), thème, couleurs, radius
HooksAuto-format, pre-commit, notification
AgentsAjouter/retirer des agents, changer le modèle
RalphActiver/désactiver la boucle autonome
Infos projetNom, description

Après modification, réafficher le récapitulatif et redemander confirmation.

Si "Dry-run" choisi

Afficher uniquement la liste des fichiers avec leur contenu résumé, sans créer les fichiers :

code
👁️ MODE DRY-RUN — Aucun fichier ne sera créé

📄 output/CLAUDE.md
   → Documentation du projet avec stack et conventions

📄 output/.claude/settings.json
   → Permissions (npm, npx, git, supabase) + Hooks (Auto-format, Pre-commit)

📄 output/.claude/agents/fullstack-architect.md
   → Agent Next.js + TypeScript (sonnet)

[...]

Pour générer ces fichiers, relance /new-project sans --dry-run

Phase 4 : Génération

Si "Générer" confirmé :

  1. Nettoie output/ (supprime les anciens fichiers)

  2. Lis les templates (OBLIGATOIRE avant de générer) :

    • .claude/rules/generation.md → Structure des dossiers
    • .claude/rules/generation/*.md → Templates détaillés
    • .claude/rules/agents.md → Mapping stack → agents
    • .claude/rules/mcp.md → MCP Servers (3 par défaut + stack)
    • .claude/rules/skills/*.md → Templates des skills
  3. Génère les fichiers dans cet ordre :

    • CLAUDE.md
    • .gitignore (exclut .mcp.json)
    • .mcp.json (3 MCP par défaut + MCP du stack)
    • .claude/settings.json
    • .claude/docs/GETTING_STARTED.md
    • .claude/rules/*.md
    • .claude/skills/*/SKILL.md
    • .claude/agents/*.md
    • .claude/scripts/ralph/* (si Ralph activé)
  4. Vérifie que .mcp.json contient au minimum :

    • context7 (toujours)
    • brightdata (toujours)
    • chrome-devtools (toujours)
      • MCP du stack si applicable (supabase, postgres, etc.)

Phase 5 : Export (si --export)

Si l'option --export est présente :

  1. Génère le nom du fichier : [nom-projet].config.json
  2. Vérifie si le fichier existe :
    • Si oui → demander : Écraser / Renommer / Annuler
  3. Écrit le fichier dans configs/
  4. Met à jour configs/history.json

Format de la config exportée

Voir .claude/rules/configs.md pour le format JSON complet.

Message de confirmation

code
💾 Configuration sauvegardée !

   Fichier : configs/mon-saas.config.json

   Pour réutiliser cette config :
   /new-project --import mon-saas

Phase 6 : Mise à jour de l'historique

À chaque génération (avec ou sans export) :

  1. Lis configs/history.json
  2. Ajoute une nouvelle entrée avec :
    • ID unique (proj_XXX)
    • Nom, description, type
    • Preset utilisé (ou null)
    • Fichier config (si exporté)
    • Date de génération
    • Nombre de fichiers générés
  3. Limite à 50 entrées (supprimer les plus anciennes)
  4. Écris le fichier mis à jour

Phase 7 : Résumé final

Après génération, affiche :

code
✅ Configuration générée avec succès !

📁 Fichiers créés : [nombre] fichiers dans output/
💾 Config sauvegardée : configs/[nom].config.json   ← (si --export)

📋 Pour utiliser cette configuration :

   # Copier vers ton projet
   cp -r output/.claude /chemin/vers/ton-projet/
   cp output/CLAUDE.md /chemin/vers/ton-projet/

   # Ou tout en une commande
   cp -r output/.claude output/CLAUDE.md /chemin/vers/ton-projet/

🚀 Ensuite, lance Claude Code dans ton projet :
   cd /chemin/vers/ton-projet && claude

💡 Pour réutiliser cette config plus tard :
   /new-project --import [nom]

Règles générales

  1. Toujours afficher le récapitulatif avant de générer
  2. Demander confirmation explicitement
  3. Permettre les modifications sans tout refaire
  4. Nettoyer output/ avant chaque génération
  5. Import → charger et afficher récap directement
  6. Export → sauvegarder après génération
  7. Preset → mode rapide : récap + confirmation directe
  8. Pas de preset → mode interactif : questionnaire + récap + confirmation
  9. --dry-run : afficher sans générer
  10. Toujours mettre à jour l'historique après génération
  11. Recommander ET expliquer pourquoi
  12. Questions séquentielles : max 2 à la fois
  13. Être pédagogue : expliquer les concepts si demandé

Checklist de génération (OBLIGATOIRE)

Avant de terminer la génération, vérifie que ces fichiers existent :

FichierContenu attendu
.mcp.json3 MCP minimum : context7, brightdata, chrome-devtools
settings.jsonPermissions + Hooks
CLAUDE.mdDocumentation du projet
GETTING_STARTED.mdGuide simplifié avec /start
Au moins 1 agentDans .claude/agents/
Au moins 1 skill/start, /init minimum