用途:批量归档多个已完成的 OpenSpec 变更,适合并行开发多个变更后统一收尾,也支持用户提出复数形式的归档请求。
主要能力:先运行 openspec list --json 获取活动变更并让用户多选(不自动选择);对每个变更收集 artifact 状态、任务完成度和 delta specs;按 capability-path 检测多个变更是否修改同一规格,冲突时搜索代码库判断哪些已实现,仅实现者同步,均实现按时间顺序应用,均未实现则跳过并警告;归档前检查目标目录是否已存在,避免覆盖。
用法要点:如果指定了 store,需用 openspec store list --json 获取 id,并在读取或写入规格/变更的命令上追加 --store <id>;写入前用 openspec list --json 检查 root,root 为 null 表示未初始化,不要盲目写入,显式请求时应询问用户是否 openspec init、使用 store 或跳过。批量校验使用 openspec list --json 和 openspec status --change "<name>" --json;归档前对将同步规格的变更各执行一次 openspec instructions specs --change "<name>" --json,失败则整批停止。归档使用 openspec instructions archive、确认后逐变更同步规格、验证主规格更新,再移动目录:mkdir -p "<planningHome.changesDir>/archive" 与 mv "<changeRoot>" "<planningHome.changesDir>/archive/<target-name>"。目标名以 YYYY-MM-DD- 前缀或当前日期加变更名生成,批处理中不重算。
限制:资料未提供具体适用平台、收费、价格或效果数据;需已使用 OpenSpec 的项目环境,未初始化时不应创建根目录;同步失败、验证不符或目标已存在时该变更记为失败且不移动。