SuperAPI AI 工具集

openspec-archive-change

部署与运维

查看项目

更新于 10-22 09:57

技能介绍

用途

openspec-archive-change 用于在实验性工作流中归档一个已完成的变更,适用于实现工作结束后需要收尾、并把变更记录从活动目录移入归档目录的场景。

主要能力

  • 变更选择:若未提供变更名称,可通过 openspec list --json 列出可用变更并让用户选择,只显示未归档的活动变更,并尽量显示每个变更所用的 schema。该技能明确要求不得猜测或自动选择变更。
  • 产物完成检查:通过 openspec status --change "<name>" --json 读取 schemaName 与各产物状态;若存在未完成产物,则警告并请用户确认是否继续。
  • 任务完成检查:读取任务文件(通常为 tasks.md),统计未完成与已完成任务数量;若存在未完成任务,则展示数量并请求确认;若没有任务文件,则跳过该警告。
  • 增量规格同步评估:若存在 openspec/changes/<name>/specs/,则与 openspec/specs/<capability>/spec.md 对应主规格比较,判断将应用的添加、修改、删除、重命名,并在提示前展示合并摘要。若需要同步,选项为“立即同步(推荐)”或“不同步直接归档”;若已同步,选项为“立即归档”“仍然同步”“取消”。
  • 执行归档:创建 openspec/changes/archive 目录(mkdir -p),以当前日期生成目标名 YYYY-MM-DD-<change-name>,检查目标是否已存在;若存在则报错并建议重命名已有归档或更换日期;若不存在则用 mv 移动变更目录。移动时 .openspec.yaml 随目录一并保留。
  • 结果汇总:输出变更名称、所用 schema、归档位置、规格是否已同步,以及未完成产物或任务的警告说明。

使用方式

用户可指定变更名称;若省略,则从对话上下文推断,若含糊不清则必须提示用户从可用变更中选择。执行过程中按步骤运行 openspec list --json、openspec status --change "<name>" --json,读取任务文件与增量规格,并在需要同步时执行 openspec-sync-specs 技能的逻辑。

适用场景

适用于采用 OpenSpec 实验性工作流、且变更已实现完毕、需要正式归档并可选同步规格的团队或个人。

限制

归档不因未完成产物或任务而阻塞,仅提示并确认。技能依赖 AskUserQuestion 工具进行交互确认;未提供变更名称且无法从上下文推断时,必须由用户选择。若归档目标已存在则直接失败,需自行处理命名冲突。