ワンクリックで
android-api-client
Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Figma のワイヤーフレーム URL から仕様書一式を docs/ 配下に Markdown で抽出するスキル。ページ構成・ユースケース・アクター・データモデル・コンポーネントを 15 ステップで段階的に生成し、整合性/データモデル/コンポーネントの 3 レビューを作成する。**既存リポジトリの機能拡張モード** では既存モデル・ルーティング・ビューを再利用優先。**レビュー反復反映ステップ** では質問ループで方針を確定しドキュメントに反映する。Figma URL が提供されたとき、Figma デザインから実装用仕様書を作りたいとき、または既存仕様書の精度向上を求められたときに使用する。
Claude Codeセッションの効率を分析・スコアリングするWebツール。セッションログ(JSONL)を解析し、7観点100点満点で「無駄の有無」を評価。npx session-evaluatorで起動し、ブラウザUIでセッション選択→分析→改善提案まで実行可能。
PRの変更内容をトリアージし、変更カテゴリ分類・表層チェック・必要リファレンス判定を行います。結果を`.pr-triage.json`に出力し、後続のコードレビューフェーズで活用します。CI環境でのコスト最適化に使用してください。
PRやコード変更の汎用コードレビューを実施します。コードの品質、セキュリティ、設計を共通基準で評価し、approve/rejectを判断します。「このPRをレビュー」「コードレビューして」「マージ前チェック」などの依頼や、gh pr viewコマンドの実行時に使用してください。
テスト仕様書(Excel/Notion)からFlutter integration_testコードを自動生成するスキル。 Page Objectパターン + Key規約に基づき、仕様ステップとコードの対応を示すマッピングレポートも生成する。 「E2Eテストを生成」「テスト仕様からテストコードを作って」「integration_testを生成」などの発言で発動。
CLAUDE.mdを分割ルールファイル(.claude/rules/)で管理するスキル。学習トライアドの書き込み先を分割ファイルにリダイレクトし、自動マージでCLAUDE.mdを生成。/rules-init, /rules-merge, /rules-add, /rules-status コマンドを提供。CLAUDE.mdが肥大化している場合や、学習トライアドの蓄積を分割管理したい場合に使用。
| name | android-api-client |
| description | Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。 |
Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティス。
// Retrofit + OkHttp + Kotlinx Serialization
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-kotlinx-serialization:2.9.0")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
UI Layer (ViewModel)
↓
Domain Layer (UseCase / Repository Interface)
↓
Data Layer (Repository Implementation → API Service → OkHttpClient)
interface ApiService {
@GET("users")
suspend fun getUsers(@Query("page") page: Int): List<UserDto>
@GET("users/{id}")
suspend fun getUser(@Path("id") userId: String): UserDto
@POST("users")
suspend fun createUser(@Body request: CreateUserRequest): UserDto
}
sealed interface ApiResult<out T> {
data class Success<T>(val data: T) : ApiResult<T>
data class Error(val error: ApiError) : ApiResult<Nothing>
}
sealed class ApiError {
data class HttpError(val code: Int, val message: String) : ApiError()
data class NetworkError(val cause: Throwable) : ApiError()
data object Unauthorized : ApiError()
data object Timeout : ApiError()
}
suspend fun <T> safeApiCall(apiCall: suspend () -> T): ApiResult<T> {
return try {
ApiResult.Success(apiCall())
} catch (e: HttpException) {
ApiResult.Error(ApiError.HttpError(e.code(), e.message()))
} catch (e: IOException) {
ApiResult.Error(ApiError.NetworkError(e))
}
}
class UserRepositoryImpl @Inject constructor(
private val apiService: ApiService,
private val userMapper: UserMapper
) : UserRepository {
override suspend fun getUser(id: String): Result<User> {
return safeApiCall { apiService.getUser(id) }
.map { userMapper.toDomain(it) }
.toResult()
}
}
詳細は REFERENCE.md を参照してください。