Communitygithub.com

重構

協助進行程式碼重構、重組、移動、模組拆分或合併、介面簡化、分階段改寫、依賴反轉或移除重複程式碼。

重構 是什麼?

此技能專為 AI 代理(如 Claude Code、Cursor、Codex)設計,用於處理「行為保留、結構改變」的重構任務。當使用者明確要求重構、重組、模組拆分/合併、介面簡化、分階段改寫、依賴反轉或移除重複程式碼時,此技能會引導代理遵循嚴謹的工作流程:先定義「要保留的行為」與「要改變的結構」,並明確列出非目標(例如不新增功能、不改變相容性或錯誤語意、不聲明效能改進)。接著,技能要求代理檢查所有呼叫端、測試、文件、設定檔、產生的程式碼及公開表面,並在行為重要但覆蓋率不足時新增特徵測試。工作應拆分為小型、可逆轉的步驟,並在有意義的邊界處進行編譯與測試;機械性的移動或重新命名應與語義編輯分開。除非使用者明確要求破壞性變更,否則應保留公開 API,並在遷移完呼叫端且驗證行為後再移除舊路徑。此技能支援多種平台,透過讀取 `references/` 目錄下的補充文件(重構腳本、特徵測試指南、審查清單)來確保重構安全可靠,並在行為不明確、需要廣泛行為變更、或未經明確同意可能變更公開 API/設定/協定/儲存/指標/錯誤語意時停止,同時確保 diff 不會混合重構、功能開發、效能最佳化與清理,以利安全審查。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add 3AceShowHand/agent-skills

在你喜歡的 AI 中提問

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

說明文件

重構 是做什麼的?

使用時機

  • 使用者要求重構、重組、程式碼移動、模組拆分或合併、介面簡化、分階段改寫、依賴反轉或移除重複程式碼。
  • 某項變更聲稱保留行為但改變結構。
  • 重構影響多個呼叫端、公開符號、測試或所有權邊界。

不使用時機

  • 任務是小型本地錯誤修復,沒有結構性變更。
  • 使用者明確要求行為變更,而非保留行為的重構。
  • 在決定是否重構之前,需要更廣泛的設計審查。
  • 首要步驟是廣泛的工程審查,因為主要風險區域仍不明確。

工作流程

  1. 定義要保留的行為以及要改變的結構。
  2. 說明非目標:不新增功能、不改變相容性、不改變錯誤語意、除非明確要求否則不聲明效能改進。
  3. 檢查受重構影響的呼叫端、測試、文件、設定檔、產生的程式碼及公開表面。
  4. 當行為重要但覆蓋率不足時,新增特徵測試。
  5. 將工作拆分為小型可逆轉的步驟,並在有意義的邊界處進行編譯與測試。
  6. 將機械性的移動或重新命名與語義編輯分開。
  7. 保留公開 API,除非使用者明確要求破壞性變更。
  8. 僅在遷移完呼叫端並驗證行為後,才移除舊路徑。

參考資料

  • 在規劃多步驟重構之前,請先閱讀 references/refactor-playbook.md。
  • 當測試薄弱或行為必須鎖定時,請先閱讀 references/characterization-tests.md。
  • 在最終確定重構之前,請先閱讀 references/review-checklist.md。

停止條件

  • 要保留的行為不明確。
  • 重構需要廣泛的行為變更才能成功。
  • 公開 API、設定、協定、儲存、指標或錯誤語意可能在未經使用者明確同意的情況下變更。
  • diff 中混合了重構、功能開發、效能最佳化與清理,無法安全審查。

輸出規則

  • 報告哪些行為意圖保持不變。
  • 將機械性變更與語義變更分開報告。
  • 報告保護行為的測試或檢查。
  • 說明任何未經驗證的行為、相容性或效能方面。

相關技能