Files
2025-11-30 09:05:37 +08:00

9.4 KiB

Error Fix

エラーメッセージから根本原因を特定し、解決時間を予測して実証済みの解決策を提案します。類似エラーのパターンを学習し、即座に適切な対処法を提示します。

使い方

/fix-error [オプション]

オプション

  • なし : 標準的なエラー分析
  • --deep : 深層分析モード (依存関係・環境要因を含む)
  • --preventive : 予防策重視の分析
  • --quick : 即座に適用可能な修正のみ提示

基本例

# 標準的なエラー分析
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 との連携

# エラーログの分析
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
「これらのエラーと警告を優先度順に分類し、それぞれの解決方法を提案して」

エラー解決時間の予測

🚀 即座修正 (5 分以内)
├─ タイポ、import 忘れ
├─ 環境変数未設定
├─ 未定義変数の参照
└─ 予測時間: 2-5 分

⚡ クイック修正 (30 分以内)
├─ 依存関係の不整合
├─ 設定ファイルエラー
├─ 型の不一致
└─ 予測時間: 10-30 分

🔧 調査必要 (2 時間以内)
├─ 複雑なロジックエラー
├─ 非同期処理の競合
├─ API 統合の問題
└─ 予測時間: 30 分-2 時間

🔬 深層分析 (半日以上)
├─ アーキテクチャ起因
├─ 複数システム連携
├─ パフォーマンス劣化
└─ 予測時間: 4 時間-数日

類似エラーパターン DB

頻出エラーと即座の解決策
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📊 "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: エラー情報収集

🔴 必須実行:
- エラーメッセージの完全な取得
- スタックトレースの確認
- 発生条件の特定 (再現可能性)

🟡 早期実行:
- 環境情報の収集 (OS、バージョン、依存関係)
- 直前の変更履歴 (git log、最近のコミット)
- 関連ログの確認

🟢 追加実行:
- システムリソース状況
- ネットワーク状態
- 外部サービス状態

Phase 2: 根本原因分析

  1. 表面的症状の整理

    • エラーメッセージの正確な内容
    • 発生タイミングとパターン
    • 影響範囲の特定
  2. 深層原因の特定

    • 5 Whys 分析の適用
    • 依存関係の追跡
    • 環境差異の確認
  3. 仮説の検証

    • 最小再現コードの作成
    • 分離テストの実行
    • 原因の絞り込み

Phase 3: 解決策の実装

🔴 即座の対処 (ホットフィックス):
- 症状を抑える最小限の修正
- 一時的な回避策の適用
- 緊急デプロイの準備

🟡 根本的解決:
- 原因に対する本質的な修正
- テストケースの追加
- ドキュメントの更新

🟢 予防策の実装:
- エラーハンドリングの強化
- 監視・アラートの設定
- CI/CD パイプラインの改善

出力例

🚨 エラー分析レポート
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📍 エラー概要
├─ 種別: [コンパイル/実行時/論理/環境]
├─ 緊急度: 🔴 高 / 🟡 中 / 🟢 低
├─ 影響範囲: [機能名/コンポーネント]
└─ 再現性: [100% / 断続的 / 特定条件]

🔍 根本原因
├─ 直接原因: [具体的な原因]
├─ 背景要因: [環境/設定/依存関係]
└─ トリガー: [発生条件]

💡 解決策
🔴 即座の対処:
1. [具体的な修正コマンド/コード]
2. [一時的な回避策]

🟡 根本的解決:
1. [本質的な修正方法]
2. [必要なリファクタリング]

🟢 予防策:
1. [エラーハンドリング改善]
2. [テスト追加]
3. [監視設定]

📝 検証手順
1. [修正適用後の確認方法]
2. [テスト実行コマンド]
3. [動作確認項目]

エラータイプ別の分析手法

コンパイル/ビルドエラー

# TypeScript の型エラー
必須確認 ():
- tsconfig.json の設定
- 型定義ファイル (.d.ts) の存在
- import 文の正確性

# Rust のライフタイムエラー
必須確認 ():
- 所有権の移動
- 参照の有効期間
- ミュータビリティの競合

実行時エラー

# Null/Undefined 参照
必須確認 ():
- オプショナルチェイニング不足
- 初期化タイミング
- 非同期処理の完了待機

# メモリ関連エラー
必須確認 ():
- ヒープダンプの取得
- GC ログの分析
- 循環参照の検出

依存関係エラー

# バージョン競合
必須確認 ():
- lock ファイルの整合性
- peer dependencies の要件
- 推移的依存関係

# モジュール解決エラー
必須確認 ():
- NODE_PATH 設定
- パスエイリアス設定
- シンボリックリンク

注意事項

  • 絶対禁止: エラーメッセージの一部のみでの判断、検証なしでの Stack Overflow 解決策の適用
  • 例外条件: 一時的な回避策は以下の 3 つの条件のみ許可
    1. 本番環境の緊急対応 (24 時間以内に根本解決必須)
    2. 外部サービス障害 (復旧待ちの間の代替手段)
    3. 既知のフレームワークバグ (修正版リリース待ち)
  • 推奨事項: 根本原因の特定を最優先し、表面的な修正を避ける

ベストプラクティス

  1. 完全な情報収集: エラーメッセージの最初から最後まで確認
  2. 再現性の確認: 最小再現コードの作成を最優先
  3. 段階的アプローチ: 小さな修正から始めて検証
  4. ドキュメント化: 解決過程を記録して知識共有

よくある落とし穴

  • 症状への対処: 根本原因を見逃す表面的な修正
  • 過度な一般化: 特定ケースの解決策を広範に適用
  • 検証の省略: 修正後の副作用を確認しない
  • 知識の属人化: 解決方法を文書化しない

関連コマンド

  • /design-patterns : コード構造の問題を分析してパターン提案
  • /tech-debt : 技術的負債の観点からエラーの根本原因を分析
  • /analyzer : より深い根本原因分析が必要な場合