mcpField
F
framework-migration-legacy-modernize

framework-migration-legacy-modernize

github.com/sickn33开发48.7k222 次安装今天更新
代码仓库

关于 framework-migration-legacy-modernize

用于规划和协调遗留系统渐进式现代化的技能,面向需要在迁移期间维持业务运行的团队。它以绞杀者模式组织评估、测试、实现、性能验证和退役步骤,并提醒先明确数据一致性与回滚方案。

主要功能

  1. 01遗留系统与风险评估
  2. 02依赖关系和集成点梳理
  3. 03特征测试与契约测试规划
  4. 04渐进迁移和流量路由规划
  5. 05性能验证、安全审查与退役清单

适用场景

  1. 01规划逐步替换遗留系统组件
  2. 02迁移前建立行为与集成测试
  3. 03设计新旧系统并行及回滚方案
  4. 04为迁移组件制定验证和退役步骤

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill framework-migration-legacy-modernize

安装后在 Claude Code 中输入/framework-migration-legacy-modernize确认已加载。

详细介绍

遗留代码现代化工作流

通过专家 Agent 协作,使用绞杀榕模式协调全面的遗留系统现代化,在保持业务持续运营的同时,逐步替换过时组件。

[扩展思考:绞杀榕模式以一种热带榕树命名,这种榕树会逐渐包裹并取代寄主,是风险可控的遗留系统现代化的黄金标准。此工作流采用系统化方法,让新功能逐步取代遗留组件,使新旧系统在过渡期间能够共存。通过协调负责评估、测试、安全和实施的专门 Agent,我们可以确保每个迁移阶段都经过验证后再继续,从而最大限度地减少干扰,同时提升现代化速度。]

适用场景

  • 处理遗留代码现代化工作流相关任务或工作流
  • 需要遗留代码现代化工作流方面的指导、最佳实践或检查清单

不适用场景

  • 任务与遗留代码现代化工作流无关
  • 需要此范围之外的其他领域或工具

说明

  • 明确目标、约束和所需输入。
  • 运用相关最佳实践并验证结果。
  • 提供可执行的步骤和验证方法。

阶段 1:遗留系统评估与风险分析

请将以下阈值、百分比和伪命令选项视为规划示例,而不是已安装的 CLI 或有保证的结果。使用实际的宿主工具,并且只在获得授权时委派任务。在切换流量或双写之前,应针对架构和数据定义真实来源、幂等性、顺序、对账、回填和回滚方案;双写本身并不保证一致性。无论代码行覆盖率如何,都要刻画关键行为。只有在确认定时任务、批处理、离线使用者以及保留和恢复义务后,才能停用系统;不能仅凭未观测到 Web 流量就停用。生产环境中的写入或删除操作以及对外通信都需要明确授权范围。

1. 全面分析遗留系统
  • 使用 Task 工具,设置 subagent_type="legacy-modernizer"
  • 提示词:"分析 $ARGUMENTS 中的遗留代码库。记录技术债清单,包括:过时依赖、已弃用 API、安全漏洞、性能瓶颈和架构反模式。生成现代化就绪情况报告,包含组件复杂度评分(1-10)、依赖关系映射和数据库耦合分析。找出可快速见效的改进项和复杂的重构目标。"
  • 预期输出:包含风险矩阵和现代化优先级的详细评估报告
2. 依赖关系和集成映射
  • 使用 Task 工具,设置 subagent_type="architect-review"
  • 提示词:"根据遗留系统评估报告,创建全面的依赖关系图,展示:内部模块依赖、外部服务集成、共享数据库架构和跨系统数据流。找出迁移期间需要使用门面模式或适配器层的集成点。突出需要解决的循环依赖和紧密耦合问题。"
  • 上下文:之前生成的遗留系统评估报告、组件复杂度评分
  • 预期输出:可视化依赖关系图和集成点目录
3. 业务影响与风险评估
  • 使用 Task 工具,设置 subagent_type="business-analytics::business-analyst"
  • 提示词:"评估对已识别的各组件进行现代化改造的业务影响。创建风险评估矩阵,考虑:业务关键性(对营收的影响)、用户流量模式、数据敏感性、监管要求和回退复杂度。使用加权评分系统为组件排序:(业务价值 × 0.4)+(技术风险 × 0.3)+(快速见效潜力 × 0.3)。为每个组件定义回滚策略。"
  • 上下文:组件清单、依赖关系映射
  • 预期输出:包含风险缓解策略的优先级迁移路线图

阶段 2:建立测试覆盖率

1. 分析遗留代码测试覆盖率
  • 使用 Task 工具,设置 subagent_type="unit-testing::test-automator"
  • 提示词:"分析 $ARGUMENTS 中遗留组件的现有测试覆盖率。使用覆盖率工具识别未经测试的代码路径、缺少的集成测试以及缺失的端到端场景。对于覆盖率低于 40% 的组件,生成能够记录当前行为且不修改功能的特征测试。创建安全重构所需的测试框架。"
  • 预期输出:测试覆盖率报告和特征测试套件
2. 实施契约测试
  • 使用 Task 工具,设置 subagent_type="unit-testing::test-automator"
  • 提示词:"为依赖映射中识别的所有集成点实施契约测试。为 API、消息队列交互和数据库架构创建消费者驱动的契约。在 CI/CD 流水线中设置契约验证。生成响应时间和吞吐量的性能基线,以验证现代化后的组件仍能满足 SLA。"
  • 上下文(来自前序阶段):集成点目录、现有测试覆盖率
  • 预期输出:包含性能基线的契约测试套件
