/comet 都能从文件重建状态。详见恢复中断的工作。

Comet 把可恢复的事实拆到仓库文件里,方便跨设备恢复、排查和协作
本页聚焦 Classic 的目录结构。Native 把用户可读产物和本机执行状态分开存放,目录结构见
产物与状态。
经典工作流目录
新建的 Classic 和双工作流项目默认使用文档目录布局:classic.artifact_layout 可配置为 docs 或 legacy:docs 对应 docs/openspec/,legacy 对应仓库根目录的 openspec/。只能在这两种布局中选择,不支持自定义目录路径。
openspec/。如果想从旧布局迁移到 docs/openspec/,详见迁移 Classic 布局。
change 内的 .comet/ 运行产物
每个 change 目录下还有一个.comet/ 子目录,存运行期产物(多由 Comet 自动维护,即 machine-owned,不要手工编辑):
Comet 配置和运行目录
项目根的.comet/ 目录存放项目级配置和各能力的运行数据:
/comet-any 就不会有 bundle-* 目录)。
目录和文件职责
哪些该提交到 git
- 应该提交:Classic 产物根(新项目为
docs/openspec/,保留旧布局的项目为openspec/)、docs/superpowers/、.comet/config.yaml、.comet/skill-preferences.yaml。这些文件是跨设备恢复的依据,提交后才能在新设备上恢复。Native 产物的提交建议见产物与状态。 - 看情况:
.comet/skills/、.comet/bundles/(团队共享则提交;个人本地则忽略)。 - 通常忽略:
.comet/tmp/、运行期临时文件。
.comet.yaml 和 run-state.json 的边界:.comet.yaml 保存
用户可理解的工作流状态(phase、build_mode、verify_result 等),只通过
run_id 链接到 Engine;完整的 Run 细节在 run-state.json。
state-events.jsonl 只解释成功状态转换的历史,不是当前状态来源。所以你看
.comet.yaml 就能理解当前进度;排查状态为何变化时,再看事件日志。
