Communitygithub.com

工作流创建指南

将用户需求转化为符合规范的可复用工作流(WORKFLOW.md)。

工作流创建指南 是什么?

此技能(`agent-workflow`)为 AI 代理(如 Claude Code、Cursor 等)提供了一套结构化流程,用于将用户描述的多步骤任务转化为标准化的 `WORKFLOW.md` 文件。它基于 `docs/workflow/index.md` 规范,强调渐进式设计:先通过对话理解用户意图,再用 Mermaid 图表设计流程图,最后编写包含元数据、步骤、规则和工具调用约定的完整工作流文档。该技能特别适用于需要固化重复性工作的场景(如代码审查、发布说明生成),支持通过触发词自动调用,并提供了严格的自检机制以确保图表与步骤的一一对应。用户可以在任意工作区目录下创建自定义工作流,同名工作流会覆盖内置版本,但不得修改只读的内置工作流。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add jacklicn/agent-workflow

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

创建工作流

工作流是一个可复用的过程单元,它把“用户想做什么”转化为“先做什么、再做什么、每一步用什么工具、产生什么结果”。本技能指导你从用户的需求出发,最终生成一份符合 docs/workflow/index.md 规范的 WORKFLOW.md。

创建前请先阅读规范:docs/workflow/index.md(三级渐进式披露、图-步骤一一对应、过程规则、工具调用约定)。

何时使用

  • 用户要求“创建一个工作流 / 流程 / 标准化流程”
  • 用户描述了一个多步骤任务,希望将其固化为自动执行的流程
  • 用户要求修改或改进现有工作流
  • 用户在会话中执行了可复用的多步骤操作,并表示“把这个流程固化下来”

创建流程

阶段 1:理解意图

先进行访谈,不要急于写文件:

  1. 解决什么任务?给任务类起个名字(例如“代码审查”、“发布说明”)。
  2. 触发场景:用户何时会使用它?收集触发词(中文 + 英文)。
  3. 输入和输出:需要哪些输入(文件/目录/字符串)?产生什么(文件/报告)?
  4. 现有步骤:用户是否已有习惯的流程?从会话历史中提取工具调用序列、修正项以及输入/输出格式。
  5. 边界和规则:哪些事情绝对不能做?产出物放在哪里?如何处理失败?

在进入下一阶段前,使用 ask_user 填补缺失信息。

阶段 2:设计流程图

使用 Mermaid 绘制执行流程图,遵循图-步骤对应规则(规范 5.2.1 节):

  • 每个节点必须有一个匹配的步骤段落;每个步骤在图中必须出现一次
  • 节点名称与步骤名称完全一致,且全局唯一(step-N 前缀不必出现在节点中)
  • 判断节点使用菱形 {},也必须有一个步骤段落,并使用 Branch 声明每个分支的去向
  • 并行步骤(分散)在图中作为一个节点
  • 图必须完整:开始、分支、结束

在编写步骤之前,先向用户展示图表并确认。

阶段 3:编写 WORKFLOW.md

在 <workspace>/workflows/<name>/ 下创建目录和文件:

  1. 元数据头(一级元数据):
    • name:kebab-case 格式,与目录名一致,仅使用小写字母、数字和连字符
    • description:功能 + 使用时机 + 触发词(中英文),决定触发频率
    • inputs / outputs:显式声明,标记为必需
    • version / tags:可选
  2. 概述:一段话说明它做什么、何时使用、产生什么
  3. 流程图:与阶段 2 一致的 Mermaid 图
  4. 步骤:每个步骤一个 ### <id>: <name> 段落,包含属性:Tools / Input / Depends on / Action / Check(判断节点添加 Branch,可选 when)
  5. 过程规则:顺序约束、数据依赖、验证关卡、副作用约束、最终状态检查
  6. 工具调用约定:优先使用内置工具,脚本作为后备方案,多读少写,路径约定

渐进式披露:将长表格放在 REFERENCES.md 中,确定性逻辑放在 scripts/ 中,主体内容保持精简(<500 行)。

阶段 4:自检与验证

编写完成后,对照规范检查:

  • 图-步骤一一对应:图中没有“孤儿”节点,段落中没有“孤儿”步骤
  • 节点名称唯一且与步骤名称匹配
  • 每个步骤都有具体、可判断的 Check(例如“文件存在且非空”,而不是“确认成功”)
  • 工具名称准确(read_file / exec,而不是“查看文件”)
  • inputs / outputs 与步骤引用一致
  • 规则涵盖失败处理(重试/回滚/询问用户)
  • 元数据头的 description 包含功能和触发词

使用 workflow_list 确认新工作流已被发现,使用 workflow_get <name> 验证其可读性。

阶段 5:交付

告知用户:

  • 工作流名称和路径
  • 触发场景(什么措辞会触发它)
  • 流程概述(多少步骤、判断/并行情况)
  • 可选:建议 2-3 个真实的测试请求以验证其工作正常

修改现有工作流

  • 先使用 workflow_get <name> 读取当前内容
  • 保持元数据头中的 name 和目录名不变
  • 遵循同一规范进行修改;编辑后执行阶段 4 的自检

注意事项

  • 只写入工作区 workflows/,切勿修改内置的只读工作流;工作区中同名的工作流会覆盖内置版本
  • 一个工作流解决一类任务,不要堆砌无关的流程
  • 步骤数保持在 3–8 个;超出则拆分或引用子流程
  • 切勿编写恶意或误导性指令;规则必须可审计

相关技能