CommunityCodierung & Entwicklunggithub.com

Matt1tech/fastapi-project-generator

Erstellt interaktiv ein produktionsreifes FastAPI-Backend mit Python 3.12, uv und einer wählbaren Architektur (modular geschichtet, Clean, hexagonal, minimal, Microservices), optional mit PostgreSQL, Redis, Qdrant, JWT-Auth, Docker Compose und KI-Modulen (LangChain, LangGraph, RAG, MCP). Verwenden Sie dies, wenn der Benutzer ein neues FastAPI-Projekt starten, ein Backend-Gerüst erstellen oder diesen Skill namentlich aufrufen möchte.

Was ist fastapi-project-generator?

Dieser Skill generiert ein sauberes, verifiziertes FastAPI-Projekt basierend auf Benutzereingaben. Er führt den Benutzer in bis zu zwei Runden durch eine strukturierte Befragung, um Projektname, Zielordner, Architekturstil, gewünschte Dienste und optionale KI-Funktionen zu ermitteln. Nach der Befragung werden die Entscheidungen zusammengefasst und der Code unter Verwendung von uv, Python 3.12 und einer modularen Projektstruktur ohne leere Abstraktionsebenen erstellt. Der Skill führt dann automatisch Verifikationsschritte wie `uv sync`, Ruff-Linting und pytest-Tests durch. Er unterstützt mehrere Architekturen (modular geschichtet, Clean, hexagonal, minimal, Microservices) sowie Dienste wie PostgreSQL, Redis, Qdrant, JWT-Auth, Docker Compose und KI-Module (LangChain, LangGraph, RAG, MCP). Der Skill läuft auf jeder Plattform, die uv unterstützt, und stellt sicher, dass Abhängigkeiten nur für die ausgewählten Dienste hinzugefügt werden. Er enthält Sicherheitsprüfungen, um das Überschreiben vorhandener Dateien zu verhindern, und gibt einen abschließenden Bericht mit Projektstandort, Architektur, installierten Abhängigkeiten, Test- und Lint-Ergebnissen sowie bekannten Einschränkungen aus.

Funktioniert mit✓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 Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

FastAPI-Projektgenerator

Generieren Sie ein sauberes, verifiziertes FastAPI-Projekt. Führen Sie ein kurzes Benutzerinterview durch, empfehlen Sie sinnvolle Standardeinstellungen, erstellen Sie das Gerüst und verifizieren Sie es mit echten Befehlen.

Schritt 1 – Interview

Verwenden Sie das strukturierte Fragentool Ihres Agenten, falls vorhanden (jedes Ask-the-User- oder Multiple-Choice-Eingabe-Tool). Falls nicht, stellen Sie dieselben Fragen im Chat als kurze nummerierte Liste mit Buchstabenoptionen und der empfohlenen Option dar und warten Sie auf die Antwort.

Fragen Sie in höchstens zwei Runden. Überspringen Sie jede Frage, die der Benutzer bereits in seiner Nachricht beantwortet hat. Kennzeichnen Sie die empfohlene Option immer zuerst mit "(Empfohlen)". Fragen Sie niemals nach Dingen, die einen sicheren Standardwert haben.

Runde 1 – Wesentliches (ein Block, bis zu 4 Fragen):

  1. Projektname – Freitext ("Andere" verwenden). Geben Sie einen kurzen Vorschlag basierend auf dem Verzeichnisnamen. Normalisieren Sie zu Kebab-Case für den Ordner und Snake_Case für Python-Namen.
  2. Zielordner – Optionen: aktuelles Verzeichnis ./<name> (Empfohlen), ein benutzerdefinierter Pfad (Andere).
  3. Architektur – Modular geschichtet (Empfohlen), Minimal, Clean Architecture, Hexagonal. Microservices erscheinen nur über "Andere"; falls ausgewählt, nach dem Grund fragen und davor warnen (siehe references/architectures.md).
  4. Dienste (Mehrfachauswahl) – PostgreSQL + SQLAlchemy + Alembic, JWT-Auth, Redis, Docker Compose. Empfehlen Sie PostgreSQL und Docker Compose.

