openspec-new-change · v2.2 · 2026-09-22 · sha256 19a32c41ffc6df90

openspec-new-change v2.2A

Immutable. This exact content is served forever at /api/v1/blob/19a32c41ffc6df90.

---
name: openspec-new-change
description: 创建 OpenSpec change,并在同一轮初始化 Living brainstorm、记录明确输入和继续单题访谈。
license: MIT
metadata:
  author: openspec
  version: "2.2"
  upstreamVersion: "1.12.0"
  generatedBy: "1.12.0"
---

创建 change 并进入 change-draft。本 skill 以 OpenSpec 1.12.0 New 的动态 schema、路径和状态契约
为基线;DevKeel 把“只建脚手架”扩展为“初始化 Living brainstorm 后继续访谈”。

## 1. 确认主题与 schema

输入必须足以给 change 命名。若连主题都不能确定,只问“你想构建或修复什么?”,不得创建。
主题清楚后派生 kebab-case 名称。

显式 schema 选择优先;否则默认 `lite`。只有用户显式选择 Full,或 Agent 按 AGENTS.md
说明治理/高风险理由并得到确认,才用 `full`。文件数、模块数和文档篇幅不是 Full 信号。

## 2. 创建或恢复

先检查 active changes。同名不存在时运行:

```bash
npx devkeel@latest openspec new change "<name>" --schema <schema>
```

同名且 selector 一致时转为 Continue;selector 冲突时停止,不得覆盖。已确认 Lite→Full 时在原
change 修改 selector,并保留 `<!-- harness:lite-to-full-promotion -->` 与全部现有文件;status
失败时回滚。完成 Full 投影和 tasks 重审后才写
`<!-- harness:full-tasks-reconciled -->`。

## 3. 读取动态 instruction

```bash
npx devkeel@latest openspec status --change "<name>" --json
npx devkeel@latest openspec instructions brainstorm --change "<name>" --json
```

以 `schemaName`、`planningHome`、`changeRoot`、`artifactPaths`、`actionContext`、
`resolvedOutputPath`、`template` 和 schema `instruction` 为准,不猜固定路径。

## 4. 初始化 Living brainstorm

加载并遵循 `brainstorming` 的 change-draft 流程:

- 从当前热对话迁入全部有效 D/A/O;没有历史决定时,把用户本次明确且无歧义的输入写为首个
  D-*,不将 Agent 推测伪装成决定;
- 状态为 DRAFT;实施准备度按现有证据取 5% 档位;下游状态为 NONE;
- 使用最小模板,不扩写 use case、架构、风险或候选大全;
- 写入后运行 `brainstorming/scripts/planning-state.mjs <resolvedOutputPath>`,无效则修正并停止。

创建 `brainstorm.md` 后 OpenSpec 会把它显示为 done,但这不表示用户已确认,也不允许生成下游。

## 5. 输出与停止

简短报告 change、schema、位置、迁入的 D/A/O 数量与实施准备度,然后在同一轮只询问当前最高价值
的一个 gap。不得展示整份模板,不提示用户立即 Apply,也不得创建 design/specs/tasks。

用户本次明确调用 `/opsx:new` 已授权创建 change 和 Living brainstorm;不授权实现代码、FF、
archive、commit 或 delivery。