SuperAPI AI 工具集

openspec-archive-change

编程与开发

查看项目

更新于 10-16 02:32

技能介绍

用途:在实验性工作流中完成并归档一个已实现的变更。输入可选指定变更名;未提供时从对话上下文推断,若含糊必须先让用户选择,不得猜测或自动选择。

主要能力与步骤:

  1. 未提供变更名时,运行 openspec list --json 获取可用变更,仅显示活跃(未归档)变更,并用 AskUserQuestion 让用户选择,如有则显示所用 schema。
  2. 运行 openspec status --change "<name>" --json 检查产物完成状态,解析 schemaName 与 artifacts 状态;若有未完成产物,列出警告并确认是否继续。
  3. 读取任务文件(通常 tasks.md),统计 - [ ] 与 - [x];若有未完成任务,显示数量警告并确认;无任务文件则跳过该警告。
  4. 检查 openspec/changes/<name>/specs/ 下的增量规范;若存在,与 openspec/specs/<capability>/spec.md 主规范比较,得出将应用的增删改重命名并展示合并摘要,然后询问:需要变更时可选“Sync now (recommended)”或“Archive without syncing”;已同步时可选“Archive now”“Sync anyway”“Cancel”。选择同步则通过 Task 工具(subagent_type: general-purpose)调用 openspec-sync-specs,随后无论选择如何都继续归档。
  5. 执行归档:mkdir -p openspec/changes/archive,用当前日期生成 YYYY-MM-DD-<change-name>;若目标已存在则报错并建议重命名或换日期;否则 mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>。
  6. 显示摘要:变更名、所用 schema、归档位置、是否同步规范及警告说明。

成功输出格式含 Archive Complete 标题及 Change、Schema、Archived to、Specs 字段。

限制与约束:未提供变更名时必须提示选择;用产物图检查完成度;警告不阻塞归档,仅告知并确认;移动目录时保留 .openspec.yaml;同步采用 agent 驱动的 openspec-sync-specs 方式;存在增量规范时必须先做同步评估并展示合并摘要再提示。