SuperAPI AI 工具集

port-features

编程与开发

查看项目

更新于 11-02 21:14

技能介绍

用途

port-features 用于把一个已有仓库中的功能移植到另一个项目中。它的出发点是:上游代码本身就是规格说明。代码中的每一个守卫条件、执行顺序、超时设置和看似奇怪的分支,都可能是别人已经修复过的 bug。如果仅凭自己对功能的理解重写一遍,那些没注意到的修复就会丢失。

主要能力

  • 从代码出发获取上游功能的真实实现,而不是依赖截图、摘要或抓取的片段。
  • 通过追踪导入和调用者,确定构成该功能的文件集合。
  • 阅读路径范围内的 git 历史(包括重命名),了解那些看似多余的代码为何存在。
  • 将确切文件连同测试一起复制到目标位置,再按目标需要删减并调整导入与宿主绑定。
  • 将移植结果与固定源进行差异对比,为每一处改动给出理由。
  • 当移植过来的测试失败时,优先修复适配层,而不是改动算法或测试。

使用方式

  1. 获取上游的本地检出,保留其历史,并固定到确切的提交。
  2. 阅读该功能涉及的真实文件,追踪导入和调用者,弄清哪些文件属于该功能。
  3. 阅读这些文件的路径范围 git 日志(跟随重命名),并阅读其中的修复记录。在改动或删除任何看似不必要的内容之前,先从历史中查明它为何存在。
  4. 将确切的文件连同测试复制到目标位置。然后删除目标不需要的部分,并修改导入和宿主绑定。即使自己会写得不同,也保留上游的结构和算法,绝不用自己的版本替代。
  5. 将结果与固定源进行差异对比,为每一处改动给出理由。当移植过来的测试失败时,先修复适配层,再考虑算法或测试。
  6. 完成的标准是:目标代码等于固定上游代码加上一份可解释的差异,并且交接中注明上游提交和每一处有意差异。

适用场景

  • 需要把某个功能从一个仓库迁移到另一个仓库,且希望保留其 bug 修复和行为细节。
  • 上游代码包含大量历史修复,重写容易遗漏这些细节。
  • 需要明确记录移植来源和差异,便于后续维护和审计。

限制

  • 该技能强调“复制后编辑”,不适用于从零重写或仅凭理解重新实现功能的场景。
  • 需要能够获取上游的本地检出和 git 历史;如果无法访问历史,则无法执行“阅读历史”这一关键步骤。
  • 该技能明确要求:绝不把重写称为移植。
  • 关于该技能的具体安装命令、支持的平台、收费方式等信息,资料中暂未提供。