312 lines
9.4 KiB
Markdown
312 lines
9.4 KiB
Markdown
## Error Fix
|
|
|
|
エラーメッセージから根本原因を特定し、解決時間を予測して実証済みの解決策を提案します。類似エラーのパターンを学習し、即座に適切な対処法を提示します。
|
|
|
|
### 使い方
|
|
|
|
```bash
|
|
/fix-error [オプション]
|
|
```
|
|
|
|
### オプション
|
|
|
|
- なし : 標準的なエラー分析
|
|
- `--deep` : 深層分析モード (依存関係・環境要因を含む)
|
|
- `--preventive` : 予防策重視の分析
|
|
- `--quick` : 即座に適用可能な修正のみ提示
|
|
|
|
### 基本例
|
|
|
|
```bash
|
|
# 標準的なエラー分析
|
|
npm run build 2>&1
|
|
/fix-error
|
|
「ビルドエラーを分析して修正方法を提示して」
|
|
|
|
# 深層分析モード
|
|
python app.py 2>&1
|
|
/fix-error --deep
|
|
「エラーの根本原因を環境要因も含めて分析して」
|
|
|
|
# 即座の修正重視
|
|
cargo test 2>&1
|
|
/fix-error --quick
|
|
「すぐに適用できる修正方法を提示して」
|
|
|
|
# 予防策重視
|
|
./app 2>&1 | tail -50
|
|
/fix-error --preventive
|
|
「エラーの修正と今後の予防策を提示して」
|
|
```
|
|
|
|
### Claude との連携
|
|
|
|
```bash
|
|
# エラーログの分析
|
|
cat error.log
|
|
/fix-error
|
|
「エラーの根本原因を特定し、修正方法を提案して」
|
|
|
|
# テスト失敗の解決
|
|
npm test 2>&1
|
|
/fix-error --quick
|
|
「失敗したテストを分析し、即座に適用できる修正案を提示して」
|
|
|
|
# スタックトレースの解析
|
|
python script.py 2>&1
|
|
/fix-error --deep
|
|
「このスタックトレースから問題箇所を特定して環境要因も含めて分析して」
|
|
|
|
# 複数のエラーをまとめて解決
|
|
grep -E "ERROR|WARN" app.log | tail -20
|
|
/fix-error
|
|
「これらのエラーと警告を優先度順に分類し、それぞれの解決方法を提案して」
|
|
```
|
|
|
|
### エラー解決時間の予測
|
|
|
|
```text
|
|
🚀 即座修正 (5 分以内)
|
|
├─ タイポ、import 忘れ
|
|
├─ 環境変数未設定
|
|
├─ 未定義変数の参照
|
|
└─ 予測時間: 2-5 分
|
|
|
|
⚡ クイック修正 (30 分以内)
|
|
├─ 依存関係の不整合
|
|
├─ 設定ファイルエラー
|
|
├─ 型の不一致
|
|
└─ 予測時間: 10-30 分
|
|
|
|
🔧 調査必要 (2 時間以内)
|
|
├─ 複雑なロジックエラー
|
|
├─ 非同期処理の競合
|
|
├─ API 統合の問題
|
|
└─ 予測時間: 30 分-2 時間
|
|
|
|
🔬 深層分析 (半日以上)
|
|
├─ アーキテクチャ起因
|
|
├─ 複数システム連携
|
|
├─ パフォーマンス劣化
|
|
└─ 予測時間: 4 時間-数日
|
|
```
|
|
|
|
### 類似エラーパターン DB
|
|
|
|
```text
|
|
頻出エラーと即座の解決策
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
📊 "Cannot read property 'X' of undefined/null" (頻出度: 極高)
|
|
├─ 主要原因: オブジェクトの null チェック不足
|
|
├─ 解決時間: 5-10 分
|
|
└─ 対処法: Optional chaining (?.) または null チェック追加
|
|
|
|
📊 "ECONNREFUSED" / "ENOTFOUND" (頻出度: 高)
|
|
├─ 主要原因: サービス未起動または URL 設定ミス
|
|
├─ 解決時間: 5-15 分
|
|
└─ 対処法: サービス起動確認、環境変数チェック
|
|
|
|
📊 "Module not found" / "Cannot resolve" (頻出度: 高)
|
|
├─ 主要原因: パッケージ未インストール、パス指定ミス
|
|
├─ 解決時間: 2-5 分
|
|
└─ 対処法: npm install 実行、相対パス確認
|
|
|
|
📊 "Unexpected token" / "SyntaxError" (頻出度: 中)
|
|
├─ 主要原因: 括弧・引用符の不一致、予約語使用
|
|
├─ 解決時間: 2-10 分
|
|
└─ 対処法: シンタックスハイライト確認、Linter 実行
|
|
|
|
📊 "CORS policy" / "Access-Control-Allow-Origin" (頻出度: 中)
|
|
├─ 主要原因: サーバー側の CORS 設定不足
|
|
├─ 解決時間: 15-30 分
|
|
└─ 対処法: サーバー CORS 設定、プロキシ設定
|
|
|
|
📊 "Maximum call stack size exceeded" (頻出度: 低)
|
|
├─ 主要原因: 無限ループ・再帰、循環参照
|
|
├─ 解決時間: 30 分- 2 時間
|
|
└─ 対処法: 再帰の終了条件確認、循環参照の解消
|
|
```
|
|
|
|
### エラー分析の優先度マトリクス
|
|
|
|
| 優先度 | アイコン | 影響範囲 | 解決難易度 | 対応期限 | 説明 |
|
|
| ----------------- | ----------- | -------- | ---------- | -------------- | ---------------------------------- |
|
|
| **Critical** | 🔴 緊急対応 | 広 | 低 | 15 分以内着手 | システム全体停止、データ損失リスク |
|
|
| **High Priority** | 🟠 早期対応 | 広 | 高 | 1 時間以内着手 | 主要機能停止、多数ユーザー影響 |
|
|
| **Medium** | 🟡 計画対応 | 狭 | 高 | 当日中対応 | 一部機能制限、回避策あり |
|
|
| **Low** | 🟢 経過観察 | 狭 | 低 | 次回改修時 | 軽微な不具合、UX への影響小 |
|
|
|
|
### 分析プロセス
|
|
|
|
#### Phase 1: エラー情報収集
|
|
|
|
```bash
|
|
🔴 必須実行:
|
|
- エラーメッセージの完全な取得
|
|
- スタックトレースの確認
|
|
- 発生条件の特定 (再現可能性)
|
|
|
|
🟡 早期実行:
|
|
- 環境情報の収集 (OS、バージョン、依存関係)
|
|
- 直前の変更履歴 (git log、最近のコミット)
|
|
- 関連ログの確認
|
|
|
|
🟢 追加実行:
|
|
- システムリソース状況
|
|
- ネットワーク状態
|
|
- 外部サービス状態
|
|
```
|
|
|
|
#### Phase 2: 根本原因分析
|
|
|
|
1. **表面的症状の整理**
|
|
- エラーメッセージの正確な内容
|
|
- 発生タイミングとパターン
|
|
- 影響範囲の特定
|
|
|
|
2. **深層原因の特定**
|
|
- 5 Whys 分析の適用
|
|
- 依存関係の追跡
|
|
- 環境差異の確認
|
|
|
|
3. **仮説の検証**
|
|
- 最小再現コードの作成
|
|
- 分離テストの実行
|
|
- 原因の絞り込み
|
|
|
|
#### Phase 3: 解決策の実装
|
|
|
|
```bash
|
|
🔴 即座の対処 (ホットフィックス):
|
|
- 症状を抑える最小限の修正
|
|
- 一時的な回避策の適用
|
|
- 緊急デプロイの準備
|
|
|
|
🟡 根本的解決:
|
|
- 原因に対する本質的な修正
|
|
- テストケースの追加
|
|
- ドキュメントの更新
|
|
|
|
🟢 予防策の実装:
|
|
- エラーハンドリングの強化
|
|
- 監視・アラートの設定
|
|
- CI/CD パイプラインの改善
|
|
```
|
|
|
|
### 出力例
|
|
|
|
```text
|
|
🚨 エラー分析レポート
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
📍 エラー概要
|
|
├─ 種別: [コンパイル/実行時/論理/環境]
|
|
├─ 緊急度: 🔴 高 / 🟡 中 / 🟢 低
|
|
├─ 影響範囲: [機能名/コンポーネント]
|
|
└─ 再現性: [100% / 断続的 / 特定条件]
|
|
|
|
🔍 根本原因
|
|
├─ 直接原因: [具体的な原因]
|
|
├─ 背景要因: [環境/設定/依存関係]
|
|
└─ トリガー: [発生条件]
|
|
|
|
💡 解決策
|
|
🔴 即座の対処:
|
|
1. [具体的な修正コマンド/コード]
|
|
2. [一時的な回避策]
|
|
|
|
🟡 根本的解決:
|
|
1. [本質的な修正方法]
|
|
2. [必要なリファクタリング]
|
|
|
|
🟢 予防策:
|
|
1. [エラーハンドリング改善]
|
|
2. [テスト追加]
|
|
3. [監視設定]
|
|
|
|
📝 検証手順
|
|
1. [修正適用後の確認方法]
|
|
2. [テスト実行コマンド]
|
|
3. [動作確認項目]
|
|
```
|
|
|
|
### エラータイプ別の分析手法
|
|
|
|
#### コンパイル/ビルドエラー
|
|
|
|
```bash
|
|
# TypeScript の型エラー
|
|
必須確認 (高):
|
|
- tsconfig.json の設定
|
|
- 型定義ファイル (.d.ts) の存在
|
|
- import 文の正確性
|
|
|
|
# Rust のライフタイムエラー
|
|
必須確認 (高):
|
|
- 所有権の移動
|
|
- 参照の有効期間
|
|
- ミュータビリティの競合
|
|
```
|
|
|
|
#### 実行時エラー
|
|
|
|
```bash
|
|
# Null/Undefined 参照
|
|
必須確認 (高):
|
|
- オプショナルチェイニング不足
|
|
- 初期化タイミング
|
|
- 非同期処理の完了待機
|
|
|
|
# メモリ関連エラー
|
|
必須確認 (高):
|
|
- ヒープダンプの取得
|
|
- GC ログの分析
|
|
- 循環参照の検出
|
|
```
|
|
|
|
#### 依存関係エラー
|
|
|
|
```bash
|
|
# バージョン競合
|
|
必須確認 (高):
|
|
- lock ファイルの整合性
|
|
- peer dependencies の要件
|
|
- 推移的依存関係
|
|
|
|
# モジュール解決エラー
|
|
必須確認 (高):
|
|
- NODE_PATH 設定
|
|
- パスエイリアス設定
|
|
- シンボリックリンク
|
|
```
|
|
|
|
### 注意事項
|
|
|
|
- **絶対禁止**: エラーメッセージの一部のみでの判断、検証なしでの Stack Overflow 解決策の適用
|
|
- **例外条件**: 一時的な回避策は以下の 3 つの条件のみ許可
|
|
1. 本番環境の緊急対応 (24 時間以内に根本解決必須)
|
|
2. 外部サービス障害 (復旧待ちの間の代替手段)
|
|
3. 既知のフレームワークバグ (修正版リリース待ち)
|
|
- **推奨事項**: 根本原因の特定を最優先し、表面的な修正を避ける
|
|
|
|
### ベストプラクティス
|
|
|
|
1. **完全な情報収集**: エラーメッセージの最初から最後まで確認
|
|
2. **再現性の確認**: 最小再現コードの作成を最優先
|
|
3. **段階的アプローチ**: 小さな修正から始めて検証
|
|
4. **ドキュメント化**: 解決過程を記録して知識共有
|
|
|
|
#### よくある落とし穴
|
|
|
|
- **症状への対処**: 根本原因を見逃す表面的な修正
|
|
- **過度な一般化**: 特定ケースの解決策を広範に適用
|
|
- **検証の省略**: 修正後の副作用を確認しない
|
|
- **知識の属人化**: 解決方法を文書化しない
|
|
|
|
### 関連コマンド
|
|
|
|
- `/design-patterns` : コード構造の問題を分析してパターン提案
|
|
- `/tech-debt` : 技術的負債の観点からエラーの根本原因を分析
|
|
- `/analyzer` : より深い根本原因分析が必要な場合
|