--- name: implementing-rails-api description: JSONで定義されたAPI仕様を元にRuby on RailsでAPIと管理画面を実装するスキル。全体のオーケストレーションを行い、各ステップの詳細ガイドラインに従って実装を進めます。 --- ## 概要 このスキルは、JSONで定義されたAPI仕様に基づいて、Ruby on Rails + PostgreSQLでAPIと管理画面を実装します。 ## このスキルを使用するタイミング Claudeは以下の状況でこのスキルを使用します: - ユーザーがJSON形式のAPI仕様を提供し、Rails APIの実装を依頼した場合 - microCMSなどのHeadless CMSの仕様からRails APIを生成する場合 - 既存のJSON仕様ファイル(app.jsonなど)を参照してAPI実装を依頼された場合 - 「APIを実装して」「管理画面を作成して」といったリクエストでJSON仕様が存在する場合 ## 技術スタック | 項目 | 技術 | |------|------| | 言語 | Ruby 3.4 | | フレームワーク | Ruby on Rails 8.1 | | データベース | PostgreSQL 18 | | ORM | Active Record | ## ステップ 各ステップの詳細は `steps/` ディレクトリ内のファイルを参照してください。 ### 1. アプリケーション仕様を確認する 詳細: @steps/01_check_specification.md Claudeは、JSON仕様ファイルを読み込み、モデル構造・フィールド定義・リレーションを把握します。 仕様形式: @references/01_json_specification.md ### 2. 技術スタックを決定する 詳細: @steps/02_select_tech_stack.md Claudeは、環境確認と管理画面の方式(ActiveAdmin / Administrate / Hotwire)を決定します。 ### 3. ユースケースを洗い出す 詳細: @steps/03_define_usecases.md Claudeは、JSON仕様のアクター・ユースケースを確認し、各モデルのCRUD操作、ページネーション、フィルタリング、ソート、リレーション取得方法を定義します。 ### 4. OpenAPI定義を作成する 詳細: @steps/04_define_openapi.md Claudeは、ユースケースとモデル定義に基づいて、APIの仕様をOpenAPI 3.1形式で定義します。 ### 5. DBスキーマを設計する 詳細: @steps/05_design_db_schema.md Claudeは、JSON仕様の型をPostgreSQLの型にマッピングし、テーブル設計を行います。 ### 6. SQLとインデックスを定義する 詳細: @steps/06_define_sql_and_indexes.md Claudeは、ユースケースで実行されるSQLを洗い出し、通常インデックスと全文検索インデックス(GIN + tsvector)を定義します。 ### 7. プロジェクトを初期化する 詳細: @steps/07_initialize_project.md Claudeは、Rails 8.1プロジェクトを作成し、必要なGemと設定をセットアップします。 ### 8. DBマイグレーションを実装する 詳細: @steps/08_implement_migration.md Claudeは、設計に基づいてマイグレーションファイルを作成・実行します。 ### 9. ORマッピングを実装する 詳細: @steps/09_implement_orm.md Claudeは、Active Recordモデルにリレーション、スコープ、クエリメソッドを実装します。 ### 10. バリデーションを実装する 詳細: @steps/10_implement_validation.md Claudeは、JSON仕様のvalidation設定に基づいてActive Recordバリデーションを実装します。 ### 11. APIエンドポイントを実装する 詳細: @steps/11_implement_api_endpoints.md Claudeは、RESTful APIエンドポイント(CRUD、ページネーション、フィルタリング、ソート)を実装します。 ### 12. APIの動作確認を行う 詳細: @steps/12_verify_api.md Claudeは、curlとRSpecでAPIの動作を検証し、N+1問題がないことを確認します。 ### 13. 管理画面を実装する Claudeは、選択した方式で管理画面を実装します。方式に応じて以下のファイルを参照してください: - ActiveAdmin: @steps/13a_admin_activeadmin.md - Administrate: @steps/13b_admin_administrate.md - Hotwire: @steps/13c_admin_hotwire.md - 共通設定・トラブルシューティング: @steps/13d_admin_common.md ### 14. API Playgroundを実装する(オプション) 詳細: @steps/14_implement_api_playground.md Claudeは、OpenAPI定義を活用してSwagger UIまたはカスタムPlaygroundを実装し、APIを対話的にテストできる環境を構築します。 ## ファイル構成 ``` implementing-rails-api/ ├── SKILL.md # このファイル ├── references/ │ └── 01_json_specification.md # JSON仕様の定義 └── steps/ ├── 01_check_specification.md ├── 02_select_tech_stack.md ├── 03_define_usecases.md ├── 04_define_openapi.md ├── 05_design_db_schema.md ├── 06_define_sql_and_indexes.md ├── 07_initialize_project.md ├── 08_implement_migration.md ├── 09_implement_orm.md ├── 10_implement_validation.md ├── 11_implement_api_endpoints.md ├── 12_verify_api.md ├── 13a_admin_activeadmin.md ├── 13b_admin_administrate.md ├── 13c_admin_hotwire.md ├── 13d_admin_common.md └── 14_implement_api_playground.md ```