SuperAPI AI 工具集

openspec-archive-change

编程与开发

查看项目

更新于 10-16 04:06

技能介绍

用途

openspec-archive-change 用于在 OpenSpec 的实验性工作流中归档一个已完成的变更。当用户希望在实现完成后最终确定并归档某个变更时使用该技能。

主要能力

  • 选择要归档的变更:可显式指定变更名称,也可从对话上下文推断;若只有一个活动变更则自动选择;若含糊不清则列出可用变更并提示用户选择。提示时只显示活动变更(未归档的),并在可用时显示每个变更所用的 schema。
  • 存储选择:如果用户指定了 store(本机注册的独立 OpenSpec 仓库),或工作位于某个 store 中,可运行 openspec store list --json 发现已注册的 store id,然后在读写规格与变更的命令上传递 --store <id>。选定后该标志在后续工作流中保持粘性。
  • 加载归档输入:在归档检查前运行 openspec instructions archive --change "<name>" --json,该查询为建议性且可选,失败或返回无效 JSON 时继续归档流程,不报错、不停止。
  • 检查工件完成状态:运行 openspec status --change "<name>" --json,解析 schemaName、planningHome、changeRoot、artifactPaths、actionContext 以及各工件的状态(done、skipped 或其他)。若存在既非 done 也非 skipped 的工件,显示警告并请求用户确认。
  • 检查任务完成状态:读取任务文件(通常为 tasks.md),统计 - [ ](未完成)与 - [x](已完成)的数量。若存在未完成任务,显示警告并请求确认。若无任务文件则跳过该警告。
  • 评估 delta 规格同步状态:以 status JSON 中的 artifactPaths.specs.existingOutputPaths 作为唯一的 delta 规格来源。若存在 delta 规格,则与对应主规格(位于 <planningHome.root>/openspec/specs/<capability-path>/spec.md)比较,确定将要应用的添加、修改、删除、重命名,并在提示前显示合并摘要。
  • 执行同步(可选):若用户选择同步,先运行 openspec instructions specs --change "<name>" --json 获取规格规则快照,然后内联运行 openspec-sync-specs 工作流(智能合并),并等待其完成。同步后重新比较每个有 delta 规格的能力,确认已同步。若同步失败或能力不匹配,报告差异并停止,不归档。
  • 执行归档:在 planningHome.changesDir 下创建 archive 目录(如不存在),生成目标名称(若变更名已以 YYYY-MM-DD- 开头则原样使用,否则前置当前日期),检查目标是否已存在,然后将 changeRoot 移动到归档目录。
  • 显示摘要:展示归档完成摘要,包括变更名称、所用 schema、归档位置、规格是否已同步,以及任何警告(未完成工件/任务)。

使用方式

该技能以工作流步骤形式执行,涉及以下命令(示例中未加 --store 标志,实际使用时需按需追加):

  • openspec store list --json
  • openspec instructions archive --change "<name>" --json
  • openspec status --change "<name>" --json
  • openspec list --json
  • openspec instructions specs --change "<name>" --json
  • mkdir -p "<planningHome.changesDir>/archive"
  • mv "<changeRoot>" "<planningHome.changesDir>/archive/<target-name>"

成功输出格式为:

## Archive Complete

**Change:** <change-name>
**Schema:** <schema-name>
**Archived to:** the archive path derived from `planningHome.changesDir`/<target-name>/
**Specs:** <"✓ Synced to main specs" only if the step 4 verification passed; otherwise "No delta specs" or "Sync skipped">

<"All artifacts complete. All tasks complete." — or, if archived with warnings, list them instead (e.g. "Archived with 2 incomplete tasks")>

适用场景

  • 变更实现完成后,需要将其最终确定并归档。
  • 需要检查工件与任务完成状态后再决定是否归档。
  • 需要将 delta 规格同步到主规格后再归档。
  • 在多个 OpenSpec 存储库(store)之间工作时,需要指定目标 store。

限制与约束

  • 该技能属于实验性工作流。
  • 归档不应被警告阻塞,只做告知与确认。
  • 移动到归档时保留 .openspec.yaml(随目录一起移动)。
  • 绝不在规格同步仍在进行时归档;必须内联运行同步并在移动 changeRoot 前验证主规格。
  • 若存在 delta 规格,始终先运行同步评估并在提示前显示合并摘要。
  • 应用相关运行时上下文并报告冲突;操作指导仅为建议性。
  • 考虑每一条指导条目,并解释任何不适用或冲突的建议。
  • 现有 CLI 检查、已解析路径、提示和命令契约保持不变。
  • 工件规则仅约束正在写入的规格,绝不作为操作指导。
  • 绝不将运行时上下文、操作指导或工件规则文本逐字复制到输出文件中。
  • 关于收费、价格、平台支持等具体信息,资料中暂未提供。