npx skills add https://github.com/atilladeniz/kubeli --skill openspec-sync-specs从变更内容同步增量规格到主规格。
这是一项智能体驱动的操作——你将读取增量规格并直接编辑主规格以应用变更。这允许智能合并(例如,添加场景而无需复制整个需求)。
输入:可选地指定一个变更名称。如果省略,检查是否可以从对话上下文中推断。如果模糊或存在歧义,你必须提示用户选择可用的变更。
步骤
运行 openspec list --json 以获取可用的变更。使用 AskUserQuestion 工具 让用户选择。
显示那些拥有增量规格的变更(位于 specs/ 目录下)。
重要提示:不要猜测或自动选择变更。始终让用户选择。
在 openspec/changes/<name>/specs/*/spec.md 中查找增量规格文件。
每个增量规格文件包含以下部分:
* `## ADDED Requirements` \- 要添加的新需求
* `## MODIFIED Requirements` \- 对现有需求的更改
* `## REMOVED Requirements` \- 要删除的需求
* `## RENAMED Requirements` \- 要重命名的需求(FROM:/TO: 格式)
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
如果未找到增量规格,通知用户并停止。
对于在 openspec/changes/<name>/specs/<capability>/spec.md 处拥有增量规格的每个能力:
a. 读取增量规格 以理解预期的变更
b. 读取主规格 在 openspec/specs/<capability>/spec.md(可能尚不存在)
c. 智能地应用变更:
ADDED Requirements:
* 如果需求在主规格中不存在 → 添加它
* 如果需求已存在 → 更新它以匹配(视为隐式的 MODIFIED)
MODIFIED Requirements:
* 在主规格中找到该需求
* 应用变更 - 这可以是:
* 添加新场景(无需复制现有场景)
* 修改现有场景
* 更改需求描述
* 保留增量规格中未提及的场景/内容
REMOVED Requirements:
* 从主规格中移除整个需求块
RENAMED Requirements:
* 找到 FROM 需求,重命名为 TO
d. 如果能力尚不存在,则创建新的主规格:
* 创建 `openspec/specs/<capability>/spec.md`
* 添加 Purpose 部分(可以简短,标记为 TBD)
* 添加包含 ADDED 需求的 Requirements 部分
4. 显示摘要
应用所有变更后,总结:
* 更新了哪些能力
* 进行了哪些变更(需求添加/修改/删除/重命名)
增量规格格式参考
## ADDED Requirements
### Requirement: New Feature
The system SHALL do something new.
#### Scenario: Basic case
- **WHEN** user does X
- **THEN** system does Y
## MODIFIED Requirements
### Requirement: Existing Feature
#### Scenario: New scenario to add
- **WHEN** user does A
- **THEN** system does B
## REMOVED Requirements
### Requirement: Deprecated Feature
## RENAMED Requirements
- FROM: `### Requirement: Old Name`
- TO: `### Requirement: New Name`
关键原则:智能合并
与程序化合并不同,你可以应用部分更新:
成功时的输出
## 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.
防护措施
每周安装量
1
仓库
GitHub 星标数
308
首次出现
1 天前
安全审计
安装于
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
Sync delta specs from a change to main specs.
This is an agent-driven operation - you will read delta specs and directly edit main specs to apply the changes. This allows intelligent merging (e.g., adding a scenario without copying the entire requirement).
Input : Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
Steps
Run openspec list --json to get available changes. Use the AskUserQuestion tool to let the user select.
Show changes that have delta specs (under specs/ directory).
IMPORTANT : Do NOT guess or auto-select a change. Always let the user choose.
Look for delta spec files in openspec/changes/<name>/specs/*/spec.md.
Each delta spec file contains sections like:
* `## ADDED Requirements` \- New requirements to add
* `## MODIFIED Requirements` \- Changes to existing requirements
* `## REMOVED Requirements` \- Requirements to remove
* `## RENAMED Requirements` \- Requirements to rename (FROM:/TO: format)
If no delta specs found, inform user and stop.
For each capability with a delta spec at openspec/changes/<name>/specs/<capability>/spec.md:
a. Read the delta spec to understand the intended changes
b. Read the main spec at openspec/specs/<capability>/spec.md (may not exist yet)
c. Apply changes intelligently :
ADDED Requirements:
* If requirement doesn't exist in main spec → add it
* If requirement already exists → update it to match (treat as implicit MODIFIED)
MODIFIED Requirements:
* Find the requirement in main spec
* Apply the changes - this can be:
* Adding new scenarios (don't need to copy existing ones)
* Modifying existing scenarios
* Changing the requirement description
* Preserve scenarios/content not mentioned in the delta
REMOVED Requirements:
* Remove the entire requirement block from main spec
RENAMED Requirements:
* Find the FROM requirement, rename to TO
d. Create new main spec if capability doesn't exist yet:
* Create `openspec/specs/<capability>/spec.md`
* Add Purpose section (can be brief, mark as TBD)
* Add Requirements section with the ADDED requirements
4. Show summary
After applying all changes, summarize:
* Which capabilities were updated
* What changes were made (requirements added/modified/removed/renamed)
Delta Spec Format Reference
## ADDED Requirements
### Requirement: New Feature
The system SHALL do something new.
#### Scenario: Basic case
- **WHEN** user does X
- **THEN** system does Y
## MODIFIED Requirements
### Requirement: Existing Feature
#### Scenario: New scenario to add
- **WHEN** user does A
- **THEN** system does B
## REMOVED Requirements
### Requirement: Deprecated Feature
## RENAMED Requirements
- FROM: `### Requirement: Old Name`
- TO: `### Requirement: New Name`
Key Principle: Intelligent Merging
Unlike programmatic merging, you can apply partial updates :
Output On Success
## 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.
Guardrails
Weekly Installs
1
Repository
GitHub Stars
308
First Seen
1 day ago
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
147,400 周安装