comet-archive.sh 是 Comet workflow 的最后一步。它会在单个 atomic command 中执行所有 archive operations,确保 delta specs 被正确同步,且不会遗漏 cleanup steps。对不满足 prerequisites 的 change 运行它,会产生清晰的 fatal error,而不是 partial archive。
用法
| Argument | 说明 |
|---|---|
<change-name> | 要 archive 的 change 名称 |
--dry-run | 预览所有步骤而不做任何变更 |
前置条件
Archive 会强制三个 hard entry conditions;任一不满足都会立即退出:| Condition | Required value |
|---|---|
phase | archive |
verify_result | pass |
archived | 不是 true(change 尚未 archived) |
phase: archive 和 verify_result: pass 由 comet-state.sh transition <name> verify-pass 设置;comet-guard.sh verify --apply 会在所有 verify-phase checks 通过后调用它。该 transition 本身要求 verification_report 指向现有文件,并且 branch_status: handled,因此当到达 phase: archive 时,这些条件已经得到保证。
Archive 会执行什么
Archive 会按顺序执行以下步骤:同步 delta specs → main specs
对每个
openspec/changes/<name>/specs/<capability>/spec.md,将 delta spec 复制到 openspec/specs/<capability>/spec.md。如果需要,会创建 target directory。如果 main spec 已存在且内容不同,覆盖前会将 diff 打印到 stderr。标注 Design Doc frontmatter
如果设置了
design_doc 且文件存在,会向 YAML frontmatter 插入 archived-with: YYYY-MM-DD-<name> 和 status: final。试运行
使用--dry-run 预览所有步骤,不做任何 file system changes:
生成后的文件布局
Archive 完成后,change 及其关联 documents 会最终定稿:Archive 通常会在
/comet-verify 通过后由 AI agent 自动调用。你也可以在 AI 工具中运行 /comet-archive 手动触发,或如上所示直接调用脚本。