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

8.0 KiB
Raw Blame History

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 小時-數天

類似錯誤模式資料庫

頻發錯誤與即時解決方案
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📊 "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: 錯誤資訊收集

🔴 必須執行:
- 完整取得錯誤訊息
- 確認堆疊追蹤
- 確定發生條件 (可重現性)

🟡 早期執行:
- 收集環境資訊 (OS版本依賴關係)
- 直接變更歷程 (git log最近提交)
- 確認相關日誌

🟢 額外執行:
- 系統資源狀況
- 網路狀態
- 外部服務狀態

階段 2: 根本原因分析

  1. 整理表面症狀

    • 錯誤訊息的正確內容
    • 發生時間和模式
    • 確定影響範圍
  2. 確定深層原因

    • 應用 5 Whys 分析
    • 追蹤依賴關係
    • 確認環境差異
  3. 驗證假設

    • 建立最小重現程式碼
    • 執行隔離測試
    • 縮小原因範圍

階段 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 : 需要更深入根本原因分析的情況