SuperAPI AI 工具集

geek-skills-openspec-apply-change

编程与开发

查看项目

更新于 10-16 04:08

技能介绍

用途

本技能用于实现 OpenSpec 变更中的任务。当用户想要开始实现、继续实现或逐项完成 OpenSpec 变更任务时使用。

主要能力

  • 选择变更:可指定变更名称;若未提供,则从对话上下文推断,或当仅存在一个活动变更时自动选择;若模糊不清,则运行 openspec list --json 获取可用变更并通过 AskUserQuestion 工具让用户选择。始终会宣布“Using change: ”以及如何覆盖(例如 /opsx:apply <other>)。
  • 检查状态以理解 schema:运行 openspec status --change "<name>" --json,解析 JSON 以了解 schemaName(例如 "spec-driven")以及哪个产物包含任务(spec-driven 通常为 "tasks",其他 schema 需查看状态)。
  • 获取 apply 指令:运行 openspec instructions apply --change "<name>" --json,返回上下文文件路径(因 schema 而异,可能是 proposal/specs/design/tasks 或 spec/tests/implementation/docs)、进度(总数、已完成、剩余)、带状态的任务列表以及基于当前状态的动态指令。
  • 处理状态:若 state 为 "blocked"(缺少产物),显示消息并建议使用 openspec-continue-change;若为 "all_done",表示祝贺并建议归档;否则继续实现。
  • 读取上下文文件:读取 apply 指令输出中 contextFiles 列出的文件。文件取决于所用 schema:spec-driven 为 proposal、specs、design、tasks;其他 schema 遵循 CLI 输出的 contextFiles。
  • 展示当前进度:显示所用 schema、进度“N/M tasks complete”、剩余任务概览以及来自 CLI 的动态指令。
  • 实现任务(循环直到完成或阻塞):对每个待办任务,展示正在处理的任务,进行所需的代码修改,保持修改最小且聚焦,在任务文件中将 - [ ] 标记为 - [x],然后继续下一个任务。
  • 暂停条件:任务不清晰时请求澄清;实现暴露设计问题时建议更新产物;遇到错误或阻塞时报告并等待指导;用户中断。
  • 完成或暂停时展示状态:显示本次会话完成的任务、总体进度“N/M tasks complete”;若全部完成则建议归档;若暂停则解释原因并等待指导。

使用方式

技能通过命令行工具 openspec 与变更交互,主要命令包括:

  • openspec list --json:获取可用变更列表。
  • openspec status --change "<name>" --json:检查变更状态以理解 schema。
  • openspec instructions apply --change "<name>" --json:获取 apply 指令,包含上下文文件路径、进度、任务列表和动态指令。

实现过程中会输出类似以下格式:

## 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?

适用场景

  • 用户想要开始实现某个 OpenSpec 变更。
  • 用户想要继续之前未完成的实现。
  • 用户想要逐项完成变更中的任务。

限制与约束

  • 持续处理任务直到完成或阻塞。
  • 开始前始终读取上下文文件(来自 apply 指令输出)。
  • 若任务模糊,暂停并在实现前询问。
  • 若实现暴露问题,暂停并建议更新产物。
  • 保持代码修改最小且限定在每个任务范围内。
  • 完成每个任务后立即更新任务复选框。
  • 遇到错误、阻塞或需求不清晰时暂停,不要猜测。
  • 使用 CLI 输出中的 contextFiles,不要假设具体文件名。

流体工作流集成

本技能支持“对变更执行操作”模型:

  • 可在任意时间调用:所有产物完成前(若任务已存在)、部分实现后、与其他操作交错进行。
  • 允许更新产物:若实现暴露设计问题,建议更新产物——不锁定阶段,流畅工作。