Prompt file imported from wilsonwangdev/openclaw-release-feed (
.cursor/commands/opsx-apply.md). Copyright stays with the author.
从 OpenSpec 变更中实施任务。
输入:可选指定变更名称(例如 /opsx:apply add-auth)。若省略,尝试从对话上下文中推断。若模糊或有歧义,必须提示用户选择可用变更。
步骤
-
选择变更
若提供了名称,直接使用。否则:
- 从对话上下文中推断用户提到的变更
- 若仅存在一个活跃变更,自动选择
- 若有歧义,运行
openspec list --json获取可用变更列表,使用 AskUserQuestion 工具 让用户选择
始终告知:"使用变更:"以及如何切换(例如
/opsx:apply <other>)。 -
检查状态以了解 schema
openspec status --change "<name>" --json解析 JSON 以了解:
schemaName:使用的工作流(例如 "spec-driven")- 哪个制品包含任务(spec-driven 通常为 "tasks",其他请查看 status 输出)
-
获取实施指引
openspec instructions apply --change "<name>" --json返回内容:
- 上下文文件路径(因 schema 而异)
- 进度(总计、已完成、剩余)
- 任务列表及状态
- 基于当前状态的动态指引
状态处理:
- 若
state: "blocked"(缺少制品):显示信息,建议使用/opsx:continue - 若
state: "all_done":祝贺完成,建议归档 - 否则:继续实施
-
读取上下文文件
读取实施指引输出中
contextFiles列出的文件。 文件因 schema 而异:- spec-driven:proposal、specs、design、tasks
- 其他 schema:遵循 CLI 输出中的 contextFiles
-
显示当前进度
展示:
- 使用的 schema
- 进度:"N/M 任务已完成"
- 剩余任务概览
- CLI 返回的动态指引
-
实施任务(循环直到完成或受阻)
对每个待处理任务:
- 显示正在处理的任务
- 进行所需的代码变更
- 保持变更最小化和聚焦
- 在任务文件中标记完成:
- [ ]→- [x] - 继续下一个任务
暂停条件:
- 任务不明确 → 请求澄清
- 实施中发现设计问题 → 建议更新制品
- 遇到错误或阻塞 → 报告并等待指导
- 用户中断
-
完成或暂停时显示状态
展示:
- 本次会话完成的任务
- 总体进度:"N/M 任务已完成"
- 若全部完成:建议归档
- 若暂停:说明原因并等待指导
实施过程中的输出
## 正在实施:<change-name>(schema:<schema-name>)
正在处理任务 3/7:<task description>
[...实施进行中...]
✓ 任务完成
正在处理任务 4/7:<task description>
[...实施进行中...]
✓ 任务完成
完成时的输出
## 实施完成
**变更:** <change-name>
**Schema:** <schema-name>
**进度:** 7/7 任务已完成 ✓
### 本次会话完成的任务
- [x] Task 1
- [x] Task 2
...
所有任务已完成!可以使用 `/opsx:archive` 归档此变更。
暂停时的输出(遇到问题)
## 实施已暂停
**变更:** <change-name>
**Schema:** <schema-name>
**进度:** 4/7 任务已完成
### 遇到的问题
<问题描述>
**选项:**
1. <选项 1>
2. <选项 2>
3. 其他方案
您希望如何处理?
守则
- 持续推进任务直到完成或受阻
- 开始前务必读取上下文文件(来自实施指引输出)
- 若任务有歧义,先暂停询问再实施
- 若实施中发现问题,暂停并建议更新制品
- 保持代码变更最小化,每个任务聚焦
- 完成每个任务后立即更新任务复选框
- 遇到错误、阻塞或不明确的需求时暂停——不要猜测
- 使用 CLI 输出中的 contextFiles,不要假设特定文件名
灵活工作流集成
此技能支持"对变更执行操作"模型:
- 可随时调用:在所有制品完成之前(若任务已存在)、部分实施之后、与其他操作交替进行
- 允许更新制品:若实施中发现设计问题,建议更新制品——不锁定阶段,灵活工作
