1k-sentry-analysis について
Sentry の本番エラー報告を調査・修正する開発者向けスキルです。根拠に基づく原因分析と記録を行い、コード変更前にユーザーの確認を求めます。
主な機能
- 01Sentry エラーログの分析
- 026種類の証拠による原因追跡
- 03修正前の分析ログ作成
- 04コード変更前の確認待ち
活用シーン
- 01iOS AppHang と Android ANR の調査
- 02スタックトレースと Breadcrumbs によるクラッシュ追跡
- 03本番エラー分析の文書化
- 04修正の有効性確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ onekeyhq/ app-monorepo --skill 1k-sentry-analysisインストール後、Claude Code で/1k-sentry-analysisを入力して読み込まれたか確認します。
同梱ファイルreferences/rules/fix-sentry-errors.md
詳細
Sentry エラー分析と修正
Sentry のクラッシュレポートから本番環境のエラーを分析し、修正するための一連のワークフローです。
ワークフローの概要
1. Obtain Sentry JSON log
↓
2. Analyze error
↓
3. Identify root cause
↓
4. Generate bug analysis log
↓
🚨 WAIT FOR USER CONFIRMATION 🚨
↓
5. Implement fix (only after approval)
↓
6. Test & verify
↓
7. Create PR
重要な要件
以下のルールを必ず守ってください:
- ✅ 修正を実装する前に、必ず
node_modules/.cache/bugs/にバグ分析ログを作成します - 🚨 コードの変更を開始する前に、必ずユーザーの確認を待ちます
- ✅ バグ分析のすべてのセクションを記入し、分析を完了します
- ✅ 証拠に基づく手法を使用します(連鎖的に、段階を追って進めます)
クイックリファレンス
よくあるエラーの種類
| 種類 | 説明 | よくある原因 |
|---|---|---|
| AppHang | iOS アプリが5秒以上フリーズする | 同時リクエストが多すぎる、メインスレッドのブロック |
| ANR | Android が応答しない | メインスレッドでの負荷の高い処理、デッドロック |
| Crash | アプリが終了する | ヌルポインター、メモリの問題、未処理の例外 |
| Exception | 処理済みのエラー | ネットワーク障害、検証エラー、状態の問題 |
分析手法
因果関係を立証するために、6種類の証拠を使用します。
- スタックトレースの証拠 - コード内のエラー箇所
- パンくずリストの証拠 - エラーにつながるユーザー操作
- コードロジックの証拠 - コードが問題を引き起こす理由
- タイミングの証拠 - 発生するタイミングと頻度
- デバイス/プラットフォームの証拠 - 影響を受けるプラットフォーム/デバイス
- 修正の検証 - テストで修正が機能することを確認
よくある修正パターン
// Pattern 1: Concurrent request control
async function executeBatched<T>(
tasks: Array<() => Promise<T>>,
concurrency = 3,
): Promise<Array<PromiseSettledResult<T>>> {
const results: Array<PromiseSettledResult<T>> = [];
for (let i = 0; i < tasks.length; i += concurrency) {
const batch = tasks.slice(i, i + concurrency);
const batchResults = await Promise.allSettled(
batch.map((task) => task()),
);
results.push(...batchResults);
}
return results;
}
// Pattern 2: Main thread offloading (React Native)
import { InteractionManager } from 'react-native';
InteractionManager.runAfterInteractions(() => {
// Heavy operation here
});
// Pattern 3: Error boundary
<ErrorBoundary fallback={<ErrorFallback />}>
<Component />
</ErrorBoundary>
詳細ガイド
Sentry エラー分析ワークフローの詳細については、fix-sentry-errors.md を参照してください。
以下のトピックを扱います:
- Sentry JSON ログの取得
- Python を使用した迅速な分析
- バグ分析ログのテンプレート
- 6種類の証拠を用いる手法
- 根本原因の特定
- よくある修正パターン(AppHang、ANR、クラッシュ)
- 実際の事例
- テストと検証
- PR 作成ワークフロー
主なファイル
| 用途 | 場所 |
|---|---|
| バグ分析ログ | node_modules/.cache/bugs/ |
| Sentry の設定 | packages/shared/src/modules/sentry/ |
| エラーバウンダリー | packages/kit/src/components/ErrorBoundary/ |
このスキルを使用する場面
- iOS の AppHang エラー(5秒以上のフリーズ)を分析する
- Android の ANR(Application Not Responding)を修正する
- スタックトレースを含むクラッシュレポートを調査する
- クラッシュ前のユーザー操作(パンくずリスト)を把握する
- 証拠に基づくバグ分析レポートを作成する
- 本番環境のエラーを修正する
関連スキル
/1k-performance- パフォーマンス最適化のパターン/1k-error-handling- エラー処理のベストプラクティス/1k-sentry- Sentry の設定とフィルタリング/1k-code-quality- Lint の修正とコード品質
コメント
Markdown 対応