mcpField
E
Error Resolver

Error Resolver

github.com/davila7開発33.0k409 回インストール今日更新
リポジトリ

Error Resolver について

言語やフレームワークを問わずエラーを診断する、開発者向けのデバッグスキルです。5段階の手順で情報を整理して根本原因を調べ、修正と予防策を示し、解決策の記録と再利用にも対応します。

主な機能

  1. 01カテゴリと状況に基づくエラー分類
  2. 02メッセージやトレースから要点を抽出
  3. 03既知のパターンとの照合
  4. 045 Whysによる根本原因分析
  5. 05解決策の記録と再利用

活用シーン

  1. 01未知のスタックトレースを診断
  2. 02繰り返し発生する依存関係エラーを調査
  3. 03リグレッションの原因を特定
  4. 04今後に備えて修正内容を記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davila7/claude-code-templates --skill error-resolver

インストール後、Claude Code で/error-resolverを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

analysis/
root-cause.md
stack-trace.md
patterns/
nodejs.md
go.md
docker.md
git.md
network.md
python.md
database.md
react.md
rust.md
replay/
README.md
solution-template.yaml

詳細

Error Resolver

あらゆる言語とフレームワークにおけるエラーを、ファーストプリンシパルのアプローチで診断・解決します。

コア哲学

5 ステップのエラー解決プロセス:

1. CLASSIFY  ->  2. PARSE  ->  3. MATCH  ->  4. ANALYZE  ->  5. RESOLVE
     |              |             |             |              |
  What type?    Extract key    Known       Root cause      Fix +
               information    pattern?     analysis       Prevent

クイックスタート

エラーに遭遇したら:

  1. エラーの全文を貼り付ける(利用可能であればスタックトレースも含める)
  2. コンテキストを提供する(何をしようとしていたか?)
  3. 関連するコードを共有する(関係するファイル/関数)

エラー分類フレームワーク

主要カテゴリ
カテゴリ指標一般的な原因
SyntaxParse error, Unexpected tokenタイプミス、括弧の欠落、無効な構文
TypeTypeError, type mismatchデータ型の誤り、null/undefined へのアクセス
ReferenceReferenceError, NameError未定義の変数、スコープの問題
RuntimeRuntimeError, Exceptionロジックエラー、無効な操作
NetworkECONNREFUSED, timeout, 4xx/5xx接続の問題、URL の誤り、サーバーダウン
PermissionEACCES, PermissionErrorファイル/ディレクトリへのアクセス、sudo が必要
DependencyModuleNotFound, Cannot find moduleパッケージの欠落、バージョンの不一致
ConfigurationConfig error, env missing誤った設定、環境変数の欠落
DatabaseConnection refused, query errorDB のダウン、誤った認証情報、不正なクエリ
MemoryOOM, heap out of memoryメモリリーク、大規模データの処理
副次的な属性
  • Severity: Fatal / Error / Warning / Info
  • Scope: Build-time / Runtime / Test-time
  • Origin: User code / Framework / Third-party / System

分析ワークフロー

ステップ 1: 分類

以下を確認して、エラーカテゴリを特定します:

  • エラー名/コード(例: ENOENT、TypeError)
  • エラーメッセージのキーワード
  • 発生箇所(コンパイル、実行時、テスト)
ステップ 2: 解析

重要な情報を抽出します:

- Error code: [specific code if any]
- File path: [where the error originated]
- Line number: [exact line if available]
- Function/method: [context of the error]
- Variable/value: [what was involved]
- Stack trace depth: [how deep is the call stack]
ステップ 3: パターンの照合

既知のエラーパターンと照合します:

  • 言語固有のパターンについては patterns/ ディレクトリを参照
  • エラーのシグネチャを既知の解決策と照合
  • 過去の解決策について、リプレイ履歴を確認
ステップ 4: 根本原因分析

5 Whys の手法を適用します:

Error: Cannot read property 'name' of undefined
  Why 1? -> user object is undefined
  Why 2? -> API call returned null
  Why 3? -> User ID doesn't exist in database
  Why 4? -> ID was from stale cache
  Why 5? -> Cache invalidation not implemented

Root Cause: Missing cache invalidation logic
ステップ 5: 解決

実行可能な解決策を生成します:

  1. 即時の修正 - 今すぐ動くようにする
  2. 恒久的な修正 - 正しい方法で解決する
  3. 再発防止 - 将来同じ問題を避ける方法

出力形式

エラーを解決する際は、以下を提供します:

## Error Diagnosis

**Classification**: [Category] / [Severity] / [Scope]

**Error Signature**:
- Code: [error code]
- Type: [error type]
- Location: [file:line]

## Root Cause

[Explanation of why this error occurred]

