SuperAPI AI 工具集

openspec-propose

编程与开发

查看项目

更新于 10-15 10:51

技能介绍

用途

openspec-propose 用于发起一个新的变更提案,并在一步内创建变更、生成全部所需产物。当用户希望快速描述想要构建的内容并获得完整提案时使用。

主要能力

该技能会创建一个变更,并生成以下产物:

  • proposal.md(做什么与为什么)
  • design.md(如何做)
  • tasks.md(实现步骤)

准备实现时,运行 /opsx:apply。

使用方式

输入:用户的请求应包含一个变更名称(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>/ 下创建一个带 .openspec.yaml 的脚手架变更。

  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 定义)
  • 创建新产物前始终读取依赖产物
  • 如果上下文严重不清晰,询问用户——但优先做出合理决策以保持推进
  • 如果同名变更已存在,询问用户是想继续它还是创建新变更
  • 写入后、继续下一个之前,验证每个产物文件存在

适用场景

适用于需要快速发起变更提案、并一次性生成提案、设计与任务产物的开发工作流。

限制

关于收费、价格、平台支持范围等信息,资料中暂未提供。