name: openspec-new-change description: 启动一个新的OpenSpec变更,使用实验性工件工作流。当用户想要通过结构化逐步方法创建新功能、修复或修改时使用。 license: MIT compatibility: 需要openspec CLI。 metadata: author: openspec version: “1.0” generatedBy: “1.0.0”
使用实验性工件驱动方法启动一个新变更。
输入:用户的请求应包括一个变更名称(kebab-case)或他们想要构建的内容描述。
步骤
-
如果没有提供清晰的输入,询问他们想要构建什么
使用AskUserQuestion工具(开放性问题,无预设选项)提问:
“您想处理什么变更?描述您想要构建或修复的内容。”
从他们的描述中,推导出kebab-case名称(例如,“添加用户认证” →
add-user-auth)。重要:在理解用户想要构建什么之前,不要继续。
-
确定工作流模式
使用默认模式(省略
--schema),除非用户明确请求不同的工作流。仅在用户提到以下情况时使用不同模式:
- “tdd” 或 “test-driven” → 使用
--schema tdd - 特定模式名称 → 使用
--schema <name> - “show workflows” 或 “what workflows” → 运行
openspec schemas --json并让他们选择
否则:省略
--schema以使用默认模式。 - “tdd” 或 “test-driven” → 使用
-
创建变更目录
openspec new change "<name>"仅在用户请求特定工作流时添加
--schema <name>。 这会在openspec/changes/<name>/创建选定的模式支架变更。 -
显示工件状态
openspec status --change "<name>"这显示哪些工件需要创建,哪些已就绪(依赖满足)。
-
获取第一个工件的指令 第一个工件取决于模式(例如,spec-driven 的
proposal,tdd 的spec)。 检查状态输出以找到状态为"ready"的第一个工件。openspec instructions <first-artifact-id> --change "<name>"这输出创建第一个工件的模板和上下文。
-
停止并等待用户指示
输出
完成步骤后,总结:
- 变更名称和位置
- 使用的模式/工作流及其工件序列
- 当前状态(0/N 个工件完成)
- 第一个工件的模板
- 提示:“准备创建第一个工件吗?只需描述这个变更的内容,我会草拟它,或者让我继续。”
防护栏
- 不要创建任何工件——只显示指令
- 不要超过显示第一个工件模板
- 如果名称无效(不是kebab-case),请求有效名称
- 如果同名变更已存在,建议继续该变更
- 如果使用非默认工作流,传递 --schema