OpenSpec工作流继续器Skill openspec-continue-change

这个技能用于管理和自动化 OpenSpec 更改工作流,通过创建下一个工件来推进软件开发过程。它支持多种模式(如 spec-driven 和 TDD),确保流程的规范化和高效执行,适用于 DevOps 环境中的自动化工具。关键词包括 OpenSpec、工作流、工件、spec-driven、TDD、DevOps、自动化开发。

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

名称: openspec-continue-change 描述: 通过创建下一个工件来继续处理 OpenSpec 更改。当用户想要推进更改、创建下一个工件或继续工作流程时使用。 许可证: MIT 兼容性: 需要 openspec CLI。 元数据: 作者: openspec 版本: “1.0” 生成者: “1.0.0”

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

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

步骤

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

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

    展示前 3-4 个最近修改的更改作为选项,显示:

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

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

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

  2. 检查当前状态

    openspec status --change "<name>" --json
    

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

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


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

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

    如果工件准备好创建(状态显示状态为 status: "就绪" 的工件):

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

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

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

    openspec status --change "<name>"
    

输出

每次调用后显示:

  • 创建了哪个工件
  • 正在使用的工作流模式
  • 当前进度(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> 块复制到工件中
    • 这些指导您写什么,但不应出现在输出中