Files
gh-wasabeef-claude-code-coo…/commands/fix-error.md
2025-11-30 09:05:49 +08:00

312 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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 小時-數天
```
### 類似錯誤模式資料庫
```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 影響小 |
### 分析流程
#### 階段 1: 錯誤資訊收集
```bash
🔴 必須執行:
- 完整取得錯誤訊息
- 確認堆疊追蹤
- 確定發生條件 (可重現性)
🟡 早期執行:
- 收集環境資訊 (OS版本依賴關係)
- 直接變更歷程 (git log最近提交)
- 確認相關日誌
🟢 額外執行:
- 系統資源狀況
- 網路狀態
- 外部服務狀態
```
#### 階段 2: 根本原因分析
1. **整理表面症狀**
- 錯誤訊息的正確內容
- 發生時間和模式
- 確定影響範圍
2. **確定深層原因**
- 應用 5 Whys 分析
- 追蹤依賴關係
- 確認環境差異
3. **驗證假設**
- 建立最小重現程式碼
- 執行隔離測試
- 縮小原因範圍
#### 階段 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` : 需要更深入根本原因分析的情況