用途:将某个变更中的 delta 规格同步到主规格,不归档该变更。这是一个由智能体驱动的操作:读取 delta 规格并直接编辑主规格来应用变更,从而支持智能合并(例如只添加一个场景,而无需复制整个需求)。
主要能力:支持四类变更——ADDED(新增需求,若主规格已存在则按隐式 MODIFIED 更新)、MODIFIED(修改现有需求,可仅添加新场景、修改现有场景或改需求描述,并保留 delta 未提及的场景与内容)、REMOVED(删除整个需求块)、RENAMED(按 FROM/TO 重命名需求)。若目标能力尚无主规格,则新建 openspec/specs/<capability>/spec.md,加入 Purpose 段(可简要并标记 TBD)与包含 ADDED 需求的 Requirements 段。完成后输出摘要,列出更新的能力及所做变更。操作应保持幂等,运行两次结果一致。
使用方式:可选指定变更名;若省略,先从对话上下文推断,模糊或歧义时必须提示选择。未提供变更名时运行 openspec list --json 获取可用变更,并用 AskUserQuestion 工具让用户选择,展示含 delta 规格(specs/ 目录下)的变更;禁止猜测或自动选择。随后在 openspec/changes/<name>/specs/*/spec.md 查找 delta 规格文件,找不到则告知用户并停止。对每个能力,依次读取 delta 规格、读取主规格 openspec/specs/<capability>/spec.md(可能尚不存在),再智能应用变更。
限制与护栏:改动前必须同时阅读 delta 与主规格;保留 delta 未提及的既有内容;不清楚之处应请求澄清;边改边展示改动内容。delta 表达的是意图而非整体替换,需自行判断合理合并。