用途:在实验性工作流中归档已完成的变更,适用于实现完成后需要最终确定并归档的场景。
主要能力与用法:可选指定变更名称,未指定时从对话上下文推断、自动选择唯一活跃变更,含糊时运行 openspec list --json 让用户选择,并提示如何覆盖调用。若使用注册的 store,可先运行 openspec store list --json 获取 store id,再将 --store <id> 追加到读写 specs 与 change 的相关命令上(如 new change、status、instructions、list、show、validate、archive、doctor、context、view),选择后该参数具有粘性;其他命令不接受该标志,未指定时作用于最近的本地 openspec/ 根目录。
流程:先运行 openspec instructions archive --change "<name>" --json 加载归档输入(可选、失败不阻塞);再运行 openspec status --change "<name>" --json 检查工件完成状态;读取 tasks.md 统计未完成任务;根据 artifactPaths.specs.existingOutputPaths 评估增量规范同步,与主规范比较后展示合并摘要并询问是否同步。选择同步时先运行 openspec instructions specs --change "<name>" --json,成功后内联运行 openspec-sync-specs 工作流并等待完成,再复验各能力是否已同步。
归档:在 changesDir 下创建 archive 目录,目标名已含 YYYY-MM-DD- 前缀则按原样使用,否则前置当前日期;检查目标是否已存在,不存在则移动 changeRoot。成功后输出归档摘要。
限制与护栏:警告不阻塞归档,仅提示并确认;.openspec.yaml 随目录移动保留;同步未完成时绝不归档;运行时上下文与操作指导仅为提示级输入,与内置步骤、用户选择、路径或命令契约冲突时以控制性输入为准。