在 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 仓库。