SuperAPI AI 工具集

migrate-service

部署与运维

查看项目

更新于 10-23 21:43

技能介绍

用途:该技能是一个执行工作流,用于将单个现有 Ghost Core 服务迁移到由启动流程持有的 defineService 模式。适用于被要求迁移或准备某个单独服务的场景,包括对其调用方式的审计和迁移准备。

主要能力:

  • 建立起点:读取根目录及最近的 AGENTS.md、服务指南、内核契约、测试指南和贡献工作流;检查状态、现有分支/工作树和相关 PR;从当前 origin/main 开始,使用 pnpm bootstrap 刷新依赖;读取服务在 ghost/core/server/services/service-inventory.yaml 中的条目及已有迁移计划。
  • 审计整个服务及其调用方:使用 rg 检索生产代码和测试,包括深层导入、嵌套辅助函数、独立操作、作业处理器、CLI 使用和 CommonJS 消费者;记录运行时/类型导出、实例构造者、依赖获取时机、配置读取方式、共享身份与缓存语义、资源所有权与清理策略等。
  • 在修改生产代码前建立覆盖:将每项拟议变更映射到现有行为断言;运行相关未更改的根/实现测试和真实消费者检查;使用测试指南中的聚焦 Nx 命令;覆盖保留消费者、配置时机、事务或缓存行为、启动顺序和资源清理等真实风险。
  • 进行最小化初始化器变更:创建 TypeScript 顶层 index.ts,默认导出内核的 defineService,从工厂返回一个完全就绪的实例;适配所有生产消费者;保留接收者、验证边界和同步抛出与 Promise 拒绝的区分;不扩大迁移范围。
  • 更新元数据并验证:仅更新该服务的清单条目;按当前配置在 .oxlintrc.json 中将根目录纳入 ghost/service-root-shape;运行聚焦测试、真实消费者/数据库检查、根形状和清单验证、lint/类型检查及默认 pnpm check;审查最终 diff 并提交。

使用方式:该技能以工作流步骤形式组织,每一步包含具体操作要求,例如读取哪些文件、使用哪些命令(如 rg、pnpm bootstrap)、如何准备测试、如何创建初始化器、如何更新清单和运行验证。执行时需遵循仓库当前指南,而非盲目复制早期迁移。

适用场景:适用于 Ghost Core 中单个现有服务的迁移准备和执行,特别是需要保留行为、建立测试覆盖、最小化变更并更新元数据的场景。

限制:该技能明确不是最终的服务编写指南,也不授权重新设计服务生命周期。迁移提交中不得添加新测试文件/用例;不得削弱断言、覆盖门槛、lint 或类型检查;不得隐式合并或启用自动合并;推送/打开 PR 需在用户授权范围内。若服务需要新内核特性、重启/替换策略、API 重新设计或广泛启动编排,应记录具体不匹配并将该决策与小型迁移分开。部分依赖仓库具体配置(如 .dependency-cruiser.cjs、.oxlintrc.json),资料未提供具体内容,需以实际仓库为准。