用途:当 harness 的就绪评分停滞、不清楚应由哪个策略面负责,或想为新垂直领域凭经验找初始配置、把手调 harness 与演化基线比较时使用。不适合持续后台优化(Darwin 模式需人工发起),也不适合对 ruflo 本身在 CI 中自动演化(ADR-153 §5 明确拒绝)。
主要能力:通过 @metaharness/darwin evolve <repo> 运行演化,每个变体只变异一个面,保证因果归因清晰。脚本 scripts/evolve.mjs 校验参数(--repo 存在,--generations ≤ 50、--children ≤ 20、--concurrency ≤ 8);不加 --confirm 时只打印计划并退出 0,加了才执行。按 generations×children×单变体耗时(真实约 60s、mock 约 2s)计算超时,可用 --timeout-ms 覆盖;代际进度输出到 stderr,获胜者 JSON 从 stdout 捕获。可选 --alert-on-no-improvement 在冠军未超过父代时退出 1。
输出与诊断:结果保存在 <repo>/.metaharness/ 下,包括 archive.json、lineage.json、variants/<id>/、runs/<id>/、reports/winner.json。技能 stdout 为 JSON {success, data:{champion, plan, durationMs, improved}};传 --diagnose 时会额外附加来自 GEPA 失败分析与分类的 diagnosis 段落,且诊断永不导致运行失败。
限制与退出码:0 表示演化成功、dry-run 或环境降级(Darwin 未安装);1 表示冠军未超过父代;2 表示配置或演化基础设施错误;99 为上游安全取消资格,原样传播不重映射。未安装 @metaharness/darwin 时输出降级信息并退出 0,ruflo 仍可正常工作。GEPA 诊断依赖上游数据形状,无 GEPA 式转录时返回 available:false 及机械统计。