| name | all |
| description | 当用户输入 `~all 任务`,或要求全流程执行、反复迭代、不停优化、循环直到满意、收敛、
做到最好、一站式搞定或不断改进直到最好时使用;复杂多步骤任务需要统一编排时也使用。
|
| metadata | {"openclaw":{"emoji":"♻️"}} |
all — 全流程收敛编排技能(元技能)
执行前置
遵循当前目录 AGENTS.md「技能执行公共契约」;仅按需读取技能正文与 reference。
判断任务需要哪些技能,编排它们循环执行直至收敛为最佳。与 make 的区别:make 是
单次全流程生成;all 是收敛循环——每轮评估 → 发现并解决主导问题 → 复测回归 →
收敛检查,直到通过标准全部达成或收益收敛。all 是编排层,不重复发明各技能的细节流程,
细节以各技能 SKILL.md 为权威。
核心原则
- 先定收敛目标,再开始迭代:收敛判据(通过标准/收益阈值/最大轮数)必须先行,
"最佳"没有操作化定义就无法判定收敛;缺项先提问(所有问题第一次交互一次性全部提出),不臆断。
- 技能选择先行:任务 → 所需技能集合(编排矩阵),避免凭感觉直接动手;
单步任务(纯 debug/纯 optim/纯测试/纯分析/纯初始化)直接转对应技能,
注明"单步任务无需循环"。
- 每轮循环留证据:一轮 = 评估当前状态 → 定位主导问题/优化点 → 最小改动 →
复测回归 → 记录;结论与收益以实测为准(test/debug/optim 方法论)。
- 收敛判据是硬闸门:四者满足其一即收敛——① 通过标准全部达成(测试全绿);
② 优化收益低于阈值(默认 <5%,按任务性质可调);③ 连续两轮无实质变化
(改动为空或收益相同);④ 用户终止。未收敛且轮数未超限 → 继续下一轮。
- 迭代守卫防失控:默认最大 5 轮;每轮向用户简报(结论/改动/收益/剩余轮数);
超限未收敛 → 报告权衡与证据,由用户决策继续或停止,不无限循环。
- 一轮一动作:每轮聚焦一个主导问题;先 debug(修复)后 optim(优化),
不并行混合(debug 单假设原则);修复与重构分离。
- 循环复用成熟方法论:问题 → debug 循环(复现→证据→二分→不变量→最小修复→回归);
性能 → optim 循环(测量基线→主导项→最小改动→复测);测试 → test 全回归;
不发明新循环,只编排既有循环。
- 诚实报告:每轮收益与失败实测量化(基线→优化后),不虚报收敛;
无法验证的项标注原因,绝不把"看起来不错"当"已收敛"。
触发时机
- 用户直接触发:"~all <任务>"、"all"、"用all做xxx"
- 用户要求循环收敛:"反复迭代"、"不停优化"、"循环直到满意"、"收敛"、"做到最好"、
"不断改进"、"优化到最佳"、"搞到满意为止"
- 用户要求一站式全流程:"一站式搞定"、"全流程执行"、"帮我做完xxx"(多技能协作的复杂任务)
- 用户要求分派:"看情况用合适的技能"、"你看着办,反复试到最好"
- 与其他技能配合:生成项目 → 首轮调用 make;中途报错 → 该轮转 debug;
性能不足 → 该轮转 optim;收敛后打标签 → tag;收敛后复查 → diff;
多步骤任务先规划 → plan;优化 skill 自身 → skill-creator;skill 库升级 → up;
需求模糊 → brainstorm;实现先测试 → tdd;审查改动质量 → review;
多独立子任务(多失败/多文件/多目标)→ dispatch 并行派发;
循环中断后续接 → go-on(多源汇聚恢复上下文,优先原生会话继续);
无人值守执行 → auto(一次性预授权包装本技能,0 交互跑至收敛)
技能编排矩阵(任务 → 所需技能集合)
| 任务类型 | 所需技能(首轮顺序) | 说明 |
|---|
| 项目生成/代码生成 | plan → init →(实现)→ test → debug/optim → diff → tag | 首轮即调用 make 完整流程,本技能在其后叠加收敛循环 |
| 复杂多步任务(用户未指定技能) | plan → diff/analy →(实现)→ test → debug/optim → diff | 先计划再动手;调查阶段只读 |
| 修改/优化已有内容 | diff →(实现)→ test → optim → diff | 先看改动范围再动 |
| 修复类任务 | debug → test → diff | 复现→根因→修复→回归 |
| 分析/报告类 | analy →(按需) | 结论附 文件:行号 |
| 多独立子任务(多失败/多文件/多目标) | dispatch →(整合)→ test/diff | 拆域并行(无共享状态/无顺序依赖/互不改同文件才并行),一轮一动作不冲突 |
| 仓库初始化/归档 | init → diff | 两阶段执行 |
| 单步任务(纯 debug/纯 optim/纯 test/纯 analy/纯 init) | 直接转对应技能 | 注明"单步任务无需循环",不强行套用 |
收敛判据与迭代守卫
| 判据 | 定义 | 默认值 |
|---|
| 通过标准 | 任务定义的验收标准全部达成(测试全绿、行为断言通过) | 必须明确,缺项先提问(一次问全) |
| 收益阈值 | 本轮优化收益(基线 → 优化后实测)低于阈值即收敛 | <5%,按任务性质可调 |
| 无变化收敛 | 连续两轮无实质变化——以可观测信号判定:本轮改动为空 / 收益相同 / 相邻轮 diff 趋零;产物规模逐轮增大视为未收敛(范围蔓延信号) | 2 轮 |
| 用户终止 | 用户明确要求停止/改目标 | 随时生效 |
| 最大轮数 | 超过后停止自动迭代,报告权衡由用户决策 | 5 轮 |
工作流程
Step 1. 解析任务与收敛目标(先问对问题)
收集并确认(缺项先提问,不臆断;所有问题在第一次交互一次性全部提出,用户一次回答,不逐次追问):
| 信息项 | 说明 |
|---|
| 任务对象 | 做什么、产物与目标位置 |
| 通过标准 | 如何判定"达成"(预期输出/数值容差/行为断言)——收敛判据第一项 |
| 约束 | 语言/工具链/设备/精度/兼容范围 |
| 收益阈值 | 优化到什么程度算"收敛"(默认 <5%) |
| 最大轮数 | 允许的迭代上限(默认 5) |
输出一句任务定义(如"任务:优化 bin/agent.sh 启动时间,通过标准=冷启动 <0.5s,
收益阈值 5%,最大 5 轮")并在终端摘要中说明,避免歧义。
Step 2. 技能选择与首轮计划
- 按「技能编排矩阵」确定所需技能集合与执行顺序;
- 单步任务:转对应技能(各技能自带完整流程),不套用循环;
- 复杂任务:首轮执行顺序 = plan → 调查(diff/analy)→ 实现 → test;
- 输出首轮计划(技能 | 阶段 | 通过标准)在终端摘要中说明。
Step 3. 执行首轮
按计划调用对应技能执行(各技能按自身 SKILL.md 流程运行):
- 生成类任务:调用 make 技能完成首轮全流程(其内部已编排 init/tag/debug/optim/
diff/analy/test),接收其终端摘要;
- 非生成任务:直接编排所需技能(如 debug → test);
- 每个阶段记录命令、输出与结论(
$ <命令> + exit=<退出码>);
- 首轮产物明确后,进入 Step 4 收敛评估。
Step 4. 收敛评估(硬闸门检查)
对照「收敛判据」逐条检查,每条以实测证据为准:
- 任一判据满足 → 收敛,进入 Step 6 收尾;
- 全部不满足且轮数 < 最大轮数 → 进入 Step 5 下一轮;
- 全部不满足且轮数 ≥ 最大轮数 → 停止自动迭代,报告权衡与证据,由用户决策
(继续/停止/调整判据/换方案)。
Step 5. 迭代循环(未收敛时)
每轮固定动作序列(一轮一动作):
- 评估:基于上轮测试/测量结果确定本轮主导问题——
- 有失败/报错 → 本轮为 debug 轮(复现→证据→二分→不变量→最小修复→回归);
- 全部通过但性能未达阈值 → 本轮为 optim 轮(测量基线→主导项→最小改动→复测);
- 失效模式识别(吸收 agentpatterns.ai 收敛检测):振荡=输出在两方案间交替、
扩张=产物逐轮增大、低质平台=判据显示稳定但质量仍差——三者加轮无益,
按错误处理表转"换方案/重定义任务",不硬凑轮数;
- 修复与优化分轮进行,不并行混合;
- 执行:按对应技能方法论处理,最小改动(
文件:行号 记录);
- 复测:回归全部测试(test 方法论),记录实测数据;
- 摘要:在终端输出第 N 轮及改动/复测/收益;
- 收敛检查:按 Step 4 对照判据;未收敛且未超限 → 继续下一轮;
向用户简报(本轮结论/改动/收益/剩余轮数),重大方向变更先与用户确认。
Step 6. 收尾(diff + init + tag)
- 改动复查(diff):先概览(
git diff --stat)后详情(逐文件);
边界校验:冲突标记(git diff --check)、调试残留、未跟踪文件、二进制、重命名;
- skill 归集(init):本轮产物为 agent 生成内容时,对应完整 skill 归集到
本库根
.opencode/skills/(与 init 约定一致,由 init 统一执行);
- 版本标签(tag,用户要求时):先看后打——分析基线以来变更,构建诚实分组变更清单;
注释标签消息格式
follow <前一标签>, 1. 变更一; [opencode].;
仅在用户明确要求对外发布时推送;破坏性操作先警告;
- Git 检查:涉及文件改动时按上级公共契约执行
git diff --check 与定向复查;不自动暂存、提交或推送。
Step 7. 总结(结构化输出)
✓ all 收敛完成
任务: <任务定义>
收敛: <判据达成明细,如 通过标准 5/5 达成 + 收益 12%→3% <5% 阈值>
轮数: <N 轮>(第 N 轮: <结论>; 第 N-1 轮: <结论>; ...)
debug: <N 次迭代>(修复: 文件:行号 <说明>,无则省略)
optim: <N 次迭代>(基线 → 优化后,收益量化,无则省略)
产物: <产物路径与格式>
子技能: <实际调用的技能>
Git: <git diff --check 与定向复查结果;无 Git 或无改动则跳过>
标签: <tag 创建与推送结果,无则省略>
遗留: <未收敛项/权衡/待确认项,无则省略>
声明前自检(证据先于断言):输出"收敛"前逐项核对——每个通过标准的达成均有
本次会话刚运行的验证输出(退出码/数值)为证;缺失证据的项改为"未验证"或补跑后更新。
错误处理
| 场景 | 处理 |
|---|
| 任务对象/通过标准不明确 | 一次性列出全部候选(对象/标准/判据)提问确认,不逐次追问 |
| 无收敛判据 | 设默认值(通过标准全绿 + 收益 <5% + 最大 5 轮)并告知用户 |
| 超过最大轮数未收敛 | 停止自动迭代,报告权衡与证据,由用户决策继续/停止/调整判据 |
| 连续两轮无变化但未达标 | 检查方向是否错误/证据不足(同 debug 红旗:3 次失败质疑方案本身),与用户讨论换方案 |
| 迭代出现振荡/扩张/低质平台 | 均为"换方案"信号而非加轮信号(agentpatterns.ai 收敛检测):振荡=权衡缺外部输入,请用户裁决;扩张=范围蔓延,收缩目标;低质平台=方案需重新设计;确认后重置任务定义与判据 |
| 一轮内既有 bug 又有优化空间 | 先 debug(修复)后 optim(优化),分轮处理,不混合 |
| 单步任务误入 all | 转对应技能,注明"单步任务无需循环" |
| 用户中途改变目标 | 重新解析任务定义与收敛判据,在终端摘要说明变更 |
| 无测试框架 | 纯 shell 至少 bash -n + 原复现路径手动回归(test 约定) |
| 优化收益微小(<5%) | 视为收敛(收益阈值判据),报告权衡,由用户决定取舍 |
| 收敛后用户要求继续 | 视为新任务:重置轮数计数,按新目标继续迭代 |
| 子技能结果缺失 | 检查该技能是否返回结果;未返回则在终端摘要说明缺失 |
注意事项
- all 是编排层:不重复发明各技能的细节流程,细节以各技能 SKILL.md 为权威;
- 收敛判定以实测为准(命令输出、退出码、数值误差),不虚报收敛与收益;
- 一轮一动作:每轮只处理当轮主导问题,不顺手扩大改动范围;
- 不越界访问工作目录之外的内容;触及系统配置前先说明意图与回滚方式;