# Python Fastapi Ddd Tooling Skill

> Tooling & DX for FastAPI DDD Projects (uv / ruff / mypy / CI)

- Skill: `iktakahiro/python-fastapi-ddd-tooling-skill` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add iktakahiro/python-fastapi-ddd-tooling-skill`
- Raw SKILL.md: https://api.skillmd.com/api/skills/iktakahiro/python-fastapi-ddd-tooling-skill/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: iktakahiro (https://skillmd.com/u/iktakahiro)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/iktakahiro/python-fastapi-ddd-tooling-skill

---


# Tooling & DX for FastAPI DDD Projects (uv / ruff / mypy / CI)

This skill is about **developer experience and quality automation** for a DDD FastAPI project, following the conventions in `dddpy`.

## Goals

- One-command local setup (`make install`)
- Fast feedback loop (`make test`, `make format`, `make dev`)
- Reproducible CI (GitHub Actions + Python matrix)

## Recommended stack (dddpy-style)

- Python `>=3.13`
- `uv` for venv + dependency install + running tools
- `ruff` for formatting/linting
- `mypy` for type checking
- `pytest` for tests

## Makefile workflow (core targets)

Keep a small Makefile that shells out to tools inside `.venv/`:

- `venv`: create `.venv`
- `install`: install editable package + dev deps
- `test`: run mypy + pytest
- `format`: run ruff formatter
- `dev`: run `fastapi dev` via uv

## CI workflow

Run `make install` + `make test` on push/PR with a Python version matrix (e.g., 3.13, 3.14) and install `uv` in CI.

## App bootstrap patterns

- Use FastAPI `lifespan` to create tables on startup and dispose the engine on shutdown.
- Keep SQLAlchemy engine/session setup in `infrastructure/sqlite/database.py` (or equivalent).
- Configure logging once at startup (`logging.config.fileConfig(...)`).

For concrete file templates (Makefile, workflow YAML, bootstrap snippets), read `references/TOOLING.md`.


