工作流模板引擎
Workflow Template Engine
声明式工作流模板的解析、继承、组合与实例化,将模板编译为可执行的任务依赖图
子问题
1.模板继承与变量替换
2.条件步骤与循环展开
3.AOP Advice 注入
4.Bond Point 组合
5.Range 表达式求值(递归下降解析器支持 + - * / ^ 运算)
6.展开后依赖重写(propagateTargetDeps 根步骤依赖传播)
7.Gate 异步等待(gh:run/gh:pr/timer/human/mail 多类型门控)
8.OnComplete 运行时展开(for-each 遍历步骤输出动态生成子工作流)
各项目的解法1 solutions
Signals
横向对比
| 维度 | beads |
|---|---|
| 模板格式 | TOML/JSON 双格式声明式模板,TOML 优先 |
| 继承机制 | 多父 extends 继承,resolvingSet 循环检测 |
| 变量系统 | 双层变量({{var}} 模板变量 + {target} 展开占位符),支持 enum/pattern 约束 |
| 控制流 | 编译时展开:固定循环/Range 表达式/条件循环 + fork-join 分支 |
| AOP 支持 | 完整 before/after/around Advice + Pointcut 匹配 + 自匹配防护 |
| 组合机制 | BondPoint 命名附着点 + Hook 条件触发 + Expand/Map 宏展开 |
| 安全边界 | 展开深度硬限 5 层 + 循环继承检测 + 重复 ID 校验 |
| 编译管道 | 7 阶段不可变转换管道,每阶段返回新 slice |
最佳实践
1.支持 TOML/JSON 双格式
2.循环检测防止无限继承
3.Source tracing 追踪步骤来源
4.不可变转换管道:每阶段返回新 slice,不修改输入
5.自匹配防护:Advice 只匹配调用前已存在的步骤 ID
6.compile-time vs runtime 双模式:编译时保留占位符可预览,运行时替换变量
7.resolvingChain 错误链路:循环检测不仅报错还输出完整继承路径