用途:recipe-use 是面向 CocoPlus/CocoFlow 的技能,用于从指定的 CocoRecipe 模板生成项目流水线配置文件 .cocoplus/flow.json,把模板中的参数占位符替换为实际值,并在写入前进行结构校验。
主要能力:
- 预检:确认当前目录存在 .cocoplus/,否则提示运行 $pod init 初始化并停止。
- 定位模板:在 ~/.coco/plugins/cocoplus/recipes/<name>.json.template 与项目本地 .cocoplus/recipes/<name>.json.template 中查找,找不到时提示运行 $recipe list 查看可用配方。
- 读取参数:从模板的 __recipe_meta 块识别必填参数、可选参数及描述。
- 交互收集:对未通过 --params key=value 提供的必填参数逐个提示填写,并校验非空以及指定的 Snowflake 标识符格式(字母数字与下划线、无空格),校验失败时说明格式要求并重新提示,而不是中止。
- 覆盖保护:若 .cocoplus/flow.json 已存在,先询问是否用新配方流水线覆盖,用户拒绝则不做改动并停止。
- 生成与校验:替换所有 {{parameter_name}} 占位符,删除 __recipe_meta 块,按 CocoFlow schema 校验 nodes 数组及每个节点的 id、label、type、agent 字段;校验失败时输出具体违规项且不写入。
- 写入与输出:将通过的 JSON 写入 .cocoplus/flow.json,列出所用参数、各阶段 id、agent 与 model 信息,并提示先运行 $plan 审阅批准再执行。
使用方式:以配方名称调用该技能,可通过 --params key=value 预传参数,其余必填参数会在过程中交互式补全;生成完成后按提示运行 $plan 进行审阅。
错误处理:配方不存在时列出可用配方;生成的 JSON 无效时输出具体 schema 错误且不写入;用户拒绝覆盖时平稳停止。
适用场景:在已初始化的 CocoPlus 项目中使用预置配方快速搭建 CocoFlow 流水线,尤其适合需要标准化参数输入与 schema 校验的流水线创建流程。
限制:依赖 .cocoplus/ 目录与可用的配方模板;参数格式校验按资料描述限于非空与 Snowflake 标识符格式;未提供对可选参数默认值、模型或代理具体配置的进一步说明。