实现 OpenSpec 变更中的任务。
输入:可选指定变更名称。如果省略,检查是否可以从对话上下文中推断。如果模糊或不明确,你必须提示获取可用变更。
步骤
- •
选择变更
如果提供了名称,使用它。否则:
- •如果用户提到了某个变更,从对话上下文中推断
- •如果只存在一个活动变更,自动选择
- •如果不明确,运行
openspec-cn list --json获取可用变更,并使用 AskUserQuestion tool 让用户选择
始终宣布:“正在使用变更:<name>”以及如何覆盖(例如,
/opsx:apply <other>)。 - •
检查状态以了解 Schema
bashopenspec-cn status --change "<name>" --json
解析 JSON 以了解:
- •
schemaName:正在使用的工作流(例如:"spec-driven") - •哪个产出物包含任务(对于 spec-driven 通常是 "tasks",检查其他产出物的状态)
- •
- •
获取应用指令
bashopenspec-cn instructions apply --change "<name>" --json
这返回:
- •上下文文件路径(因 Schema 而异 - 可能是 proposal/specs/design/tasks 或 spec/tests/implementation/docs)
- •进度(总计,完成,剩余)
- •带有状态的任务列表
- •基于当前状态的动态指令
处理状态:
- •如果
state: "blocked"(缺少产出物):显示消息,建议使用 openspec-continue-change - •如果
state: "all_done":祝贺,建议归档 - •否则:继续实现
- •
阅读上下文文件
阅读 apply instructions 输出中
contextFiles列出的文件。 文件取决于正在使用的 Schema:- •spec-driven: proposal, specs, design, tasks
- •其他模式:遵循 CLI 输出中的 contextFiles
- •
显示当前进度
显示:
- •正在使用的 Schema
- •进度:"N/M 任务已完成"
- •剩余任务概览
- •来自 CLI 的动态指令
- •
实现任务(循环直到完成或受阻)
对于每个待处理任务:
- •显示正在处理哪个任务
- •进行所需的代码更改
- •保持更改最小化且专注
- •在任务文件中标记任务完成:
- [ ]→- [x] - •继续下一个任务
暂停如果:
- •任务不清楚 → 询问澄清
- •实现揭示了设计问题 → 建议更新产出物
- •遇到错误或阻碍 → 报告并等待指导
- •用户中断
- •
完成或暂停时,显示状态
显示:
- •本次会话完成的任务
- •总体进度:"N/M 任务已完成"
- •如果全部完成:建议归档
- •如果暂停:解释原因并等待指导
实现期间的输出
code
## 正在实现:<change-name> (schema: <schema-name>) 正在处理任务 3/7:<task description> [...正在进行实现...] ✓ 任务完成 正在处理任务 4/7:<task description> [...正在进行实现...] ✓ 任务完成
完成时的输出
code
## 实现完成 **变更:** <change-name> **Schema:** <schema-name> **进度:** 7/7 任务已完成 ✓ ### 本次会话已完成 - [x] 任务 1 - [x] 任务 2 ... 所有任务已完成!准备归档此变更。
暂停时的输出(遇到问题)
code
## 实现暂停 **变更:** <change-name> **Schema:** <schema-name> **进度:** 4/7 任务已完成 ### 遇到的问题 <问题描述> **选项:** 1. <选项 1> 2. <选项 2> 3. 其他方法 您想怎么做?
护栏
- •继续执行任务直到完成或受阻
- •开始前始终阅读上下文文件(来自 apply instructions 输出)
- •如果任务模棱两可,暂停并在实现前询问
- •如果实现揭示了问题,暂停并建议更新产出物
- •保持代码更改最小化并限定在每个任务范围内
- •完成每个任务后立即更新任务复选框
- •遇到错误、阻碍或不清楚的需求时暂停 - 不要猜测
- •使用 CLI 输出中的 contextFiles,不要假设特定的文件名
流畅的工作流集成
此技能支持“变更上的操作”模型:
- •可以随时调用:在所有产出物完成之前(如果存在任务),部分实现之后,与其他操作交错
- •允许产出物更新:如果实现揭示了设计问题,建议更新产出物 - 不是阶段锁定的,流畅地工作