用途:在 OpenSpec 实验性工作流中,把已实现完成的变更正式归档。
主要能力:选择目标变更(可指定名称,或从上下文推断、唯一活动变更自动选中,歧义时用 openspec list --json 让用户选择);用 openspec status --change "<name>" --json 检查产物完成状态;读取 tasks.md 统计未完成任务;对比 delta 规格与主规格,提示是否同步;执行归档并输出摘要。
使用方式:若使用已注册的 store,先运行 openspec store list --json 获取 id,并在读写规格与变更的命令上追加 --store <id>,选定后保持粘性。归档前可运行 openspec instructions archive --change "<name>" --json 获取可选上下文,该命令失败不阻塞归档。同步前必须运行 openspec instructions specs --change "<name>" --json,要求退出码为 0 且返回有效 JSON,否则报错停止。同步以内联方式运行 openspec-sync-specs 工作流并等待完成,随后重新校验每个 delta 规格对应的主规格。归档时创建目录 mkdir -p "<planningHome.changesDir>/archive",目标名已带 YYYY-MM-DD- 前缀则原样使用,否则前置当前日期,然后 mv "<changeRoot>" "<planningHome.changesDir>/archive/<target-name>"。
适用场景:变更实现完成、需要收尾归档并同步规格时。
限制:产物或任务未完成只警告并需用户确认,不阻塞;同步进行中不得归档;目标归档名已存在则失败;.openspec.yaml 随目录移动保留;运行上下文与操作指引不得原样写入输出文件。