用途
CocoHarvest 用于将一份已批准的执行计划(plan.md)分解为多个可并行的工作流,并生成完整的 flow.json 流水线定义。它属于 CocoPlus 工作流体系,目标是把高层计划转化为可被 flow-run 执行的阶段化任务。
主要能力
- 工作流解析:读取 .cocoplus/lifecycle/plan.md 的 ## Workstreams 部分,提取每个工作流的名称、描述、依赖关系和产出物。
- CocoLens 分类:为每个工作流判定 HITL(Human In The Loop,需人工判断)或 AFK(Away From Keyboard,可自主完成),并写入 flow.json 的 hitl 字段。HITL 阶段完成后会暂停流水线,等待开发者审查。
- 角色分配:按领域将工作流映射到专家角色,如 data-engineer($de)、analytics-engineer($ae)、data-scientist($ds)、data-analyst($da)、bi-analyst($bi)、data-product-manager($dpm)、data-steward($dst)、chief-data-officer($cdo),并指定隔离方式(worktree 或 none)。
- 阶段提示词生成:为每个工作流创建 .cocoplus/prompts/[stage-id]-prompt.md,包含目标、输入、交付物、约束和检查点。对大输入文件会估算 token 数,超过阈值时使用 CocoPull 生成 pull 文件,并透明记录替换情况。
- flow.json 生成:生成 stage-NNN 格式的阶段 ID,设置依赖关系,写入 meta、defaults、stages 和 runtime 配置。
- 双文件状态初始化:创建 harvest/[run-id]-progress.txt(仅追加日志)和 harvest/[run-id]-tasks.json(结构化状态,原子写入)。
- Shell 身份注入:为每个阶段注入 COCOPLUS_FUNCTION、COCOPLUS_PERSONA、COCOPLUS_EVAL_ID、COCOPLUS_HARVEST_ID 环境变量,形成审计轨迹。
使用方式
- 确认当前目录存在 .cocoplus/,否则提示运行 $pod init。
- 读取 .cocoplus/lifecycle/plan.md,若不存在或为空则提示运行 $plan。
- 解析工作流,进行 HITL/AFK 分类并请开发者确认(yes / override <hitl|afk>)。
- 按领域分配角色与隔离方式。
- 为每个阶段创建提示词文件,必要时调用 $pull。
- 生成 .cocoplus/flow.json。
- 初始化双文件状态,生成 run ID(harvest-YYYYMMDD-HHMMSS)。
- 注入 Shell 环境变量。
- 输出摘要,提示运行 $flow run 开始执行。
运行时行为
- 自适应并行:normal(默认,依赖完成即并行)、caution(任一阶段失败后最多两个并发)、single-track(超过 50% 已完成阶段失败后完全串行)。模式写入 flow.json 的 runtime.concurrency_mode,不会自动升级。
- 停滞检测:子代理输出 token 速率低于 stallTokenThreshold(默认 150 tokens/step)超过 stallMinSteps(默认 5)步时标记为停滞,先重新提示,仍无改善则升级为失败信号。
- 连续失败升级:任一子代理连续三次硬失败(可通过 maxConsecutiveFailures 配置)后暂停流水线并升级,展示失败描述、历史尝试、最后成功状态和恢复建议。
适用场景
适用于已使用 CocoPlus 并完成计划审批、需要将计划拆解为多阶段并行流水线的数据工程项目。
限制
- 依赖 .cocoplus/ 目录和 plan.md 文件,缺失时无法运行。
- 需要 flow-run 读取生成的提示词文件,缺失会导致阶段运行失败。
- 具体收费、价格、平台支持等信息暂未提供。