关于 workflow-builder
为 Claude Code 的 Workflow 工具编写可运行工作流脚本的技能,使用 JavaScript 编排在独立上下文中执行的子 Agent。适合需要固定拓扑、多阶段或可恢复执行的重复任务,并提供方案推荐、脚手架和校验工具。
主要功能
- 01根据任务推荐工作流拓扑
- 02生成工作流脚本起始模板
- 03校验脚本规则与语法约束
- 04编排并行、流水线和分阶段任务
- 05支持暂停、恢复与失败重试
适用场景
- 01并行处理一批相似任务
- 02编排多阶段代码审查流程
- 03为长时间运行的工作流配置恢复能力
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill workflow-builder安装后在 Claude Code 中输入/workflow-builder确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdassets/examples/pr-triage.jsassets/templates/fan-out.jsloop-until-budget.jspipeline.jsexpected_outputs/intake_pr_review.jsonscaffold_pipeline.jsvalidate_sample.txtreferences/api_reference.mddecision_and_intake_guide.mdorchestration_patterns.mdscripts/scaffold_workflow.pyvalidate_workflow.pyworkflow_intake.py详细介绍
工作流构建器
为 Claude Code 的 Workflow 工具编写可运行的工作流脚本:以确定性方式编排多个 Agent 的文件(.js),通过纯 JavaScript 控制流将工作分配给使用全新上下文的子 Agent。只有叶节点上的 agent() 调用会消耗令牌,因此主会话始终保持干净,整个运行也可恢复。
每次会话都必须从信息收集开始(不可协商)
在提出或编写任何工作流之前,先进行信息收集。不要跳过这一步,直接编写代码。
-
询问用户想要什么类型的工作流。 使用以下开场问题:
- 你想自动化哪种可重复的多步骤任务?
- 单个子 Agent 一次执行的工作单元是什么?
- 有多少个工作单元——是已知列表,还是需要通过循环来发现?
- 后续步骤需要同时获得所有先前结果,还是每个项目可以单独流转?
- 是否有步骤需要返回结构化数据(判定结果、列表、分数)?
- 大致需要多少令牌/多深入?
-
如果用户描述含糊,不要停滞不前。 运行推荐引擎,将已有信息转化为 1–2 个具体方案,然后附上推理过程一并呈现:
python scripts/workflow_intake.py --task "their description" \ --units unknown --stages unknown --needs-all unknown --structured unknown引擎会返回推荐的拓扑结构(扇出/流水线/循环/屏障/评审组)、模型选择、预算限制,以及每项选择的一句话理由。请以“我会这样构建,原因如下”来呈现——绝不要让用户重新回答他们已经回答了一半的问题。
-
在编写文件之前,向用户确认方案结构(拓扑结构 + 阶段 + 并行还是流水线)。这是唯一的审批关卡。
完整的问题框架、含糊输入的处理指南和推荐示例,请参阅 references/decision_and_intake_guide.md。
判断工作流是否适合此任务
| 场景 | 使用 |
|---|---|
| 单个子 Agent,只执行一项任务 | 普通 Agent 工具 |
| 可复用的流程,由 Claude 动态选择步骤 | Skill |
| 多个子 Agent,采用固定拓扑结构,具备确定性且可恢复 | Workflow ✓ |
当任务可以并行处理或分为多个阶段、必须可复现、耗时较长而可能中途失败(因此需要恢复),或适合将每个步骤隔离在独立上下文窗口中时,工作流才值得付出成本。对于一次性任务,直接使用 Claude 即可。
构建 → 验证 → 运行循环
- 根据已确认的拓扑结构搭建起始模板:
python scripts/scaffold_workflow.py --topology pipeline --name pr-triage \ --description "Triage open PRs" > .claude/workflows/pr-triage.js - 编辑文件:先写
meta块(纯字面量,且必须是第一条语句),然后使用注入的全局对象编写异步主体——agent()、pipeline()、parallel()、phase()、log()、budget、args、workflow()。完整接口请参阅 references/api_reference.md;可复制粘贴的模式请参阅 references/orchestration_patterns.md。 - 运行前进行验证——检查会导致解析器致命错误的问题:
python scripts/validate_workflow.py .claude/workflows/pr-triage.js - 运行工作流:通过
export CLAUDE_CODE_WORKFLOWS=1启用该功能,将文件保存到.claude/workflows/下,然后使用/workflows启动并实时监看。按 P 暂停/恢复,按 X 跳过某个子 Agent。失败的 Agent 会自动重试。
硬性规则(验证器会强制执行)
meta必须是纯字面量,且是第一条语句——其中不能有变量、展开语法、模板字符串或函数调用。- 禁止非确定性操作:
Date.now()、Math.random()和不带参数的new Date()会导致恢复失败——通过args传入时间戳。 - 编排器中禁止使用文件系统/Node API(
require、fs、process、网络)——此类操作应放在agent()提示词中。 parallel()接受的是 thunk(()=>agent(...)),而不是普通的 Promise。除非某个阶段需要完整的先前结果集,否则默认使用pipeline()。- 为每个开放式循环添加保护,使用计数器或
budget.remaining()检查——不受保护的循环会触及 1000 个 Agent 的上限。 - 过滤已跳过/失败的 Agent:
results.filter(Boolean)。
工具
scripts/workflow_intake.py— 推荐引擎(根据模糊输入给出拓扑、模型、预算和理由)。scripts/validate_workflow.py— 针对上述规则的标准库检查工具;按行号显示 PASS / WARN / FAIL。scripts/scaffold_workflow.py— 为任意拓扑生成.js起始文件。assets/templates/— 扇出、流水线、循环直至预算耗尽的起始模板。assets/examples/— 完整的可运行工作流。
所有脚本均可使用 --sample(不带参数)和 --help 运行。