.codebuddy/skills/openspec-sync-specs/SKILL.md
将变更中的增量规范同步到主规范。
这是一个 Agent 驱动 的操作 - 你将读取增量规范并直接编辑主规范以应用更改。这允许智能合并(例如,添加场景而不复制整个需求)。
输入:可选指定变更名称。如果省略,检查是否可以从对话上下文中推断。如果模糊或不明确,你必须提示获取可用变更。
步骤
如果没有提供变更名称,提示选择
运行 openspec-cn list --json 获取可用变更。使用 AskUserQuestion tool 让用户选择。
显示具有增量规范(在 specs/ 目录下)的变更。
重要提示:不要猜测或自动选择变更。始终让用户选择。
查找增量规范
在 openspec/changes/<name>/specs/*/spec.md 中查找增量规范文件。
每个增量规范文件包含如下部分:
## 新增需求 - 要添加的新需求## 修改需求 - 对现有需求的更改## 移除需求 - 要移除的需求## 重命名需求 - 要重命名的需求(从/到 格式)如果没有找到增量规范,通知用户并停止。
对于每个增量规范,将更改应用到主规范
对于在 openspec/changes/<name>/specs/<capability>/spec.md 处具有增量规范的每个 capability:
a. 阅读增量规范 以了解预期的更改
b. 阅读主规范 于 openspec/specs/<capability>/spec.md(可能尚不存在)
c. 智能地应用更改:
新增需求:
修改需求:
移除需求:
重命名需求:
d. 创建新主规范 如果 capability 尚不存在:
openspec/specs/<capability>/spec.md显示摘要
应用所有更改后,总结:
增量规范格式参考
## 新增需求
### 需求: 新功能
系统 应当 实现新的能力。
#### 场景: 基本场景
- **当** 用户执行 X
- **那么** 系统执行 Y
## 修改需求
### 需求: 现有功能
#### 场景: 需要新增的场景
- **当** 用户执行 A
- **那么** 系统执行 B
## 移除需求
### 需求: 已废弃功能
## 重命名需求
- 从: `### 需求: Old Name`
- 到: `### 需求: New Name`
关键原则:智能合并
与程序化合并不同,你可以应用 部分更新:
成功时的输出
## 规范已同步:<change-name>
已更新主规范:
**<capability-1>**:
- 添加需求:"新功能"
- 修改需求:"现有功能"(添加了 1 个场景)
**<capability-2>**:
- 创建了新规范文件
- 添加需求:"另一个功能"
主规范现已更新。变更保持活动状态 - 在实现完成后归档。
护栏