用途:批量归档多个已完成的 OpenSpec 变更,适合同时存在多个并行变更时使用。
主要能力:通过 openspec list --json 获取活动变更,用多选方式让用户选择要归档的变更(不自动选择);对每个变更运行 openspec status --change "<name>" --json 收集产物状态、任务完成度与 delta 规格;构建 capability 到变更的映射以检测规格冲突(同一 capability 被 2 个及以上变更触及即为冲突);对冲突通过检查代码库判断实际实现情况来智能解决。
冲突解决:若仅一个变更已实现,则只同步该变更规格;若两者都已实现,按时间顺序应用(较旧先、较新覆盖);若都未实现,则跳过规格同步并警告用户。
使用方式:先运行 openspec list --json;若指定 store,可先运行 openspec store list --json 获取 id,并在读写规格与变更的命令上附加 --store <id>。随后展示汇总状态表并单次确认,再逐个执行归档:mkdir -p "<planningHome.changesDir>/archive" 与 mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"。
限制与注意:归档目录使用当前日期前缀;若目标已存在则该变更失败但继续处理其他变更;移动时保留 .openspec.yaml;不完整变更会带警告归档;无活动变更时提示并停止。