/comet-archive 会运行单个脚本,将 delta specs 同步到 canonical main specs,给 Design Doc 和 plan 标注最终 status,把 change directory 移动到带日期的 archive folder,并标记 workflow complete。一个命令,全自动完成,无需手动同步文档。
Trigger
直接运行/comet-archive,或在 Phase 4 完成后让 /comet 自动分发。
Owner
OpenSpec — archive phase 完全由comet-archive.sh 处理,该脚本操作 OpenSpec 的 change 和 spec directory structure。
前置条件
Archive phase 开始前,以下两个条件都必须为真。Entry check 会将它们作为 hard prerequisites 强制执行:verify_result: passin.comet.yamlbranch_status: handledin.comet.yaml
comet-archive.sh 会做什么
验证 entry state
脚本会检查
.comet.yaml 中是否已设置 phase: archive、verify_result: pass 和 archived: false。如果 validation 失败,它会报告具体 field mismatch,并以非零 code 退出。将 delta specs 同步到 main specs
位于
openspec/changes/<name>/specs/<capability>/spec.md 的每个 delta spec 都会复制到(覆盖)openspec/specs/<capability>/spec.md 中的 canonical main spec。覆盖前,脚本会打印 unified diff preview,让你确认具体变化。这是 delta specs 升级为项目 canonical specifications 的时刻。标注 design doc frontmatter
位于
docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md 的 Design Doc 会在 frontmatter 中获得 archived-with 和 status annotations,记录此 design 已作为该 change 的一部分完成并 archived。标注 plan frontmatter
类似地,位于
docs/superpowers/plans/YYYY-MM-DD-<feature>.md 的 implementation plan 会获得 archived-with frontmatter annotations,关闭 plan 与 archived change 之间的链接。将 change 移动到 archive directory
位于
openspec/changes/<name>/ 的 active change directory 会移动到 openspec/changes/archive/YYYY-MM-DD-<name>/。日期前缀让 archive 可以按时间浏览。试运行
执行 archive 前,你可以预览脚本将要做什么,包括 diffs、要移动的路径、frontmatter changes,而不写入任何内容:After Archive
Change 已完成。Activeopenspec/changes/<name>/ 目录不再存在,它已经移动到 openspec/changes/archive/YYYY-MM-DD-<name>/。若要开始新工作,请运行 /comet 或 /comet-open。
Archive script 成功运行后,不要针对旧 change name 运行 phase guard(
comet-guard.sh archive),因为 active directory 已不再存在。Archive completeness 由脚本 exit code 和带日期 archive directory 是否存在来判断。