**Contributing Factors**:
1. [Factor 1]
2. [Factor 2]

## Solution

### Immediate Fix
[Quick steps to resolve]

### Code Change
[Specific code to add/modify]

### Verification
[How to verify the fix works]

## Prevention

[How to prevent this error in the future]

## Replay Tag

[Unique identifier for this solution - for future reference]

リプレイシステム

リプレイシステムは、今後の参照のために成功した解決策を記録します。

解決策の記録

エラーを解決したら、それを記録します:

# Create solution record in project
mkdir -p .claude/error-solutions

# Solution file format: [error-type]-[hash].yaml
解決策レコードの形式
# .claude/error-solutions/[error-signature].yaml
id: "nodejs-module-not-found-express"
created: "2024-01-15T10:30:00Z"
updated: "2024-01-20T14:22:00Z"

error:
  type: "dependency"
  category: "ModuleNotFound"
  language: "nodejs"
  pattern: "Cannot find module 'express'"
  context: "npm project, missing dependency"

diagnosis:
  root_cause: "Package not installed or node_modules corrupted"
  factors:
    - "Missing npm install after git clone"
    - "Corrupted node_modules directory"
    - "Package not in package.json"

solution:
  immediate:
    - "Run: npm install express"
  proper:
    - "Check package.json has express listed"
    - "Run: rm -rf node_modules && npm install"
  code_change: null

verification:
  - "Run the application again"
  - "Check express is in node_modules"

prevention:
  - "Add npm install to project setup docs"
  - "Use npm ci in CI/CD pipelines"

metadata:
  occurrences: 5
  last_resolved: "2024-01-20T14:22:00Z"
  success_rate: 1.0
  tags: ["nodejs", "npm", "dependency"]
リプレイの検索

エラーに遭遇したとき:

  1. エラーメッセージからエラーシグネチャを生成する
  2. .claude/error-solutions/ を検索し、一致するパターンを探す
  3. 見つかった場合は、記録された解決策を適用する
  4. 新規の場合は、完全な分析を行い、解決策を記録する
エラーシグネチャの生成
signature = hash(
  error_type +
  error_code +
  normalized_message +  # remove specific values
  language +
  framework
)

変換の例:

  • Cannot find module 'express' -> Cannot find module '{module}'
  • TypeError: Cannot read property 'name' of undefined -> TypeError: Cannot read property '{prop}' of undefined

デバッグコマンド

デバッグ中に役立つコマンド:

Node.js
# Verbose error output
NODE_DEBUG=* node app.js

# Memory debugging
node --inspect app.js

# Check installed packages
npm ls [package-name]

# Verify package.json
npm ls --depth=0
Python
# Debug mode
python -m pdb script.py

# Check installed packages
pip show [package-name]
pip list
一般
# Check file permissions
ls -la [file]

# Check port usage
lsof -i :[port]
netstat -an | grep [port]

# Check environment variables
env | grep [VAR_NAME]
printenv [VAR_NAME]

# Check disk space
df -h

# Check memory
free -m  # Linux
vm_stat  # macOS

一般的なデバッグパターン

パターン 1: 二分探索

エラーの発生箇所が不明な場合:

  1. コードの半分をコメントアウトする
  2. エラーが続く場合、残りの半分に問題がある
  3. 正確な行を特定するまで繰り返す
パターン 2: 最小再現

エラーを再現する最小のコードを作成します:

  1. 空のファイルから始める
  2. コードを一片ずつ追加する
  3. エラーが発生したら停止する
  4. それが最小の再現ケースです
パターン 3: ラバーダック・デバッグ

問題を声に出して説明します(または Claude に説明します):

  1. 本来どうなるべきか?
  2. 実際には何が起きているか?
  3. 最近何が変わったか?
  4. 自分はどんな前提を置いているか?
パターン 4: Git Bisect

どのコミットがバグを導入したかを見つけます:

git bisect start
git bisect bad  # current commit is bad
git bisect good [last-known-good-commit]
# Git will checkout commits for you to test
git bisect good/bad  # mark each as good or bad
git bisect reset  # when done

参照ファイル

  • patterns/ - 言語別のエラーパターン

    • nodejs.md - Node.js の一般的なエラー
    • python.md - Python の一般的なエラー
    • react.md - React/Next.js のエラー
    • database.md - データベースのエラー
    • docker.md - Docker/コンテナーのエラー
    • git.md - Git のエラー
    • network.md - ネットワーク/API のエラー
  • analysis/ - 分析手法

    • stack-trace.md - スタックトレース解析ガイド
    • root-cause.md - 根本原因分析の手法
  • replay/ - リプレイシステム

    • solution-template.yaml - 解決策を記録するためのテンプレート

コメント