About fba
fba is a coding skill for projects using FastAPI Best Architecture. It directs developers to the project's layered conventions, required coding practices, and task-specific references for backend and plugin work.
Key features
- 01Follow API, Service, CRUD, Schema, and Model layers
- 02Require coding-style and naming references
- 03Select task-specific architecture documentation
- 04Apply plugin structure and sharing conventions
- 05Use the fba CLI help for commands
Use cases
- 01Implement or review a FastAPI backend feature
- 02Choose module boundaries for cross-layer work
- 03Create or update a project plugin
- 04Check code against project conventions
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ fastapi-practices/ skills --skill fbaAfter installing, type/fbain Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/api.mdcoding-style.mdconfig.mddevelopment.mdmodel.mdnaming.mdplugin-sharing.mdplugin.mdschema.mdDetails
From the project READMEFastAPI Best Architecture
Official documentation: https://fastapi-practices.github.io/fastapi_best_architecture_docs/
Use this skill to follow fba architecture and plugin conventions. Load the required baseline below, then only the additional references needed for the task.
Required Coding Baseline
For every backend Python implementation, fix, refactor, or code review, read references/coding-style.md and references/naming.md before working on code. These rules apply to ordinary development as well as explicit style requests; the user does not need to repeat them. Apply them to maintained application and plugin code, including runtime modules, utilities, and relevant tests, while preserving framework-required contracts.
For cross-layer features, directory changes, or SDK integrations, also read references/development.md before choosing module boundaries, then load the layer-specific references.
Keep the requested scope: a comprehensive plugin review covers all maintained modules in that plugin and affected tests, not only API/Service/CRUD files. An ordinary feature or fix does not authorize unrelated repository-wide cleanup. For documentation-only work, load the relevant documentation reference without the Python baseline.
Before completion, apply the review checks in references/coding-style.md. Ruff passing alone does not verify function design, test-driven helper extraction, or layer boundaries.
Core Architecture
Project adopts a layered backend architecture centered on API, Service, and CRUD, with Schema and Model as explicit data contracts:
| Layer | Responsibility |
|---|---|
| API | Route processing, parameter validation, and response return |
| Schema | Data transfer objects, request/response data structure definitions |
| Service | Business logic, data processing, exception handling |
| CRUD | Database operations (inherits CRUDPlus) |
| Model | ORM models (inherits Base) |
Development Workflow
- Define database models (model)
- Define data validation models (schema)
- Define routes (router)
- Write business logic (service)
- Write database operations (crud)
Reference Selection
| Task | Read |
|---|---|
| Feature/module development flow, Service/CRUD placement, pagination, cache, Celery, i18n, code generation | references/development.md |
| API routes, dependencies, response patterns, auth, permissions | references/api.md |
| Pydantic request/response DTOs | references/schema.md |
| SQLAlchemy models and migrations | references/model.md |
| CRUD, Service, API, Schema, entity and table prefix naming | references/naming.md |
| Backend/frontend plugin development and plugin README files | references/plugin.md |
| Plugin sharing, public repositories, marketplace PRs, submodules, updates | references/plugin-sharing.md |
| Every backend Python implementation/review: functions, private helpers, test boundaries, typing, formatting, comments, docstrings | references/coding-style.md (required baseline) |
| Global settings and configuration | references/config.md |
Plugin Work
When creating, reviewing, or updating plugins:
- Read
references/plugin.mdfor plugin type, structure, manifest, configuration, hooks, SQL, and README rules - Read
references/plugin-sharing.mdwhen the task involves sharing, publishing, updating, marketplace PRs, plugin repositories, or Git submodules - Prefer source-code behavior from
fastapi-best-architecturewhen docs and implementation differ - Do not perform git add, commit, push, or PR actions unless the user explicitly asks
CLI
Execute fba -h for more details.