归档实验变更Skill openspec-archive-change

该技能用于在实验工作流中归档已完成的变更,通过检查工件状态、任务完成度和规格同步,确保变更归档的完整性和准确性。关键词:归档、实验工作流、变更管理、openspec、CLI。

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

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

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

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

步骤

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

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

    只显示活动变更(尚未归档)。 包括每个变更使用的模式(如果可用)。

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

  2. 检查工件完成状态

    运行 openspec status --change "<name>" --json 检查工件完成情况。

    解析 JSON 以理解:

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

    如果有任何工件不是 done

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

    读取任务文件(通常是 tasks.md)以检查不完整的任务。

    计数标记为 - [ ](不完整)与 - [x](完整)的任务。

    如果找到不完整的任务:

    • 显示警告,显示不完整任务的计数
    • 使用 AskUserQuestion 工具 确认用户想要继续
    • 如果用户确认则继续

    如果不存在任务文件: 继续,没有任务相关的警告。

  4. 评估增量规格同步状态

    检查 openspec/changes/<name>/specs/ 处的增量规格。如果不存在,继续,没有同步提示。

    如果存在增量规格:

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

    提示选项:

    • 如果需要更改:“立即同步(推荐)”、“归档而不同步”
    • 如果已经同步:“立即归档”、“重新同步”、“取消”

    如果用户选择同步,执行 /opsx:sync 逻辑(使用 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. 显示摘要

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

    • 变更名称
    • 使用的模式
    • 归档位置
    • 规格是否已同步(如果适用)
    • 关于任何警告的注意事项(不完整的工件/任务)

成功时输出

## 归档完成

**变更:** <change-name>
**模式:** <schema-name>
**归档到:** openspec/changes/archive/YYYY-MM-DD-<name>/
**规格:** ✓ 同步到主规格(或 "无增量规格" 或 "跳过同步")

所有工件完成。所有任务完成。

护栏

  • 如果没有提供变更,总是提示选择变更
  • 使用工件图(openspec status --json)进行完成检查
  • 不要因警告而阻止归档 - 只需通知并确认
  • 归档时保留 .openspec.yaml(它会随目录移动)
  • 显示清晰的发生摘要
  • 如果请求同步,使用 openspec-sync-specs 方法(代理驱动)
  • 如果存在增量规格,总是运行同步评估并在提示前显示组合摘要