用途
该技能用于在 OpenSpec 工作流中提出一个新的变更(change),并在一步内生成实施所需的全部工件(artifacts)。当用户希望快速描述想要构建的内容并获得一份完整提案时使用。
主要能力
- 根据用户请求创建变更,并生成以下工件:
- proposal.md(做什么与为什么)
- design.md(怎么做)
- tasks.md(实现步骤)
- 通过
openspec new change "<name>"创建变更目录,在openspec/changes/<name>/下生成脚手架及.openspec.yaml。 - 通过
openspec status --change "<name>" --json获取工件构建顺序,解析出applyRequires(实施前所需的工件 ID 数组)以及所有工件的状态与依赖。 - 按依赖顺序循环创建工件,直到所有
applyRequires工件完成。 - 使用
openspec instructions <artifact-id> --change "<name>" --json获取每个工件的指令,其中包含 context、rules、template、instruction、outputPath、dependencies。 - 使用 TodoWrite 工具跟踪工件创建进度。
- 创建完成后展示最终状态:
openspec status --change "<name>"。
使用方式
- 输入:用户请求应包含变更名称(kebab-case)或对想要构建内容的描述。
- 若未提供明确输入,使用 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)。
- 重要:在未理解用户想要构建的内容之前,不要继续。
- 创建变更目录:
openspec new change "<name>"。 - 获取工件构建顺序:
openspec status --change "<name>" --json。 - 按依赖顺序创建工件,直到 apply-ready:
- 对每个依赖已满足的工件,获取指令:
openspec instructions <artifact-id> --change "<name>" --json。 - 读取已完成的依赖文件作为上下文。
- 使用 template 作为结构创建工件文件。
- 将 context 和 rules 作为约束应用,但不要复制到文件中。
- 显示简要进度:“Created ”。
- 每创建一个工件后,重新运行
openspec status --change "<name>" --json,检查applyRequires中每个工件 ID 是否在 artifacts 数组中状态为 “done”。 - 当所有
applyRequires工件完成时停止。 - 若某工件需要用户输入(上下文不清晰),使用 AskUserQuestion 工具澄清,然后继续创建。
- 对每个依赖已满足的工件,获取指令:
- 展示最终状态:
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 工作流中准备实施前的工件生成阶段。
限制
- 资料未提供该技能的收费、价格、平台支持范围或具体效果信息。
- 资料未提供除上述命令与流程之外的其他功能说明。