用途:在 OpenSpec 实验性工作流中,把已实现完成的变更定稿并归档。
主要能力:选择目标变更(可指定名称,或从上下文推断、唯一活跃变更自动选中,歧义时列出活跃变更让用户选择);用 openspec status --change "<name>" --json 检查产物完成状态;读取 tasks.md 统计未完成任务;依据 status JSON 中 artifactPaths.specs.existingOutputPaths 评估 delta spec 与主 spec 的同步状态,并给出合并摘要与选项(立即同步、不同步直接归档、取消等);同步前需运行 openspec instructions specs --change "<name>" --json 获取规则,随后内联执行 openspec-sync-specs 工作流并复核每个能力是否已同步;最后在 changesDir 下创建 archive 目录,按 YYYY-MM-DD-<change-name> 命名(已有日期前缀则不重复叠加),用 mv 移动 changeRoot,并输出归档摘要。
使用方式:若使用已注册的 store,先运行 openspec store list --json 获取 id,并在读写 spec 与 change 的命令上追加 --store <id>,该选择在后续流程中保持有效;未指定 store 时作用于最近的本地 openspec/ 根目录。归档前可运行 openspec instructions archive --change "<name>" --json 获取可选上下文与操作建议,该查询失败不应阻断归档。
适用场景:变更实现完成、需要把变更目录移入归档并同步主 spec 时。
限制:产物或任务未完成只警告并需用户确认,不阻断归档;同步未完成或复核不匹配时必须停止归档;同步必须内联执行并等待完成,不能后台委派;目标归档名已存在则报错;运行时上下文、操作建议与产物规则文本不得原样写入输出文件。