name: spring-boot-rest-api description: Generate a Spring Boot 3.5.x REST API project from user-specified entity and verify startup
概要
- このSkillは、ユーザーの入力からSpring Boot 3.5.xのREST APIプロジェクトをスキャフォールドし、アプリケーションの起動確認(起動と簡易ヘルスチェック)まで自動で行えるAgentsSkillの設計書です。
- 実際のアプリ作成はユーザーの許可を得てから行います。まず必ずユーザーに下記質問を行い、回答を取得してください。
必須でユーザーに問い合わせる項目(順序は必ず守る)
- エンティティ名と主要属性(例: User: id, name, email)
- ビルドツール: Maven / Gradle
- 使用するデータベース: H2 / PostgreSQL / MySQL / MariaDB / その他(具体名)
- データアクセス: MyBatis / JPA
- その他の追加指示(API名、認証要否、パッケージ命名規約など)
入出力仕様
- 入力: 上記5項目を含む構造化テキスト(自由形式だが必須項目は全て回答)
- 出力: 生成されたプロジェクト構成(ファイル一覧)、ビルドログ、起動ログ、HTTPによる起動確認結果(例: HTTP 200 /actuator/healthまたはルートAPIの応答)
実装フロー(Skillの実行時に従う手順)
- ユーザーから5つの質問へ回答を受け取る。未回答や不整合があれば都度確認し、確定するまで先に進めない。
- プロジェクトテンプレートを作成
- Spring Boot 3.5.xをターゲットにする
- ビルドツールに応じてMavenまたはGradleのビルドファイルを生成
- 依存: spring-boot-starter-web, spring-boot-starter-actuator, spring-boot-starter-{data-jpa or mybatis}, DBドライバ(選択DBに応じて)
- Javaバージョン: 17以上を想定
- エンティティ定義をもとに: エンティティクラス、リポジトリ(JPA)またはMapper(MyBatis)、シンプルなRESTコントローラー(CRUDのスケルトン)を生成
- application.properties(もしくは application.yml)を生成
- DB接続情報はデフォルトでインメモリ(H2)を使うか、ユーザー提供の接続情報を環境変数で参照する方式を採用
- actuator.endpoints.web.exposure.include=health,info を有効化
- ビルドと起動
- Maven: mvn -B -e spring-boot:run
- Gradle: ./gradlew bootRun
- ビルド/起動時のログは保存してユーザーへ提示
- 起動確認
- 既定でポート8080へのHTTP GETで /actuator/health を叩く(存在しない場合は / を叩いて200応答を確認)
- 応答を解析し、成功/失敗をユーザーへ報告
- 成功時のアーティファクト提示
- 生成したファイル一覧、主要ソースの抜粋、起動ログ、確認リクエストとレスポンス
- 失敗時の対応
- ログを添えて原因候補(依存解決、Javaバージョン、不足ライブラリ、DB接続失敗)を提示し、続行方法をユーザーに確認
動作環境・前提
- 実行ホストにJava 17+と選択したビルドツール(mvnまたはgradle)がインストールされていること
- ネットワーク越しにDBへ接続する場合、接続先情報(URL, ユーザー, パスワード)をユーザーが与える必要がある
- DBがローカルで用意できない場合はH2をデフォルト使用
セキュリティと運用上の注意
- パスワード等の秘密はファイルへ平文で書き込まず、環境変数またはシークレットマネージャ(ユーザー指定)を推奨
- 外部DB接続情報を扱う際は、ログ出力に注意(資格情報はマスクする)
検証とテスト
- 起動確認は最小限のヘルスチェックで行う
- 追加の統合テストやユニットテストはユーザーの要望に応じて生成可能(オプション)
エラーハンドリング
- ビルドや起動で失敗した場合は、主要なログ(最初のエラースタックトレース)を抜粋してユーザーへ提示
- 典型的な修正案(Javaバージョンの調整、依存バージョンの固定、DB設定の修正)を示す
ユーザー対話例(呼び出しフロー)
- Skill: "プロジェクトを作成します。まず次の5点を教えてください: (1) エンティティ名と属性 (2) Maven/Gradle (3) DB (4) MyBatis/JPA (5) その他"
- ユーザー: 回答を提供
- Skill: 回答確認と補足質問(必要なら)
- ユーザー: 確認応答
- Skill: プロジェクト生成→ビルド→起動→ヘルスチェック→結果提示
拡張やカスタマイズ
- 認証(JWT)やAPIドキュメンテーション(Springdoc OpenAPI)を追加するオプションを用意
- Dockerfile / docker-composeの自動生成(DBをコンテナで立てるオプション)
参考: GitHub Agents Skill作成ガイドに準拠して設計してください。
作成日: 2026-03-25 Target Spring Boot: 3.5.x