SuperAPI AI 工具集

refactor

编程与开发

查看项目

更新于 11-11 16:16

技能介绍

Refactor 是一个面向代码结构优化的技能,核心原则是:重构只改变代码结构,不改变行为,包括不修复 bug。如果发现 bug,应记录并留待单独修复,重构过程中保持现状。

用途

当用户要求“重构”或“清理”代码时,该技能提供一套分步流程,帮助开发者安全地调整代码结构,同时用测试锁定现有行为,避免意外破坏。

主要能力

  1. 固定当前行为:找到覆盖公共接口的测试(如通过 program.parseAsync 调用的命令或导出的辅助函数)。对没有测试的行为,先添加一个当前能通过的测试,断言代码今天的行为。运行测试,确保所有将要触碰的行为都有通过的测试。
  2. 优先删除死代码:在能证明无人调用的情况下移除死代码(例如用 rg 搜索每个名称,包括 src/index.ts 中的懒加载命令注册表和 scripts/)。运行测试,确保通过。
  3. 一次只移动一个概念:每次做一个结构变更,运行固定测试,重复。迁移所有调用方并删除旧 API,不留下兼容层。命令名、标志、--json 输出形状和错误码是用户脚本和代理依赖的内容,SKILL_CONTENT 也记录了它们:保持它们不变,或停下来询问(改变它们是破坏性变更,需要 feat! 发布)。每一步测试通过且没有调用方使用旧形状时完成。
  4. 不要改动测试:现有测试可以改变到达代码的方式(导入路径、名称、调用点),但不能改变输入或断言,包括每个预期输出字符串。如果预期值变了,说明行为变了,应停下来说明。
  5. 只有更好读才保留:说出哪些地方变得更容易阅读或修改。如果说不出来,就回退。能用一句话说明时完成。
  6. 验证:运行 npm run verify,然后按 verify 格式报告。说明哪些测试固定了行为,并确认 git diff 显示没有改变任何测试输入或断言。

使用方式

该技能以流程指导的形式提供,用户需按照步骤执行,并结合项目中的测试工具(如 npm run verify)进行验证。具体安装或集成方式暂未提供。

适用场景

适用于需要重构或清理代码库的场景,尤其适合有测试覆盖的项目,以及需要保持公共接口稳定(命令名、参数、输出格式、错误码)的 CLI 工具或库。

限制

该技能不修复 bug,不改变行为,不修改测试的输入和断言。若需改变公共接口,需停止并询问,因为那是破坏性变更。具体平台、收费、价格等信息暂未提供。