You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
buffer_platform/.trae/rules/comet-phase-guard.md

7.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Comet 阶段感知(防漂移规则)

此规则每轮注入,防止长上下文时遗忘 Comet 流程状态。 Hook 平台额外执行 comet-hook-guard.sh 进行硬性拦截; 此 Rule 是所有平台通用的软性防线。

全局规则

阶段感知(最高优先级)

有活跃 comet change 时(openspec/changes/<name>/.comet.yaml 存在),每次开始执行操作前必须读取 phase 字段确认当前阶段。

阶段与允许操作:

阶段 允许 禁止
open 创建 proposal/design/tasks, 运行 guard 写源代码
design brainstorming, 创建 Design Doc, 运行 guard 写源代码
build 写源代码、测试、执行计划 跳过用户确认点
verify 验证、branch handling 跳过失败处理
archive 确认归档、运行归档脚本 写源代码

阶段进入自洽性校验(写源代码前必查)

仅看 phase 字段不够——还必须确认"是如何到达这个阶段的"。每次准备写源代码前,先用下表自检 .comet.yaml 是否处于非法空跳状态(绕过了前置阶段)。命中任一行,立即停止写源代码,按动作回到对应阶段补齐产物,不得信任 phase 字段直接续跑。

检测到 判定 动作
phase: build + workflow: full + design_doc 为空/null 绕过 design 空跳 停止写源代码,运行 /comet-design 补 Design Doc 并过 guard
phase: build/verify + proposal/design/tasks 任一缺失或为空 绕过 open 空跳 /comet-open 补齐三件套
phase: archive + verify_resultpass 绕过 verify 空跳 /comet-verify 完成验证

预设例外:workflow: hotfix/tweak 本就跳过 designdesign_doc 为空属正常,不算非法。

Skill 调用(不可用普通对话替代)

以下操作必须通过 Skill 工具加载Skill 不可用时应停止流程并提示安装:

  • brainstorming — design 阶段、build 阶段中等规模 spec 变更
  • writing-plans — build 阶段创建实现计划
  • executing-plans / subagent-driven-development — build 阶段执行
  • test-driven-developmentexecuting-plans 由主会话在第一个 task 前加载;subagent-driven-development 由每个后台 implementer 和修复 agent 加载
  • systematic-debugging — 遇到崩溃/测试失败/构建失败时
  • verification-before-completion — verify 阶段
  • using-git-worktrees — build 阶段选择 worktree 隔离时

脚本执行(不可跳过)

  • 阶段退出: comet-guard <name> <phase> --apply(必须看到 ALL CHECKS PASSED
  • 压缩恢复: comet-state check <name> <phase> --recover
  • 状态更新: 关键操作后通过 comet-state set 更新字段,禁止手工编辑 .comet.yaml
  • 阶段推进只能经 guard/transition: 禁止用 comet-state set <name> phase <值> 手动跳阶段(会绕过证据校验,脚本已硬拦截);确需修复畸形状态时才用 COMET_FORCE_PHASE=1 逃生阀
  • handoff 生成: comet-handoff <name> design --write(禁止手写摘要)

用户确认(不可自动跳过)

以下决策点必须暂停等待用户明确选择,不得根据推荐规则自动填写:

  • open: 需求澄清完成确认、artifact 评审确认
  • design: brainstorming 方案确认(确认前不得创建 Design Doc
  • build: plan-ready 暂停、isolation/build_mode/tdd_mode 选择、spec 大规模变更确认
  • verify: 验证失败处理策略、branch handling 选择
  • archive: 归档前最终确认

Design 阶段专项

  1. 第一个脚本操作 = comet-handoff <name> design --write(未生成 handoff 禁止加载 brainstorming
  2. brainstorming in progress: incrementally update brainstorm-summary.md每轮澄清或方案迭代后增量更新恢复检查点未确认内容标注为待确认/候选)
  3. brainstorming 完成后下一步 = brainstorm-summary.md 定稿 → Design Doc → guard
  4. active compaction gate: brainstorm-summary.md 定稿后、创建 Design Doc 前,优先触发宿主平台原生上下文压缩;无法程序化触发时暂停提示用户手动压缩或确认继续
  5. 绝对不能直接开始写实现代码 — 必须先创建 Design Doc 并通过 guard

Build 阶段专项

  1. plan 创建后必须询问用户选择继续或暂停(build_pause 机制)
  2. 每个 task 验收后必须: tasks.md 打勾 → git commit不得积攒subagent-driven-development 必须等 spec compliance 与 code quality 两个审查都通过,再由协调者按任务唯一文本定向勾选和验证;不得用未完成任务总表代替当前任务验证
  3. 遇到失败必须加载 systematic-debugging skill根因未定位前不得提出源码修复
  4. spec 变更分级: 小改直接编辑 | 中改加载 brainstorming | 大改暂停等用户确认拆分

Verify 阶段专项

  1. 第一步运行 comet-state scale <name> 确定验证级别
  2. 验证失败后列出失败项等用户选择CRITICAL 必须修
  3. 连续 3 次失败后必须让用户选择接受偏差或继续修

上下文压缩恢复

如果怀疑发生上下文压缩(之前对话被摘要、找不到之前讨论的内容),立即运行:

"$COMET_BASH" "$COMET_STATE" check <name> <phase> --recover

按脚本输出的 Recovery action 决定下一步。

恢复后必须先用「阶段进入自洽性校验」表复查一遍:若发现 phase 与产物不自洽design_doc/三件套/verify_result 任一不匹配),按非法空跳处理,回对应阶段补齐,不得信任 phase 字段直接续跑。

特别注意 build_mode:若恢复脚本输出 build_mode: subagent-driven-development,你是协调者,不是执行者。必须:

  1. 使用 Skill 工具重新加载 Superpowers subagent-driven-development 技能 (Use the Skill tool to reload the Superpowers subagent-driven-development skill)
  2. 读取 comet/reference/subagent-dispatch.md 获取 Comet 专属扩展 (re-read comet/reference/subagent-dispatch.md for Comet-specific extensions)
  3. 读取 openspec/changes/<name>/.comet/subagent-progress.md 恢复精确阶段、证据和审查-修复轮次 (Read openspec/changes/<name>/.comet/subagent-progress.md to recover the exact stage, evidence, and review-fix round)
  4. 禁止在主会话中直接执行 task (Do not execute the pending task directly in the main window)
  5. 按检查点恢复;缺失或不匹配时才从第一个未勾选 task 开始
  6. 已提交但未通过双审查的 task 保持未勾选,继续审查/修复循环
  7. task 通过双审查和定向勾选验证后立即继续下一个 task不得总结或询问是否继续

阶段退出后自动过渡

guard --apply 成功后,不得在本规则中硬编码下一阶段 skill。必须先运行

comet-state next <change-name>

若已通过 comet-env.sh 定位脚本,等价运行:

"$COMET_BASH" "$COMET_STATE" next <change-name>

按脚本输出决定下一步:

  • NEXT: auto → 使用 Skill 工具加载 SKILL 指向的 skill
  • NEXT: manual → 不加载下一 skillHINT 提示用户手动继续
  • NEXT: done → 流程已完成,无需继续