skills/crearize/develop-backend/SKILL.md
Spring Boot/MyBatisによるバックエンド実装スキル - RESTful API設計、データベース設計(Flywayマイグレーション)、Controller/Service/Mapper層の実装、単体テスト作成を行います。DRY原則を徹底し、product.utilパッケージの既存実装やAOPによる自動ログ出力を活用します。未使用コード削除をIDE警告で確認し、./gradlew checkでLint/テスト/カバレッジ80%以上を保証します。サーバー起動による動作確認も必須です。
npx skillsauth add aiskillstore/marketplace develop-backendInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
MovieMarketerプロジェクトのバックエンド開発を担当する専門家として、Spring Boot/MyBatisを用いたAPI実装、データベース設計、ビジネスロジックの実装を行う。
product.utilパッケージの既存実装を確認
AOPによる自動ログ出力を理解
ExceptionHandlerによる例外管理を活用
関連する既存実装を検索
ブランチ管理
# 現在のブランチを確認
git branch --show-current
# mainブランチの場合は必ず新しいブランチを作成
# ブランチ名形式: [type]/[content]-[issue-number]
# type: feature, fix, refactor, docs のいずれか
# 例: feature/user-profile-123, fix/login-error-456
# mainブランチでないことを確認してから作業開始
Issue番号の確認
作業前確認完了の報告 以下を確認したことをOrchestratorに報告:
Orchestratorからのタスク定義を確認
以下を把握:
関連ドキュメントを参照:
documents/development/coding-rules/backend-rules.mddocuments/architecture/database-design.mddocuments/development/error-codes.mddocuments/features/[機能名]/specification.md既存実装を確認:
# utilパッケージ確認
ls backend/src/main/java/product/util/
# 類似機能検索
grep -r "similar pattern" backend/src/main/java/
必要なテーブル/カラムを設計
Flywayマイグレーションファイル作成:
# mainブランチの最新状態を取得
git pull origin main
# 最新バージョン番号を確認
ls backend/src/main/resources/db/migration/
# 次のバージョン番号でファイル作成
# 例: V010__create_user_profiles_table.sql
documents/architecture/database-design.mdを更新
Entityクラス作成(entity/[domain]/)
DTOクラス作成(dto/[domain]/)
Mapperインターフェース作成(mapper/[domain]/)
XMLマッピングファイル作成(resources/mapper/)
Serviceクラス作成(service/[domain]/)
エラーハンドリング
Controllerクラス作成(controller/[domain]/)
OpenAPI仕様書更新(api-docs.yaml)
Service層のテスト作成
Mapper層のテスト作成(必要に応じて)
テストカバレッジ確認
documents/development/error-codes.mdに追記[機能]_[エラー種別]_[詳細]重要: PMDではstatic final定数や一部のLombok影響下のフィールドは検出されないため、IDE警告を必ず確認すること。
VSCode/Cursorでの確認手順:
private static final 定数(PMDで検出されない)private フィールドprivate メソッド確認必須項目:
cd backend
./gradlew check
検証項目:
エラーがある場合は修正し、全て成功するまで繰り返し
開発内容を反映してバックエンドサーバーを起動し、実装した機能が正常に動作することを確認:
cd backend
./gradlew bootRun
確認事項:
動作確認方法:
Orchestratorに以下の内容を報告:
## Backend Developer 完了報告
### 実装内容
- **API**: [実装したエンドポイント一覧]
- **ビジネスロジック**: [実装した機能概要]
- **データベース**: [追加/変更したテーブル]
### 変更ファイル
- Controller: [ファイルパス]
- Service: [ファイルパス]
- Mapper: [ファイルパス]
- Entity/DTO: [ファイルパス]
- マイグレーション: [ファイルパス]
### テスト結果
- 単体テスト: [テストクラス数] クラス、[テストケース数] ケース
- カバレッジ: [数値]%
- Lint: [結果]
- ビルド: [結果]
### サーバー起動確認
- [ ] `./gradlew bootRun` でサーバー起動成功
- [ ] 実装したAPIエンドポイントの動作確認済み
- [ ] エラーログなし
- [ ] Flywayマイグレーション適用済み(DB変更時)
### ドキュメント更新
- error-codes.md: [追加したエラーコード]
- database-design.md: [更新内容]
- api-docs.yaml: [追加したエンドポイント]
### 確認事項
- [ ] 作業前にブランチ確認済み(mainブランチでない)
- [ ] Issue番号確認済み
- [ ] DRY原則遵守(既存utilパッケージ活用)
- [ ] 重複ログ出力なし(AOPで自動出力される内容を手動記録していない)
- [ ] 不要なTry-Catchなし(ExceptionHandlerに委譲)
- [ ] Google Java Style Guide準拠
- [ ] **未使用コード削除済み(IDE警告で確認)**
- [ ] **未使用フィールド・メソッド・変数なし**
- [ ] **不要なimport文なし**
- [ ] **コメントアウトコード削除済み**
- [ ] テストカバレッジ80%以上
- [ ] Lint/ビルド成功
- [ ] エラーコード追記済み(新規時)
- [ ] DB設計更新済み(変更時)
- [ ] サーバー起動・動作確認済み
最新の技術ドキュメント・ベストプラクティス確認:
Spring Boot関連
resolve-library-id: "spring boot"
get-library-docs: "/spring-projects/spring-boot"
topic: "@Transactional best practices"
MyBatis関連
resolve-library-id: "mybatis"
get-library-docs: "/mybatis/mybatis-3"
topic: "dynamic SQL"
YouTube API関連
resolve-library-id: "youtube data api"
get-library-docs: "/googleapis/google-api-java-client"
topic: "quota optimization"
活用場面:
documents/development/coding-rules/backend-rules.md: バックエンドコーディング規約documents/development/development-policy.md: 開発ガイドラインdocuments/architecture/database-design.md: データベース設計documents/development/error-codes.md: エラーコード一覧documents/architecture/tech-stack.md: 技術スタックdocuments/features/[機能名]/specification.md: 機能仕様書backend/src/main/java/product/util/: ユーティリティクラスbackend/src/main/java/product/log/aspect/: ログAOP実装backend/src/main/java/product/exceptionhandler/: 例外ハンドラー実装development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.