归档实验工作流更改Skill openspec-archive-change

这个技能用于在openspec实验工作流中归档已完成的更改,通过检查artifact和任务状态、同步specs,并最终将更改目录移动到存档文件夹,适用于自动化工作流管理。关键词:openspec, 归档, 工作流管理, 实验更改, DevOps工具。

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

名称: openspec-archive-change 描述: 在实验工作流中归档已完成的更改。当用户在实施完成后想要最终确定和归档更改时使用。 许可证: MIT 兼容性: 需要 openspec CLI。 元数据: 作者: openspec 版本: “1.0” 生成者: “1.0.0”

归档实验工作流中已完成的更改。

输入: 可选指定更改名称。如果省略,检查是否可以从对话上下文中推断。如果模糊或不明确,必须提示可用更改。

步骤

  1. 如果没有提供更改名称,提示选择

    运行 openspec list --json 获取可用更改。使用 AskUserQuestion 工具 让用户选择。

    只显示活动更改(尚未归档)。 包括每个更改的架构(如果可用)。

    重要: 不要猜测或自动选择更改。总是让用户选择。

  2. 检查 artifact 完成状态

    运行 openspec status --change "<名称>" --json 检查 artifact 完成情况。

    解析 JSON 以了解:

    • schemaName: 正在使用的工作流
    • artifacts: 带有状态的 artifact 列表(done 或其他)

    如果任何 artifact 不是 done:

    • 显示警告,列出未完成的 artifact
    • 使用 AskUserQuestion 工具 确认用户是否要继续
    • 如果用户确认,则继续
  3. 检查任务完成状态

    读取任务文件(通常是 tasks.md)检查未完成的任务。

    计算标记为 - [ ](未完成)与 - [x](已完成)的任务数量。

    如果发现未完成任务:

    • 显示警告,显示未完成任务数量
    • 使用 AskUserQuestion 工具 确认用户是否要继续
    • 如果用户确认,则继续

    如果任务文件不存在: 继续,无需任务相关警告。

  4. 评估 delta spec 同步状态

    检查 openspec/changes/<名称>/specs/ 中的 delta specs。如果不存在,继续,无需同步提示。

    如果 delta specs 存在:

    • 将每个 delta spec 与对应的主 spec openspec/specs/<能力>/spec.md 进行比较
    • 确定将应用的更改(添加、修改、移除、重命名)
    • 在提示前显示组合摘要

    提示选项:

    • 如果需要更改: “现在同步(推荐)”, “不同步直接归档”
    • 如果已同步: “现在归档”, “还是同步一下”, “取消”

    如果用户选择同步,执行 /opsx:sync 逻辑(使用 openspec-sync-specs 技能)。无论选择如何,继续归档。

  5. 执行归档

    如果不存在,创建存档目录:

    mkdir -p openspec/changes/archive
    

    使用当前日期生成目标名称:YYYY-MM-DD-<更改名称>

    检查目标是否已存在:

    • 如果是: 失败并报错,建议重命名现有存档或使用不同日期
    • 如果不是: 将更改目录移动到存档
    mv openspec/changes/<名称> openspec/changes/archive/YYYY-MM-DD-<名称>
    
  6. 显示摘要

    显示归档完成摘要,包括:

    • 更改名称
    • 使用的架构
    • 存档位置
    • 是否同步了 specs(如果适用)
    • 关于任何警告(未完成的 artifact/任务)的注释

成功输出

## 归档完成

**更改:** <更改名称>
**架构:** <架构名称>
**存档到:** openspec/changes/archive/YYYY-MM-DD-<名称>/
**Specs:** ✓ 已同步到主 specs(或 "没有 delta specs" 或 "同步已跳过")

所有 artifact 已完成。所有任务已完成。

防护栏

  • 如果没有提供,总是提示选择更改
  • 使用 artifact 图(openspec status --json)进行完成检查
  • 不要因为警告而阻止归档 - 只告知和确认
  • 归档时保留 .openspec.yaml(随目录移动)
  • 显示清晰的操作摘要
  • 如果请求同步,使用 openspec-sync-specs 方法(代理驱动)
  • 如果 delta specs 存在,总是运行同步评估并在提示前显示组合摘要