SuperAPI AI 工具集

openspec-ff-change

编程与开发

查看项目

更新于 10-15 10:24

技能介绍

用途

openspec-ff-change 用于“快进”OpenSpec 的工件创建过程:一次性生成开始实现所需的全部工件,而不必逐步走完每个环节。当用户想快速创建实现所需的全部工件时使用。

输入

用户的请求应包含一个变更名称(kebab-case),或对想要构建内容的描述。

主要步骤

  1. 若未提供明确输入,询问用户想构建什么。使用 AskUserQuestion 工具(开放式、无预设选项)提问:“What change do you want to work on? Describe what you want to build or fix.” 根据描述推导出 kebab-case 名称(例如 “add user authentication” → add-user-auth)。重要:在未理解用户想构建什么之前,不要继续。

  2. 创建变更目录:

openspec new change "<name>"

这会在 openspec/changes/<name>/ 下创建一个脚手架变更。

  1. 获取工件构建顺序:
openspec status --change "<name>" --json

解析 JSON 以获取:

  • applyRequires:实现前所需的工件 ID 数组(例如 ["tasks"])
  • artifacts:所有工件及其状态与依赖的列表
  1. 按顺序创建工件,直到 apply-ready。使用 TodoWrite 工具跟踪工件进度。按依赖顺序遍历工件(先处理没有待处理依赖的工件):

a. 对每个就绪(依赖已满足)的工件:

获取指令:

openspec instructions <artifact-id> --change "<name>" --json

指令 JSON 包含:

  • context:项目背景(对你的约束——不要包含在输出中)
  • rules:工件专属规则(对你的约束——不要包含在输出中)
  • template:用于输出文件的结构
  • instruction:针对该工件类型的 schema 专属指引
  • outputPath:工件写入位置
  • dependencies:用于读取上下文的已完成工件

读取任何已完成的依赖文件以获取上下文。使用 template 作为结构创建工件文件。将 context 和 rules 作为约束应用——但不要把它们复制进文件。显示简要进度:“✓ Created ”。

b. 继续直到所有 applyRequires 工件完成。每创建一个工件后,重新运行 openspec status --change "<name>" --json。检查 artifacts 数组中 applyRequires 里的每个工件 ID 是否状态为 "done"。当所有 applyRequires 工件完成时停止。

c. 若某工件需要用户输入(上下文不清晰):使用 AskUserQuestion 工具澄清,然后继续创建。

  1. 显示最终状态:
openspec status --change "<name>"

输出

完成所有工件后,汇总:

  • 变更名称与位置
  • 已创建工件列表及简要描述
  • 就绪状态:“All artifacts created! Ready for implementation.”
  • 提示:“Run /opsx:apply or ask me to implement to start working on the tasks.”

工件创建准则

  • 对每种工件类型,遵循 openspec instructions 中的 instruction 字段
  • schema 定义了每个工件应包含的内容——遵循它
  • 创建新工件前先读取依赖工件以获取上下文
  • 使用 template 作为输出文件的结构——填写其各节
  • 重要:context 和 rules 是对你的约束,不是文件内容
  • 不要将 <context>、<rules>、<project_context> 块复制进工件
  • 这些指导你写什么,但绝不应出现在输出中

护栏

  • 创建实现所需的全部工件(由 schema 的 apply.requires 定义)
  • 创建新工件前始终读取依赖工件
  • 若上下文严重不清晰,询问用户——但优先做出合理决策以保持推进
  • 若同名变更已存在,建议继续该变更
  • 写入后、进入下一个之前,验证每个工件文件存在

适用场景

适用于使用 OpenSpec 工作流、希望跳过逐步交互、快速生成实现前全部工件的开发场景。

限制

该技能依赖 OpenSpec 命令行工具(openspec new change、openspec status、openspec instructions)及 AskUserQuestion、TodoWrite 等工具。资料未提供具体安装方式、收费、价格、平台或效果信息。