用途:在实验性工作流中归档已完成的变更,适用于实现完成后需要最终确认并归档的场景。
主要能力:选择目标变更(可指定名称,或从对话上下文推断、唯一活跃变更自动选中、歧义时列出活跃变更让用户选择);通过 openspec status --change "<name>" --json 检查产物完成状态;读取 tasks.md 统计未完成任务;依据 status JSON 中 artifactPaths.specs.existingOutputPaths 评估 delta 规格与主规格的同步状态,并给出同步或直接归档选项;执行归档时在 planningHome.changesDir 下创建 archive 目录,按 YYYY-MM-DD-<change-name> 规则生成目标名(已有日期前缀则不重复叠加),用 mv 移动 changeRoot,并输出归档摘要。
使用方式:若涉及已注册的 store,先运行 openspec store list --json 获取 id,并在读写规格与变更的命令上追加 --store <id>,该选择在后续流程中保持。归档前可运行 openspec instructions archive --change "<name>" --json 获取可选上下文;若选择同步,需先运行 openspec instructions specs --change "<name>" --json 获取规格规则,再内联执行 openspec-sync-specs 工作流并等待完成,随后重新比对每个 delta 规格确认已同步,最后才移动 changeRoot。
限制:产物或任务未完成时仅警告并请求确认,不阻断归档;instructions archive 查询失败或返回无效 JSON 时应继续归档且不报错;同步未完成前不得归档;若同步失败或比对不一致,应报告差异并停止;不得把运行时上下文、操作指引或规则文本原样写入输出文件。