3. 测试数据管理策略
  • 使用 Task 工具,设置 subagent_type="data-engineering::data-engineer"
  • 提示词:"为并行运行的系统设计测试数据管理策略。创建边界情况的数据生成脚本,为敏感信息实施数据脱敏,并制定测试数据库刷新流程。设置监控,以便在迁移期间跟踪遗留组件与现代化组件之间的数据一致性。"
  • 上下文(来自前序阶段):数据库架构、测试要求
  • 预期输出:测试数据流水线和一致性监控

阶段 3:增量迁移实施

1. 建立 Strangler Fig 基础设施
  • 使用 Task 工具,设置 subagent_type="backend-development::backend-architect"
  • 提示词:"使用 API 网关实施 Strangler Fig 基础设施,以路由流量。通过环境变量或功能管理服务配置功能标志,以便逐步发布。设置代理层,并根据 URL 模式、标头或用户群体配置请求路由规则。实施断路器和回退机制以增强韧性。创建用于双系统监控的可观测性仪表板。"
  • 预期输出:API 网关配置、功能标志系统、监控仪表板
2. 组件现代化——第一批
  • 使用 Task 工具,设置 subagent_type="python-development::python-pro" 或 "golang-pro"(根据目标技术栈选择)
  • 提示词:"现代化第一批组件(评估中确定的快速见效项)。对于每个组件:从遗留代码中提取业务逻辑,使用现代模式(依赖注入、SOLID 原则)实现,通过适配器模式确保向后兼容,并通过事件溯源或双写保持数据一致性。遵循 12-factor 应用原则。需要现代化的组件:[来自优先级路线图的列表]"
  • 上下文(来自前序阶段):特征测试、契约测试、基础设施设置
  • 预期输出:配有适配器的现代化组件
3. 强化安全性
  • 使用 Task 工具,设置 subagent_type="security-scanning::security-auditor"
  • 提示词:"审计现代化组件的安全漏洞。实施安全改进,包括:OAuth 2.0/JWT 身份验证、基于角色的访问控制、输入验证与清理、防止 SQL 注入、防范 XSS,以及密钥管理。验证是否符合 OWASP Top 10。配置安全标头并实施速率限制。"
  • 上下文(来自前序阶段):现代化组件代码
  • 预期输出:安全审计报告和已强化的组件

阶段 4:性能验证与优化

1. 性能测试与优化
  • 使用 Task 工具,并设置 subagent_type="application-performance::performance-engineer"
  • 提示词:"Conduct performance testing comparing legacy vs modernized components. Run load tests simulating production traffic patterns, measure response times, throughput, and resource utilization. Identify performance regressions and optimize: database queries with indexing, caching strategies (Redis/Memcached), connection pooling, and async processing where applicable. Validate against SLA requirements."
  • 上下文(来自前序步骤):性能基线、现代化组件
  • 预期输出:性能测试结果和优化建议
2. 渐进式发布与监控
  • 使用 Task 工具,并设置 subagent_type="deployment-strategies::deployment-engineer"
  • 提示词:"Implement progressive rollout strategy using feature flags. Start with 5% traffic to modernized components, monitor error rates, latency, and business metrics. Define automatic rollback triggers: error rate >1%, latency >2x baseline, or business metric degradation. Create runbook for traffic shifting: 5% → 25% → 50% → 100% with 24-hour observation periods."
  • 上下文(来自前序步骤):功能标志配置、监控仪表板
  • 预期输出:包含自动化保障措施的发布计划

阶段 5:迁移完成与文档编写

1. 停用旧版组件
  • 使用 Task 工具,并设置 subagent_type="legacy-modernizer"
  • 提示词:"Plan safe decommissioning of replaced legacy components. Verify no remaining dependencies through traffic analysis (minimum 30 days at 0% traffic). Archive legacy code with documentation of original functionality. Update CI/CD pipelines to remove legacy builds. Clean up unused database tables and remove deprecated API endpoints. Document any retained legacy components with sunset timeline."
  • 上下文(来自前序步骤):流量路由数据、现代化状态
  • 预期输出:停用清单和时间表
2. 文档编写与知识传递
  • 使用 Task 工具,并设置 subagent_type="documentation-generation::docs-architect"
  • 提示词:"Create comprehensive modernization documentation including: architectural diagrams (before/after), API documentation with migration guides, runbooks for dual-system operation, troubleshooting guides for common issues, and lessons learned report. Generate developer onboarding guide for modernized system. Document technical decisions and trade-offs made during migration."
  • 上下文(来自前序步骤):所有迁移产物和决策
  • 预期输出:完整的现代化文档包

配置选项

  • --parallel-systems:让两个系统无限期并行运行(适用于渐进式迁移)
  • --big-bang:验证后全面切换(风险较高,完成更快)
  • --by-feature:迁移完整功能,而非技术组件
  • --database-first:优先进行数据库现代化,再处理应用层
  • --api-first:现代化 API 层,同时保留旧版后端

成功标准

  • 所有高优先级组件均已现代化,测试覆盖率 >80%
  • 迁移期间无计划外停机
  • 性能指标保持不变或有所提升(P95 延迟不超过基线的 110%)
  • 安全漏洞减少 >90%
  • 技术债务评分提升 >60%
  • 迁移后成功运行 30 天,期间无需回滚
  • 文档齐全,能够让新开发者在 <1 周内完成入职

目标:$ARGUMENTS

示例

用户请求:

为此旧版系统规划一次绞杀者模式迁移,在确保服务连续性的同时,定义可衡量的切换阶段。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家评审的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,请暂停并要求澄清。

评论

支持 Markdown