OpenSpec变更继续管理技能Skill openspec-continue-change

该技能是 OpenSpec 工具的一部分,用于自动化和管理软件开发中的变更工作流程。它通过顺序创建和更新工件来指导用户推进变更,支持 spec-driven 和 TDD 等模式,适用于 DevOps、项目管理、流程自动化场景。关键词:OpenSpec, 变更管理, 工作流程自动化, 软件开发, DevOps, 项目管理, 流程优化。

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

name: openspec-continue-change description: 通过创建下一个工件继续处理 OpenSpec 变更。当用户想要推进变更、创建下一个工件或继续工作流程时使用。 license: MIT compatibility: 需要 openspec CLI。 metadata: author: openspec version: “1.0” generatedBy: “1.0.0”

通过创建下一个工件继续处理变更。

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

步骤

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

    运行 openspec list --json 获取按最近修改排序的可用变更。然后使用 AskUserQuestion 工具 让用户选择要处理的变更。

    将前 3-4 个最近修改的变更作为选项呈现,显示:

    • 变更名称
    • 模式(如果存在 schema 字段,否则为 “spec-driven”)
    • 状态(例如,“0/5 任务”、“完成”、“无任务”)
    • 最近修改时间(来自 lastModified 字段)

    将最近修改的变更标记为 “(推荐)”,因为它可能是用户想要继续的。

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

  2. 检查当前状态

    openspec status --change "<名称>" --json
    

    解析 JSON 以了解当前状态。响应包括:

    • schemaName:使用的流程模式(例如,“spec-driven”、“tdd”)
    • artifacts:工件数组及其状态(“完成”、“就绪”、“阻塞”)
    • isComplete:布尔值,指示所有工件是否完成
  3. 根据状态行动


    如果所有工件都完成(isComplete: true

    • 祝贺用户
    • 显示最终状态,包括使用的模式
    • 建议:“所有工件已创建!您现在可以实现此变更或归档它。”
    • 停止

    如果工件已就绪可创建(状态显示工件状态为 “就绪”):

    • 从状态输出中选取第一个状态为 “就绪” 的工件
    • 获取其指令:
      openspec instructions <工件-id> --change "<名称>" --json
      
    • 解析 JSON。关键字段为:
      • context:项目背景(对您的约束 - 不要包含在输出中)
      • rules:工件特定规则(对您的约束 - 不要包含在输出中)
      • template:用于输出文件的结构
      • instruction:模式特定指导
      • outputPath:写入工件的位置
      • dependencies:已完成工件,用于上下文
    • 创建工件文件
      • 读取任何已完成的依赖文件以获取上下文
      • 使用 template 作为结构 - 填写其部分
      • 应用 contextrules 作为写作时的约束 - 但不要将它们复制到文件中
      • 写入指令中指定的输出路径
    • 显示创建的内容和现在解锁的内容
    • 创建一个工件后停止

    如果没有工件就绪(全部阻塞)

    • 对于有效模式,这不应发生
    • 显示状态并建议检查问题
  4. 创建工件后,显示进度

    openspec status --change "<名称>"
    

输出

每次调用后,显示:

  • 创建了哪个工件
  • 使用的流程模式
  • 当前进度(完成 N/M)
  • 现在解锁了哪些工件
  • 提示:“想要继续吗?只需让我继续或告诉我下一步做什么。”

工件创建指南

工件类型及其用途取决于模式。使用指令输出中的 instruction 字段来理解要创建的内容。

常见工件模式:

spec-driven 模式(提案 → 规范 → 设计 → 任务):

  • proposal.md:如果不清楚,询问用户关于变更。填写原因、变更内容、能力、影响。
    • 能力部分至关重要 - 列出的每个能力都需要一个规范文件。
  • specs/*.md:为提案中列出的每个能力创建一个规范。
  • design.md:记录技术决策、架构和实施方法。
  • tasks.md:将实现分解为带复选框的任务。

tdd 模式(规范 → 测试 → 实现 → 文档):

  • spec.md:功能规范,定义要构建的内容。
  • tests/*.test.ts:在实现之前编写测试(TDD 红色阶段)。
  • src/*.ts:实现以使测试通过(TDD 绿色阶段)。
  • docs/*.md:记录已实现的功能。

对于其他模式,遵循 CLI 输出中的 instruction 字段。

护栏

  • 每次调用创建一个工件
  • 在创建新工件前始终读取依赖工件
  • 不要跳过工件或无序创建
  • 如果上下文不清晰,创建前询问用户
  • 在标记进度前验证工件文件是否存在
  • 使用模式的工件序列,不要假设特定工件名称
  • 重要contextrules 是对您的约束,不是文件内容
    • 不要将 <context><rules><project_context> 块复制到工件中
    • 这些指导您写作,但绝不应出现在输出中