Générateur de Projet FastAPI

Génère interactivement un backend FastAPI prêt pour la production avec Python 3.12, uv et une architecture choisie (modulaire en couches, clean, hexagonal, minimal, microservices), avec PostgreSQL, Redis, Qdrant, JWT, Docker Compose et modules IA (LangChain, LangGraph, RAG, MCP) en option.

Qu'est-ce que Générateur de Projet FastAPI ?

Ce skill d'agent IA permet de créer rapidement un squelette de projet FastAPI professionnel et vérifié, adapté aux besoins exacts du développeur. Il mène un entretien structuré (en deux rounds maximum) pour choisir le nom du projet, le dossier cible, l'architecture (modulaire en couches recommandée, clean, hexagonal, minimale ou microservices) et les services (PostgreSQL, Redis, Docker Compose, JWT). En option, l'utilisateur peut ajouter une base vectorielle (Qdrant, pgvector), des modules IA (LangChain, LangGraph, RAG, MCP) et un fournisseur de LLM (OpenAI, Anthropic, Gemini, Ollama). Le skill vérifie automatiquement les prérequis (uv, Docker) et génère les fichiers standards (app/main.py, app/core/config.py, app/api/routes/health.py, tests, .env.example) en respectant les règles strictes du projet de base. Enfin, il exécute les commandes de vérification : uv sync, ruff check, ruff format --check et pytest. Compatible avec Claude Code, Cursor, Codex et d'autres agents qui supportent les appels structurés et l'exécution de commandes.

Compatible avec✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Matt1tech/fastapi-project-init/tree/HEAD/skills/fastapi-project-generator

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Générateur de Projet FastAPI ?

Génère un projet FastAPI propre et vérifié. Interviewez brièvement l'utilisateur, recommandez des valeurs par défaut pertinentes, générez la structure, puis vérifiez avec des commandes réelles.

Étape 1 – Entretien

Utilisez l'outil de questions structurées de votre agent s'il en possède un (tout outil de type "demander à l'utilisateur" ou à choix multiples). Sinon, posez les mêmes questions dans le chat sous forme de courte liste numérotée avec des options lettrées et l'option recommandée marquée, puis attendez la réponse.

Posez les questions en deux tours maximum. Ignorez toute question à laquelle l'utilisateur a déjà répondu dans son message. Marquez toujours l'option recommandée en premier avec "(Recommandé)". Ne demandez jamais des éléments ayant une valeur par défaut sûre.

Tour 1 – éléments essentiels (un seul lot, jusqu'à 4 questions) :

  1. Nom du projet – texte libre (utilisez "Autre"). Proposez une suggestion courte basée sur le nom du répertoire. Normalisez en kebab-case pour le dossier et en snake_case pour les noms Python.
  2. Dossier cible – options : répertoire courant ./<nom> (Recommandé), un chemin personnalisé (Autre).
  3. Architecture – Modulaire en couches (Recommandé), Minimale, Architecture Clean, Hexagonale. Microservices apparaît uniquement via "Autre" ; si choisi, demandez pourquoi et mettez en garde contre son utilisation pour de petites applications (voir references/architectures.md).
  4. Services (sélection multiple) – PostgreSQL + SQLAlchemy + Alembic, JWT auth, Redis, Docker Compose. Recommandez PostgreSQL et Docker Compose.

Tour 2 – options supplémentaires (ne demander que si pertinent ; un seul lot) :

  1. Base vectorielle (sélection multiple, seulement si l'utilisateur souhaite IA/RAG ou Qdrant) : Qdrant, PostgreSQL pgvector, Aucun.
  2. Modules IA (sélection multiple) : Aucun (Recommandé), LangChain, LangGraph, RAG, MCP.
  3. Fournisseur de LLM (seulement si un module IA est sélectionné) : OpenAI, Anthropic, Google Gemini, Ollama (local).
  4. Persister l'état de la conversation ? (seulement si LangGraph est sélectionné) : Oui via le checkpoint Postgres / Non (en mémoire).

Ensuite, imprimez un résumé des choix sur 6 lignes et passez à la suite – ne demandez pas une autre confirmation sauf si le dossier cible n'est pas vide.

Étape 2 – Vérifications de sécurité

  1. Résolvez le chemin cible. S'il existe et n'est pas vide, ARRÊTEZ-VOUS et demandez s'il faut utiliser un autre dossier ou fusionner. Ne jamais écraser de fichiers existants sans approbation explicite.
  2. Confirmez que uv est installé (uv --version). Sinon, indiquez à l'utilisateur comment l'installer (curl -LsSf https://astral.sh/uv/install.sh | sh) et arrêtez-vous.
  3. Confirmez que Docker est disponible uniquement si Docker Compose a été sélectionné, et uniquement pour l'étape de vérification.

Étape 3 – Génération

Lisez les fichiers de référence correspondants avant de générer le code :

  • Toujours : references/base-project.md (structure, fichiers de départ, règles uv, normes de code)
  • Architecture choisie : references/architectures.md
  • Services choisis : references/services.md (dépendances, normes Docker)
  • Tout module IA : references/ai-rag.md

Règles qui s'appliquent toujours :

  • Python 3.12, uv uniquement (jamais pip). backend/pyproject.toml et backend/uv.lock restent ensemble.
  • [tool.uv] package = false sauf si l'utilisateur souhaite explicitement un paquet installable.
  • Pas de répertoire src/. Pas de couches d'abstraction vides.
  • Ajoutez les dépendances uniquement pour les services sélectionnés, via uv add / uv add --dev.
  • Fichiers requis : app/main.py, app/core/config.py, app/api/routes/health.py, tests/test_health.py, .env.example, .gitignore, README.md.
  • /health renvoie HTTP 200 {"status": "ok"} ; Swagger sur /docs.
  • Ne placez jamais de secrets dans le code source ; ne commitez jamais .env.
  • Les dossiers, points de terminaison et dépendances de l'IA n'existent que s'ils sont demandés.

Étape 4 – Vérification (ne jamais prétendre au succès sans exécuter)

Depuis backend/ :

uv sync
uv run ruff check .
uv run ruff format --check .
uv run pytest -v

Si Docker Compose a été sélectionné : docker compose config (depuis la racine du projet). Exécutez docker compose up -d uniquement si l'utilisateur le demande, ou demandez une fois. Corrigez les échecs et relancez. Si quelque chose ne peut pas être vérifié, dites-le.

Étape 5 – Rapport de livraison

Rapportez de manière concise :

  1. Emplacement du projet
  2. Architecture sélectionnée
  3. Services inclus
  4. Dépendances installées
  5. Fichiers créés (arborescence)
  6. Commande pour lancer l'API : cd backend && uv run uvicorn app.main:app --reload
  7. Commande pour exécuter les tests : cd backend && uv run pytest -v
  8. Résultats réels des tests et du lint
  9. Limitations connues

Terminez en proposant une prochaine étape (par exemple "ajouter un premier module de domaine", "git init et push").

Skills associés