dsh-refactor-insight:将代码异味转化为可执行的重构计划

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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