Skip to main content
Native 把“当前进展”和“下一步动作”写进 comet-state.yaml。Agent 每完成一个动作,就读取最新的 continuation,继续实现、验收或归档。即使对话中断、Agent 更换或本机 Runtime 丢失,也能从文件里记录的进度接着做。 Shape 确认、每轮验收、归档批准这些关键节点,Comet 都会把当前阶段和结果写进 comet-state.yaml。文件里记录的进度就是恢复点,中断后从最近一个恢复点继续。

下一步要不要你动手

comet native newstatusnextarchivedoctor 等命令都会返回 continuation.v2。它同时描述流程状态、Agent 动作和用户需要知道的信息。你不需要逐字读这些字段:continuation.v2 中的 disposition 字段标明这次结果属于哪一类,看它就知道这一轮要不要动手: 除了 await-userblocked,其他结果都不需要你介入。遇到这两种结果时,Runtime 会返回原因和下一步选择;需要排查阻塞时用 doctor,见后文。同一条 continuation.v2 的完整字段表放在页面末尾的“供 Agent 与自动化”小节。

恢复点保存在哪里

一个 active change 中可跨会话、跨设备使用的状态放在 change 目录里,随项目代码一起保留:
  • brief.md:目标、范围、用户决定和验收要求;
  • specs/<capability>/spec.md:归档后的完整目标行为;
  • comet-state.yaml:阶段、状态版本、验收结果、Loop 进度、Builder handoff、阻塞原因、最近 50 条执行记录和下一步;
  • verification.md:由 Runtime 生成的用户可读验收报告。
其中 comet-state.yaml 是恢复流程的权威状态,恢复点就是它记录的进度。你不需要手工创建 checkpoint 文件:comet native checkpoint 命令已移除。verification.md 只用于阅读,缺失或版本落后时可以根据 YAML 重建。 本机执行信息单独保存在 .comet/runtime/native/,只对当前设备有意义:
这些文件记录本机正在运行的检查、日志、锁和短期事务。它们可以被清理或重建,不作为跨设备同步的依据,也不能覆盖更新版本的 comet-state.yaml Shape、Build、Verify 和 archive-ready 等各阶段中断后的恢复行为,统一见恢复手册

换设备或换会话后继续

同一设备上的新会话通常可以直接继续当前需求:Comet 会先定位 active change,再返回工作区和下一步动作。需要手动查看时运行:
换设备前,同步以下内容:
  • 项目代码及对应分支或 worktree;
  • .comet/config.yaml
  • change 目录中的 brief.md、Specs 和 comet-state.yaml
  • 已生成的 verification.md,该文件也可以在目标设备重建。
目标设备不需要复制 .comet/runtime/native/。Runtime 会检查项目根目录、分支、worktree 和 change 绑定。绑定一致时,它按 comet-state.yaml 记录的进度重建本机执行状态;绑定不一致、代码未同步或同名 active/archive 目录冲突时,它会保留现有文件并等待处理。

普通 change 如何自动推进

普通 change 的主流程如下:
Verifier 判定某些验收项未通过时,Runtime 返回 Build,并把未解决的验收项写入下一步。需求或验收标准发生变化时,Runtime 返回 Shape,开始新的目标周期。独立验收任务缺少外部信息、连续执行失败或达到失败次数上限时,流程进入 await-userblocked 当平台无法向 Runtime 证明 Verifier 与 Builder 独立执行时,即使 Verifier 判断全部通过,结果也需要你明确接受。此时会提供三个互斥选项:
  • 接受当前结果并准备归档;
  • 保留需求,回到 Build 修改实现;
  • 修改需求或验收标准,回到 Shape。
选择其中一个即可,Agent 会执行与你的选择一致的命令。

本机状态异常时会看到什么

每份本机 state.json 都关联 change 和 state_version。Runtime 读取它时会区分两种情况:
  • 状态匹配:从当前记录的进度继续;
  • 文件缺失、无效或版本落后:根据 comet-state.yaml 重建本机执行状态。
这两种处理都由 Runtime 自动完成。检查中断、Verifier 任务丢失或 archive-ready 结果失去本机执行依据时的恢复行为,见恢复手册

过期命令会被拒绝

每个涉及用户决定或阶段转换的命令,都绑定它生成时的状态版本和预期动作,Runtime 执行前会校验这两项。因此,旧对话里的确认、迟到的 Verifier 返回或已经过期的命令,都不会写入新状态。 你会看到什么:命令被拒绝,提示状态版本或预期动作不匹配。 该做什么:不要重试旧命令,重新读取最新 continuation,再按新的动作继续。 status --details 的分页游标同样绑定状态版本;状态变化后旧游标会被拒绝,避免把不同版本的验收项、历史和工作区信息混在一起。版本号如何写入与校验的协议细节,见 Native 的运行时保护与故障恢复

异常时的诊断

日常推进以最新 continuation 为准。出现 Runtime 文件缺失或版本过旧、change 需要迁移、归档或目录移动中断、状态和工作区关系无法确定这类异常时,Agent 会运行只读诊断命令 comet native doctor <change-name>,拿到原因和修复建议;continuation 要求诊断时也会给出提示。 诊断结果明确给出安全修复动作时,才会带 --repair 执行。状态损坏、同名目录冲突或恢复来源不明确时,保留现场并处理 Runtime 返回的阻塞原因。

continuation.v2 字段表(供 Agent 与自动化)

以下字段由 Agent 与自动化程序消费,手动操作时只用得到第一节的 disposition
disposition 有四种结果:continue 不一定对应一条 Shell 命令。进入 Build 后,runnerAction 可能要求 Builder 先完成实现;进入 Verify 后,它可能要求启动新的只读 Verifier。Agent 应同时读取这些字段,不能只看 commandArgs
继续阅读:产物与状态验证与修复恢复手册
最后修改于 2026年9月4日