关于 openspec-apply-change
用于实现 OpenSpec 变更任务的技能。它读取工作流说明和上下文文件,逐项处理任务并更新进度;遇到阻碍或需要澄清时会暂停。
主要功能
- 01选择或推断当前变更
- 02读取 schema 与实施说明
- 03实施前查看上下文文件
- 04完成任务并更新复选框
- 05报告进度并在受阻时暂停
适用场景
- 01实现已定义变更中的任务
- 02继续处理进行中的变更
- 03暂停以澄清需求或设计问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pbh-btn/ peerbanhelper --skill openspec-apply-change安装后在 Claude Code 中输入/openspec-apply-change确认已加载。
详细介绍
实施 OpenSpec 变更中的任务。
输入:可选指定变更名称。如果省略,请检查能否从对话上下文中推断。如果含糊不清或有歧义,必须提示用户选择可用的变更。
步骤
-
选择变更
如果提供了名称,则使用该名称。否则:
- 如果用户在对话上下文中提到某个变更,则从中推断
- 如果只有一个进行中的变更,则自动选择
- 如果存在歧义,则运行
openspec list --json获取可用变更,并使用 AskUserQuestion 工具让用户选择
始终提示:「正在使用变更:」,并说明如何覆盖选择(例如,
/opsx:apply <other>)。 -
检查状态以了解所用的架构
openspec status --change "<name>" --json解析 JSON,了解:
schemaName:正在使用的工作流(例如,「spec-driven」、「tdd」)- 哪个工件包含任务(通常是 spec-driven 的「tasks」,其他情况请查看状态)
-
获取实施说明
openspec instructions apply --change "<name>" --json这会返回:
- 上下文文件路径(因架构而异,可能包括 proposal/specs/design/tasks 或 spec/tests/implementation/docs)
- 进度(总数、已完成数、剩余数)
- 任务列表及其状态
- 根据当前状态生成的动态说明
处理各种状态:
- 如果
state: "blocked"(缺少工件):显示消息,并建议使用 openspec-continue-change - 如果
state: "all_done":表示祝贺,并建议归档 - 其他情况:继续实施
-
读取上下文文件
读取实施说明输出中
contextFiles列出的文件。 文件取决于所用的架构:- spec-driven:proposal、specs、design、tasks
- tdd:spec、tests、implementation、docs
- 其他架构:遵循 CLI 输出中的 contextFiles
-
显示当前进度
显示:
- 所用的架构
- 进度:「N/M 个任务已完成」
- 剩余任务概览
- CLI 提供的动态说明
-
实施任务(循环执行,直至完成或受阻)
对于每个待处理任务:
- 显示当前正在处理的任务
- 完成所需的代码更改
- 保持更改精简且聚焦
- 在 tasks 文件中将任务标记为完成:
- [ ]→- [x] - 继续下一个任务
以下情况暂停:
- 任务不清楚 → 请求澄清
- 实施过程中发现设计问题 → 建议更新工件
- 遇到错误或阻碍 → 报告并等待指示
- 用户中断
-
完成或暂停时,显示状态
显示:
- 本次会话中已完成的任务
- 总体进度:「N/M 个任务已完成」
- 如果全部完成:建议归档
- 如果暂停:说明原因并等待指示
实施期间的输出
## Implementing: <change-name> (schema: <schema-name>)
Working on task 3/7: <task description>
[...implementation happening...]
✓ Task complete
Working on task 4/7: <task description>
[...implementation happening...]
✓ Task complete
完成时的输出
## Implementation Complete
**Change:** <change-name>
**Schema:** <schema-name>
**Progress:** 7/7 tasks complete ✓
### Completed This Session
- [x] Task 1
- [x] Task 2
...
All tasks complete! Ready to archive this change.
遇到问题而暂停时的输出
## Implementation Paused
**Change:** <change-name>
**Schema:** <schema-name>
**Progress:** 4/7 tasks complete
### Issue Encountered
<description of the issue>
**Options:**
1. <option 1>
2. <option 2>
3. Other approach
What would you like to do?
注意事项
- 持续处理任务,直至全部完成或受阻
- 开始前务必读取上下文文件(来自实施说明输出)
- 如果任务有歧义,先暂停并询问,再进行实施
- 如果实施过程中发现问题,暂停并建议更新工件
- 代码更改应精简,并限定在各自任务范围内
- 每完成一个任务,立即更新其复选框
- 遇到错误、阻碍或需求不清时暂停——不要猜测
- 使用 CLI 输出中的 contextFiles,不要假设具体文件名
流畅工作流集成
此技能支持「对变更执行操作」的模式:
- 可随时调用:在所有工件完成之前(只要已有任务)、部分实施之后,或与其他操作交错进行
- 允许更新工件:如果实施过程中发现设计问题,建议更新工件——不受阶段限制,灵活推进工作
评论
支持 Markdown