用途:将某个变更(change)中的 delta 规格同步到主规格(main specs),使主规格反映该变更的需求,同时不归档该变更。这是一项由智能体驱动的操作,读取 delta 规格后直接编辑主规格。
主要能力与用法:如果未指定变更名,可尝试从对话上下文推断;若含糊,必须让用户从可用变更中选择,不能猜测或自动选择。可用命令:openspec list --json 获取变更列表;openspec status --change "<name>" --json 解析变更上下文。若状态报告 actionContext.mode: "workspace-planning",说明当前切片不支持工作区规格同步,应停止,不要回退到仓库本地路径或编辑关联仓库。使用状态 JSON 中 artifactPaths.specs.existingOutputPaths 作为 delta 规格文件列表;若无 delta 规格则告知用户并停止。
delta 规格包含 ADDED、MODIFIED、REMOVED、RENAMED 四类区块。对每个仓库本地能力 delta 规格:读取 delta 与主规格(openspec/specs/<capability>/spec.md,可能尚不存在),智能应用变更:新增需求若不存在则添加,已存在则按隐式 MODIFIED 更新;修改需求可新增场景、修改场景或修改需求描述,未在 delta 中提及的内容需保留;删除需求则移除整个需求块;重命名需找到 FROM 需求并改名为 TO。若能力尚不存在,创建 openspec/specs/<capability>/spec.md,添加 Purpose(可简要,标记 TBD)与 Requirements。完成后汇总更新了哪些能力及具体变更。
关键原则:类似智能合并,delta 表达的是意图而非整体替换,可只包含要新增的场景,无需复制已有场景。
限制与约束:编辑前需同时阅读 delta 与主规格;保留 delta 未提及的现有内容;不清楚时询问澄清;过程需展示正在改什么;操作应幂等,重复执行结果一致。成功输出格式为 Specs Synced: <change-name>,列出各能力的新增、修改、创建等。变更保持活跃,待实现完成后再归档。