用途
Progress Contract 用于管理长时间运行或委派给他人的工作进度。其核心目标是让人类无需手动轮询(如反复询问“进展如何?”“预计何时完成?”),而是由系统主动推送有意义的进度更新。该技能特别适合运行时间超过约 30 分钟、无人值守或已委派给他人的任务。对于用户实时观看的短暂交互任务,则不应使用此技能。
主要能力
- 启动计划发布:在任务开始时列出 3 到 7 个里程碑,使用人类友好的标签(而非 PR 编号或 SHA),为每个里程碑提供操作者时区下的 ETA、视为完成的证据等级以及置信度。如果有截止日期,还会添加检查点预测。
- 事件驱动报告:优先基于事件触发报告,例如里程碑证据等级变化、PR 合并、CI 变红、出现阻塞或需要人类回答的问题。定时扫描仅作为后备。
- 静默规则:仅在至少一个条件满足时发送报告:证据等级前进或后退、ETA 变动超过滑动容差或检查点通过、出现新阻塞或人类专属问题、看门狗超过阈值、头条指标超过噪声底线。计划唤醒若无变化则不发消息。
- 固定格式报告:报告以头条指标开头(x → y (Δz%) 及相关百分位数),然后包含合并计数、打开和阻塞计数、自上次合并以来的时间、ETA 与先前预测的对比、带证据链接的里程碑表,以及最多一个“需要你”的问题(附推荐答案)或“无”。
- 看门狗:跟踪自上次合并(或不合并工作时自上次证据推进)以来的时间。当超过停滞阈值时,执行工作的运行会先采取行动(如恢复停滞的工作者、将验证通过的 PR 交给 pr-shepherd、补充队列、重新计划),然后报告已采取的行动,而非仅发出警报等待。
- 人类状态询问处理:任何人类询问状态都视为一次未命中。以固定格式明确回答,然后收紧契约一步(提高节奏、添加所询问字段、将报告移至可见位置),并记录缺失内容。
- ETA 准确性日志:为每个里程碑记录启动时的预测、每次修订及原因、实际时间。在运行结束时报告误差及方向(提前或延迟),并用于校准下一次预测。如果预测滑动超过一个检查点,则从目标重新计划(缩减范围、增加并行或升级),而非静默延长。
- 完成审计:在宣布完成前,重读原始请求和完成条件。对每个标准和里程碑,引用所需等级的证据;没有证据的项标记为未完成,即使声称已完成;给出 0-100 的置信度和一行推理;对于低于置信度阈值的项,获取独立检查(第二模型或新代理),然后继续工作直到通过或触发停止条件。最终摘要包含审计表及 ETA 准确性总结。
证据等级
使用为真的最弱等级,绝不向上取整:
| 等级 | 含义 | 需引用的证据 |
|---|---|---|
| claimed | 代理声称完成 | 暂无,标注“claimed” |
| pushed | 代码在远程分支或 PR 上 | 分支或 PR 链接 |
| green | 所需检查在确切的 head SHA 上通过 | 检查运行链接 + SHA |
| merged | 已进入默认分支 | 合并提交链接 |
| deployed | 在用户所在处运行 | 发布或部署链接 + 版本 |
| measured | 结果指标在真实流量上移动 | metric: x → y (Δz%), n, 链接 |
状态记录只有在回读后才计数:写入产物,获取它,然后报告。关键产物按 <lane>/<pr>/<head-sha> 键控,因此同一 head 上的重跑在构造上就是无操作。
使用方式
- 通过
/lever status命令(无参数)列出为用户运行的工作:is:open label:lever assignee:@me在当前仓库以及~/.copilot/lever.yml中配置的每个仓库。优先打印lever:needs-you项,每项附一个问题和一个推荐答案。然后每个问题一行:结果、完成的 lane/总数、最弱证据等级、最后检查、运行器。超过 2 小时的检查或等待批准的工作流运行会被标记为停滞。给定#issue时,打印该问题的摘要。 /lever status是只读的,从不合并、重新触发、补充、编辑问题或安排任何事项。对于停滞,它打印执行操作的命令,通常是/lever deliver #<issue>。- 当运行在问题上跟踪时,摘要放在问题的
## Status部分,原地编辑。仅在里程碑、需要你回答的问题(添加lever:needs-you标签)或最终完成审计时发表评论。 - 云端版本是
automations/下的早晨简报/状态摘要配方,使用每日间隔触发器。
可调参数(Dials)
| 参数 | 默认值 | 选项 |
|---|---|---|
| 节奏 | 事件驱动,加 30 分钟后备扫描 | 15 分钟;每小时;仅里程碑;每日摘要 |
| 目的地 | 委派者的聊天或会话 | 固定问题;PR 评论;讨论;早晨简报自动化 |
| 静默阈值 | 步骤 3 中的变化列表 | 始终按计划报告;仅头条心跳 |
| 时区和标签 | 操作者时区;里程碑名称 | UTC;包含 PR 编号 |
| 规划视野 | 下一个里程碑 + 运行结束 | 未来 2 小时;过夜;逐小时到截止日期 |
| 滑动容差 | 剩余时间的 25%,或一个检查点 | 任意分钟值 |
| 看门狗指标 | 自上次合并以来的时间 | 自上次证据推进以来的时间;自上次发布以来的时间 |
| 停滞阈值 | 活跃时段 2 小时,仅报告 | 45 分钟自动重新触发;关闭 |
| 卡住阈值 | 2 小时无进展 → 重新计划 | 30 分钟 – 8 小时 |
| 完成审计置信度阈值 | 80 | 50-100;始终要求第二审查者 |
| 详细程度 | 头条 + 表格 + 链接 | 仅头条;完整细节 |
输出
- 启动计划:里程碑、ETA、所需证据、置信度。
- 按
templates/status-digest.md形状的摘要,仅在发生变化时发送。 - ETA 准确性日志,在账本或运行记录中。
- 最终完成审计表:标准 → 证据链接 → 等级 → 置信度 → 完成或未完成。
适用场景
- 运行时间超过约 30 分钟的任务。
- 无人值守运行的任务。
- 委派给他人的任务。
- 用户询问状态或 ETA 时(回答后收紧契约,避免再次询问)。
- 任何“完成”“就绪”或“完成”声明之前。
限制
- 不适用于用户实时观看的短暂交互任务。
- 不提供具体收费、价格信息(暂未提供)。
- 不提供具体平台支持信息(暂未提供)。