Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
中文简介正在准备中。当前显示原文说明。
Firebase Crashlyticsのスタックトレースを解析し、トリアージ分類→根本原因分析→修正提案を出力するスキル。/crash-analyze コマンド、クラッシュ解析、スタックトレース分析、ANR分析、Crashlytics、クラッシュレポート、またはFirebase crashに関連するリクエストで使用される。
クラッシュ対応のワークフローを標準化し、対応品質と速度を向上させる。ANR/Non-fatal/Fatal全タイプ対応。
中文简介正在准备中。当前显示原文说明。
安装前可以查看交给 AI 代理的指令内容。
Firebase Crashlyticsのスタックトレースを解析し、トリアージ分類→根本原因分析→修正提案を出力する Claude Code スキルです。
クラッシュ対応ワークフローを標準化し、対応品質と速度を向上させる:
| タイプ | アプリコード | 判定 | アクション |
|---|---|---|---|
| ANR | なし | MONITOR | モニタリング + コードベースのANR原因スキャン |
| ANR | あり | INVESTIGATE | 根本原因分析 + 修正提案 |
| error | なし | MONITOR | SDK動作として記録(対処不要) |
| error | あり | FIX | バグ修正提案 |
| crash | なし | MONITOR | モニタリング |
| crash | あり(アプリ例外) | FIX | バグ修正提案 |
| crash | あり(システム例外) | DEFEND | 防御的try-catch提案 |
スタックトレース入力
→ タイプ判定(ANR/error/crash)
→ アプリフレーム有無
→ MONITOR / INVESTIGATE / FIX / DEFEND
/crash-analyze <file_path> — 指定ファイルのスタックトレースを解析/crash-analyze — ファイルパス入力を促すユーザーが Firebase Crashlytics のスタックトレース解析をリクエストした場合、以下の手順に従ってください:
Read ツールでファイルを読み込む。大容量ファイル(1000行超)の場合、最初に先頭100行のみ読み込み、その後 Grep でアプリフレームを抽出する。
ユーザーが直接貼り付けたスタックトレースからそのまま解析を開始する。
ファイル先頭7行程度から以下を抽出:
| フィールド | 抽出パターン | 例 |
|---|---|---|
| パッケージ名 | Package Name: の値 | jp.co.nttdocomo.dmenunews |
| バージョン | Version Name: / Version Code: | 2.49.1 (504901100) |
| Issue Hash | Issue # / ファイル名のハッシュ部分 | abc123def456 |
| 発生日 | Date: / タイムスタンプ | 2025-01-15 |
パッケージ名が不明な場合: Glob で **/AndroidManifest.xml を検索し、package= 属性から取得する。フォールバックとして build.gradle* の applicationId を使用。
以下の優先順で判定:
1. ファイル名パターン(最優先):
_ANR_ を含む → ANR_error_ を含む → error(Non-fatal)_crash_ を含む → crash(Fatal)2. フォールバック(ファイル名なし/ペースト入力):
ANR / Application Not Responding → ANRException / Error でプロセス終了なし → errorFATAL EXCEPTION / Process: ... has stopped → crashステップ0で取得したパッケージ名を使い、スタックトレース内のアプリフレームを特定:
# アプリフレームの検索
パッケージ名(例: jp.co.nttdocomo.dmenunews)を含む行を抽出
判定基準:
at 行が 1行以上 → アプリコードありCaused by チェーン: 複数の Caused by: がある場合、最後の Caused by を根本原因として扱う。
ProGuard難読化の検出: 単一文字のクラス名(at a.b.c.d(Unknown Source))を検出した場合:
⚠️ ProGuardで難読化されたスタックトレースです。
mapping.txt を使用してデコードしてから再分析することを推奨します:
$ retrace mapping.txt stacktrace.txt
ステップ1のタイプとステップ2のアプリフレーム有無から、Quick Reference のマトリクスに従い判定する。
crash + アプリコードありの場合の追加判定:
java.lang.* / kotlin.* でアプリコードが直接の原因 → FIXandroid.os.*, android.app.* 等)でアプリコードは呼び出し元 → DEFENDシステム例外の例:
android.os.DeadSystemExceptionandroid.os.TransactionTooLargeExceptionandroid.view.WindowManager$BadTokenExceptionjava.lang.SecurityException(権限関連)android.os.DeadObjectException判定結果に応じて分析を実行:
理由を簡潔に説明し、モニタリング方針を提示:
## クラッシュ分析レポート
**判定**: 🔍 MONITOR
**タイプ**: {ANR/error/crash}
**例外**: {例外クラス名}: {メッセージ}
### 理由
{対処不要と判断した理由}
### モニタリング方針
- 発生頻度が急増した場合に再調査
- 影響バージョン: {version}
- Issue: {hash}
ANRのアプリフレームを特定し、メインスレッドブロック箇所を分析:
## クラッシュ分析レポート
**判定**: 🔎 INVESTIGATE
**タイプ**: ANR
### メインスレッドブロック箇所
{アプリフレームからの推定箇所}
### コードベース調査
{対象ファイルのRead結果に基づく分析}
### 修正提案
{具体的な修正方法}
アプリフレームを特定し、コードベースを検索して修正を提案:
## クラッシュ分析レポート
**判定**: 🐛 FIX
**タイプ**: {error/crash}
**例外**: {例外クラス名}: {メッセージ}
### 根本原因
{最後のCaused byチェーンとアプリフレームの分析}
### 対象コード
`{ファイルパス}:{行番号}`
### 修正提案
{修正前/修正後のコード}
システム例外を特定し、防御的ハンドリングを提案:
## クラッシュ分析レポート
**判定**: 🛡️ DEFEND
**タイプ**: crash
**例外**: {システム例外名}: {メッセージ}
### 原因
{システム例外が発生する条件の説明}
### 防御コード提案
{try-catch等の防御的ハンドリングコード}
FIX / DEFEND の場合、以下を実行:
### 修正前
```kotlin
// {file_path}:{line}
{現在のコード}
// {file_path}:{line}
{修正後のコード}
{なぜこの修正が必要か}
### ステップ5a: ANRプロアクティブスキャン
ANR + アプリコードなし(MONITOR判定)の場合、コードベースを自動スキャンしてANR原因となりうるパターンを検出:
| パターン | 検索対象 | 推奨修正 |
|---------|---------|---------|
| メインスレッドでのネットワーク | `URL(...).openStream()` / `openConnection()` タイムアウト未設定 | OkHttp + タイムアウト設定 |
| 同期SharedPreferences | `SharedPreferences.commit()` | `apply()` に変更 |
| メインスレッドブロック | `runBlocking`(非テストコード) | `launch` / `async` に変更 |
| 大容量画像デコード | `BitmapFactory.decode*`(Dispatchers.IO外) | `withContext(Dispatchers.IO)` |
| 同期ContentResolver | `contentResolver.query/insert/update/delete`(コルーチン外) | `withContext(Dispatchers.IO)` |
Grep で各パターンを検索し、検出結果があれば報告:
```markdown
### ANRプロアクティブスキャン結果
コードベースをスキャンし、ANRの潜在的原因を検出しました:
| 箇所 | パターン | リスク |
|------|---------|------|
| `{file}:{line}` | {パターン名} | {説明} |
分析完了後、ユーザーに確認の上、CLAUDE.md の ## Crash Patterns セクションに追記する。
## Crash Patterns
このセクションはクラッシュ分析パターンから自動生成されました。
`/crash-analyze` コマンドで更新できます。
### 非アクション対象
- `{例外名}: {メッセージ}` は{理由}。アクション不要
- 📊 Issue {hash} (v{version}) — {date}
### バグ修正
- `{例外名}: {メッセージ}` — {根本原因の要約}
- 🐛 Issue {hash} (v{version}) — {date}
### 防御的ハンドリング
- `{例外名}` — {条件}にtry-catch必要
- 🛡️ Issue {hash} (v{version}) — {date}
## Crash Patterns セクションがあればそこに追記## CI Learnings の後に作成追記前に既存の ## Crash Patterns セクションを確認し、同一 Issue hash または同一例外パターンが既に記録されている場合はスキップ。
エラー1: ファイルが見つからない
指定されたファイルが見つかりません: {file_path}
パスを確認してください。
エラー2: スタックトレースではないファイル
このファイルはスタックトレースではないようです。
Firebase Crashlyticsからエクスポートした .txt ファイルを指定してください。
エラー3: パッケージ名が特定できない
アプリのパッケージ名を特定できませんでした。
AndroidManifest.xml が見つかりません。パッケージ名を教えてください。
エラー4: ProGuard難読化
⚠️ ProGuardで難読化されたスタックトレースです。
mapping.txt を使用してデコードしてから再分析することを推奨します:
$ retrace mapping.txt stacktrace.txt
このスキルは Agent Skills オープンスタンダードに準拠しています。
対応ツール:
.claude/skills/ ディレクトリに配置することで、上記すべてのツールで使用可能です。
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
中文简介正在准备中。当前显示原文说明。
Androidプロジェクトのアーキテクチャ設計を支援。プロジェクト特性に応じてMVI/MVVM/シンプルComposeから最適なパターンを提案し、パッケージ構造の設計と既存プロジェクトの分析を行う。
中文简介正在准备中。当前显示原文说明。
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サービスのフロントエンドおよびバックエンドを実装する際に利用されます。
中文简介正在准备中。当前显示原文说明。