用途:defrag 用于检查一个或多个文件,识别价值最高的重构机会,并给出按价值评分排序的前 10 条建议,每条包含文件路径、行范围、理由和前后代码片段。它默认是分析优先,不会在分析阶段应用修改,除非用户明确从分析切换到实施。
主要能力:可识别多种重构类型,包括拆分超过 300 行的文件、分解超过 50 行的函数、减少嵌套、提取函数、重命名提升清晰度、简化条件、提取常量、合并重复逻辑、现代化语法、避免全局项、优化导入、删除死代码、补充测试,以及拆分热点文件。若可用 git 历史,会检查最近 30 天变更,找出变更次数最多的 5 个文件,对变更超过 30 次的文件建议拆分职责。
使用方式:用户可通过 /defrag 触发,或要求重构。技能会先确定目标范围,读取相关文件或当前选择,检查上述重构类型,按评分模型打分,返回前 10 条并按价值从高到低排序,最后询问是否应用某条建议。若未指定文件,会从对话或仓库状态推断最相关的本地上下文;若范围仍不明确且错误猜测会误导,则询问要分析的文件或目录。收集热点数据可运行:python skills/defrag/scripts/git_hotspots.py --repo . --days 30 --limit 5
评分模型:可读性提升 35%、可维护性提升 30%、缺陷风险降低 25%、性能影响 5%、范围大小 5%,每条评分 0 到 100。
适用场景:适合在重构前做优先级评估,定位结构性问题而非表面风格问题,并给出可操作的局部改进建议。
限制:分析阶段不应用更改;不建议缺乏当前代码依据的推测性架构工作;遵循 YAGNI,偏好局部重构;常量应靠近使用处,不建议集中到全局常量文件;不推荐大规模重写、不堆砌琐碎重命名、不把风格改动当作高价值重构;无 git 历史时会简要说明并继续静态分析。输出格式要求每条包含排名、类型、评分、文件路径与行范围、描述、理由及前后代码片段,最后给出机会总数、前 10 平均分并询问是否应用。