在 DSH 生態中,代碼審查通常集中在 PR diffs 上,架構文檔關注整體結構。dsh-refactor-insight 插件填補了這一空白:它掃描整個代碼庫以識別異味,並輸出按優先級排序的可執行重構計劃。
這是一個 DSH 技能插件,由 duyanta123 維護。它解決的問題是缺乏一個結構化、優先級排序的重構計劃,以識別過大的文件、深度的嵌套結構、耦合的模塊等技術債務。
核心功能¶
插件內置六條確定性規則(零依賴啓發式),用於檢測代碼異味:
- 過大文件:默認閾值超過 400 行。
- 長函數:根據語言支持不同,檢測 Python 縮進塊 / JS-TS 花括號 / Go 函數聲明;函數體超過 80 行。
- 深度嵌套:默認最大縮進或花括號深度超過 5。
- 神級對象:類方法超過 10 個,或類體超過 300 行(Go 檢測接收器方法數量)。
- 高耦合模塊:使用
arch-profile --deps輸出,通過入/出度分析樞紐模塊,並結合 Tarjan 算法檢測依賴環。 - TODO/FIXME 密度:每 1000 行代碼的噪音指標。
安裝與啓用¶
作爲 DSH 插件安裝:
dsh plugin --profile web add "github:duyanta123/dsh-refactor-insight#v0.1.3"
安裝完成後,請重啓對應的 profile。
典型用法¶
1. 作爲 DSH 技能使用¶
安裝並重啓 profile 後,向 agent 下達指令:
Use refactor-insight to health-check /path/to/repo
Agent 將運行一個四階段的運行手冊(接收 → 掃描 → 診斷 → 優先級編排),並生成 REFACTOR-PLAN.md。
2. 僅運行診斷 CLI¶
診斷腳本是零依賴的,無需 DSH 環境即可運行:
# 運行所有六條規則
node scripts/refactor-smell.mjs <repo_path>
# 結合 arch-profile 的依賴輸出進行耦合/環檢測
node scripts/arch-profile.mjs <repo_path> --deps > deps.json
node scripts/refactor-smell.mjs <repo_path> --deps-json deps.json
注意事項¶
- 僅生成計劃:插件輸出的是計劃而非 diff,不會自動生成代碼更改。高風險的重構項需要人工確認。
- 只讀掃描:診斷腳本無依賴、無子進程、無網絡請求,不會修改目標倉庫源碼。
- 事實與推斷:腳本輸出的是硬事實(如文件行數);嚴重性、成本、建議由 LLM 在去噪後添加,屬於推斷信息。
- 噪音指標:TODO/FIXME 密度規則僅作爲噪音指標(按每 1000 行計數),不強制要求行動。
生態背景¶
DSH 理念是「一切皆插件」。該插件隸屬於工作流類別,許可證爲 MIT。更多細節可查閱 SkillHub 目錄 或 GitHub 倉庫。