SuperAPI AI 工具集

openspec-apply-change

编程与开发

查看项目

更新于 10-16 09:02

技能介绍

用途

openspec-apply-change 用于实现 OpenSpec 变更中的任务。当用户希望开始实现、继续实现或逐项推进任务时使用本技能。

主要能力

  • 选择变更:可显式指定变更名称;若省略则尝试从对话上下文推断;若只有一个活跃变更则自动选择;若有歧义则运行 openspec list --json 获取可用变更,并通过 AskUserQuestion 工具让用户选择。选定后会提示「Using change: 」以及如何覆盖(如 /opsx-apply <other>)。
  • 检查状态以理解 schema:运行 openspec status --change "<name>" --json,解析 JSON 获取 schemaName(例如 spec-driven)以及哪个产物包含任务(spec-driven 通常为 tasks)。
  • 获取执行说明:运行 openspec instructions apply --change "<name>" --json,返回 contextFiles(产物 ID 到具体文件路径数组的映射)、进度(总数、已完成、剩余)、带状态的任务列表,以及基于当前状态的动态指令。
  • 处理状态:若 state 为 blocked(缺少产物),显示消息并建议使用 openspec-continue-change;若为 all_done,则祝贺并建议归档;否则继续实现。
  • 读取上下文文件:读取执行说明输出中 contextFiles 下列出的所有文件路径(spec-driven 为 proposal、specs、design、tasks;其他 schema 依据 CLI 输出)。
  • 展示当前进度:显示所用 schema、进度「N/M tasks complete」、剩余任务概览,以及来自 CLI 的动态指令。
  • 实现任务:循环执行直到完成或被阻塞。对每个待办任务,显示正在处理的任务、进行所需的代码修改、保持改动最小且聚焦,并在任务文件中将 - [ ] 标记为 - [x],然后继续下一个任务。

使用方式

触发后按上述步骤依次执行:选择变更、检查状态、获取执行说明、读取上下文文件、展示进度,然后逐条实现任务。实现过程中会输出进度信息,格式为「## Implementing: <change-name> (schema: <schema-name>)」并在每个任务完成后显示勾选。

全部完成时输出「## Implementation Complete」,包含变更名、schema、进度和本次会话完成的任务列表,并提示可以归档该变更。

暂停时输出「## Implementation Paused」,包含变更名、schema、进度、遇到的问题及可选项,等待用户指示。

适用场景

  • 用户希望开始或继续某个 OpenSpec 变更的实现。
  • 用户需要逐项推进变更中的任务并跟踪进度。
  • 在产物尚未全部完成、部分实现之后,或与其他操作交错时调用。

限制与守则

  • 持续执行任务直到完成或被阻塞。
  • 开始前始终阅读上下文文件(来自执行说明输出)。
  • 若任务含义不清,暂停并在实现前询问。
  • 若实现暴露出问题,暂停并建议更新产物。
  • 保持代码改动最小,且限定在每个任务范围内。
  • 每完成一个任务后立即更新任务复选框。
  • 遇到错误、阻塞或需求不清时暂停,不要猜测。
  • 使用 CLI 输出中的 contextFiles,不要假设具体文件名。
  • 该技能支持「对变更执行操作」的模型:可在任意时间调用;允许更新产物——若实现发现设计问题,建议更新产物,不锁定阶段,灵活工作。

暂未提供

官方文本为空,未提供其他额外信息;计费、价格、支持平台等信息暂未提供。