Skip to main content
用户正常调用 /comet。项目配置进入 Classic 后,内部 /comet-classic 会自动检测当前阶段、推进状态并衔接下一阶段 Skill;你不需要先判断“现在该做什么”。本页解释这个内部机制。

阶段推进 vs 自动衔接

理解自动推进,首先要区分两个容易被混淆的概念:
阶段推进一定发生——guard 的 —apply 总是更新 phaseauto_transition 只控制是否自动调用下一个 Skill,不影响 phase 推进。用户决策点无论 auto_transition 取何值都必须阻塞。

小鱼用 guard 推动阶段珠子,同时用 auto_transition 开关控制下一步衔接

阶段推进负责更新状态,自动衔接只决定下一张 Skill 卡片是否继续递出去

自动检测怎么工作

每次调用 /comet 并进入 Classic 后,内部 /comet-classic 不依赖对话历史,而是重新读取文件状态判断当前阶段。

Step 0:发现活跃 change

  1. 预设检测(优先级最高)——命中 hotfix/tweak 时直接调用对应预设 Skill
  2. 未命中预设时运行 openspec list --json 获取所有活跃 change
  3. 按 change 数量和用户输入决定行为:

Step 1:读取状态

优先读取当前 Classic OpenSpec 根目录下的 changes/<name>/.comet.yaml:新项目默认是 docs/openspec/changes/<name>/.comet.yaml,保留旧布局的项目是 openspec/changes/<name>/.comet.yaml。不存在时回退到 openspec statustasks.mddocs/superpowers/ 文件检查。根目录由 classic.artifact_layout 决定,详见项目文件结构

Step 2:阶段判定

按以下顺序判断,命中即停(以文件状态为准,冲突时修正 .comet.yaml):

状态转换

阶段推进通过 guard --applycomet-state transition 完成:
转换链:

自动衔接:next 命令

阶段推进后,运行 next 解析下一步:
输出格式:

Skill 路由

next 根据 phaseworkflow 决定下一个 Skill: verify 和 archive 阶段不受 workflow 类型影响,始终返回标准 Skill。

连续执行

单次 /comet 调用由配置进入 Classic 后,从检测到的阶段开始;退出条件满足后自动推进后续阶段。
自动推进只适用于没有用户决策的衔接点。 遇到停顿点时必须暂停等待用户确认,不能用推荐规则、默认值或历史偏好代替。支持结构化提问的平台会优先展示可点击的单选/多选;如果平台没有这类工具,或第一次调用失败,本会话后续停顿点会直接退回编号文本选项。

auto_transition 配置

auto_transition 控制是否自动调用下一个 Skill。配置优先级:

什么时候用 false

  • 想在阶段之间插入人工审核
  • 每个阶段完成后需要换模型或换人
  • CI/CD 场景需要逐步控制

预设升级

hotfix/tweak 执行过程中,如果命中升级信号,会暂停让你二选一: preset-escalate 是预设→full 升级的唯一合法通道——原子地设 workflow/classic_profilefull,回退 phasedesign,清除 design_doc

断点恢复

上下文压缩或会话中断后,重新调用 /comet;配置进入 Classic 后,内部路由重新读取文件状态恢复: 断点恢复不依赖对话历史——每次都重新执行 Step 0 和 Step 1。

红旗清单

Comet 的自动推进有明确的边界。以下想法出现时必须停下检查:

下一步

最后修改于 2026年8月21日