Community程式設計與開發github.com

twentyTwo/skill-hub

透過「重現、隔離、假設、驗證」循環來找出錯誤、測試失敗、崩潰或非預期行為的根本原因,然後修復並加入回歸測試。當系統出現問題且原因不明時使用。

skill-hub 是什麼?

此技能提供一套結構化的除錯方法論,幫助開發者系統性地解決錯誤、測試失敗、崩潰或非預期行為。它基於一個明確的四步驟循環:重現(Reproduce)、隔離(Isolate)、假設與測試(Hypothesize and test)、修復原因(Fix the cause),最後加上報告(Report)環節。其核心價值在於避免「猜測-修補」的隨機試錯法,而是透過每個步驟逐步縮小錯誤可能存在的範圍。此技能支援任何需要除錯的平台或情境,尤其是當根本原因不明顯時。運作方式遵循嚴謹的科學方法:首先精準重現問題並記錄環境資訊,然後透過刪減程式碼或使用 `git bisect` 隔離最小觸發條件,接著提出具體假設並設計單一變量的測試來驗證,最終在產生錯誤值的源頭進行修復,並加入回歸測試以防止問題再次發生。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/twentyTwo/skill-hub/tree/HEAD/vscode-extension/builtin-skills/debug-systematically

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

系統化除錯

不要猜測後直接修補。每個步驟都應縮小錯誤可能存在的範圍。

1. 重現

  • 獲取確切的錯誤訊息、堆疊追蹤、日誌、輸入內容及環境資訊(版本、作業系統、設定)。
  • 能隨意觸發失敗,理想情況下只需一個指令或一個測試。如果問題是間歇性的,找出什麼因素會讓它更常發生(負載、時機、順序、特定輸入)。
  • 如果無法重現問題,請說明狀況,並在修改程式碼前收集更多資訊。

2. 隔離

  • 縮小重現範圍:移除輸入、步驟和程式碼,直到移除任何其他東西都會讓錯誤消失為止。
  • 如果之前能正常運作,找出是哪個變更破壞了它:對受影響的檔案執行 git log,或執行 git bisect run <test command>。
  • 從你自己的程式碼頂端開始閱讀堆疊追蹤,而不是從框架的部分開始。

3. 假設與測試

  • 寫下一個具體的假設:「快取回傳了過時的條目,因為鍵值忽略了地區設定」。
  • 設計一個能證明或反駁該假設的檢查:一則日誌行、一個斷言、一個除錯器斷點、一個單元測試。在執行之前預測結果。
  • 如果結果出乎你的意料,表示你對程式碼的理解有誤。在嘗試下一個想法之前,先更新你的理解模型。
  • 一次只改變一個變數。還原沒有幫助的實驗。

4. 修復原因

  • 修正錯誤值產生的地方,而不是它被發現的地方。檢查同樣的錯誤是否也存在於其他位置。
  • 加入一個在修復前會失敗、修復後會通過的回歸測試。
  • 移除暫時的日誌記錄和除錯程式碼。

5. 報告

用一兩句話解釋根本原因、修復方式、驗證方法,以及任何仍未解決的問題。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能