SuperAPI AI 工具集

openspec-bulk-archive-change

编程与开发

查看项目

更新于 10-16 10:53

技能介绍

用途

openspec-bulk-archive-change 用于一次性批量归档多个已完成的变更,适用于同时存在多个并行变更且需要集中归档的场景。该技能会智能处理规格冲突,通过检查代码库判断实际已实现的内容。

主要能力

  • 批量归档:在单次操作中归档多个变更。
  • 规格冲突检测:识别多个选中变更是否触及同一能力。
  • 基于代码库的冲突解决:阅读各变更增量规格并搜索实现证据,决定应用顺序或跳过。
  • 状态汇总:以表格展示构件状态、任务完成度、增量规格、冲突与状态。
  • 确认与结果报告:单次确认整批操作,并报告成功、跳过、失败。

使用方式

  1. 获取活跃变更:运行 openspec list --json。若没有活跃变更,提示用户并停止。
  2. 选择变更:使用 AskUserQuestion 工具多选,展示每个变更及其 schema,提供“全部变更”选项,允许任意数量选择(1+ 可用,2+ 为典型场景)。重要:不要自动选择,始终由用户选择。
  3. 批量校验:对每个选中变更收集:
    • 构件状态:运行 openspec status --change "<name>" --json,解析 schemaName 与 artifacts 列表,记录已完成与其他状态。
    • 任务完成度:读取 openspec/changes/<name>/tasks.md,统计 - [ ] 与 - [x]。若无任务文件,记录为“No tasks”。
    • 增量规格:检查 openspec/changes/<name>/specs/ 目录,列出存在的能力规格,并提取需求名(匹配 ### Requirement: <name> 的行)。
  4. 检测规格冲突:构建 capability -> [changes] 映射。当 2 个及以上选中变更对同一能力有增量规格时,视为冲突。
  5. 以智能体方式解决冲突:对每个冲突调查代码库:阅读各冲突变更的增量规格;搜索实现证据(相关文件、函数或测试);确定解决方案:仅一个变更已实现则同步该变更规格;两者均已实现则按时间顺序应用(较旧先,较新覆盖);均未实现则跳过规格同步并警告用户;记录每个冲突的解决方式(应用哪个变更的规格、顺序、依据)。
  6. 展示整合状态表:包含 Change、Artifacts、Tasks、Specs、Conflicts、Status 列。对冲突展示解决说明;对不完整变更展示警告。
  7. 确认批量操作:使用 AskUserQuestion 单次确认“Archive N changes?”,选项可包括“归档全部 N 个变更”“仅归档 N 个就绪变更(跳过不完整)”“取消”。若不完整,明确说明将带警告归档。
  8. 逐个执行归档:按确定顺序处理;若存在增量规格则先同步规格(采用 openspec-sync-specs 的智能合并方式,冲突按解决顺序应用,并记录是否同步);执行归档:mkdir -p openspec/changes/archive 与 mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>;记录每个变更的结果(成功/失败/跳过)。
  9. 展示摘要:报告归档、跳过、失败数量,以及规格同步摘要。

冲突解决示例

  • 仅一个已实现:specs/auth/spec.md 被 [add-oauth, add-jwt] 触及。检查 add-oauth 发现 src/auth/oauth.ts 实现 OAuth 流程;检查 add-jwt 未发现 JWT 实现。结论:仅同步 add-oauth 规格。
  • 两者均已实现:specs/api/spec.md 被 [add-rest-api, add-graphql] 触及。add-rest-api(创建于 2026-01-10)发现 src/api/rest.ts;add-graphql(创建于 2026-01-15)发现 src/api/graphql.ts。结论:先应用 add-rest-api 规格,再应用 add-graphql 规格(按时间顺序,较新优先)。

输出

  • 成功:列出已归档变更及目标路径,并给出规格同步摘要(同步数量、冲突解决情况)。
  • 部分成功:列出已归档、跳过、失败变更及失败原因。
  • 无变更:提示未发现活跃变更,并可使用 /opsx:new 创建新变更。

约束与守卫

  • 允许任意数量变更(1+ 可用,2+ 为典型)。
  • 始终提示选择,绝不自动选择。
  • 尽早检测规格冲突并通过检查代码库解决。
  • 两者均已实现时按时间顺序应用规格。
  • 仅当实现缺失时跳过规格同步并警告用户。
  • 确认前展示清晰的逐变更状态。
  • 整批使用单次确认。
  • 跟踪并报告所有结果(成功/跳过/失败)。
  • 移动到归档时保留 .openspec.yaml。
  • 归档目录目标使用当前日期:YYYY-MM-DD-。
  • 若归档目标已存在,则该变更失败但继续处理其他变更。

限制

该技能依赖 OpenSpec 命令与 openspec/changes 目录结构;具体支持的平台、收费、价格与效果暂未提供。