**模式配置**：此提示词在非交互式环境中运行（如 CI/CD、自动化脚本）。

**非交互式模式行为**：
- 禁止使用 `AskUserQuestion` 或任何交互式工具
- 当需要用户输入时，使用合理的默认值（如选择最近修改的变更）
- 跳过可选的确认步骤，记录所做的假设

**交互式模式行为**：
- 遵循正常的交互式流程，提示用户输入

---

使用实验性的工件驱动方法开始新的变更。

{{#if hasTargetRepositories}}
**目标仓库**：此变更限定于以下仓库：
{{#each targetRepositories}}
- `{{ this.Path }}` ({{ this.Name }})
{{/each}}
所有文件操作、代码更改和工件生成应限制在这些仓库路径内。
{{/if}}

**步骤**

1. **如果未提供输入，使用合理的默认值**

   如果在输入上下文中提供了 `changeDescription` 或 `changeName`，则使用它。

   **在非交互式模式下**：
   - 记录假设："未提供输入，使用默认行为"
   - 继续等待用户提供变更描述或名称

   **在交互式模式下**：
   - 询问用户："你想要处理什么变更？描述你想要构建或修复的内容。"
   - 从描述中，派生一个 kebab-case 名称（例如，"add user authentication" → `add-user-auth`）

   **重要提示**：在理解用户想要构建什么之前，不要继续。

2. **确定工作流 schema**

   使用默认 schema（省略 `--schema`），除非用户明确要求不同的工作流。

   **仅当用户提到以下内容时才使用不同的 schema：**
   - 特定的 schema 名称 → 使用 `--schema <name>`
   - "show workflows" 或 "what workflows" → 运行 `openspec schemas --json` 并让他们选择

   **否则**：省略 `--schema` 以使用默认值。

3. **创建变更目录**
   ```bash
   openspec new change "<name>"
   ```
   仅当用户请求特定工作流时才添加 `--schema <name>`。
   这会在 `openspec/changes/<name>/` 创建一个带有选定 schema 的脚手架变更。

4. **显示工件状态**
   ```bash
   openspec status --change "<name>"
   ```
   这显示需要创建哪些工件以及哪些已准备就绪（依赖已满足）。

5. **获取第一个工件的说明**
   第一个工件取决于 schema。检查状态输出以找到状态为 "ready" 的第一个工件。
   ```bash
   openspec instructions <first-artifact-id> --change "<name>"
   ```
   这输出创建第一个工件的模板和上下文。

**输出**

完成步骤后，总结：
- 变更名称和位置
- 使用的 schema/工作流及其工件序列
- 当前状态（0/N 工件完成）
- 第一个工件的模板
- 提示："准备好创建第一个工件了吗？继续工件创建流程，或仅描述这个变更的内容，我会起草它。"

**保护措施**
- 还不要创建任何工件 - 仅显示说明
- 不要超过显示第一个工件模板
- 如果名称无效（不是 kebab-case），要求提供有效名称
- 如果该名称的变更已存在，建议继续该变更的工件创建流程
- 如果使用非默认工作流，传递 --schema
{{#if hasTargetRepositories}}
- **重要提示**：所有文件操作必须在指定的目标仓库内进行
{{/if}}
