SuperAPI AI 工具集

process-builder

编程与开发

查看项目

更新于 10-15 09:46

技能介绍

用途

Process Builder 用于为 babysitter 事件溯源编排框架创建新的流程定义(process definitions)。它按照 SDK 模式、正确的目录结构和最佳实践来搭建流程文件,并引导用户完成从调研到实现的三阶段工作流。

目录结构

流程文件位于 library/ 目录下:

  • methodologies/:可复用的开发方法(如 TDD、BDD、Scrum 等),每个方法包含 README.md、[name].js 主流程和 examples/ 示例输入。
  • specializations/:领域专精流程。工程类专精直接作为子目录(specializations/[category]/[process].js);领域类位于 specializations/domains/[domain]/[spec]/,包含 README.md、references.md、processes-backlog.md 和 [process].js。

三阶段工作流

阶段 1:调研与文档 检查现有 specializations 与 methodologies 目录,创建 README.md(概述、角色、目标、用例、常见流程)和 references.md(外部参考、最佳实践、来源链接)。

阶段 2:识别流程 创建 processes-backlog.md,列出识别出的流程,每条包含名称、简短描述、参考来源、输入和输出。

阶段 3:创建流程文件 按照 SDK 模式创建 .js 流程文件。

流程文件结构

每个流程文件遵循固定模式:

  • JSDoc 头:包含 @process、@description、@inputs、@outputs、@graph、@example、@references。
  • 从 @a5c-ai/babysitter-sdk 导入 defineTask。
  • 主导出 async function process(inputs, ctx)。
  • 输入解构并带默认值。
  • 清晰的阶段注释(// === PHASE N: NAME ===)。
  • 通过 ctx.log?.('info', message) 记录日志。
  • 通过 ctx.task(taskDef, inputs) 执行任务。
  • 在关键决策点设置断点。
  • 全程收集 artifacts。
  • 返回对象与 @outputs 模式匹配。

SDK Context API

ctx 对象提供以下内建方法:

  • ctx.task(taskDef, args, opts?):执行任务,返回结果或抛出类型化异常。
  • ctx.breakpoint(payload):人工审批门,暂停直到人工批准。
  • ctx.sleepUntil(isoOrEpochMs):基于时间的门,暂停到指定时间。
  • ctx.parallel.all([...thunks]):并行执行独立任务。
  • ctx.parallel.map(items, fn):将条目映射到任务函数并行执行。
  • ctx.now():确定性时间,返回当前 Date。
  • ctx.log?.(level, msg, data?):可选日志辅助。
  • ctx.runId:当前运行的唯一 ID。

任务类型

  • node:脚本、构建、测试,由 Node.js 进程执行。
  • agent:LLM 驱动的分析与生成,由 Claude Code agent 执行。
  • skill:Claude Code 技能,通过技能调用执行。
  • shell:系统命令,通过 shell 执行。
  • breakpoint:人工审批,通过断点 UI/服务执行。
  • sleep:时间门,由编排器调度。
  • orchestrator_task:编排器内部工作,自路由。

断点模式

支持基础审批门、带文件引用的断点(用于 UI 展示,可指定 path、format、label、language)以及条件断点(如质量分低于目标时触发)。

常见模式

  • 质量收敛循环:在质量未达标且未超过最大迭代次数时循环执行改进任务,并行运行覆盖率、lint、安全、测试检查,由 agent 评分,达标后退出。
  • 带评审的分阶段工作流:调研、规划、实现、验证各阶段之间插入断点审批。
  • 并行扇出与聚合:通过 ctx.parallel.map 对多个组件并行分析,再聚合结果。

测试流程

使用 babysitter CLI 命令:

  • babysitter run:create --process-id ... --entry ... --inputs ... --json
  • babysitter run:iterate .a5c/runs/<runId> --json
  • babysitter task:list .a5c/runs/<runId> --pending --json
  • babysitter task:post .a5c/runs/<runId> <effectId> --status ok --value ./result.json
  • babysitter run:status .a5c/runs/<runId>
  • babysitter run:events .a5c/runs/<runId> --limit 20 --reverse

Process Builder 自身工作流

  1. 收集需求:询问用户领域/类别、流程名称(kebab-case)、目标、输入、输出、阶段、质量门、迭代策略。
  2. 调研相似流程:查看 library/methodologies/ 与 library/specializations/,阅读相似流程的模式。
  3. 检查方法论 backlog。
  4. 创建流程:方法论创建 README.md、[name].js、examples/;专精先创建 README.md、references.md、processes-backlog.md,再创建各 process.js。
  5. 验证结构:对照检查清单确认 JSDoc 头、@graph 块、SDK 导入、主导出、输入解构、阶段注释、日志、任务、断点、artifact 收集、返回对象等。

Atlas 图元数据

每个生成的流程文件必须在文件头 JSDoc 中包含 @graph 块,与 @process、@description、@inputs、@outputs 并列。@graph 包含 domains、skillAreas、topics、roles、workflows 等节点 ID。节点 ID 可从 atlas 图目录(packages/atlas/graph/domain/)中的 YAML 文件查找,按 domains/、skill-areas/、topics/、roles/、workflows/ 分类。

适用场景

适用于需要为 babysitter 框架编写新流程定义的开发者,包括创建可复用开发方法论、工程专精流程或领域专精流程。

限制

资料未提供该工具的收费、价格、平台支持范围等具体信息。