Skills

Deprecate Workflow Node

当用户需要弃用一个工作流节点(保留向后兼容、隐藏出模板面板)时触发该 skill。FastGPT 工作流节点的弃用流程标准化封装,覆盖模板、Dispatcher、UI...

Install

npx skills add labring/FastGPT --skill deprecate-workflow-node -g -a claude-code -y
Repository
labring/FastGPT30k
Category
Design
Updated
3d ago
License
See repository
Context cost
Mediumabout 1,500 tokens
Runs scripts
No, instructions only

What it does

当用户需要弃用一个工作流节点(保留向后兼容、隐藏出模板面板)时触发该 skill。FastGPT 工作流节点的弃用流程标准化封装,覆盖模板、Dispatcher、UI 引用等所有需要改动的位置。

When to Use This Skill

当用户需要"弃用 / 废弃 / 下线 / 不再推荐使用"某个工作流节点(例如 LoopNode、RunAppModule 等)时触发。

弃用的目标:

  • 已存在的工作流仍能正常加载和运行(保持运行时兼容)。
  • 新建工作流时,模板面板不再展示该节点。
  • 节点的类型枚举值(FlowNodeTypeEnum)必须保留,否则旧工作流会找不到节点定义。

核心理念

弃用 ≠ 删除。只断"新增入口",不断"运行通路"。

维度处理方式
类型枚举值保留(旧工作流引用)
模板定义移到 abandoned/ 目录,从模板面板列表中移除
Dispatcher移到 abandoned/ 目录,添加 @deprecated 注释
moduleTemplatesFlat必须保留,否则节点无法在画布上渲染
节点级 UI 徽章模板加 status: PluginStatusEnum.SoonOffline,节点头部出现黄色"即将下线"标签 + tooltip"请尽快替换"
子节点 / 关联节点仅当确认无其他节点共享时才一并弃用
i18n key不动(旧工作流仍会读取 name/intro 文案)

ℹ️ 字段级 deprecated: true(FlowNodeInputItemType.deprecated / FlowNodeOutputItemType.deprecated)是独立机制,用于在保留节点的前提下淘汰单个字段(旧字段保留兼容、新字段替代)。整节点弃用时不要用它, , 节点级徽章已经足够指示,再加字段级会让信号过度冗余。

参考案例

仓库内已有一个完整的弃用案例可参考:FlowNodeTypeEnum.runApp。可通过对比 git log --diff-filter=R -- "**/abandoned/runApp/**" 找到当时的迁移 commit。

TODO 模板(执行前先复制并填写)

操作目标:弃用 <NodeTemplateName>(FlowNodeTypeEnum.<enumKey>)

  • 1. 确认影响面
  • 2. 移动模板定义到 abandoned 目录
  • 3. 移动 Dispatcher到 abandoned 目录
  • 4. 更新 template/constants.ts:从 systemNodes 移除,确保留在 moduleTemplatesFlat
  • 5. 更新 dispatch/constants.ts:加 @deprecated 注释,移到 callbackMap 末尾
  • 6. 节点级徽章:模板加 status: PluginStatusEnum.SoonOffline(节点头部显示"即将下线"黄色标签)
  • 7. 检查 UI / Hook 引用(不一定需要改)
  • 8. 运行 lint + typecheck + 局部测试

详细步骤

1. 确认影响面(必做)

在动手之前,先用 grep/Explore 全局搜索节点的所有引用,确认改动范围。需要查的关键字:

# 类型枚举使用点
grep -rn "FlowNodeTypeEnum\.<enumKey>\b" packages/ projects/ --include="*.ts" --include="*.tsx"

# 模板对象(如 LoopNode)
grep -rn "<TemplateExport>\b" packages/ projects/ --include="*.ts"

# 子节点是否被其他容器复用(重要!)
grep -rn "FlowNodeTypeEnum\.<childEnum>" packages/ projects/
Read the whole SKILL.md on GitHub

More in Design