增量规范同步器Skill openspec-sync-specs

这个技能用于将增量规范同步到主规范,实现智能合并变更。适用于软件开发和DevOps场景,支持部分更新、需求管理和版本控制。关键词包括:软件规范、增量同步、智能合并、版本管理、需求更新。

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

name: openspec-同步-规范 description: 将变更中的增量规范同步到主规范。当用户想用增量规范中的变更更新主规范,而不归档变更时使用。 license: MIT compatibility: 需要 openspec CLI。 metadata: author: openspec version: “1.0” generatedBy: “1.0.0”

将变更中的增量规范同步到主规范。

这是一个代理驱动的操作 - 您将读取增量规范并直接编辑主规范以应用更改。 这允许智能合并(例如,添加一个场景而无需复制整个需求)。

输入:可选指定变更名称。如果省略,检查是否可以从对话上下文推断。如果模糊 或模糊不清,您必须提示可用的变更。

步骤

  1. 如果未提供变更名称,提示选择

    运行 openspec list --json 以获取可用变更。使用 AskUserQuestion工具 让用户选择。

    显示具有增量规范的变更(在 specs/ 目录下)。

    重要:不要猜测或自动选择变更。始终让用户选择。

  2. 查找增量规范

    openspec/changes/<名称>/specs/*/spec.md 中查找增量规范文件。

    每个增量规范文件包含如下部分:

    • ## ADDED Requirements - 要添加的新需求
    • ## MODIFIED Requirements - 对现有需求的更改
    • ## REMOVED Requirements - 要删除的需求
    • ## RENAMED Requirements - 要重命名的需求(FROM:/TO: 格式)

    如果未找到增量规范,通知用户并停止。

  3. 对于每个增量规范,应用更改到主规范

    对于每个在 openspec/changes/<名称>/specs/<能力>/spec.md 具有增量规范的能力:

    a. 读取增量规范 以理解预期的更改

    b. 读取主规范openspec/specs/<能力>/spec.md(可能尚未存在)

    c. 智能应用更改

    ADDED Requirements:

    • 如果需求在主规范中不存在 → 添加它
    • 如果需求已经存在 → 更新它以匹配(视为隐式 MODIFIED)

    MODIFIED Requirements:

    • 在主规范中找到需求
    • 应用更改 - 这可以是:
      • 添加新场景(无需复制现有场景)
      • 修改现有场景
      • 更改需求描述
    • 保留增量中未提到的场景/内容

    REMOVED Requirements:

    • 从主规范中删除整个需求块

    RENAMED Requirements:

    • 找到 FROM 需求,重命名为 TO

    d. 如果能力尚不存在,创建新的主规范

    • 创建 openspec/specs/<能力>/spec.md
    • 添加目的部分(可以简洁,标记为 TBD)
    • 使用 ADDED 需求添加需求部分
  4. 显示摘要

    在应用所有更改后,总结:

    • 哪些能力被更新
    • 进行了什么更改(需求添加/修改/删除/重命名)

增量规范格式参考

## ADDED Requirements

### Requirement: New Feature
系统将做新的某事。

#### Scenario: Basic case
- **WHEN** 用户做 X
- **THEN** 系统做 Y

## MODIFIED Requirements

### Requirement: Existing Feature
#### Scenario: New scenario to add
- **WHEN** 用户做 A
- **THEN** 系统做 B

## REMOVED Requirements

### Requirement: Deprecated Feature

## RENAMED Requirements

- FROM: `### Requirement: Old Name`
- TO: `### Requirement: New Name`

关键原则:智能合并

与程序化合并不同,您可以应用部分更新

  • 要添加一个场景,只需在 MODIFIED 下包含该场景 - 无需复制现有场景
  • 增量表示意图,而非全面替换
  • 使用您的判断来合理合并更改

成功输出

## Specs Synced: <change-name>

Updated main specs:

**<capability-1>**:
- Added requirement: "New Feature"
- Modified requirement: "Existing Feature" (added 1 scenario)

**<capability-2>**:
- Created new spec file
- Added requirement: "Another Feature"

Main specs are now updated. The change remains active - archive when implementation is complete.

防护栏

  • 在进行更改前读取增量和主规范
  • 保留增量中未提到的现有内容
  • 如果有不清楚的地方,请澄清
  • 在更改过程中显示您正在更改的内容
  • 操作应是幂等的 - 运行两次应得到相同结果