SuperAPI AI 工具集

refactor-cleaner

编程与开发

查看项目

更新于 10-16 04:44

技能介绍

用途

Refactor Cleaner(重构清理)是一个死代码清理与整合专家技能,用于移除未使用的代码、重复代码和进行重构。它通过执行分析工具(knip、depcheck、ts-prune)识别死代码并安全移除。

适用场景包括:定期代码健康检查、项目清理与整合、移除已废弃功能、减少包体积、整合重复代码。

不适用场景包括:正在开发新功能时、生产部署前夕、代码库不稳定时、测试覆盖率不足时。

主要能力

  • 死代码检测:找出未使用的代码、exports、依赖。
  • 重复消除:识别并整合重复代码。
  • 依赖清理:移除未使用的包和 imports。
  • 安全重构:确保变更不破坏功能。
  • 文档记录:在 DELETION_LOG.md 追踪所有删除。

检测工具

技能使用以下命令进行检测:

# knip - 找出未使用的文件、exports、依赖
npx knip

# depcheck - 识别未使用的 npm 依赖
npx depcheck

# ts-prune - 找出未使用的 TypeScript exports
npx ts-prune

# eslint - 检查未使用的变量
npx eslint . --report-unused-disable-directives

使用方式

重构流程

  1. 分析阶段:并行执行检测工具,收集所有发现,并按风险分类为「安全」(未使用的 exports、依赖)、「小心」(可能通过动态 import 使用)、「风险」(公开 API、共用工具)。

  2. 风险评估:对每个要移除的项目,搜索所有引用(grep)、确认无动态 imports、检查是否为公开 API、审视 git 历史了解原因、测试对构建/测试的影响。

  3. 安全移除流程:只从「安全」项目开始;一次移除一个类别,顺序为未使用的 npm 依赖、未使用的内部 exports、未使用的文件、重复代码;每批次后执行测试;每批次建立 git commit。

  4. 重复整合:找出重复的组件/工具;选择最佳实现(功能最完整、测试最完善、最近使用的);更新所有 imports 使用选定版本;删除重复;验证测试仍通过。

删除日志格式

建立/更新 docs/DELETION_LOG.md,记录移除的依赖、删除的文件、整合的重复代码、移除的 exports、影响(删除文件数、移除依赖数、移除代码行数、包体积减少)以及测试情况。

安全清单

移除任何东西前:执行检测工具、grep 搜索所有引用、检查动态 imports、审视 git 历史、确认非公开 API、执行所有测试、建立备份分支、记录于 DELETION_LOG.md。

每次移除后:构建成功、测试通过、无 console 错误、提交变更、更新 DELETION_LOG.md。

常见移除模式

  • 未使用的 Imports:只保留使用的 import。
  • 死代码分支:移除不可达代码和未使用的函数。
  • 重复组件:将多个相似组件整合为一个(使用 variant prop)。
  • 未使用的依赖:移除已安装但未 import 的包。

紧急恢复

如果移除后出错:立即回滚(git revert HEAD、npm install、npm run build、npm test);调查原因(什么失败了、是动态 import 吗、检测工具遗漏了什么);修正向前(标记为「禁止移除」、记录为何检测工具遗漏、加上明确类型注解)。

最佳实践

从小处着手,一次移除一个类别;频繁测试,每批次后执行测试;完整记录,更新 DELETION_LOG.md;保守行事,有疑虑就不移除;每个逻辑移除批次一个 git commit;总是在 feature branch 工作;合并前让删除被审查;部署后观察错误。

Pull Request 模板

提供重构 PR 模板,包含摘要、变更、测试、影响和风险等级等部分。

适用场景

适用于需要清理死代码、整合重复代码、移除未使用依赖、减小包体积的代码库维护工作,尤其适合定期代码健康检查。

限制

不适用于正在开发新功能、生产部署前夕、代码库不稳定或测试覆盖率不足的场景。技能强调保守操作,有疑虑时不应移除。