Skip to main content
.comet/config.yaml 是项目级配置,全局一份。本页只讲 Classic 相关的部分:共享入口字段和 classic.* 默认值。native.* 字段的含义见 Native 配置 下文用 <classic-root> 表示当前 Classic OpenSpec 根目录:新项目默认是 docs/openspec/,保留旧布局的项目是 openspec/。实际位置由 classic.artifact_layout 决定,详见项目文件结构

完整示例

同时启用两套工作流并选择中文时,项目级安装会生成类似配置(Classic 视角只关心共享字段和 classic: 块):

共享入口字段

修改 default_workflow 只改变 /comet 的入口,不迁移任何 change。

Hook 写入放行

hook.allow_paths 是共享的写入放行策略:默认为空时,项目内(产物区之外)的写入按 Classic 自身的阶段与守卫规则判定;配置后,匹配目录及其子目录的写入会直接放行。典型用途是让实现代码目录(如 src/)在任意阶段都能修改,避免在非编码阶段触发拦截。
.comet(Runtime 状态)、Classic 的 openspec 与 superpowers 产物根永远受保护,无法通过本配置放行。路径越界或格式错误会在 comet doctor 检查时报错。

Classic 字段

artifact_layout 是项目级目录选择;其余四项会在创建新 Classic change 时快照到该 change 的 .comet.yaml
Classic 项目默认值在创建新 change 时快照到 .comet.yaml;之后修改不会追溯改变已有 change。
直接修改 classic.artifact_layout 只会改变 Comet 读取的目录,不会移动已有产物。已有项目切换布局时,应使用 comet classic root move docs —dry-run 检查当前状态、冲突和阻塞项,再用 comet classic root move docs —apply 执行迁移。

产物语言和 Skill 语言的区别

comet init 里的“Skill 语言”会决定安装中文还是英文版 Comet Skill,Classic 的产物语言写入 classic.language 之后新建 Classic change 时,Comet 会把项目级 classic.language 快照到 <classic-root>/changes/<name>/.comet.yaml。OpenSpec proposal、design、tasks、Superpowers 设计/计划、验证报告和 archive 说明都会按这个配置输出,而不是按某次触发请求的语言临时判断。
项目级和 change 级语言值只接受 enzh-CNzh 只用于 comet init —language zh 的 CLI 选择,不是 .comet/config.yaml 的合法值。

配置优先级

以下优先级只描述 Classic 的 languagecontext_compressionreview_modeauto_transition

auto_transition 详解

auto_transition 控制阶段推进后是否自动调用下一个 Skill。
阶段推进一定发生——guard 的 —apply 总是更新 phase 字段,与 auto_transition 无关。auto_transition 只影响是否自动调用下一个 Skill。用户决策点(确认 proposal、选择执行方式等)无论 auto_transition 是什么都会阻塞。
环境变量覆盖(仅 change 级为空时生效):

环境变量

COMET_LANGUAGECOMET_AUTO_TRANSITIONCOMET_FORCE_PHASECOMET_OPENSPEC 是用户可用的环境变量。COMET_CONTEXT_COMPRESSION COMET_REVIEW_MODE 存在于解析层但未在用户文档中正式记录,主要用于内部和测试。

怎么配置

配置项目默认值

编辑 .comet/config.yaml
提交到仓库,团队成员的新 change 会用这些默认值。

临时覆盖(环境变量)

影响当前会话,不改文件。

下一步

最后修改于 2026年8月21日