用途:将某个变更的 delta 规格同步到主规格,且不归档该变更。这是由智能体驱动的操作:读取 delta 规格并直接编辑主规格,实现智能合并(例如只新增场景而不复制整条需求)。
主要能力:处理 ADDED、MODIFIED、REMOVED、RENAMED 四类需求变更;保留 delta 未提及的既有内容与顺序;新建尚不存在的能力主规格;同步后运行 openspec validate --specs 校验;输出更新摘要。
使用方式:可选指定变更名,否则从上下文推断或让用户选择。先运行 openspec status --change "<name>" --json,用返回的 planningHome.root 定位主规格目录,用 artifactPaths.specs.existingOutputPaths 作为 delta 规格路径的唯一来源。若指定了 store,先运行 openspec store list --json 获取 id,并在读写规格的命令上追加 --store <id>。首次写主规格前,运行 openspec instructions specs --change "<name>" --json 获取一次规格规则快照(若由 archive 内联调用并已提供有效快照则复用)。
限制:若 specs 条目缺失或 existingOutputPaths 为空,应报告无 delta 规格可同步并停止,不得从其他产物推断。调用方指定的路径子集必须原样遵守,不得扩大。规格指令返回非零或无效 JSON 时,必须在写主规格前停止。删除整个 spec.md 需同时满足多项条件(无剩余需求块、格式完整、变更声明 retire_capabilities: true 等),否则不得修改主规格。主规格不得包含 delta 操作标题,所有需求须归入单一 ## Requirements 节。操作应幂等。
适用场景:需要把增量规格合并进主规格、但暂不归档变更的 OpenSpec 工作流。