agentsclimarketplace

Legacy codebase modernizer

Skill findscripter/everything-skills/02-engineering/legacy-codebase-modernizer

当需要重构遗留代码库、迁移过时框架或渐进式现代化时使用;用绞杀者模式产出分阶段迁移计划、回归测试、兼容适配层与回滚方案;不适用于全新绿地项目或无需保留旧行为的一次性重写;触发词:遗留系统、框架迁移、技术债From its SKILL.md

Install
npx -y skills add findscripter/everything-skills --skill legacy-codebase-modernizer

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

5.1 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

何时使用

适用场景:

  • 框架/语言版本迁移:jQuery→React、Java 8→17、Python 2→3 等。
  • 数据库现代化:存储过程→ORM。
  • 单体拆分为微服务(按业务域逐步剥离)。
  • 依赖升级与安全补丁修复。
  • 为缺测试的遗留代码补回归测试。
  • API 版本化与向后兼容治理。

不该用(负边界):

  • 全新绿地项目,没有遗留约束——直接按现代最佳实践开发即可。
  • 业务明确可一次性废弃、无需保留旧行为的「推倒重写」。
  • 任务与遗留改造无关,或属于其他领域/工具范畴。

核心原则:以风险控制为先。在没有迁移路径前,绝不破坏现有功能。

步骤

  1. 澄清目标、约束与必需输入:现代化要达成什么、有哪些不可破坏的契约、缺失哪些权限或环境。若关键输入、安全边界或验收标准缺失,停下来追问,不要擅自假设。
  2. 先加测试再重构(characterization test):用回归测试锁定遗留代码当前的真实行为(含 bug 行为),作为重构的安全网。
  3. 采用绞杀者模式(Strangler Fig):新实现包裹在旧实现外围,按模块逐步替换、逐步引流,而非大爆炸式替换。
  4. 维持向后兼容:通过兼容垫片(shim)/适配层让新旧接口共存,旧调用方无感。
  5. 用特性开关(feature flag)灰度放量:按比例切流,出问题可秒级回退。
  6. 清晰记录破坏性变更与弃用时间表,并为每个阶段准备回滚流程。
  7. 验证:每阶段都做环境内的实际测试与回归校验,不把产出当作替代专家评审或真实环境验证的依据。

指令

  • 澄清目标、约束与必需输入。
  • 应用相关最佳实践并验证结果,给出可执行步骤与验证手段。
  • 关键约束(务必遵守):
    • 绞杀者模式——渐进替换,不做大爆炸迁移。
    • 重构前先补测试。
    • 全程维持向后兼容。
    • 清晰记录破坏性变更。
    • 用特性开关做灰度放量。

应交付的产物:

  • 含阶段与里程碑的迁移计划。
  • 保持原有功能的重构后代码。
  • 覆盖遗留行为的测试套件。
  • 兼容垫片/适配层。
  • 弃用告警与时间表。
  • 每个阶段对应的回滚流程。

示例

以「Python 2 → 3 迁移」为例:

  1. 锁行为:对核心模块补 characterization test,运行 pytest 记录当前输出基线。
  2. 兼容过渡:先引入 six(或 python-future)写出 2/3 双兼容代码,让两个解释器都能跑通测试。
  3. 静态扫描与自动改写:用 python-modernize2to3 -w -n <path> 生成 diff,逐文件 review 后再应用,避免盲目批量改写。
  4. 逐模块切换:按依赖拓扑从叶子模块向上替换,每替换一块就跑全量回归。
  5. 灰度上线:用特性开关把 Py3 路径按比例放量,监控告警,异常即回滚到 Py2 路径。
  6. 收尾:移除 six 垫片与开关,发布弃用公告与下线时间表。

同理,「jQuery→React」可在页面级用适配层包裹旧 DOM 组件逐页替换;「存储过程→ORM」先用 ORM 包一层等价查询并比对结果再切换。

注意事项

  • 永远先有迁移路径再动手,不要在没有回退方案时破坏既有功能。
  • characterization test 锁的是「现状行为」,包括已有 bug;行为修正应作为独立、显式的变更,与迁移分开。
  • 自动化改写工具(2to3、modernize、codemod)的输出必须人工 review,不可直接合入。
  • 拆分单体时按业务域边界切,避免制造分布式单体。
  • 破坏性变更要有明确弃用窗口与公告,给下游调用方留迁移时间。
  • 产出不能替代环境相关的验证、测试与专家评审。

互见

  • 测试补齐与回归保障类技能(characterization/回归测试)。
  • 依赖与安全补丁升级类技能。
  • 微服务拆分与 API 版本化类技能。

采编自 sickn33/antigravity-awesome-skills(MIT)。

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,736. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.