fba について
fbaは、FastAPI Best Architectureを採用するプロジェクト向けのコーディングスキルです。バックエンドやプラグイン開発で、レイヤー構成、必須のコーディング規則、タスク別リファレンスに沿う方法を示します。
主な機能
- 01API、Service、CRUD、Schema、Modelの各層に従う
- 02コーディング規則と命名規則の参照を必須化
- 03タスクに応じてアーキテクチャ文書を選択
- 04プラグイン構成と共有の規約を適用
- 05fba CLIのヘルプでコマンドを確認
活用シーン
- 01FastAPIバックエンド機能の実装やレビュー
- 02複数レイヤーにまたがる作業のモジュール境界を決定
- 03プロジェクトプラグインの作成や更新
- 04プロジェクト規約に照らしたコード確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fastapi-practices/ skills --skill fbaインストール後、Claude Code で/fbaを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api.mdcoding-style.mdconfig.mddevelopment.mdmodel.mdnaming.mdplugin-sharing.mdplugin.mdschema.md詳細
FastAPI ベストアーキテクチャ
公式ドキュメント:https://fastapi-practices.github.io/fastapi_best_architecture_docs/
このスキルを使用して、fba のアーキテクチャとプラグインの規約に従ってください。以下の必須ベースラインを読み込んだ後、タスクに必要な追加のリファレンスのみを読み込んでください。
必須のコーディングベースライン
バックエンドの Python 実装、修正、リファクタリング、コードレビューを行う場合は、作業に取りかかる前に references/coding-style.md と references/naming.md を読んでください。これらのルールは通常の開発にも、明示的にスタイルを指定された場合にも適用されます。ユーザーが改めて指示する必要はありません。フレームワークで必須とされる契約を維持しながら、ランタイムモジュール、ユーティリティ、関連するテストなど、保守対象のアプリケーションコードとプラグインコードに適用してください。
複数レイヤーにまたがる機能、ディレクトリの変更、SDK 統合を行う場合は、モジュールの境界を決める前に references/development.md も読み、その後、該当するレイヤー別のリファレンスを読み込んでください。
依頼された範囲を守ってください。包括的なプラグインレビューでは、API/Service/CRUD ファイルだけでなく、そのプラグインの保守対象となるすべてのモジュールと、影響を受けるテストを対象にします。通常の機能追加や修正を理由に、無関係なリポジトリ全体のクリーンアップを行ってはいけません。ドキュメントのみの作業では、Python ベースラインを適用せず、関連するドキュメントのリファレンスを読み込んでください。
作業を完了する前に、references/coding-style.md のレビュー項目を適用してください。Ruff が通っても、関数の設計、テスト駆動によるヘルパーの抽出、レイヤーの境界が検証されたことにはなりません。
コアアーキテクチャ
このプロジェクトでは、API、Service、CRUD を中心としたレイヤー化バックエンドアーキテクチャを採用し、Schema と Model を明示的なデータ契約として定義します。
| レイヤー | 責務 |
|---|---|
| API | ルート処理、パラメーターの検証、レスポンスの返却 |
| Schema | データ転送オブジェクト、リクエスト/レスポンスのデータ構造の定義 |
| Service | ビジネスロジック、データ処理、例外処理 |
| CRUD | データベース操作(CRUDPlus を継承) |
| Model | ORM モデル(Base を継承) |
開発ワークフロー
- データベースモデルを定義する(model)
- データ検証モデルを定義する(schema)
- ルートを定義する(router)
- ビジネスロジックを実装する(service)
- データベース操作を実装する(crud)
リファレンスの選択
| タスク | 読むもの |
|---|---|
| 機能/モジュール開発の流れ、Service/CRUD の配置、ページネーション、キャッシュ、Celery、i18n、コード生成 | references/development.md |
| API ルート、依存関係、レスポンスのパターン、認証、権限 | references/api.md |
| Pydantic のリクエスト/レスポンス DTO | references/schema.md |
| SQLAlchemy モデルとマイグレーション | references/model.md |
| CRUD、Service、API、Schema、エンティティ名とテーブル名のプレフィックス | references/naming.md |
| バックエンド/フロントエンドのプラグイン開発とプラグインの README ファイル | references/plugin.md |
| プラグインの共有、公開リポジトリ、マーケットプレイス PR、サブモジュール、更新 | references/plugin-sharing.md |
| すべてのバックエンド Python 実装/レビュー:関数、プライベートヘルパー、テストの境界、型付け、フォーマット、コメント、docstring | references/coding-style.md(必須ベースライン) |
| グローバル設定と構成 | references/config.md |
プラグイン作業
プラグインを作成、レビュー、更新する場合:
- プラグインの種類、構成、マニフェスト、設定、フック、SQL、README のルールについて、
references/plugin.mdを読む - タスクに共有、公開、更新、マーケットプレイス PR、プラグインリポジトリ、Git サブモジュールが関わる場合は、
references/plugin-sharing.mdを読む - ドキュメントと実装が異なる場合は、
fastapi-best-architectureのソースコードでの挙動を優先する - ユーザーから明示的な依頼がない限り、git add、commit、push、PR の操作を行わない
CLI
詳細については fba -h を実行してください。