Error Resolver について
言語やフレームワークを問わずエラーを診断する、開発者向けのデバッグスキルです。5段階の手順で情報を整理して根本原因を調べ、修正と予防策を示し、解決策の記録と再利用にも対応します。
主な機能
- 01カテゴリと状況に基づくエラー分類
- 02メッセージやトレースから要点を抽出
- 03既知のパターンとの照合
- 045 Whysによる根本原因分析
- 05解決策の記録と再利用
活用シーン
- 01未知のスタックトレースを診断
- 02繰り返し発生する依存関係エラーを調査
- 03リグレッションの原因を特定
- 04今後に備えて修正内容を記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill error-resolverインストール後、Claude Code で/error-resolverを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
analysis/root-cause.mdstack-trace.mdpatterns/nodejs.mdgo.mddocker.mdgit.mdnetwork.mdpython.mddatabase.mdreact.mdrust.mdreplay/README.mdsolution-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
クイックスタート
エラーに遭遇したら:
- エラーの全文を貼り付ける(利用可能であればスタックトレースも含める)
- コンテキストを提供する(何をしようとしていたか?)
- 関連するコードを共有する(関係するファイル/関数)
エラー分類フレームワーク
主要カテゴリ
| カテゴリ | 指標 | 一般的な原因 |
|---|---|---|
| Syntax | Parse error, Unexpected token | タイプミス、括弧の欠落、無効な構文 |
| Type | TypeError, type mismatch | データ型の誤り、null/undefined へのアクセス |
| Reference | ReferenceError, NameError | 未定義の変数、スコープの問題 |
| Runtime | RuntimeError, Exception | ロジックエラー、無効な操作 |
| Network | ECONNREFUSED, timeout, 4xx/5xx | 接続の問題、URL の誤り、サーバーダウン |
| Permission | EACCES, PermissionError | ファイル/ディレクトリへのアクセス、sudo が必要 |
| Dependency | ModuleNotFound, Cannot find module | パッケージの欠落、バージョンの不一致 |
| Configuration | Config error, env missing | 誤った設定、環境変数の欠落 |
| Database | Connection refused, query error | DB のダウン、誤った認証情報、不正なクエリ |
| Memory | OOM, 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: 解決
実行可能な解決策を生成します:
- 即時の修正 - 今すぐ動くようにする
- 恒久的な修正 - 正しい方法で解決する
- 再発防止 - 将来同じ問題を避ける方法
出力形式
エラーを解決する際は、以下を提供します:
## 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"]
リプレイの検索
エラーに遭遇したとき:
- エラーメッセージからエラーシグネチャを生成する
.claude/error-solutions/を検索し、一致するパターンを探す- 見つかった場合は、記録された解決策を適用する
- 新規の場合は、完全な分析を行い、解決策を記録する
エラーシグネチャの生成
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: 二分探索
エラーの発生箇所が不明な場合:
- コードの半分をコメントアウトする
- エラーが続く場合、残りの半分に問題がある
- 正確な行を特定するまで繰り返す
パターン 2: 最小再現
エラーを再現する最小のコードを作成します:
- 空のファイルから始める
- コードを一片ずつ追加する
- エラーが発生したら停止する
- それが最小の再現ケースです
パターン 3: ラバーダック・デバッグ
問題を声に出して説明します(または Claude に説明します):
- 本来どうなるべきか?
- 実際には何が起きているか?
- 最近何が変わったか?
- 自分はどんな前提を置いているか?
パターン 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- 解決策を記録するためのテンプレート
コメント
Markdown 対応