用途:批量归档多个已完成的 OpenSpec 变更,适合同时存在多个并行变更、需要一次性归档的场景。
主要能力:先运行 openspec list --json 获取所有活跃变更;用 AskUserQuestion 多选让用户挑选变更(不自动选择);对每个变更运行 openspec status --change "<name>" --json 收集工件状态、任务完成度与 delta 规格;构建 capability 到变更的映射以检测规格冲突(同一 capability 被 2 个及以上变更触及即为冲突);对冲突检查代码库实现证据,决定同步哪个变更的规格,若都实现则按时间顺序应用(较新覆盖较旧),都未实现则跳过同步并警告;展示汇总表并单次确认后执行归档。
使用方式:若用户指定 store 或工作位于某个 store,先运行 openspec store list --json 获取已注册 store id,再在读写规格与变更的命令(new change、status、instructions、list、show、validate、archive、doctor、context)上附加 --store <id>;其他命令不接受该标志。无 store 时命令作用于最近的本地 openspec/ 根目录。归档时执行 mkdir -p "<planningHome.changesDir>/archive" 与 mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>",保留 .openspec.yaml,归档目录使用当前日期前缀。
限制:输入非必填,会提示选择;必须始终让用户选择,不得自动选择;仅当实现缺失时跳过规格同步并警告;若归档目标已存在则该变更失败但继续处理其他变更;需报告成功、跳过与失败的结果。