Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
android-architecture
Androidプロジェクトのアーキテクチャ設計を支援。プロジェクト特性に応じてMVI/MVVM/シンプルComposeから最適なパターンを提案し、パッケージ構造の設計と既存プロジェクトの分析を行う。
インストール方法を見る含まれるファイル(8)
- SKILL.md10.2 KB
- knowledge/aihome-example.md12.8 KB
- knowledge/dmenunews-example.md19.1 KB
- knowledge/migration-guide.md9.4 KB
- knowledge/mvi-pattern.md14.0 KB
- knowledge/mvvm-pattern.md12.2 KB
- knowledge/simple-compose.md12.3 KB
- knowledge/skill-integration.md8.2 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Android Architecture Skill
Androidプロジェクトのアーキテクチャ設計を支援するスキルです。
目的
- 新規プロジェクト: 適切なアーキテクチャパターンとパッケージ構造を提案
- 既存プロジェクト: 現状分析とアーキテクチャドキュメント生成
- チーム教育: アーキテクチャの理解を促進するドキュメント作成
コマンド
analyze - 既存プロジェクトの分析
User: このプロジェクトのアーキテクチャを分析して
User: /android-architecture analyze
実行内容:
- プロジェクト構造をスキャン
- 採用パターンを特定(MVI/MVVM/MVP等)
- 層構成を分析(Clean Architecture準拠度)
docs/ANDROID_ARCHITECTURE.mdを生成
setup - 新規プロジェクトへの導入
User: このプロジェクトにアーキテクチャを導入して
User: /android-architecture setup
User: /android-architecture setup mvi # パターン指定も可能
User: /android-architecture setup mvvm
User: /android-architecture setup simple
実行内容:
- 要件ヒアリング(画面数、状態管理の複雑さ、チーム経験)
- 最適なパターンを提案(MVI/MVVM/シンプルCompose)
- 選択されたパターンの基盤クラスを生成
- サンプル機能(Feature)を作成
- セットアップガイドを生成
パターン別の生成物:
| パターン | 生成物 |
|---|---|
| MVI | StateManager, Reducer, Presenter, サンプル機能 |
| MVVM | BaseViewModel, UiState, サンプル機能 |
| Simple | ガイドラインのみ(基盤クラスなし) |
document - ドキュメント生成のみ
User: アーキテクチャドキュメントを作成して
User: /android-architecture document
実行内容:
- 現状のコードを読み取り
docs/ANDROID_ARCHITECTURE.mdを生成- チーム向けの説明資料として整形
推奨アーキテクチャ
プロジェクトの特性に応じて3つのパターンから選択します。
パターン1: MVI(複雑な状態管理向け)
Screen (Compose)
│ Intent
▼
ViewModel
│ Action
▼
StateManager ─────┬──────────────┐
│ │
Reducer Presenter
(純粋な状態変換) (副作用実行)
適用例: dメニューニュース(本番アプリ、複雑な状態遷移)
詳細は knowledge/mvi-pattern.md を参照。
パターン2: MVVM(シンプルな画面向け)
Screen (Compose)
│ Event
▼
ViewModel ────── UiState
│
▼
UseCase / Repository
適用例: 設定画面、CRUD中心のアプリ
詳細は knowledge/mvvm-pattern.md を参照。
パターン3: シンプルCompose(モック/展示会向け)
MainActivity
│
▼
AppNavigation (remember + mutableStateOf)
│
▼
Screen Composables
適用例: AI HOME(展示会デモ、状態管理が単純)
詳細は knowledge/simple-compose.md を参照。
パッケージ構造
app/ # アプリケーションモジュール(DI統合)
├── ui/ # UI層(Compose + ViewModel)
├── domain/ # ドメイン層(UseCase, Repository Interface)
└── data/ # データ層(Repository実装, Room, Retrofit)
※ シンプルComposeの場合はシングルモジュールも可
判断基準
アーキテクチャパターンの選択
| 条件 | 推奨パターン |
|---|---|
| 複雑な状態管理が必要 | MVI |
| シンプルなCRUD画面 | MVVM(軽量) |
| 展示会デモ/モックアプリ | シンプルCompose |
| レガシーコードとの共存 | MVP → 段階的にMVIへ |
パッケージ構造の選択
| 条件 | 推奨構造 |
|---|---|
| 機能が多い(10+画面) | by-feature |
| 機能が少ない(〜5画面) | by-layer |
| マルチモジュール化予定 | by-feature + module分割 |
System Instructions
1. analyze コマンドの実行手順
ステップ1: プロジェクト構造の確認
# モジュール構成を確認
ls -la */src/main/kotlin/
# パッケージ構造を確認
find . -name "*.kt" -path "*/src/main/*" | head -50
確認ポイント:
- モジュール分割(app, ui, domain, data等)
- パッケージ命名規則
- 共通コードの配置場所
ステップ2: アーキテクチャパターンの特定
以下のファイルパターンを検索:
# MVI パターン
find . -name "*Intent.kt" -o -name "*StateManager.kt" -o -name "*Reducer.kt"
# MVVM パターン
find . -name "*ViewModel.kt" | head -10
# Repository パターン
find . -name "*Repository.kt" | head -10
ステップ3: 基盤クラスの分析
MVIの場合、以下を確認:
MviIntent,MviAction,MviState,MviEventインターフェースStateManager基底クラスStateReducer基底クラス
ステップ4: ドキュメント生成
knowledge/dmenunews-example.md を参考に、以下の構成でドキュメントを生成:
- プロジェクト構造と設計思想
- 採用アーキテクチャとその理由
- 状態管理の方針
- DI構成
- データ層の設計
- パッケージ構造の詳細
- テスト戦略
- 開発フロー
- FAQ
2. setup コマンドの実行手順
ステップ1: 要件ヒアリング
ユーザーに以下を確認:
- プロジェクトの規模(画面数)
- 状態管理の複雑さ(複数画面で共有する状態があるか)
- 既存コードの有無
- チームの経験レベル
- 特別な要件(マルチモジュール等)
- 用途(本番アプリ/モック/展示会デモ)
ステップ2: パターン推奨
ヒアリング結果に基づいて最適なパターンを提案:
| 条件 | 推奨パターン |
|---|---|
| 10+画面、複雑な状態遷移、チームにMVI経験者 | MVI |
| 5-10画面、シンプルなCRUD、チーム初心者多め | MVVM |
| モック/展示会、状態共有なし、短期開発 | シンプルCompose |
推奨フォーマット:
プロジェクト特性の分析結果:
- 画面数: XX画面
- 状態管理: [複雑/シンプル]
- 用途: [本番/モック]
推奨パターン: [MVI/MVVM/シンプルCompose]
理由: ...
このパターンで進めてよいですか?
ステップ3: 基盤クラス生成(パターン別)
MVI選択時: ui/common/mvi/ に以下を作成
MviIntent.ktMviAction.ktMviState.ktMviEvent.ktStateManager.ktStateReducer.ktMviPresenter.kt
MVVM選択時: ui/common/ に以下を作成
BaseViewModel.ktUiState.ktUiEvent.kt
シンプルCompose選択時: 基盤クラスは作成しない
docs/ARCHITECTURE_GUIDELINES.mdのみ生成
ステップ4: サンプル機能の作成(パターン別)
MVI選択時: ui/feature/sample/ に作成
SampleScreen.ktSampleViewModel.ktSampleUiState.ktSampleIntent.ktmvi/SampleStateManager.ktmvi/SampleReducer.kt
MVVM選択時: ui/feature/sample/ に作成
SampleScreen.ktSampleViewModel.ktSampleUiState.kt
シンプルCompose選択時: サンプルは作成しない
- 既存の
aihome-example.mdを参照として案内
ステップ5: セットアップガイド生成
docs/ARCHITECTURE_SETUP.md を生成:
- 選択したパターンの説明
- ディレクトリ構造
- 新機能追加の手順
- テスト方針
3. エラーハンドリング
エラー1: パターンが特定できない
- 複数パターンが混在している可能性を報告
- 各パターンの使用箇所を列挙
- 統一の提案を行う
エラー2: 既存コードとの競合
- 既存の基盤クラスを尊重
- 拡張・改善の提案にとどめる
- 破壊的変更は避ける
エラー3: パターン選択に迷う
- ヒアリング項目を追加で確認
- 両方のメリット・デメリットを提示
- 最終判断はユーザーに委ねる
Knowledge Files
knowledge/dmenunews-example.md- dメニューニュースでの実装例(MVI)knowledge/aihome-example.md- AI HOMEでの実装例(シンプルCompose)knowledge/mvi-pattern.md- MVIパターンの詳細ガイドknowledge/mvvm-pattern.md- MVVMパターンの詳細ガイドknowledge/simple-compose.md- シンプルComposeの詳細ガイドknowledge/migration-guide.md- 既存プロジェクトへの移行ガイドknowledge/skill-integration.md- Androidスキル連携ガイド
関連スキル
android-ui-guidelines- Compose UIの実装ガイドラインandroid-api-client-guidelines- APIクライアントの実装ガイドラインandroid-test-runner- テスト実行と失敗分析android-test-generator- テストコード自動生成
成功基準
- プロジェクト構造が正確に分析されている
- アーキテクチャパターンが正しく特定されている
- プロジェクト特性に適したパターンが提案されている
- 生成ドキュメントが新規メンバーの理解を助ける
- 提案が既存コードを破壊しない
バージョン
v1.1 - パターン選択対応 (2026-01-13)
setupコマンドにパターン選択機能を追加- MVVM、シンプルComposeのサポート追加
- 要件ヒアリングステップの強化
knowledge/mvvm-pattern.md追加knowledge/simple-compose.md追加
v1.0 - 初版 (2026-01-08)
analyzeコマンド実装setupコマンド実装documentコマンド実装- dmenunews実例をknowledgeとして追加
Maintainer: 石原正也 公開範囲: Public セットアップ: 即利用可
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
Firebase Crashlyticsのスタックトレースを解析し、トリアージ分類→根本原因分析→修正提案を出力するスキル。/crash-analyze コマンド、クラッシュ解析、スタックトレース分析、ANR分析、Crashlytics、クラッシュレポート、またはFirebase crashに関連するリクエストで使用される。クラッシュ対応のワークフローを標準化し、対応品質と速度を向上させる。ANR/Non-fatal/Fatal全タイプ対応。
Android data layer implementation guide. Provides comprehensive patterns for Room Database (Entity, DAO, Migration), DataStore (Preferences), Repository layer design, and common pitfalls. Use when implementing local data storage, cache strategies, or data source integration in Android projects.
日本語の概要は準備中です。原文の説明を表示しています。
重要: ユーザーがAndroidテスト実行をリクエストした場合、常にこのスキルを最初に使用してください。以下の場合に必ず使用: run TestName, execute test, テストを実行, 結果を分析, run all tests, analyze test failures, fix failing tests、または Android unit test, instrumentation test, Gradle test コマンドに関連する任意のリクエスト。./gradlew test や Bash コマンドを直接使用しないでください - 常にこのスキルに委譲してください。Multi-variantプロジェクト、JAVA_HOME セットアップ、一般的なテストパターンに対応しています。
Jetpack ComposeでUIを実装する時に参照するコーディングガイドライン。 「Android UI」「Compose」「Jetpack」「画面実装」「UIコンポーネント」「レイアウト」と言われたら使う。 Android/Kotlin UI実装のベストプラクティス、アンチパターン、実装パターンを提供する。
非同期処理のバックエンドとフロントエンドを実装する際のベストプラクティスをまとめたスキルです。非同期処理が必要なWebサービスのフロントエンドおよびバックエンドを実装する際に利用されます。