用途:在一次操作中批量归档多个已完成的变更,并在存在规格冲突时通过检查代码库确定实际已实现的内容,从而智能处理冲突。适用于并行推进多个变更、需要集中归档的场景。
主要能力:
- 通过 openspec list --json 获取全部活跃变更;若无活跃变更则提示并停止。
- 用 AskUserQuestion 多选让用户挑选变更,展示每个变更的 schema,并提供“All changes”选项,不自动选择。
- 批量校验:对每个选中变更运行 openspec status --change "<name>" --json 解析 schemaName 与 artifacts;读取 openspec/changes/<name>/tasks.md 统计未完成与已完成任务;检查 openspec/changes/<name>/specs/ 下的 delta 规格并提取需求名。
- 冲突检测:当 2 个及以上选中变更触及同一 capability 时视为冲突。
- 冲突处理:阅读各 delta 规格并在代码库中搜索实现证据(相关文件、函数、测试),据此判定只同步某一方规格、按时间顺序先后应用,或两者均未实现时跳过同步并警告。
- 展示汇总状态表,并对冲突给出解决说明;用单次确认询问是否归档(全部、仅就绪部分或取消)。
- 执行归档:如存在 delta 规格则先同步,再 mkdir -p openspec/changes/archive 并用 mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name> 移动,迁移时保留 .openspec.yaml。
- 输出成功、部分成功或无变更时的结果,报告归档、跳过、失败与同步情况。
限制:不自动选择变更;归档目录使用当前日期;若归档目标已存在则该变更失败但继续处理其他变更;仅当实现缺失时跳过规格同步并警告;文本未提供其他平台、收费或价格信息。