用途:以实验性的工件驱动方式启动一个新的 OpenSpec 变更,适用于用户想创建新功能、修复或修改,并希望采用结构化流程的场景。
主要能力与用法:
- 若输入不明确,使用 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)。未理解用户意图前不得继续。
- 确定工作流 schema:默认省略 --schema;仅当用户明确提到 tdd 或 test-driven 时用 --schema tdd,提到具体 schema 名时用 --schema <name>,提到 show workflows 或 what workflows 时运行 openspec schemas --json 让其选择。
- 创建变更目录:openspec new change "<name>",仅在用户要求特定工作流时附加 --schema <name>。这会在 openspec/changes/<name>/ 下按所选 schema 生成脚手架。
- 查看工件状态:openspec status --change "<name>",显示哪些工件需要创建、哪些已就绪(依赖已满足)。
- 获取首个工件的说明:首个工件取决于 schema(如 spec-driven 为 proposal,tdd 为 spec)。从状态输出中找到状态为 ready 的首个工件,运行 openspec instructions <first-artifact-id> --change "<name>",输出创建该工件的模板与上下文。
- 停止并等待用户指示。
输出:完成后总结变更名称与位置、所用 schema/工作流及其工件顺序、当前状态(0/N 工件完成)、首个工件的模板,并提示“Ready to create the first artifact? Just describe what this change is about and I'll draft it, or ask me to continue.”
限制与护栏:此时不要创建任何工件,只展示说明;不要越过展示首个工件模板这一步;名称无效(非 kebab-case)时要求提供有效名称;同名变更已存在时建议继续该变更;使用非默认工作流时传入 --schema。