Runde 2 – Optionale Extras (nur fragen, wenn relevant; ein Block):

  1. Vektor-DB (Mehrfachauswahl, nur wenn der Benutzer KI/RAG oder Qdrant möchte): Qdrant, PostgreSQL pgvector, Keine.
  2. KI-Module (Mehrfachauswahl): Keins (Empfohlen), LangChain, LangGraph, RAG, MCP.
  3. LLM-Anbieter (nur wenn ein KI-Modul ausgewählt wurde): OpenAI, Anthropic, Google Gemini, Ollama (lokal).
  4. Konversationsstatus speichern? (nur wenn LangGraph ausgewählt): Ja via Postgres Checkpointer / Nein (im Arbeitsspeicher).

Drucken Sie dann eine 6-zeilige Zusammenfassung der Entscheidungen und fahren Sie fort – fragen Sie nicht erneut nach Bestätigung, es sei denn, der Zielordner ist nicht leer.

Schritt 2 – Sicherheitsprüfungen

  1. Lösen Sie den Zielpfad auf. Wenn er existiert und nicht leer ist, STOPPEN und fragen, ob ein anderer Ordner verwendet oder gemerged werden soll. Überschreiben Sie niemals vorhandene Dateien ohne explizite Zustimmung.
  2. Bestätigen Sie, dass uv installiert ist (uv --version). Falls nicht, teilen Sie dem Benutzer mit, wie es installiert wird (curl -LsSf https://astral.sh/uv/install.sh | sh) und stoppen Sie.
  3. Bestätigen Sie, dass Docker nur verfügbar ist, wenn Docker Compose ausgewählt wurde, und nur für den Verifikationsschritt.

Schritt 3 – Gerüst erstellen

Lesen Sie die passenden Referenzdateien, bevor Sie Code generieren:

  • Immer: references/base-project.md (Layout, Startdateien, uv-Regeln, Codestandards)
  • Gewählte Architektur: references/architectures.md
  • Gewählte Dienste: references/services.md (Abhängigkeiten, Docker-Standards)
  • Jedes KI-Modul: references/ai-rag.md

Regeln, die immer gelten:

  • Python 3.12, nur uv (niemals pip). backend/pyproject.toml und backend/uv.lock bleiben zusammen.
  • [tool.uv] package = false es sei denn, der Benutzer möchte explizit ein installierbares Paket.
  • Kein src/-Verzeichnis. Keine leeren Abstraktionsebenen.
  • Abhängigkeiten nur für ausgewählte Dienste via uv add / uv add --dev hinzufügen.
  • Erforderliche Dateien: app/main.py, app/core/config.py, app/api/routes/health.py, tests/test_health.py, .env.example, .gitignore, README.md.
  • /health gibt HTTP 200 {"status": "ok"} zurück; Swagger unter /docs.
  • Niemals Geheimnisse im Quellcode; niemals .env committen.
  • KI-Ordner, Endpunkte und Abhängigkeiten existieren nur, wenn angefordert.

Schritt 4 – Verifizierung (niemals Erfolg behaupten, ohne auszuführen)

Von backend/ aus:

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

Wenn Docker Compose ausgewählt wurde: docker compose config (vom Projektstamm aus). Führen Sie docker compose up -d nur aus, wenn der Benutzer fragt, oder fragen Sie einmal. Beheben Sie Fehler und führen Sie erneut aus. Wenn etwas nicht verifiziert werden kann, sagen Sie es.

Schritt 5 – Ergebnisbericht

Berichten Sie prägnant:

  1. Projektstandort
  2. Gewählte Architektur
  3. Enthaltene Dienste
  4. Installierte Abhängigkeiten
  5. Erstellte Dateien (Baum)
  6. Befehl zum Starten der API: cd backend && uv run uvicorn app.main:app --reload
  7. Befehl zum Ausführen der Tests: cd backend && uv run pytest -v
  8. Tatsächliche Testergebnisse und Lint-Ergebnisse
  9. Bekannte Einschränkungen

Beenden Sie, indem Sie einen nächsten Schritt anbieten (z.B. "Erstes Domänenmodul hinzufügen", "git init und pushen").

Verwandte Skills