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