# Openspec Apply Change

> Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks. Use when this capability is needed.

- Skill: `tomevault-io/openspec-apply-change-10` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/openspec-apply-change-10`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/openspec-apply-change-10/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/openspec-apply-change-10

---


从 OpenSpec 变更实施任务。

**输入**：可选择指定变更名称。如果省略，先判断是否可从对话上下文推断；若含糊或不明确，必须提示可用的变更。

**步骤**

1. **选择变更**

   如果提供了名称，就使用它。否则：
   - 如果用户在对话中提到了变更，先从上下文推断
   - 若只有一个活动变更，自动选择
   - 若不明确，运行 `openspec list --json` 获取可用变更，并使用 **AskUserQuestion 工具** 让用户选择

   始终说明："使用变更：<name>"，并告知如何覆盖（例如 `/opsx:apply <other>`）。

2. **获取应用说明**

   ```bash
   openspec instructions apply --change "<name>" --json
   ```

   这返回：
   - 上下文文件路径（proposal、specs、design、tasks）
   - 进度（总计、完成、剩余）
   - 带状态的任务列表
   - 基于当前状态的动态说明

   **处理状态：**
   - 如果 `state: "blocked"`（缺少工件）：显示消息，建议使用 openspec-continue-change
   - 如果 `state: "all_done"`：祝贺，建议归档
   - 否则：继续实施

3. **阅读上下文文件**

   阅读 `contextFiles` 中列出的文件：
   - `proposal` - 原因和内容
   - `specs` - 需求和场景（使用 glob 模式查找所有）
   - `design` - 技术方法（如果存在）
   - `tasks` - 实施检查清单

4. **显示当前进度**

   显示：
   - 进度："N/M 任务完成"
   - 剩余任务概述
   - 来自 CLI 的动态说明

5. **实施任务（循环直到完成或被阻止）**

   对于每个待处理任务：
   - 显示正在处理的任务
   - 进行所需的代码更改
   - 保持更改最小化并专注于任务
   - 在 tasks.md 中标记任务完成：`- [ ]` → `- [x]`
   - 继续下一个任务

   **如果以下情况则暂停：**
   - 任务不清楚 → 请求澄清
   - 实施显示设计问题 → 建议更新工件
   - 遇到错误或阻止程序 → 报告并等待指导
   - 用户中断

6. **完成或暂停时，显示状态**

   显示：
   - 此会话完成的任务
   - 整体进度："N/M 任务完成"
   - 如果全部完成：建议归档
   - 如果暂停：解释原因并等待指导

**实施期间输出**

```
## 实施：<change-name>

正在处理任务 3/7：<task description>
[...implementation happening...]
✓ 任务完成

正在处理任务 4/7：<task description>
[...implementation happening...]
✓ 任务完成
```

**完成时输出**

```
## 实施完成

**变更：** <change-name>
**进度：** 7/7 任务完成 ✓

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

所有任务完成！准备好归档此变更。
```

**暂停时输出（遇到问题）**

```
## 实施暂停

**变更：** <change-name>
**进度：** 4/7 任务完成

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

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

您想怎么做？
```

**护栏**
- 继续完成任务，直到完成或被阻止
- 在开始之前始终阅读上下文（specs、design）
- 如果任务模棱两可，在实施之前暂停并询问
- 如果实施显示问题，暂停并建议工件更新
- 保持代码更改最小化并局限于每个任务
- 在完成每个任务后立即更新任务复选框
- 在错误、阻止程序或要求不清楚时暂停 - 不要猜测

**流畅工作流集成**

此技能支持"对变更的操作"模型：

- **可以随时调用**：在所有工件完成之前（如果 tasks.md 存在）、部分实施之后、与其他操作交错
- **允许工件更新**：如果实施显示设计问题，建议更新工件 - 不是阶段锁定的，灵活工作

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/straydragon) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

