用途:在 OpenSpec 实验性工作流中,把已实现完成的变更(change)正式归档。
主要能力:选择目标变更并宣告;读取归档指令上下文(openspec instructions archive);用 openspec status 检查产物完成状态(done、skipped 视为满足);读取 tasks.md 统计未完成任务;用 status 返回的 artifactPaths.specs.existingOutputPaths 判断增量规格是否已同步到主规格,并按结果提示“立即同步”“不同步直接归档”“取消”等选项;同步时先获取规格规则快照,再内联运行 openspec-sync-specs 工作流完成智能合并,并逐项复核;最后在 changesDir 下创建 archive 目录,将变更移动到带日期前缀的目标目录。
使用方式:可指定变更名,未指定时从上下文推断;无法确定必须让用户从活跃变更中选择。若使用已注册 store,先执行 openspec store list --json 取得 id,并在 new change、status、instructions、list、show、validate、archive、doctor、context、view 等命令上传 --store <id>,选定后保持粘性;例如 openspec status --change "<name>" --json --store "<id>"。归档步骤为 mkdir -p "<planningHome.changesDir>/archive",目标名已有 YYYY-MM-DD- 前缀则原样使用,否则添加当前日期前缀,再执行 mv "<changeRoot>" "<planningHome.changesDir>/archive/<target-name>"。多规格用 <capability-path>(相对 specs/),同步时对每个含增量规格的能力逐一比对 ADDED、MODIFIED、REMOVED、RENAMED 要求。
适用场景:OpenSpec 仓库中变更实现完毕、需收尾归档并保持主规格同步时;单机注册多个 store 的多仓库场景。
限制:归档指令查询失败时忽略并继续,不报错、不中断。产物或任务未完成时仅警告并让用户确认,不阻塞归档。若增量规格存在,必须提示同步选项;同步前须确认 openspec instructions specs 退出码为 0 且返回合法 JSON,否则停止。同步必须内联同步执行并等待完成,禁止后台委托,需在移动 changeRoot 前验证主规格;同步失败或复核不一致时必须停止,不得归档。目标目录已存在时报错。移动时 .openspec.yaml 随目录保留。运行上下文与操作指引不得原样写入输出文件;两者与内置步骤、用户选择、路径、CLI 检查冲突时,报告冲突并保留控制性取值。提示方式因代理而异,如 $openspec-archive-change 或 /openspec-archive-change。未提供的信息包括具体支持的 CLI 版本、收费与平台细节。