OpenSpec变更任务实现Skill openspec-apply-change

这个技能用于根据OpenSpec变更实现相关任务,支持从变更选择、状态检查、指令获取到任务实施的完整流程。它适用于软件开发中的变更管理和工作流自动化,集成CLI工具以提升效率。关键词:OpenSpec、变更实现、任务管理、开发工作流、自动化、CLI工具、DevOps。

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

name: openspec-apply-change description: 实现OpenSpec变更中的任务。当用户想要开始实施、继续实施或处理任务时使用。 license: MIT compatibility: 需要openspec CLI。 metadata: author: openspec version: “1.0” generatedBy: “1.0.0”

实现OpenSpec变更中的任务。

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

步骤

  1. 选择变更

    如果提供了名称,使用它。否则:

    • 如果用户提到了变更,从对话上下文中推断
    • 如果只有一个活动变更,自动选择
    • 如果模糊不清,运行openspec list --json获取可用变更,并使用AskUserQuestion工具让用户选择

    总是宣布:"使用变更:<名称>"以及如何覆盖(例如,/opsx:apply <其他>)。

  2. 检查状态以理解模式

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

    解析JSON以理解:

    • schemaName: 正在使用的工作流(例如,“spec-driven”、“tdd”)
    • 哪个构件包含任务(通常是“spec-driven”的“tasks”,检查状态以获取其他)
  3. 获取应用指令

    openspec instructions apply --change "<名称>" --json
    

    这将返回:

    • 上下文文件路径(因模式而异——可能是proposal/specs/design/tasks或spec/tests/implementation/docs)
    • 进度(总数、已完成、剩余)
    • 任务列表及状态
    • 基于当前状态的动态指令

    处理状态:

    • 如果state: "blocked"(缺失构件):显示消息,建议使用openspec-continue-change
    • 如果state: "all_done":祝贺,建议归档
    • 否则:继续实施
  4. 读取上下文文件

    从应用指令输出中读取contextFiles中列出的文件。 文件取决于正在使用的模式:

    • spec-driven: proposal, specs, design, tasks
    • tdd: spec, tests, implementation, docs
    • 其他模式:遵循CLI输出中的contextFiles
  5. 显示当前进度

    显示:

    • 正在使用的模式
    • 进度:“已完成N/M个任务”
    • 剩余任务概览
    • CLI中的动态指令
  6. 实施任务(循环直到完成或阻塞)

    对于每个待处理任务:

    • 显示正在处理哪个任务
    • 进行所需的代码更改
    • 保持更改最小化和专注于每个任务
    • 在任务文件中标记任务完成:- [ ]- [x]
    • 继续下一个任务

    暂停如果:

    • 任务不清晰 → 请求澄清
    • 实施揭示设计问题 → 建议更新构件
    • 遇到错误或阻塞 → 报告并等待指导
    • 用户中断
  7. 在完成或暂停时,显示状态

    显示:

    • 本次会话完成的任务
    • 总体进度:“已完成N/M个任务”
    • 如果全部完成:建议归档
    • 如果暂停:解释原因并等待指导

实施期间输出

## 实施中:<变更名称> (模式:<模式名称>)

处理任务3/7:<任务描述>
[...正在实施...]
✓ 任务完成

处理任务4/7:<任务描述>
[...正在实施...]
✓ 任务完成

完成时输出

## 实施完成

**变更:** <变更名称>
**模式:** <模式名称>
**进度:** 7/7个任务完成 ✓

### 本次会话完成
- [x] 任务1
- [x] 任务2
...

所有任务完成!准备归档此变更。

暂停时输出(遇到问题)

## 实施暂停

**变更:** <变更名称>
**模式:** <模式名称>
**进度:** 4/7个任务完成

### 遇到的问题
<问题描述>

**选项:**
1. <选项1>
2. <选项2>
3. 其他方法

您想做什么?

护栏

  • 继续处理任务直到完成或阻塞
  • 始终在开始前读取上下文文件(从应用指令输出中)
  • 如果任务不明确,暂停并在实施前询问
  • 如果实施揭示问题,暂停并建议更新构件
  • 保持代码更改最小化并限定在每个任务范围内
  • 在完成每个任务后立即更新任务复选框
  • 在错误、阻塞或不明确要求时暂停——不要猜测
  • 使用CLI输出中的contextFiles,不要假设特定文件名

流畅工作流集成

此技能支持“变更上的操作”模型:

  • 可随时调用:在所有构件完成之前(如果存在任务),部分实施后,或与其他操作交错进行
  • 允许构件更新:如果实施揭示设计问题,建议更新构件——不限于阶段,流畅工作