用途
这是一个迁移类技能,用于把已有的编排系统改写为 Workflow SDK。适用来源包括 Temporal、Inngest、Trigger.dev 和 AWS Step Functions。当用户要求把 Activities、Workers、Signals、step.run()、step.waitForEvent()、.waitForTaskToken 等构造迁移到 Workflow SDK 时,可以启用该技能。
主要能力
技能首先进行信息收集,识别来源系统(Temporal / Inngest / Trigger.dev / AWS Step Functions)和目标运行时(托管或自托管),并抽取来源系统的关键构造,包括入口点、等待与定时器、外部回调或审批、重试与失败处理、子工作流与扇出、进度流式输出、外部副作用。
随后它应用一组默认迁移规则:把编排逻辑放入 "use workflow" 函数;把副作用、SDK 调用、数据库调用、HTTP 调用和流 I/O 放入 "use step" 函数;sleep() 仅在工作流上下文使用;针对 Signals、step.waitForEvent()、.waitForTaskToken 选择唯一的恢复面,要么用 createHook() + resumeHook() 做确定性的服务端恢复,要么用 createWebhook() 生成回调 URL;子运行中的 start() 与 getRun() 需包裹在 "use step" 函数中;外部写入使用 getStepMetadata().stepId 作为幂等键;流通过 getWritable() 获取但只在 "use step" 函数内交互;多步补偿优先使用回滚栈。
技能还会进行路由选择:当来源在 Signals、step.waitForEvent() 或 .waitForTaskToken 处暂停时加载恢复路由参考;自托管时加入 runtime/self-hosted;命名框架时加入 boundary/named-framework;明确要求框架无关时加入 boundary/framework-agnostic。
使用方式
该技能附带多份参考文档:来源参考(Temporal、Inngest、Trigger.dev、AWS Step Functions 各一份)、共享参考(shared-patterns.md 提供 hooks、子工作流、幂等、流式、回滚的可复用模板;runtime-targets.md 说明托管与自定义 World;resume-routing.md 说明路由键选择与迁移计划形状;retries.md 说明重试机制,包括 stepFn.maxRetries、RetryableError 与 FatalError)。
使用时应按固定结构输出:## Migration Plan(迁移计划)、## Source -> Target Mapping(源到目标映射)、## Migrated Code(迁移后代码)、## App Boundary / Resume Endpoints(应用边界与恢复端点)、## Verification Checklist(验证清单)、## Open Questions(待定问题)。在撰写迁移后代码前,需在迁移计划中写出所选择的路由键及其理由。
适用场景
适用于把上述四类编排系统的既有工作流改写为 Workflow SDK 的迁移任务,尤其涉及信号与等待事件、回调 URL、子工作流、重试、流式进度、自托管 World、以及命名框架或框架无关应用边界的情况。
限制与约束
技能内置较严格的验证清单,用于在草稿阶段判错,例如:迁移计划遗漏路由键或理由、路由键与提示不符、来源框架原语残留、副作用留在工作流上下文、sleep() 出现在步骤内、流交互出现在工作流函数内、子工作流直接从工作流上下文调用 start()/getRun()、外部写入缺少幂等键、在来源使用信号/等待事件/任务令牌处缺少 hooks 或 webhooks、回调 URL 流程错误地使用 createHook() + resumeHook()、createWebhook() 被赋予自定义令牌或与 resumeHook() 配对、resume/internal 输出缺少 resumeHook() 或确定性业务令牌、resume/url/default 未把 webhook.url 传给外部系统、resume/url/manual 缺少 RequestWithResponse 或 await request.respondWith(...) 等。此外还需拒绝一些反例:当 webhook.url 是预期恢复面时伪造用户编写的回调路由;createWebhook() 与 resumeHook() 配对;命名框架应用边界与纯 Request/Response 混用而无框架无关覆盖。
验证说明中特别指出:在工作流上下文读取 webhook 请求数据是允许的,只有 request.respondWith() 是步骤专属。
其他
该技能提供了示例提示与预期响应形状,并说明仅在需要具体代码时才加载已完成的示例参考。关于具体收费标准、价格、平台支持范围等信息,资料中暂未提供。