From 765b41989552c45728495156fdc15f24b48eedf3 Mon Sep 17 00:00:00 2001 From: Skillet Date: Sun, 6 Sep 2026 14:02:50 +0200 Subject: [PATCH] feat: map FastAPI projects to fastapi-patterns and api-design project-stack-mappings.json had no `fastapi` entry, so /project-init detected FastAPI projects as generic `python` and never resolved the fastapi-patterns skill that already ships in the repo. api-design is included for the same reason: FastAPI work is REST surface work. Indicators match `fastapi` in requirements.txt or pyproject.toml, following the existing django entry pattern. Data-only change; no code reads this file, it is the lookup table /project-init consults. --- config/project-stack-mappings.json | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/config/project-stack-mappings.json b/config/project-stack-mappings.json index 46fe11e32..01555dc08 100644 --- a/config/project-stack-mappings.json +++ b/config/project-stack-mappings.json @@ -485,6 +485,34 @@ "deny": [] } }, + { + "id": "fastapi", + "name": "FastAPI (Python)", + "indicators": [ + { "file": "requirements.txt", "contains": "fastapi" }, + { "file": "pyproject.toml", "contains": "fastapi" } + ], + "rules": ["common", "python"], + "skills": [ + "fastapi-patterns", + "api-design", + "python-patterns", + "python-testing", + "tdd-workflow", + "verification-loop" + ], + "commands": { + "build": ["pip install -e ."], + "test": ["pytest", "python -m pytest"], + "lint": ["ruff check .", "mypy ."], + "format": ["ruff format .", "black ."], + "dev": ["uvicorn main:app --reload", "fastapi dev"] + }, + "permissions": { + "allow": ["python *", "pip install *", "pytest *", "ruff *", "black *", "mypy *", "uvicorn *"], + "deny": [] + } + }, { "id": "android", "name": "Android (Kotlin/Java)",